Codificação de Vídeo em MPEG-4
Agenda O que é MPEG-4 Evolução da Norma Especificação Ferramentas e Algoritmos Empacotamento Scopus Aplicações Presentation for SSPI event 05-06-07
Entendendo a Sopa de Letrinhas MPEG: Moving Picture Expert Group (ISO) VCEG: Video Coding Expert Group (ITU-T) JVT: Joint Video Team AVC: Advanced Video Coding MPEG-4 Parte 10: Nome oficial do ISO/IEC 14496-10-AVC H.264: Nome oficial do ITU Normas da série H Audio Visual e MM
Segundo Prato VCL: Video Coding Layer NAL: Network Abstraction Layer CAVLC: Context Adaptative Variable Length Coding CABAC: Context Aritmetic Binary Adaptative Coding
O que é MPEG-4 Norma desenvolvida com o propósito de criar e/ou propor novas ferramentas para o aprimoramento dos padrões de compressão de vídeo digital existentes a fim de possibilitar diferentes aplicações para diferentes meios de transmissão. Streaming Internet Celular ADSL
Evolução da Norma H.264/AVC H.26L - VCEG H26L: nome extra-oficial para H.264 dado pelo ITU H.264 H.264/AVC (2001) JVT MPEG-4 Scopus information AVC not be disclosed or (parte 10)
O que o H.264/AVC especifica VCL: Video coding layer: Especifica as ferramentas implementadas para compressão de vídeo NAL: Network Abstraction Layer: Especifica o mapeamento dos pacotes gerados no VCL para Scopus diferentes information meios de transmissão not be disclosed or
Conceito do H.264/AVC Usa as ferramentas existentes do MPEG-2: GOP Quadros I, P, B Codificação Intra-Frame Codificação Inter-Frame Codificação Temporal e Espacial Aplicação de DCT Transformada Discreta Cossenoidal Codificação por Entropia
Conceito do H.264/AVC Implementa novas ferramentas do AVC: CAVLC CABAC Loop Deblocking Filter Variable Block Sizes Multiple Reference Frames Define novos Profiles Baseline Main Extended Scopus E seus respectivos Presentation Levels for SSPI event 05-06-07
Importante!! Não existe uma única inovação que possibilita o ganho em compressão no H.264/AVC e sim um conjunto de melhorias que geram pequenos ganhos individuais, possibilitando um significante aumento na taxa de compressão.
MPEG-2 = H.264/AVC = 30 qps eu tiro 12 qps Intra-Frame Predictive Frame I B P B P B P B P B P B I Bidirectional Scopus information Frame not be disclosed or GOP GOP = = 12 12
MPEG-2: Codificação Intra-Frame Redução de Dados Irrelavantes: Não transmite dados que são dispensáveis para a composição da imagem. Ex: freqüências de cores que não podem ser detectadas pelo olho humano, vídeo blancking, amostragem (4:2:2 ou 4:2:0), quantização 12, 10 para 8 bits, etc... Redução de Redundâncias: Scopus Pixels com information valores próximos not são be considerados disclosed como or reprinted idênticos without e simplesmente prior written repetidos permission from
MPEG-2: Codificação Intra-Frame (I) 8x8 Scopus information Compressão not be disclosed or reprinted Quadrowithout 1 prior Intra-Frame (I) Frame written permission from reconstruído
H.264/AVC: Codificação Intra-Frame (I) 8x8 4x4 reprinted Quadrowithout 1 Maior compressão (I) Frame prior written permission from Intra-Frame reconstruído
MPEG-2: Codificação Inter-Frame Predictive Frame (P) Quadro comprimido tendo como referência o quadro anterior. Proporciona maior compressão que o quadro do tipo (I) Bi-directional Predictive (B) Quadro comprimido tendo como referência o quadro imediatamente anterior e também o imediatamente posterior. reprinted Proporciona without maior compressão prior written que os quadros permission dos tipos (I) from e (P)
MPEG-2: Codificação Inter-Frame (P) 16x16 Quadro 1 Quadro 2 reprinted (I) Frame é without prior written permission (P) Frame from Scopus Armazenado Presentation for SSPI event 05-06-07 Vetor de Movimento
H.264/AVC: Codificação Inter-Frame (P) (I) Frame (P) Frame reprinted Utilização without de múltiplos prior frames written = Maior permission Compressão from
H.264/AVC: Compensação de Movimento 16X8 16X8 16X16 16X16 8X4 8X4 8X8 8X8 4X4 4X4 Melhor busca e maior correlação entre blocos = Maior Compressão
MPEG-2: Codificação Inter-Frame (B) Quadro 1 Quadro 2 é armazenado Quadro 3 (B) Frame Vetor de Movimento (I) Frame (P) Frame é reconstruído já armazenado Scopus information not be e armazenado disclosed or
H.264/AVC: Codificação Inter-Frame (B) (B) Frame Utilização de múltiplos frames = Maior Compressão
MPEG-2: Sequência de Quadros Comprimidos Quadro 1 Quadro 3 Quadro 2 Vetor de Movimento Vetor de Movimento Scopus (I) Frame information (P) Frame not be disclosed (B) Frame or
H.264/AVC: Sequência de Quadros Comprimidos Quadro 1 Quadro 3 Quadro 2 Scopus (I) Frame information (P) Frame not be disclosed (B) Frameor
Transformadas Após calculado os resíduos de cada quadro, cada índice é equacionado em matrizes e aplicado a transformada, visando a normalização e a redução de informações a serem transmitidas MPEG-2 = DCT 8x8 H.264 = HCT 4x4
MPEG-2: Aplicação da DCT H.264/AVC HCT 41 27-3 6-247 -4-5 -3-117 -1 1-1 -40-2 2 1-7 -2-1 1-6 1 0 0-2 2-2 2 0-3 1 1-1 -1-1 0 2 1-2 0 0-1 -1 2 0 0-2 -1-4 -1-1 1-2 -1-1 -1 Scopus information -3-3not -1be 1disclosed 0-1 -1or 1 Matriz de coeficientes DCT
MPEG-2=H.264/AVC: Varredura em ZIG-ZAG HCT 2 2 0 0 20 0 0 0 8 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (2) 2 20 8 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 DCT Coeficiente DC Coeficientes AC
Run Lenght Encoding - Entropia AAAABBBBBCCCDD 4(A)5(B)3(C)2D Tabela de Códigos 01110011000000
MPEG-2: Huffman - VLC (2) 2 20 8 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Predictive Coding (2) 2 20 8 0 0 0 0 0 2 EOB VLC = CÓDIGO DE HUFFMAN Scopus Presentation (1) 001 00 001 00 for 111 SSPI 000 Quadro event (I) processado 05-06-07
H.264/AVC: CAVLC ou CABAC (2) 2 20 8 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Predictive Coding (2) 2 20 8 0 0 0 0 0 2 EOB CAVLC, CABAC Scopus Presentation (1) 001 00 001 00 for 111 SSPI 000 Quadro event (I) processado 05-06-07
CAVLC Context Adaptative Variable Length Coding Gera trailers de coeficientes 0, -1, +1 Gera correlação entre índices dos blocos vizinhos Gera proximidade na magnitude de coeficientes de valores não zeros Várias tabelas adaptativas dinâmicas
Exemplo de CAVLC Macro Bloco 4x4 Indices reordenados: 0,3,0,1,-1,-1,0,1,0,0,0,0,0,0,0,0 TotalCoef = 5; TotalZeros=3; T1s =3 Bitstream Gerado 000010001110010111101101 (24 bits)
CABAC CABAC: Context Aritmetic Binary Adaptative Coding Operações estatísticas Modelos de probabilidades Exp-Golomb code CABAC Scopus = information 15% mais eficiente not be do disclosed que CAVLC or
Deblocking Filter Compressões baseadas na divisão da imagem em macro blocos geram blocos visíveis em função da dificuldade maior na reconstrução das bordas do que do interior do bloco. H.264/AVC usa uma técnica de filtragem para reduzir o efeito da blocagem nos limites dos macro-blocos Ganho de compressão ~5 a 10% em função da melhoria dos pixels para análise temporal e espacial Melhoria na imagem subjetiva
Efeito de Deblocking Filtering
Profiles and Levels H.264/AVC define 3 Profiles Baseline Profile BP Main Profile MP Extended Profile XP Define também 15 Levels 1, 1.1, 1.2, 1.3 2, 2.1, 2.2 3, 3.1, 3.2 reprinted 4, 4.1, 4.2 without prior written permission from 5, 5.1
Ferramentas Suportadas por Profile SP SI B Main Data Partioning Weighted Prediction Interlace Extended Baseline CABAC I P CAVLC Slice Groups Redundant Scopus Presentation for Slice SSPI event 05-06-07
Exemplos MPEG-2 MP@ML H.264/AVC reprinted without prior MP@L3 written permission from
NAL Network Abstraction Layer Especifica o mapeamento dos pacotes gerados no VCL para diferentes meios de transmissão Video Coding Layer Control Data Data Partitioning Scopus information Network Abstraction not be Layer disclosed or H.320 MP4FF H323/IP reprinted without prior written permission MPEG-2 etc. from
MPEG-2: Sintaxe do Transport Stream 188 Bytes 4 bytes 184 bytes Header Adaptation Field PES (Dados) PCR DTS VIDEO AUDIO PID PTS PSI reprinted without prior written permission SI from
Aplicações Internet Sistema Brasileiro de TV Digital ISDTV IPTV Contribuição Jornalismo sobre E-1 Distribuição de TV
Scopus H.264/AVC - Linha de Produtos UE-9410 H.264 Encoder UE-9318 H.264 DVB-S2 Encoder IRD-2900 H.264 Receiver
Obrigado a todos! Sidnei Brito Scopus do Brasil Ltda sidnei@scopusbrasil.com.br +55 12 3923-9208 +55 12 9113-7844 Visite nosso web-site: www.scopusbrasil.com.br