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

Documentos relacionados
4 H Conceitos importantes

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

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

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

Televisão Digital. MPEG-2 Video

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

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

Fundamentos da Compressão de Vídeo

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

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

Compressão de Imagens: Padrão JPEG

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

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

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

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

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

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

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

Tópicos. Compressão de Vídeo

SISTEMAS MULTIMÉDIA TESTE FORMATIVO ADICIONAL 1

Influência do Tamanho do Bloco na DCT

COMPRESSÃO DE SINAIS DE ELETROMIOGRAFIA

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

FUNDAMENTOS DE SISTEMAS MULTIMÍDIA INTEGRAÇÃO DE OBJETOS MPEG-4

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

Planeamento e Projecto de Redes. Capítulo 2. Serviços em Telecomunicações

Compressão de Imagens Usando Wavelets: Uma Solução WEB para a Codificação EZW Utilizando JAVA. Utilizando JAVA. TCC - Monografia

Modelo Alternativo de Complexidade para a Norma MPEG-4 Visual

Transformada de Discreta de Co senos DCT

Sistemas de Comunicações VIDEOCONFERÊNCIA VIDEOTELEFONIA E. Instituto Superior Técnico. Fernando Pereira

VIDEOTELEFONIA E VIDEOCONFERÊNCIA

T4.1 Processamento de Imagem

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

Capítulo III Processamento de Imagem

COMUNICAÇÃO DE ÁUDIO E VÍDEO. Fernando Pereira

Video Analógico. Pedro Alípio Telemédia

Fundamentos Multimídia

Princípios de Telecomunicações AULA 1. Elementos de um sistema de comunicações. Prof. Eng. Alexandre Dezem Bertozzi, Esp.

Rede Telefónica Pública Comutada - Principais elementos -

COMUNICAÇÃO DIGITAL INTRODUÇÃO À TEORIA DE INFORMAÇÃO

INTRODUÇÃO AO MULTIMÉDIA DIGITAL

Duração do Teste: 2h.

5. Tipos de produtos multimédia Baseados em páginas

Conceitos Básicos de Áudio Digital

Universidade de Pernambuco Escola Politécnica de Pernambuco

António Costa. Paulo Roma Cavalcanti

Arquitetura e Organização de Computadores

Transcrição:

CODIFICAÇÃO AVANÇADA DE VÍDEO DIGITAL Fernando Pereira Instituto Superior Técnico

Vídeo Digital: Algumas Dúvidas Essencialmente, as normas de vídeo digital disponíveis seguem o mesmo paradigma da televisão analógica! Será que a lógica mais do mesmo ainda que com algum aumento da qualidade (?) vai ser suficiente para convencer os utentes? Será que os utentes confrontados com o paradigma da Internet e dos jogos, com que estão cada vez mais familiarizados, não vão querer mais sem ser do mesmo? Não será por este motivo que quase todos os operadores de televisão digital tentam misturar o acesso à Internet com a televisão?

Convergências O desenvolvimento tecnológico- processadores, memórias, codificação, etc.- levou a que mundos até agora separados Telecomunicações, Televisão e Computadores Voz, Imagem e Dados tendam a evoluir- convergir- integrando elementos típicos uns dos outros, p.e. imagem nas telecomunicações ou interactividade na televisão. E então surgem novos desafios...

Novas Capacidades,, Novas Necessidades Maior facilidade em interagir com a informação audiovisual (AV), nomeadamente ao nível do conteúdo Re-utilização da informação AV, natural e sintética, combinando-a de vários modos Disponilização da informação digital AV em qualquer local, através de qualquer meio e terminal Identificação rápida da informação procurada Protecção dos direitos de autor Necessidades surgem dos utentes, dos autores de conteúdo e dos fornecedores de serviços!

Um Único Ambiente de Codificação para...

Um Novo Modelo de Dados: Composição de Objectos Informação audiovisual representada como uma composição de objectos (com valor semântico ou funcional) Integração de objectos de vários tipos, naturais e sintéticos Processamento e codificação ao nível do objecto Interacção e re- utilização independente ao nível dos objectos Princípios independentes do débito binário

Conteúdo Baseado em Objects Sports results: Benfica - Sporting Stock information... Sports Stock results: information Benfica - Sporting...

Sistema Audiovisual Convencional enc. enc. sync & multiplexer demultiplexer dec.... dec. compositor

Sistema Audiovisual Baseado em Objectos AV objects coded AV objects coded AV objects uncoded Comp. Info Comp. enc. enc.... enc. sync & multiplexer demultiplexer dec. Comp. dec. dec.... dec. compositor interacção

MPEG-4: o Modelo de Serviço Fonte D e l i v e r y D e m u lt i p le x Compos. Vídeo Áudio Animação Texto/Gráf. C o m p o s i ç ã o A p r e s e n t a ç ã o Interacção

MPEG-4: Codificação de Objectos Audiovisuais Novo modelo de dados baseado no conceito de Objecto o que dá um valor semântico à estrutura de dados Novas funcionalidades, nomeadamente interacção ao nível de objecto, accesso universal e maior eficiência de compressão Criação de conteúdos com objectos e re-utilização e manipulação de objectos Integração de vários tipos de objectos áudio e vídeo, naturais e sintéticos e exploração de sinergias, e.g. entre codificação de vídeo, visão por computador, computação gráfica.

MPEG-4: Codificação de Objectos com Forma Arbitrária Coded shape bitstream video_object_layer_shape Shape decoding Previous reconstructed VOP Demultiplexer Coded motion bitstream Coded texture bitstream Motion decoding Variable length decoding Inverse AC/DC prediction Inverse quantization Texture Decoding Motion compensation Inverse scan Inverse DCT VOP reconstruction Decoded VOP

O Problema da Segmentação

Segmentação: O Problema que nem Sempre Existe...

Segmentação Automática e em Tempo Real: O Pior Caso!

Ferramentas MPEG-4 4 (1): Os Codecs Codificação eficiente de vídeo desde muito baixos débitos binários até muito alta qualidade Codificação eficiente de música e fala para uma gama alargada de débitos, nomeadamente desde música com qualidade transparente até fala a muito baixo débito Codificação eficiente de texto e gráficos Codificação eficiente de objectos 3D dinâmicos bem como de objectos 3D mais específicos como faces e corpos humanos Codificação eficiente de áudio e fala sintéticos bem como de espaço áudio 3D Capacidades de resiliência a erros ao nível da codificação de fonte para todos os tipos de dados codificados, nomeadamente com vista a ambientes com características de canal difíceis

Conteúdo Sintético: Animação Facial e Muito Mais

Jogos 3D para 3G na Coreia

Ferramentas MPEG-4 4 (2): O Nível de Sistema Representação independente dos vários objectos na cena, nomeadamente objectos visuais, permitindo o seu acesso, manipulação e reutilização de forma independente Composição de objecto visuais e de áudio, naturais e sintéticos, na mesma cena Capacidade de descrição de objectos e eventos na cena Capacidades de hyperlinking e interacção Capacidades ao nível da protecção e gestão dos conteúdos que forma a que só utentes autorizados os possam consumir

MPEG-4: Exemplos de Aplicação Vídeo na Internet Comunicações em tempo real Teledifusão multimedia DVD Interactivo Estúdio TV e post-processamento Infotainment Bases de dados baseadas no conteúdo Comunicações pessoais avançadas, p.e. móveis Vigilância e controlo remotos Reuniões virtuais

Usando Objectos

O Caso Bloomberg Já Hoje! Eficiência de codificação Personalização automática ou manual do conteúdo Personalização automática ou manual do layout do écrã com base em conteúdo global ou objectos, eventos, linguagem ou critérios mais complexos definidos pelo utente

Objectos mas Também...

Vídeo na Internet Número de objectos transmitidos dependente dos recursos computacionais e de banda Integração simples e eficiente de vários tipos de dados, naturais e sintéticos Interacção local ao nível dos objectos Personalização do conteúdo e do layout do écran Re-utilização de conteúdos Escalabilidade de espaço e tempo ao nível dos objectos Cada objecto com uma qualidade e protecção contra erros dependente da sua relevância

Vídeo na Internet Número de objectos transmitidos dependente dos recursos computacionais e de banda Integração simple e eficiente de vários tipos de dados, naturais e sintéticos Interacção local ao nível dos objectos Personalização do conteúdo e do layout do écran Re-utilização de conteúdos Escalabilidade de espaço e tempo ao nível dos objectos Cada objecto com uma qualidade e protecção contra erros dependente da sua relevância

Vídeo na Internet Número de objectos transmitidos dependente dos recursos computacionais e de banda Integração simple e eficiente de vários tipos de dados, naturais e sintéticos Interacção local ao nível dos objectos Personalização do conteúdo e do layout do écran Re-utilização de conteúdos Escalabilidade de espaço e tempo ao nível dos objectos Cada objecto com uma qualidade e protecção contra erros dependente da sua relevância

Vídeo na Internet Número de objectos transmitidos dependente dos recursos computacionais e de banda Integração simple e eficiente de vários tipos de dados, naturais e sintéticos Interacção local ao nível dos objectos Personalização do conteúdo e do layout do écran Re-utilização de conteúdos Escalabilidade de espaço e tempo ao nível dos objectos Cada objecto com uma qualidade e protecção contra erros dependente da sua relevância

Vídeo na Internet Número de objectos transmitidos dependente dos recursos computacionais e de banda Integração simple e eficiente de vários tipos de dados, naturais e sintéticos Interacção local ao nível dos objectos Personalização do conteúdo e do layout do écran Re-utilização de conteúdos Escalabilidade de espaço e tempo ao nível dos objectos Cada objecto com uma qualidade e protecção contra erros dependente da sua relevância

Comunicações em Tempo Real Número de objectos transmitidos dependente dos recursos computacionais e de banda Adição simples e eficiente de texto e elementos gráficos Escalabilidade temporal ao nível dos objectos Cada objecto com uma qualidade e protecção contra erros dependente da sua relevância

Comunicações em Tempo Real Número de objectos transmitidos dependente dos recursos computacionais e de banda Adição simples e eficiente de texto e elementos gráficos Escalabilidade temporal ao nível dos objectos Cada objecto com uma qualidade e protecção contra erros dependente da sua relevância

Teledifusão Multimédia Integração simples e eficiente de vários tipos de dados, naturais e sintéticos Personalização automática/manual do conteúdo e do layout do écran Interacção local ao nível dos objectos Re-utilização de conteúdos Cada objecto com uma qualidade e protecção contra erros dependente da sua relevância Número de objectos transmitidos dependente dos recursos computacionais e de banda

Volta à França : Hoje!

Volta à França : Mudar de Posição!

Volta à França : Combinando Objectos!

Volta à França : Browsing!

Estrutura de Cena para o Tour de France Cena AV Mapa Botões à esquerda Botões à direita... Vídeo Áudio...

Algumas Partes do MPEG-4 Parte 1: Systems Especifica ferramentas de composição, multiplexagem, sincronização, gestão de memória e gestão e protecção de propriedade intelectual Parte 2: Visual Especifica a codificação de objectos visuais, naturais e sintéticos Parte 3: Audio - Especifica a codificação de objectos auditivos (música e fala), naturais e sintéticos Parte 4: Conformance Testing Especifica as condições para conformidade de fluxos binários e terminais Parte 5: Reference Software Inclui software correspondente às ferramentas das várias partes; este software pode ser usado para implementação de produtos conformes à norma sem copyright Parte 6: Delivery Multimedia Integration Framework (DMIF) Especifica um protocolo de sessão para a gestão de streaming multimedia através de vários tipos de canais Parte 10: Advanced Video Coding Especifica a codificação avançada de vídeo rectangular (em conjunto com ITU-T, norma H.264)

MPEG-4 4 Profiling: Interoperabilidade versus Complexidade A norma MPEG-4 oferece inúmeras ferramentas em cada uma das suas Partes. Existem muitas ferramentas em cada uma das Partes que são inúteis (ou demasiado caras) para certas classes de aplicações. É essencial oferecer soluções adequadas a cada classe de aplicações com complexidade adequada. A criação de Perfis tem o objectivo de oferecer soluções técnicas adequadas para certas classes de aplicações de forma a criar bons compromissos entre a maximização da interoperabilidade e a minimização da complexidade.

Elementos Básicos do MPEG-4 4 Profiling Object Type Define a sintaxe do fluxo binário para um certo objecto (p.e. audio, vídeo) que corresponde a uma dada entidade na cena. Profile Define o conjunto de ferramentas de um certo tipo, p.e. descodificação de vídeo, que podem ser usada num dado terminal; os perfis visuais e de áudio são definidos em termos de object types ou seja um perfil visual corresponde ao conjunto de object types que o terminal aceita. Level Define as limitações, p.e. em débito, memória, impostas a cada perfil ou seja às ferramentas correspondentes a esse perfil.

Object Type: um Sub-conjunto de Ferramentas SIMPLE VISUAL OBJECT TYPE I-VOP and P-VOPP AC/DC prediction 4_MV, Unrest. MV Error resilience Short Header

Alguns Perfis Video ACE ARTS N-bit Advanc. Scal.Te Simple Scalable Simple Core Scalable Texture Main Stream. Video Core Scalable Studio

Perfis MPEG-4: Quantos são Precisos? Um bom perfil é um perfil que é usado pela indústria e satifaz os utentes! A existência de demasiados perfis diminui a interoperabilidade e cria confusão junto da indústria. A existência de demasiado poucos perfis pode implicar a necessidade de usar um perfil demasiado complexo para uma dada classe de aplicações. Os perfis devem ir sendo definidos à medida que a sua necessidade é identificada pela indústria. O mais importante é que os perfis necessários sejam definidos mesmo que entretanto sejam também criados alguns que nunca venham a ser usados.

Níveis: a Segunda Dimensão Os perfis restringem o conjunto de ferramentas mas não a complexidade, p.e. em termos de número de operações por segundo, memória, etc. Os níveis permitem fixar um limite para o máximo de complexidade que um descodificador é obrigado a ser capaz de suportar ou seja estabelecem o limiar inferior de complexidade para as implementações de descodificadores. Os limites fixados pelos níveis referem-se ao conjunto de todos os objectos na cena e não individualmente a cada objecto já que as limitações estão globalmente associados ao terminal. A definição de níveis em MPEG-4 pode ser bastante complexa uma vez que os bits MPEG-4 podem estar associados a complexidades muito diferentes em virtude da grande variedade de tipos de dados e ferramentas de codificação.

Codificação de Vídeo no MPEG-4 Existem 2 partes na norma MPEG-4 que especificam codificação de vídeo (fluxo binário e descodificação): Parte 2: Visual (1998) Especifica inúmeras ferramentas com vista a codificação eficiente, resiliência a erros e escalabilidade para vídeo, faces e corpos 3D, etc. Parte 10: Advanced Video Coding (AVC) (2003) Especifica ferramentas mais eficientes de codificação e resiliência a erros para vídeo; esta Parte foi desenvolvida em conjunta com a ITU-T sendo também a norma H.264 deste organismo. Cada uma destas partes especifica vários perfis de codificação de vídeo, com diferentes funcionalidades. Enquanto a Parte 2 tem perfis baseados em objectos rectangulares e de forma arbitrária, a Parte 10 só considera codificação de objectos rectagulares.

Tools Object Type Simple Core Main Simple Scalable N-bit Animated 2D Mesh Basic Animated Texture Still Scalable Texture Simple Face Object types MPEG-4 Visual Basic tools I-VOP, P-VOP AC/DC Prediction X X X X X X 4-MV, Unrestricted MV Error resilience Slice Resynchronization Data Partitioning X X X X X X Reversible VLC Short Header X X X X X B-VOP X X X X X M ethod 1/M ethod 2 Quantization X X X X P-VOP based temporal scalability Rectangular X X X X Arbitrary Shape Binary Shape X X X X X Grey Shape X Interlace X Sprite X Temporal Scalability (Rectangular) X Spatial Scalability (Rectangular) X N-Bit (4-12 bit) X Scalable Still Texture X X X 2D Dynamic Mesh with uniform topology X X 2D Dynamic Mesh with Delaunay topology X Facial Animation Parameters X

Alguns Perfis MPEG-4 4 Visual Profiles Simple Simple Scaleable Core Main N-Bit Scaleable Texture Simple FA Basic Animated Hybrid Object types Texture Simple Simple Scalable Core Main N-Bit Animated 2D Mesh Basic Animated Texture Scalable Texture Simple Face Number of Levels 3 2 2 3 1 3 2 2 2

Os Níveis para Alguns Perfis Visual Profile L e v e l Typical Visual Session Size Max objects Maximum number per type N-Bit L2 CIF 16 16 x Core or Simple or N-Bit Main L4 1920 x 1088 Main L3 CCIR 601 32 32 x Main or Core or Simple 32 32 x Main or Core or Simple Main L2 CIF 16 16 x Main or Core or Simple Core L2 CIF 16 16 x Core or Simple Core L1 QCIF 4 4 x Core or Simple Simple Scalable Simple Scalable L2 CIF 4 4 x Simple or Simple Scalable L1 CIF 4 4 x Simple or Simple Scalable Max. VMV buffer size (MB) Max VCV buffer size (MB) VCV decoder rate (MB/s) VCV Boundary MB decoder rate (MB/s) Max total VBV buffer size (units of 16384 bits) Max VBV buffer size (units of 16384 bits) Max bitrate (kbit/s) 2376 792 23760 11880 80 80 2000 65344 16320 489600 244800 760 760 38400 11304 3240 97200 48600 320 320 15000 3960 1188 23760 11880 80 80 2000 2376 792 23760 11880 80 80 2000 594 198 5940 2970 16 16 384 3168 792 23760 N.A. 40 40 256 1782 495 7425 N. A. 40 40 128 Simple L3 CIF 4 4 x Simple 792 396 11880 N. A. 40 40 384 Simple L2 CIF 4 4 x Simple 792 396 5940 N. A. 40 40 128 Simple L1 QCIF 4 4 x Simple 198 99 1485 N. A. 10 10 64

Perfis MPEG-4 Parte 2: Visual Os perfis Simple e Advanced Simple são os perfis do MPEG-4 Parte 2 mais usados na prática! O perfil Simple é muito semelhante ao H.263 com algumas ferramentas para resiliência a erros. Existem inúmeros produtos no mercado usando este perfil nomeadamente pequenas máquinas fotográficas. O perfil Advanced Simple usa também compensação de movimento global e compensação de movimento a ¼ pixel e codifica vídeo entrelaçado.

MPEG-4 Advanced Video Coding (AVC) (ou ITU-T H.264)

Norma H.264/AVC (2003): Objectivo Codificação com eficiência melhorada, nomeadamante cerca de 50% menos débito para a mesma qualidade em comparação com as normas já existentes,, e.g. H.263, MPEG-2 2 Video. A norma (conjunta MPEG e ITU-T) também oferece boa flexibilidade em termos de compromissos eficiência versus complexidade e bom desempenho em termos de robustez a erros para ambientes móveis e a Internet fixa e wireless (formatos progressivos e entrelaçados).

Alcance da Norma A norma especifica apenas a sintaxe (e restrições) do fluxo binário e o processo de descodificação: Permite vários tipos de optimizações na codificação Permite reduzir a complexidade da implementação na codificação (à custa da qualidade) Não permite garantir qualquer nível de qualidade Aquisição Pre-Processing Pré-Processam. Codificador Encoding Visualização Pós-Processam. Post-Processing & Error Recovery Descodificador Decoding Norma

Ganhos,, Como? A norma H.264/AVC baseia-se na mesma estrutura de codificação híbrida usada para as normas anteriores mas com algumas diferenças importantes, nomeadamente: Compensação de movimento com blocos de tamanho variável (e menores) Múltiplas tramas de referência Transformada com blocos menores Filtro deblocking no loop de predição Codificação entrópica melhorada que permitem oferecer ganhos substanciais em termos do débito necessário para garantir um certo nível de qualidade. A norma H.264/AVC destina-se a um vasto conjunto de aplicações desde comunicações pessoais, a gravação e difusão com qualidades e resoluções variadas.

Estrutura da Imagem Imagem (Y,Cr,Cb; 4:2:0; 8 bit/amostra): Slice: - Uma imagem (trama ou campo) é dividida em 1 ou mais slices - Uma slice é uma sequência de macroblocos - As slices são self-contained Macrobloco: - É a unidade básica da sintaxe e de processamento - Contem 16 16 amostras de luminância e 2 8 8 amostras de crominância - Os macroblocos dentro de uma slice dependem uns dos outros - Os macroblocos podem ser ainda subdivididos Slice #0 Slice #1 Slice #2 0 1 2 Macroblock #40

Slices e Slice Groups Slice Group: - Padrão de macroblocos definido através de um mapa de alocação de MBs - Um slice group pode conter 1 ou mais slices Tipos de mapas de alocação de MBs: - Slices groups entrelaçados - Slice groups de foreground e de background -... Codificação dos Slices: - Slices I: todos os seus MBs são codificados usando predição Intra - Slices P: os seus MBs podem também usar uma predição com compensação de movimento - Slices B: os seus MBs podem ainda usar predição bidireccional com compensação de movimento Slice Group #0 Slice Group #0 Slice Group #1 Slice Group #2 Slice Group #0 Slice Group #1 Slice Group #1 Slice Group #2

Processamento de Conteúdo Entrelaçado Modo Campo: - cada campo é codificado como uma imagem separada usando os campos para fazer a compensação de movimento Modo Trama: - Tipo 1: cada trama completa é codificada como uma imagem separada - Tipo 2: a trama é varrida aos pares de macroblocos e para cada um destes pares escolhe-se entre o modo campo e o modo trama. 0 2 4 1 3 5 A Pair of Macroblocks in Frame Mode 36 37 Macroblock Pair Top/Bottom Macroblocks in Field Mode

Estrutura Básica de Codificação H.264/AVC Input Video Signal Split into Macroblocks 16x16 pixels - Coder Control Transform/ Scal./Quant. Decoder Scaling & Inv. Transform Control Data Quant. Transf. coeffs Entropy Coding Intra/Inter Intra-frame Prediction Motion- Compensation Deblocking Filter Output Video Signal Motion Estimation Motion Data

Características Comuns a Outras Normas Macroblocos: 16 16 amostras de luminância + 2 8 8 amostras de crominância Original: Luminância e correspondentes crominâncias com subamostragem 4:2:0 (metade das linhas e das colunas) Compensação de movimento ao nível do bloco Compensação de movimento fora dos limites da imagem Compensação de movimento para blocos de tamanho variável Transformada ao nível do bloco Quantificação escalar Modos de codificação I, P, e B

Predição Intra De forma a aumentar a eficiência da codificação Intra, explora-se a correlação entre blocos ou MBs adjacentes de uma imagem. Se um bloco ou MB for codificado em modo Intra, constrói-se um bloco ou MB de predição a partir dos blocos ou macroblocos que foram anteriormente codificados e reconstruídos na mesma imagem. O bloco ou MB de predição é subtraído ao bloco ou MB que se pretende codificar. Nesta predição podem apenas utilizar-se as amostras que estejam contidas na mesma slice de forma a garantir a independência entre slices. Este tipo de codificação Intra pode implicar propagação de erros se se usarem na predição espacial MBs adjacentes codificados em modo Inter -> Constrained Intra coding mode (apenas MBs adjacentes codificados em modo Intra são usado na predição espacial)

Tipos de Predição Intra A predição em modo Intra pode ser realizada a vários níveis: 1. Predição única para todo o macrobloco (Intra16 16): quatro modos (vertical, horizontal, DC e planar) -> zonas uniformes 2. Predições individuais para as 16 amostras dos blocos 4 4 (Intra4 4): nove modos (DC e 8 direccionais) -> zonas com detalhe 3. Predição única para a crominância: quatro modos (vertical, horizontal, DC e planar) Predição espacial direccional (9 tipos para luma, 1 para croma) Control Data Q A B C D E F G H I a Quant. b c d J Transf. e f g coeffs h K i j k l L m n o p Output Video Signal 3 7 Entropy Coding 8 1 e.g., Modo 5: Predição diagonal Motion para baixo à direita Data a, f, k, p são preditos como (A + 2Q + I + 2) / 4 0 5 4 6

Modos de Predição Intra para Blocos 16 16 Média de todos os pixels vizinhos A componente de luminância pode ser predita da mesma forma para todas as amostras pertencentes a um macrobloco 16 16 -> modos referidos como Intra16 16, adequados a zonas da imagem que variam suavemente. - Modo 0 utiliza as amostras reconstruídas do topo do MB de forma a que as colunas do MB de predição tenham o mesmo valor que a amostra que se encontra no topo. - Modo 1 utiliza as amostras reconstruídas à esquerda do MB de forma a que as linhas do MB de predição tenham o mesmo valor que a amostra que se encontra mais à esquerda em cada linha. - Modo 2, todas as amostras do MB de predição possuem um valor igual à média das amostras reconstruídas do topo e à esquerda do MB. - Modo 3 usa uma função linear que se adapta às amostras do topo e à esquerda do MB para obter os valores das amostras do MB de predição.

Modos de Predição Intra para Blocos 4 4

Compensação de Movimento Flexível Cada MB pode ser dividido em partições de dimensão fixa, utilizadas para descrever o movimento da luminância a 1/4 pixel. São definidos vários tipos de partições, nomeadamente desde 16 16 a 4 4 amostras de luminância, com muitas opções entre estas duas variantes. A componente de luminância de cada MB (16 16 amostras) pode ser dividida de 4 formas, Inter16 16, Inter16 8, Inter8 16 e Inter8 8, que correspondem a 4 modos de predição ao nível do MB. Se o modo Inter8 8 for escolhido, cada um dos sub-mbs (com 8 8 amostras) pode ser dividido (ou não) de novo, obtendo-se partições com dimensões de 8 8, 8 4, 4 8 ou 4 4, que correspondem a 4 modos de predição ao nível do sub-mb. Um máximo de 16 vectores de movimento pode ser usado para um MB P.

Divisão de MBs e sub-mbs para Compensação de Movimento Macroblocos 16 8 8 16 8 8 8 0 8 0 1 16 0 16 0 1 8 1 8 2 3 Sub-macroblocos 8 4 4 8 4 4 4 0 4 0 1 8 0 8 0 1 4 1 4 2 3 Vectores de movimento são codificados diferencialmente mas não entre slices.

Múltiplas Tramas de Referência A norma H.264/AVC suporta compensação de movimento com múltiplas referências, i.e. mais do que uma imagem anteriormente codificada pode ser utilizada simultaneamente como referência para a compensação de movimento (à custa de memória). Tanto o codificador como o descodificador guardam as imagens de referência a utilizar numa memória com múltiplas imagens. O descodificador possui as mesmas imagens na memória que o codificador através de operações de controlo do conteúdo da memória que são transmitidas no fluxo binário codificado.

Tramas B Generalizadas O conceito de tramas B é generalizado no H.264/AVC uma vez que qualquer imagem pode utilizar como referência imagens do tipo B para a compensação de movimento ou seja a escolha das imagens de predição só depende da gestão de memória efectuada pelo codificador. As slices do tipo B são codificadas de forma a que para alguns blocos ou MBs a predição corresponde a uma média pesada de dois valores distintos obtidos a partir de dois blocos ou MBs depois da compensação de movimento (ambos passados, ambos futuros ou um passado e um futuro). As imagens do tipo B utilizam duas memórias de referência, referidas como a primeira e a segunda memória de imagens de referência. As imagens de referência que estão em cada uma destas memórias dependem de uma decisão que cabe ao codificador. Esta predição pesada permite obter uma predição Inter mais eficiente, i.e. com um menor erro de predição.

Predição Pesada Para uma dada partição de um macrobloco é possível utilizar uma predição pesada obtida a partir de duas imagens de referência. A predição pesada consiste em efectuar a compensação de movimento para as duas imagens de referência e calcular uma soma pesada a partir de um conjunto de pesos w 1 e w 2 e das duas imagens compensadas de movimento, para se obter a predição final. Com esta ferramenta é possível codificar transições (e.g. fades) ou diferenças de intensidade (devido a alterações da iluminação) presentes na maior parte do conteúdo, de uma forma mais eficiente.

As Novas Dependências no Tempo As dependências conhecidas, p.e. MPEG-1, MPEG-2 I P P P P Novos tipos de dependências: - a ordem de referência e a ordem de display deixam de estar relacionadas - o tipo de imagem e a sua capacidade de servir para predição deixam de estar relacionadas, p.e. é possível usar uma trama B como referência B B B B B B B B I P B B P B B B B B P B B

= 3 Múltiplas Tramas de Referência e Tramas B Generalizadas = 1 4 tramas previamente descodificadas estão aqui disponíveis para ser usadas como referências = 0 1. O parâmetro permite definir qual a trama de referência usada de entre as disponíveis. 2. Para tramas B, 2 conjuntos de vectores de movimento podem Imagem actual ter de ser descodifcados. Se a dimensão da memória permitir guardar mais do que uma imagem, o índice da imagem de referência é transmitido para cada partição 16 16, 8 16, 16 8 ou 8 8 de um MB, indicando ao descodificador a imagem de referência que deve utilizar de todas as disponíveis na memória.

Desempenho Comparativo: : Mobile & Calendar, CIF, 30 Hz PSNR Y [db] 38 37 36 35 34 33 32 31 30 29 28 27 26 ~40% PBB... with generalized B pictures PBB... with classic B pictures PPP... with 5 previous references PPP... with 1 previous reference 0 1 2 3 4 R [Mbit/s]

Múltiplas Transformadas A norma H.264/AVC usa 3 transformadas dependendo do tipo de resíduo de predição a ser codificado: 1. Transformada Hadamard 4 4 para os coeficientes DC de luminância em MBs codificados com o modo Intra 16 16 2. Transformada Hadamard 2 2 para os coeficientes DC de crominância em qualquer MB 3. Transformada inteira 4 4 baseada na DCT para todos os outros blocos

Transformadas, Onde? Hadamard Luma 4x4 DC: Apenas para Intra_16x16 MB -1... Cb 16 Cr 17 2x2 DC 0 1 4 5 2 3 6 7 8 9 12 13 18 19 20 21 22 23 24 25 AC 10 11 14 15 Ordem dos blocos Luma 4x4 para predição Intra e Inter 4x4 DCT Inteira Ordem dos blocos 4x4 para codificação residual 4x4 (16-25) e codificação Intra 4x4 (18-25)

Transformada DCT Inteira A norma H.264/AVC utiliza codificação de transformada para codificar o erro residual de predição. A transformada principal é aplicada a blocos 4 4 usando uma transformada separável com propriedades semelhantes a um DCT 4 4 C4 x4 = Tv B4 x4 T v, T h : matriz de transformação vertical e horizontal T = T Transformada DCT Inteira 4 4 1 - Mais fácil implementação (apenas somas e deslocamentos) - Ausência de mismatch na transformada inversa T T h v h 1 = 2 1 1 1 1 2 1 1 1 2 1 2 1 1

Quantificação A quantificação remove componentes da imagem consideradas irrelevantes, permitindo obter uma redução muitas vezes substancial do débito binário. A operação de quantificação corresponde a dividir cada coeficiente por um factor de quantificação e a operação de quantificação inversa (reconstrução) corresponde a multiplicar cada coeficiente pelo mesmo factor. Para quantificar os coeficientes, a norma H.264/AVC utiliza quantificação escalar e o factor de quantificação é igual para todos os coeficientes da transformada. Um de 52 valores possíveis para o factor de quantificação (Q step ) é seleccionado para cada macrobloco, indexado através do passo de quantificação (Q p ) e de uma tabela que estabelece a relação entre cada Q p e Q step. Os valores da tabela foram obtidos de forma a haver um decréscimo de aproximadamente 12.5% do débito binário para cada incremento de 1 do valor do passo de quantificação.

Filtro de Deblocking in the Loop A norma H.264/AVC especifica a utilização de um filtro de bloco adaptativo que opera nas fronteiras dos blocos com vista a melhorar a qualidade subjectiva e objectiva. Este filtro tem de estar presente no codificador e no descodificador, uma vez que os blocos filtrados são de seguida utilizados na compensação de movimento. Este filtro tem um desempenho superior em relação a um filtro de pós-processamento. Este filtro possui duas vantagens principais: - As fronteiras dos blocos são suavizadas, sem tornar a imagem difusa, melhorando a qualidade subjectiva da imagem. - Os macroblocos filtrados são utilizados na compensação de movimento (filtro no loop), resultando num resíduo menor depois da predição ou seja reduzindo o débito binário para a mesma qualidade objectiva. - A filtragem é aplicada às fronteiras verticais e horizontais dos blocos 4 4 de um macrobloco.

Filtro de Deblocking in the Loop A ideia do filtro de deblocking é que uma diferença grande entre amostras junto à fronteira de 2 blocos só deve ser filtrada se puder ser explicada devido à quantificação; senão essa grande diferença deve fazer parte da imagem e não deve ser filtrada. O filtro é adaptativo face ao conteúdo removendo essencialmente o efeito de bloco sem alisar desnecessariamente a imagem - Ao nível da slice, a força do filtro pode ser ajustada às características da sequência de vídeo em questão. - Ao nível de cada fronteira entre blocos, a força do filtro é ajustada consoante a codificação é intra/inter, o movimento e os resíduos codificados. - Ao nível de cada amostra, o filtro pode ser desligado consoante o tipo de quantificação. - O filtro adaptativo é controlado por um parâmetro B s que representa a força do filtro; para Bs = 0 nenhuma amostra é filtrada e para B s = 4 o filtro reduz ao máximo o efeito de bloco.

Funcionamento do Filtro de Deblocking q 0 q 2 q 1 Visualização unidimensional de uma transição (vertical ou horizontal) A filtragem de p 0 e q 0 só é efectuada se: 1. p 0 - q 0 < α(qp) 2. p 1 - p 0 < β(qp) 3. q 1 - q 0 < β(qp) p 2 p 0 p 1 Fronteira entre blocos 4x4 Ondeβ(QP) é consideravelmente menor queα(qp) A filtragem de p 1 e q 1 sé é efectuada se 1. p 2 - p 0 < β(qp) ou q 2 - q 0 < β(qp) (QP = quantization parameter)

Comparação com e sem Filtro (intra coding a 0.28 bit/amostra) 1) Sem filtro 2) Com filtro deblocking H.264/AVC

Codificação Entrópica SOLUÇÃO 1 Códigos Exp-Golomb são usados para todos os símbolos excepto os coeficientes da transformada Context adaptive VLCs (CAVLC) são usados para a codificação dos coeficientes da transformada - Não há end-of-block; descodifica-se o número de coeficientes - Coeficientes são varridos do fim para o início - Contextos dependem dos próprios coeficientes SOLUÇÃO 2 (5-15% menos débito) Context-based Adaptive Binary Arithmetic Codes (CABAC) - Usam-se modelos adaptativos de probabilidade para a maioria dos símbolos - Explora-se a correlação entre símbolos através da criação de contextos

Qualidade à custa da Complexidade A complexidade (memória e computação) aumenta tipicamente 3 na descodificação e 4 na codificação em relação à norma MPEG-2 Vídeo (perfil Main). Aspectos problemáticos: Compensação de movimento com blocos mais pequenos (acesso à memória) Filtros mais complexos (mais longos) na compensação de movimento a ¼ pixel (acesso à memória) Compensação de movimento multitrama (mais memória para tramas de referência) Mais tipos de segmentação dos macroblocos à escolha (mais procura no codificador) Mais formas de predição intra (mais procura no codificador) Codificação aritmética (mais cálculo)

EXTENDED SI/SP slices MAIN BASELINE I & P slices FMO B slices ¼ pel MC Diff. block sizes Red. pictures Weighted features Multiple ref. frames CAVLC prediction In-loop deb. filter ASO Field coding Intra prediction MB-AFF CABAC Data partitioning A norma H.264/AVC especifica vários perfis entre os quais: - Baseline mais simples do que o Main em termos de compressão mas com resiliência a erros, p.e. comunicações pessoais, vídeo movél - Main elevada compressão, p.e. broadcasting - Extended capacidades adicionais para streaming mais eficiente - High inclui transformada 8 8, matrizes de quantificação não uniformes e codificação sem perdas

Comentários Finais A norma H.264/AVC baseia-se nas normas anteriores mas consegue um ganho típico de cerca de 50%, sobretudo à custa do aumento da complexidade de codificação. O ganho de eficiência está essencialmente ligado à compensação de movimento com blocos de tamanho variável (e menores), múltiplas tramas de referência, transformada com blocos menores, filtro deblocking no loop de predição e ccodificação entrópica melhorada. A norma H.264/AVC representa hoje o estado da arte em codificação de vídeo e está hoje a ser adoptada com um número crescente de organismos e empresas.

Bibliografia The MPEG-4 Book, Fernando Pereira, Touradj Ebrahimi, Prentice Hall, 2002 H.264 and MPEG-4 Video Compression, Iain Richardson, John Wiley & Sons, 2003