normas de compressão vídeo: H.264

Documentos relacionados
Televisão Digital. MPEG-2 Video

4 H Conceitos importantes

MPEG-4 & H.264. Dissertação, entendimento e comparativo entre e com o MPEG-2

Codificação de Vídeo em MPEG-4

CODIFICAÇÃO AVANÇADA DE VÍDEO DIGITAL

Módulo 6 Compressão Vídeo Sistemas Multimédia

Codificação de Videotelefonia segundo a Norma ITU-T H.261

Formatos de Áudio e Vídeo Digital Introdução ao Vídeo

Modelagem de Hardware para Codificação de Vídeo e Arquitetura de Compensação de Movimento Segundo o Padrão H.264/AVC

Formatos de Áudio e Vídeo Digital Compactação de Vídeo

Processamento de Imagem. Prof. MSc. André Yoshimi Kusumoto

HIKVISION Tecnologia de Codificação H.265+ Reduza sua Largura de Banda e Armazenagem pela Metade Desfrute da Ultra HD e da Fluência

Compressão de Imagens. Lilian Nogueira de Faria (Bolsista)...DPI/INPE Leila Maria Garcia Fonseca (Coordenadora)...DPI/INPE

Compressão de áudio. Marcio Dahia e Geber Ramalho

Desenvolvimento da Arquitetura Integrada dos Codificadores de Entropia Adaptativos ao Contexto CAVLC e CABAC do padrão H.264/AVC

Tópicos. Compressão de Vídeo

5 Testes em Imagens. Figura 5.1: Esquema de proteção com detecção de erros LT Hamming. Imagem. Cod-Hamming SPIHT. Cod-LT. Canal.

DOCUMENTO TÉCNICO. Hikvision Advanced Video Compression HIKVISION. Tecnologia de Codificação H.264/AVC V Para liberação [12/01/2012]

Padrões ITU-T H.261 e H.263

QUANTIZAÇÃO DIRETA E INVERSA DE ALTA PERFORMANCE PARA A COMPRESSÃO DE VÍDEO H.264/AVC DIRECIONADA PARA HDTV

Recomendação H.261 para serviços audiovisuais a taxas de transmissão p*64 kbit/s

Processamento digital de imagens

Um Estudo Sobre o Padrão H.264/AVC de Compressão de Vídeo

Processamento de Imagem. Compressão de Imagens Professora Sheila Cáceres

Compressão de Imagens: Padrão JPEG

3 Estimação e Compensação de movimento na codificação de vídeo

Desenvolvimento de Módulos de Hardware para a Decodificação de Vídeo Focando na Escalabilidade Espacial Diádica do Padrão H.

COMUNICAÇÃO DE ÁUDIO E VÍDEO. MEEC e MERC PROBLEMAS. (com soluções abreviadas) Fernando Pereira

Compressão MP3. Algoritmos e Estruturas de Dados

Fundamentos da Compressão de Vídeo

Compressão de Imagens em Movimento

Televisão Digital. Codificação de Entropia Códigos de Huffman. Hélio Manuel Gonçalves Jaco

9 CODIFICAÇÃO DE VÍDEO Sérgio Faria, Fernando Pereira 9.1 Introdução

COMUNICAÇÃO DE ÁUDIO E VÍDEO. MEEC e MERC PROBLEMAS. (com soluções abreviadas) Fernando Pereira

5. Aquisição e reprodução de som 5.1. Formatos de ficheiro 5.2. Software

Codificação/Compressão de Vídeo. Tópico: Vídeo (Codificação + Compressão)

Protocolo ATM. Prof. Marcos Argachoy

Mídias Discretas. Introdução à Ciência da Informação

COMPRESSÃO DE SINAIS DE ELETROMIOGRAFIA

Sistemas e Conteúdos Multimédia Video. Nuno Miguel Gil Fonseca

Figura 1: Modelo de referência em blocos de um transmissor de TV Digital qualquer

RESTAURAÇÃO E RECONSTRUÇÃO DE IMAGENS. Nielsen Castelo Damasceno

Transcrição:

normas de compressão vídeo: H.264 H.264 MPEG-4, H.264, AVC conceitos principais e áreas de aplicação semelhanças com outras normas e valor acrescentado Perfis e ferramentas extensões à norma 1

MPEG4 e H.264 MPEG4 Part 2: Visual (1998) especifica ferramentas para codificação de várias formas de vídeo vídeo natural, imagens rectangulares e formas arbitrárias, corpos e caras 3D introduz o conceito de codificação orientada aos objectos MPEG4 Part 10: Advanced Video Coding (AVC) (2003) especifica ferramentas mais eficientes e mais robustas a erros apenas para vídeo composto por imagens rectangulares desenvolvido em conjunto pelo ISO/IEC MPEG e ITU-T JVT H.264/AVC Vários perfis e níveis em cada uma destas partes 2

Breve sinopse do H.264/AVC Esforço conjunto do ITU-T e ISO/IEC MPEG suporta grande diversidade de aplicações enterlaçado e progressivo desde débitos muito baixos até qualidade de estúdio e cinema digital várias resoluções espaciais e temporais Constituída por um conjunto de perfis, a cada um dos quais podem estar associados diversos níveis nível gama de resoluções e débitos binários perfil aplicação (tipo de ferramentas) ex: para HDTV utiliza-se, tipicamente, o perfil High no nível 4 Cerca de 50% mais eficiente do que MPEG2 e MPEG4-2

Breve sinopse do H.264/AVC Baseado na arquitectura híbrida de codificação do MPEG2 e MPEG4 mas com as diferenças tamanhos de bloco variáveis para a estimação e compensação de movimento possibilidade de várias imagens de referência resolução a ¼ de pixel para a estimação de movimento transformada hierárquica com tamanhos de bloco mais pequenos filtro deblocking no loop de predição codificação de entropia adaptativa melhorada

Breve sinopse do H.264/AVC (2) Áreas de aplicação entertenimento difusão de TV DVD VoD DCinema de 1 a 8 + Mbit/s; atrasos maiores serviços interactivos videoconferência menos de 1 Mbit/s; atrasos reduzidos serviços de streaming Internet RTP/UDP/IP 3GPP na ordem de Kbit/s; latências maiores 5

Aspectos comuns com outras normas 3 componentes no sinal vídeo luminância e dois de crominância Macroblocos 16x16 Y e 8x8 Cr e Cb esquemas convencionais de sub-amostragem da crominância 4:2:0, 4:2:2, 4:4:4 estimação e compensação de movimento transformadas aplicadas ao bloco quantização escalar imagens do tipo I, P e B

Estrutura em níveis do H.264/AVC Control Data Video Coding Layer (VCL) Data Partitioning sequência de MBs codificados sequência de slices/ partições codificados Network Abstraction Layer (NAL) MPEG2 systems MP4FF H.320.., VLC: ferramentas para codificar vídeo eficientemente Data Partioning: agrupa MBs em slices e junta cabeçalho com informação suficiente para descodificar todos os MBs do slice (um slice é self-contained ) objectivo: aumentar a robustez a erros NAL: formata dados e adiciona cabeçalho com informação necessária para diferentes níveis de transporte ou meios de armazenamento sequência de unidades de acesso camada de sistema, multiplexagem 7

Hierarquia de codificação sequência uma ou mais unidades de acesso unidade de acesso conjunto de unidades NAL com toda a informação necessária à descodificação de uma imagem uma imagem codificada está dividida em slices um slice está dividido num conjº de MBs um slice é self-contained... unidade de acesso..................... slices e MB podem ser do tipo I, P ou B imagem

Hierarquia de codificação (2) cada slice tem um cabeçalho seguido de um conjº de MBs slice e MB podem ser do tipo I, P ou B slice I só tem MBs Intra slice P pode ter MBs Intra e Inter backward slice B pode ter MBs Intra e Inter bidireccional um MB contem um bloco de 16 x16 de luminância e 2 de 8 x 8 de crominância (4:2:0) unidade básica de processamento MBs de um slice dependem uns dos outros existem ainda slices do tipo SP e SI switching P, switching I... imagem slice 1 slice 2 slice 3... permitem efectuar comutação eficiente entre streams codificados com diferentes débitos

Diagrama de blocos codificador H.264 (nível VCL) Modos de predição Intra: 9 4x4 & 4 16x16 = 13 modos controlo de codificação maior resolução do degrau de quantização para controlo mais fino do bit rate Video In Predição Intra Intra transformada Quantização Coeficientes DCT quantizados + _ Inter Quantização inversa imagem prevista Motion Compensation memória de imagem Motion Estimation 7 tamanhos e formas de blocos selecção de múltiplas imagens de referência estimação de movimento com precisão de 1/4-pel Filtro deblocking + Vectores de movimento transformada inversa + codificação entropia Bit Stream Out [Single Universal VLC e Context Adaptive VLC] OU [Context-Based Adaptive Binary Arithmetic Coding] trasformada inteira de 16 bits em blocos de 4x4

Valor acrescentado do H.264/AVC melhorias substanciais na estimação de movimento a melhor forma de maximizar a eficiência em compressão de vídeo é encontrar formas de minimizar o nº de bits necessário para descrever o movimento dimensões variáveis de bloco várias imagens de referência resolução a ¼ de pixel modos de predição para imagens Intra novas transformadas e quantização filtro de-blocking novas formas de codificação de entropia novas técnicas para robustez a erros 11

Estimação de movimento 16x16 16x8 8x16 8x8 partições do MB de 16x16 4x4 8x4 4x8 partições do sub-mb de 8x8 4 partições possíveis do MB, 4 partições possíveis do sub-mb se for feita uma partição 8x8, cada um dos sub-mb de 8x8 pode ainda ser dividido de 4 formas diferentes 4 modos de predição ao nível de sub-mb no máximo, 16 vectores de movimento para um MB sub-mb 12

Estimação de movimento (2) diferentes partições do MB de acordo com a actividade da cena/imagem 13

Estimação de movimento (3) diferentes partições do MB de acordo com a actividade da cena/imagem 14

Estimação de movimento (4) até 16 imagens de referência para obtenção dos melhores vectores de movimento (menor resíduo menos bits, mais qualidade) o descodificador guarda em memória as imagens de referência indicadas por comandos de controlo de memória enviados no bitstream só vectores forward (imagem de referência passada) útil para imagens imediatamente antes de cortes de cena só vectores backward (imagem de referência futura) imagem a prever útil para uma imagem imediatamente após um corte de cena 15

Estimação de movimento (5) Benefícios de imagens múltiplas de referência imagens B também podem ser referência imagens B generalizadas 16

Predição Intra Explora correlação entre blocos ou MBs de uma mesma imagem Os blocos ou MBs têm que pertencer ao mesmo slice garante independência entre slices É feita uma previsão do MB que se pretende codificar com base num MB do mesmo slice; essa previsão é subtraída ao MB que se pretende codificar Duas alternativas com vários modos possíveis para a luminância Apenas uma alternativa para a crominância as variações dependem do tamanho do MB que se utiliza 17

Predição Intra (2) Duas alternativas de predição para a luminância 4 modos para o MB de 16 x16 (Intra16x16) vertical, horizontal, planar e DC adequado para áreas uniformes 9 modos para cada sub-bloco de 4 x 4 de um MB (Intra4x4) 8 direcções e DC adequado para áreas de muito detalhe. Predição única para a crominância 4 modos para o MB de 16 x 16 vertical, horizontal, planar e DC 18

Predição Intra (3) 4 modos para Intra16x16 9 modos para Intra4x4

Várias transformadas É possíve usar 3 transformadas diferentes A escolha é feita de acordo com o tipo de predição efectuada Hadamard 4 x 4 para os coeficientes DC de luminância de MBs Intra16x16 Hadamard 2 x 2 para os coeficientes DC de crominância de qualquer MB DCT inteira 4 x 4 para todos os outros coeficientes mais fácil de implementar introduz menores erros na transformada inversa 20

Quantização Quantização escalar com o mesmo peso ou parâmetro de quantização (Q p) para todos os coeficientes do MB para cada MB, é escolhido um quantizador a partir de uma tabela com 52 quantizadores possíveis (logo 52 valores de degrau de quantização) a tabela define uma relação entre parâmetro de quantização (Q p) e o degrau de quantização (Qstep) Q p é usado como índice para essa tabela: Qstep = f(qp) a tabela foi definida de forma a que para um aumento de 1 no Qp o Qstep aumente levando a uma redução de cerca de 12.5% do débito de saída 21

Filtro de-blocking filtro adaptativo que opera nas fronteiras do blocos para eliminar ou suavizar o efeito de bloco é utilizado no anel de predição os blocos filtrados são usados na estimação de movimento Benefícios: suaviza as fronteiras dos blocos sem manchar a imagem, melhorando a qualidade subjectiva da imagem permite utilizar os blocos filtrados para a estimação de movimento dá origem a resíduos de predição mais pequenos, logo menor débito binário para uma dada qualidade 22

Filtro de-blocking (2) Pretende suavizar as fronteiras entre blocos, apenas se as diferenças entre blocos se devem à quantização se não for da quantização, então é porque as diferenças existiam já na imagem e devem então ser preservadas filtro adaptativo ao conteúdo ao nível do slice, os parâmetros do filtro podem ser ajustados de acordo com as características da sequência video ao nível do bloco, os parâmetros podem ser ajustados de acordo com o tipo de codificação efectuada (Inter ou Intra) ao nível da amostra, o filtro pode ser desactivado dependendo da quantização efectuada 23

Filtro de-blocking (3) resultados subjectivos da codificação Intra sem e com filtro 24

Filtro de-blocking (4) resultados subjectivos da codificação Inter sem e com filtro 25

Varrimento progressivo (frames/imagens) entrelaçado (quadros) 26

Codificação de entropia Para símbolos que não são coeficientes de transformadas quantizados Universal Variable Length Coding (UVLC) com códigos Exp-Golomb tabela única com códigos VLC, com regras simples de descodificação Para os coeficientes quantizados Context Adaptive VLC (CAVLC) para os coeficientes das transformadas usa várias tabelas VLC, seleccionadas de acordo com as estatísticas dos símbolos já transmitidos Context Adaptive Binary Arithmetic Coding (CABAC) utiliza modelos de probabilidades adaptativos explora a correlação entre símbolos através da criação de contextos estima probabilidades condicionadas baseado nas estatísticas dos símbolo já transmitidos usa essa probabilidades condicionadas (em contexto) para escolher o modelo de probabilidade a usar 27

Robustez a erros Flexible Macroblock Ordering (FMO) cria grupos de slices e distribui MBs de forma flexivel por um ou mais grupos de slices, transmitidos separadamente se um slice group se perde, podem-se utilizar MBs espacialmente adjacentes mas atribuídos a outro slice group recebido correctamente para recuperar os MBs perdidos Arbitrary Slice Ordering (ASO) envia os slice groups numa ordem arbitrária, diferente da ordem de varrimento normal Data Partitioning (DP) permite separar elementos do bit stream codificado em diferentes pacotes de acordo com a sua importância permitindo unequal error protection (UEP) Redundant Slices (RS) permite enviar uma representação adicional de uma região da imagem (com menor fidelidade) 28

Flexible Macroblock Ordering (FMO) cada imagem pode ser dividida até 8 grupos de slices cada grupo pode conter um ou mais slices diferentes formas de atribuir MBs aos grupos de slices é criado um mapa com a distribuição dos MBs pelos grupos 29

Flexible Macroblock Ordering (FMO) - 2 dentro de um grupo, os MBs aparecem pela ordem de varrimento natural mas os grupos podem ser enviados com ordem arbitrária e os MBs podem ser atribuídos a grupos de forma arbitrária 30

Perfis e ferramentas

Perfis e ferramentas (2)

Eficiência de codificação Sequência Paris CIF, 15 Hz PSNR Y (db) 39 ganho em débito relativamente ao H.263 (%) 50 40 32 30 20 10 24 0 128 256 384 512 640 768 bit rate (Kbit/s) 0 24 32 40 PSNR Y (db) CIF - Common Intermediate Format, 352 x 288

Eficiência de codificação (2) Sequência Tempete CIF, 30 Hz CIF - Common Intermediate Format, 351 x 288

o reverso da medalha... Complexidade em relação ao MPEG2 MP, a complexidade é cerca 4x superior no codificador e 3x no descodificador devido essencialmente a estimação de movimento com blocos mais pequenos e várias possibilidades de partição dos MBs estimação de movimento com referências múltiplas modos de predição Intra filtro de-blocking codificação de entropia mais complexa 35

Comparação de normas norma Ferramenta MPEG-1 MPEG-2 MPEG-4 part 2 (visual) H.264/MPEG-4 part 10 Macroblock size 16x16 16x16 (frame mode) 16x8 (field mode) 16x16 16x16 Block Size 8x8 8x8 16x16, 16x8, 8x8 16x16, 8x16, 16x8, 8x8, 4x8, 8x4, 4x4 Transform 8x8 DCT 8x8 DCT 8x8 DCT/Wavelet 4x4, 8x8 Int DCT 4x4, 2x2 Hadamard Quantization Scalar quantization Scalar quantization Vector Scalar quantization with step size of with step size of quantization with step size of constant increment constant increment increase at the rate of 12.5% Entropy coding VLC VLC VLC VLC, CAVLC, CABAC Motion Estimation & Compensation Yes Yes Yes Yes, more flexible Up to 16 MVs per MB Random Access Yes Yes Yes Yes

Comparação de normas Ferramenta norma MPEG-1 MPEG-2 MPEG-4 part 2 (visual) H.264/MPEG-4 part 10 Pel accuracy Integer, ½-pel Integer, ½-pel Integer, ½-pel, ¼-pel Integer, ½-pel, ¼-pel Profiles No 5 8 3 Reference picture one one one multiple Bidirectional prediction mode forward/backward forward/backward forward/backward forward/forward forward/backward backward/backward Picture Types I, P, B, D I, P, B I, P, B I, P, B, SP, SI Error robustness Synchronization & concealment Data partitioning, FEC for important packet transmission Synchronization, Data partitioning, Header extension, Reversible VLCs Data partitioning, Parameter setting, Flexible macroblock ordering, Redundant slice, Switched slice Transmission rate Up to 1.5Mbps 2-15Mbps 64kbps - 2Mbps 64kbps -150Mbps Compatibility with previous standards n/a Yes Yes No Encoder complexity Low Medium Medium High

Extensões ao H.264 H.264 Scalable Video Video Coding (SVC) H.264 Multiview Coding (MVC) 38

H.264 SVC Scalable Video Coding (SVC) necessário devido à grande heterogeneidade de plataformas receptores e de redes permite graceful degradation em ambientes de transmissão sujeitos a perdas fácil adaptação de débitos e formatos no domínio comprimido tipos de escalabilidade temporal espacial fidelidade (SNR) em relação a uma codificação não escalável tem um acréscimo de cerca 10% no débito mas ganhos consideráveis em relação a simulcast complexidade apenas ligeiramente superior 39

H.264 SVC: perfis Scalable Baseline Profile vocacionado para aplicações de videoconferência, ambiente móveis e videovigilância construído a partir do perfil Baseline do H.264/AVC o nível base do stream escalável tem que estar em conformidade com H.264/ AVC Baseline Scalable High Profile vocacionado para aplicações de difusão e streaming construído a partir do pefil High Profile do H.264/AVC o nível base do stream escalável tem que estar em conformidade com H.264/ AVC High Profile Scalable High Intra Profile vocacionado para aplicações na área da produção de conteúdos (professional) é uma versão do perfil scalable high só com codificação Intra 40

H.264 Multiview Coding (MVC) Codificação múltipla codifica e multiplexa N vistas da mesma sequência vídeo várias cameras captam diferentes ângulos da mesma cena para compatibilidade com displays 2D, apenas uma vista é descodificada permite mudar livremente o ângulo de visão o caso mais importante é N=2 vídeo estereoscópico ou 3D cada uma das vistas é usada para projectar a imagem em cada um dos olhos, dando a sensação de profundidade 41

H.264 Multiview Coding: perfis Stereo High Profile este perfil destina-se a video estereoscópico 3D combina ferramentas do perfil H.264/AVC High profile com predição entre vistas (inter-view) Multiview High Profile este perfil suporta uma ou mais vistas usando predição entre imagens no tempo e predição entre vistas não suporta quadros (entrelaçamento) 42

H.264 MVC: princípios incorpora versões múltiplas concorrentes de uma mesma cena vídeo estéreo, 2 vistas combinadas para dar a ilusão de profundidade (3DTV) necessita de óculos polarizados ou de écrâns auto-estereoscópicos utilizam uma película à frente do écrân, constituída por milhares de pequenas lentes que refractam a luz de cada pixel, de forma a que cada olho vê uma prespectiva diferente da imagem, dando a sensação de profundidade 43

H.264 MVC: princípios (2) 3D vídeo genérico são apresentadas vista múltiplas de forma a que a vista que está a ser visualizada muda quando o espectador quando move a cabeça, dando a sensação de imersão na cena free viewpoint é codificado e enviado um nº limitado de vistas o utilizador escolhe um ângulo de visão para a apresentação se a vista correspondente não existir, o descodificador cria-a com base nas outras vistas enviadas 44

H.264 MVC: codificação entre vistas dado que as várias vistas representam a mesma cena, deverá existir um elevado grau de redundância entre elas para comprimir tira-se partido dessas redundâncias imagens vistas 45

H.264 MVC: codificação entre vistas (2) explorar redundância entre vistas a sequência de imagens de cada vista poderia ser codificada independentemente e enviada como um stream separado simulcast mas se a posição da camera ao tirar as vistas se modificar pouco grande probabilidade da imagem i da vista k ser muito semelhante à imagem i da vista k+1, k+2, etc introduz-se predição entre vistas (inter-view prediction) é precisamente esse o objectivo do H.264 MVC 46

H.264 MVC: codificação entre vistas (3) inter-view prediction a vista 0 é codificada usando abordagem tradicional H.264 pode ser descodificada quer por um descodificador H.264/AVC quer por um H.264 MVC constitui o nível base as outras vistas são codificadas de modo semelhante mas as imagens de referência para efectuar a previsão são elas próprias previstas com base em imagens I ou P da vista anterior vista 0 vista 1 47

H.264 Multiview Coding (MVC) Perfis MVC Stereo High Profile este perfil destina-se a video estereoscópico 3D combina ferramentas do perfil H.264/AVC High profile com predição entre vistas (inter-view) Multiview High Profile este perfil suporta uma ou mais vistas usando predição entre imagens no tempo e predição entre vistas não suporta quadros (entrelaçamento) 48