Televisão Digital MPEG-2 Video Pedro A. Amado Assunção - Pólo de Coimbra Instituto Politécnico de Leiria - ESTG 1
Sumário Introdução. Características principais da norma MPEG-2. Compressão de vídeo: princípios básicos. Codificação / Descodificação em MPEG-2. Modos escaláveis em MPEG-2 - aplicações. Considerações finais. 2
MPEG!Moving Picture Experts Group Introdução Norma MPEG-2 (ISO/IEC 13818; ITU-T Rec. H.262)!Constituída por 3 partes fundamentais MPEG-2 Systems (ISO/IEC 13818-1)!Define a estrutura de multiplexagem entre áudio, vídeo e dados, assim como a sincronização entre codificador e descodificador MPEG-2 Video (ISO/IEC 13818-2)!Define o sinal de vídeo comprimido MPEG-2 Audio (ISO/IEC 13818-3)!Define o sinal de áudio comprimido 3
MPEG-2: Systems, Video, Audio Diagrama funcional Aplicações Video Data Video Encoder Packetizer Video PES PS Program Audio Data Audio Encoder Packetizer Audio PES Mux Stream TS Transport Stream Mux Extent of Systems Specification 4
MPEG-2: Pilha protocolar 5
A norma MPEG-2 Video Define a sintaxe e semântica de um bitstream de vídeo comprimido. Apenas especifica a estrutura de um bitstream compatível com a norma e a forma de obter as imagens - processo de descodificação. Não especifica os algoritmos de codificação - um codificador MPEG-2 utiliza algoritmos e técnicas definidas pelo fabricante e não definidas pela norma - a única restrição é o bitstream resultante ser compatível com a norma. Os fabricantes podem construir codificadores compatíveis com a norma, embora com características muito diferentes uns dos outros. 6
Profiles / Levels Profiles!Definem subconjuntos da sintaxe global que implicam níveis de complexidade diferentes nos algoritmos de codificação / descodificação - os modos escaláveis correspondem a diferentes Profiles. Levels!Definem restrições de alguns parâmetros dos bitstreams - um determinado Level corresponde a determinadas valores máximos de resolução espacial, temporal e bit rate. 7
Profiles / Levels 8
Estrutura do sinal de vídeo O sinal de vídeo é estruturado de forma hierárquica, em um elemento de um determinado nível contém vários elementos do nível imediatamente abaixo.! Sequence - (Ex:um filme)! GoP: Group of Pictures - (Ex: um grupo de 15 imagens consecutivas)! Picture: field, frame - (um campo ou uma imagem completa)! Slice - (Ex: um conjunto de MBs na mesma linha horizontal)! Macroblock - (Ex: 3 blocos - Y:16x16; U:8x8; V:8x8)! Block - (Ex: um bloco 8x8 pontos de luminância)! Pixel - (Ex: um ponto de luminância) 9
Compressão de vídeo OBJECTIVO:! Reduzir a largura de banda e/ou capacidade de armazenamento. EXEMPLO:! Sinal de Televisão com resolução 720x576, 25 imagens/seg., formato 4:2:0 -- 124 Mbits/seg.! Usando compressão pode ser transmitido a 4 Mbits/seg. INCONVENIENTE:! O processo de compressão introduz distorção no sinal - pode ser imperceptível para a maioria dos observadores! 10
Como se obtém a compressão do sinal? Eliminando a REDUNDÂNCIA ESPACIAL (de uma imagem individual), e a REDUNDÂNCIA TEMPORAL (entre imagens consecutivas) dos sinais de vídeo. Retirando do sinal de vídeo as COMPONENTES IRRELEVANTES para o sistema visual humano. Representando com MENOS BITS os elementos com MAIOR PROBABILIDADE de ocorrência. 11
Principais técnicas de codificação Redundância espacial! Transformada de coseno (DCT) Redundância temporal! Estimação de movimento Componentes irrelevantes! Quantização Componentes com diferentes probabilidades! Códigos de comprimento variável (VLC) 12
Codificadores híbridos Classificação Intraframe Não tem dependência temporal Interframe Dependência temporal anterior e posterior Predição composta usa duas imagens de referência Predição simples usa uma só imagem de referência Transformada Quantização VLC 13 Estimação / Compensação de movimento Transformada Quantização VLC
Transformada DCT Transforma um bloco de 8x8=64 pontos (correlacionados) da imagem num bloco de de 8x8=64 coeficientes não correlacionados. C 8 8 = T T P T 8 8 8 8 8 8!P: Pontos de uma imagem (correlacionados).!c: Coeficientes da DCT (não correlacionados).!t: Matriz da Transformada. 14
Quantização Consiste basicamente numa divisão inteira efectuada entre os coeficientes resultantes da DCT e o passo de quantização. Q y x = int! Implica perda de precisão nos coeficientes, constituindo a principal fonte de distorção no processo de codificação.! O número total de valores diferentes passa a ser finito e limitado a uma gama reduzida - após quantização muitos coeficientes são nulos 15
Codificação com VLC Varrimento do bloco 8x8 de coeficientes DCT após quantização Agrupar os coeficientes em símbolos <run, length> Codificar e inserir no bitstream! Símbolos com maior probabilidade de ocorrência são representados por códigos curtos (poucos bits).! Símbolos com menor probabilidade de ocorrência são representados por códigos mais compridos (mais bits). A norma define tabelas VLC - não necessitam de ser transmitidas do codificador para descodificador. 16
Tipos de varrimento usados Um símbolo ou par <run, level> consiste no número de zeros (run) que antecedem um coeficiente não nulo (level).! a) Zig-Zag Scan; b) Alternate Scan 17
Estimação/compensação de movimento ~, ^ 18
Estimação/compensação de movimento 19
Imagens do tipo I Codificadas em modo intraframe! São codificadas com DCT, Quantização e VLC (semelhante ao JPEG).! São codificadas/descodificadas de modo independente.! São usadas como imagens de referência para as do tipo P e B.! A primeira imagem de um GoP é do tipo I.! São usadas como pontos de acesso aleatório para começar a descodificar um bitstream a meio (por ex: ao ligar a TV), para edição de vídeo comprimido e para sincronização após erros de transmissão.! Um erro ocorrido numa imagem I propaga-se por todas as imagens desse GoP pois as imagens seguintes (do tipo P e B) são descodificadas com base nas anteriores. 20
Imagens do tipo P Codificadas usando predição simples! Usam estimação/compensação de movimento baseado na imagem anterior do tipo I ou P.! Em termos genéricos pode-se dizer que a informação transmitida correspondente a uma imagem P consiste na diferença entre a imagem a codificar (imagem actual) e a imagem de referência anterior (a última do tipo I ou P).! Não podem ser codificadas/descodificadas de modo independente pois necessitam da imagem de referência anterior - não se pode iniciar a descodificação de um bitstream numa imagem P.! São usadas como imagens de referência para as do tipo P e B. 21
Imagens do tipo B Codificadas usando predição composta - interpolação! Usam estimação/compensação de movimento baseada em duas imagens de referência - na anterior do tipo I ou P e na seguinte do tipo I ou P.! Não são usadas como imagens de referência para as outras.! A dependência temporal de imagens futuras implica reordenação da sequência original das imagens. Sequência de entrada (aquisição) e saída (visualização): 1, 2, 3, 4, 5, 6, 7,... (I B B P B B P) Sequência de codificação, transmissão e descodificação: 1, 4, 2, 3, 7, 5, 6... (I P B B P B B) 22
Imagens do tipo I, I, P e B Interpolação Bidireccional I B B P B B B P Predição 23
Diagrama de um codificador ~ ~, o 24
Diagrama de um descodificador ~ o 25
Flexibilidade na codificação A norma não define estrutura de cada GoP - tipos de imagens. A norma não define a divisão das imagens em slices. Cada MB pode ser codificado em modos diferentes dependendo do tipo de imagem a que pertence - a decisão cabe ao algoritmo que o fabricante implementa. O codificador para ser compatível com a norma não necessita de implementar todas os modos de codificação possíveis. A norma não define como se controla a taxa de transmissão que pode ser variável (VBR) ou constante (CBR). 26
Transmissão CBR O número de bits gerado por cada imagem é variável. A adaptação da taxa variável do codificador ao canal com taxa de transmissão constante é feita através de um buffer. O codificador tem de garantir que o buffer nunca fica cheio nem vazio controlando o passo de quantização de acordo com a ocupação do buffer - o algoritmo de controlo influencia fortemente a qualidade das imagens obtidas. Feedback Camera 25Hz CODER Buffer R bits/s Network Buffer DECODER Camera 25Hz 27
Modos de codificação escaláveis O sinal de vídeo é codificado de forma hierárquica, em várias camadas. As camadas correspondem a bitstreams que podem ser transmitidos em canais diferentes. Apenas a camada base (base layer) pode ser descodificada independentemente das outras - as camadas superiores dependem das inferiores. Diversos parâmetros de qualidade do sinal são incrementados quando se descodificam as camadas superiores:! relação sinal/ruído; resolução espacial, resolução temporal. 28
Princípio da codificação multicamada CODEC - COder-DECoder Video in Codec-b Video descodificado Base Layer Codec-1 Layer 1 Codec-2 Layer 2 Base Layer Layer 1 Layer 2 Bitstreams 29
Data Partitioning Modos escaláveis em MPEG-2! O sinal é dividido no domínio da frequência. SNR Scalability! O sinal é dividido em vários níveis de SNR. Spatial Scalability! O sinal é dividido em várias resoluções espaciais. Temporal Scalability! O sinal é dividido em diferentes resoluções temporais. Hybrid Scalability! Combinações de alguns dos modos anteriores (3 camadas). 30
Data Partitioning - coder Pode ser implementado como pós-processamento. Controlo dinâmico da largura de banda de cada partição. Introduz poucos bits adicionais. Pouco eficiente em termos de qualidade / largura de banda. ~, ~ ~, 31
Data Partitioning - decoder Poder ser descodificada apenas a partição 0. Os dados da partição 1 em falta podem ser substituídos por zeros., ~, ~ 32
SNR Scalability - codec Resoluções espacial/temporal iguais em ambas as camadas. Camada 1 codifica o erro de codificação da camada 0. 33
Spatial Scalability - coder Camada 1 Camada 0 34
Spatial Scalability - decoder ~, o, ~ ~, o 35
Temporal Scalability - codec 36
Hybrid Scalability Ex:Codec com escalabilidade espacial e temporal (TV & HDTV) Temporal Enhancement Encoder b2 Temporal Enhancement Decoder In Temporal Demux. Temporal Mux. Out_2 Spatial Decimator Spatial Scalability Encoder b1 b0 Spatial Scalability Decoder Out_1 Out_0 37
Aplicações de sistemas escaláveis Possibilidade de escolha de QoS em VoD. Controlo de tráfego em redes multimédia. Vídeo através da Internet. Comunicações multimédia em redes móveis. Pesquisa de bases de dados multimédia. Transmissão em redes heterogéneas. Migração para HDTV e TV 3D. Co-existência de normas diferentes. 38
Considerações finais O ajuste de parâmetros de codificação exige que se conheça o processo de codificação do sinal de vídeo. O desempenho (qualidade do vídeo / bit rate) de um codificador depende de muitos factores que a norma não define - por exemplo, algoritmos de controlo de bit rate e préprocessamento. O armazenamento e edição de vídeo tem de ser feito em vídeo de elevada qualidade - a codificação sucessiva do mesmo sinal leva a uma distorção crescente. Os erros de transmissão propagam-se por várias imagens. 39