Especificação



Baixar 2,81 Mb.
Página8/24
Encontro01.07.2018
Tamanho2,81 Mb.
1   ...   4   5   6   7   8   9   10   11   ...   24

5.3 Predição Inter Quadro


Esta predição visa reduzir a redundância temporal, ou seja, aquela que existe entre dois ou mais quadros.



    1. 5.4 Transformada, Quantização e Reordenação


No código desenvolvido neste trabalho os algoritmos de transformada, quantização e reordenação foram isolados em classes específicas. Outra diferença crucial entre o código de referência [2] e este trabalho é que, neste trabalho é codificado um quadro inteiro antes dele ser escrito, enquanto que no código de referência cada macrobloco é codificado e escrito.




      1. 5.4.1 Transformada


A transformada é uma operação sobre matrizes que tem como objetivo homogeneizar os valores dos coeficientes dessa matriz, possibilitando uma melhor codificação por entropia.

A transformada utilizada no H.264 é uma aproximação ortogonal da Transformada Discreta de Cosenos, DCT. Ela não é uma implementação da fórmula da DCT, mas uma operação cujo resultado se aproxima muito com os da DCT usando apenas números inteiros. Outro fator de grande importância é o da transformada ser aplicada aos blocos de tamanho 4x4, permitindo grande redução nos artefatos de blocagem característicos da codificação de vídeo.

No código do trabalho, a transformada é implementada pela classe IntegerTransform que fornece exclusivamente serviços de transformação de matrizes.




      1. 5.4.2 Quantização


A operação de quantização tem como intuito reduzir a magnitude dos coeficientes resultantes da transformada por meio de uma divisão, e a restituição dos valores originais por meio de uma multiplicação. A figura 5.3 mostra graficamente o processo de quantização.


F
igura 5.3 – Quantização dos coeficientes da DCT [48].



      1. 5.4.3 Reordenação


A reordenação consiste basicamente em colocar os valores dos coeficientes de uma matriz bidimensional NxN em um vetor unidimensional de tamanho M, onde M = N * N. O objetivo desse processo é criar um vetor que possua em seqüência os elementos de valores parecidos, permitindo uma maior compressão por entropia.



O código de referência [2] realiza a ordenação, ou zig-zag scan, juntamente com a quantização dos coeficientes. Isso proporciona uma otimização no código, entretanto também o torna mais difícil de ser compreendido. No código desenvolvido neste trabalho, a quantização e a reordenação foram separadas em classes distintas, o que torna o código mais legível e fácil de ser modificado. A classe ZigZagFrameScanner implementa a interface Scanner para blocos de frames (existem dois modos, frame e field).

Figura 5.4 – Reordenação zig-zag para blocos 4x4 luma (modo frame).


No codificador, cada bloco 4x4 – contendo coeficientes transformados e quantizados – é reordenado em um vetor de acordo com a ordem mostrada na figura 5.4.




1   ...   4   5   6   7   8   9   10   11   ...   24


©livred.info 2017
enviar mensagem

    Página principal