• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
48
0
0

Texto

(1)

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

(2)

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

(3)

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

(4)

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

(5)

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

(6)

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

(7)

Estrutura em níveis do H.264/AVC

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 Network Abstraction Layer (NAL)

Video Coding Layer (VCL)

Data Partitioning MPEG2 systems MP4FF H.320 . . , Control Data sequência de MBs codificados sequência de slices/ partições codificados sequência de unidades de acesso camada de sistema, multiplexagem

(8)

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”

► slices e MB podem ser do tipo I, P ou B

unidade de acesso imagem

...

...

...

...

... ... ... ...

(9)

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

imagem ... slice 1 slice 2 slice 3 ...

► existem ainda slices do tipo SP e SI

• “switching P” , “switching I”

(10)

Diagrama de blocos codificador H.264 (nível VCL)

[Single Universal VLC e Context Adaptive VLC] OU [Context-Based Adaptive Binary Arithmetic Coding]

Modos de predição Intra:

9 4x4 & 4 16x16 = 13 modos Intra Inter _ Video In transformada

Bit Stream Out Coeficientes DCT quantizados Vectores de movimento + imagem prevista Quantização codificação entropia Motion Estimation memória de imagem Motion Compensation Quantização inversa transformada inversa + controlo de codificação Filtro “deblocking” + Predição Intra trasformada inteira de 16 bits em blocos de 4x4 maior resolução do degrau de quantização para controlo mais fino do bit rate

• 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

(11)

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

(12)

Estimação de movimento

► 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

16x16 16x8 8x16 8x8 4x4 8x4 4x8 partições do MB de 16x16 partições do sub-MB de 8x8 sub-MB

(13)

Estimação de movimento (2)

► diferentes partições do MB de

acordo com a actividade da cena/imagem

(14)

Estimação de movimento (3)

(15)

imagem a prever

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)

► útil para uma imagem

imediatamente após um corte de cena

(16)

Estimação de movimento (5)

Benefícios de imagens múltiplas de referência

imagens B também podem ser referência

(17)

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

(18)

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

(19)

Predição Intra (3)

► 4 modos para Intra16x16

(20)

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

(21)

Quantização

► Quantização escalar com o mesmo peso ou parâmetro de quantização (Qp)

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 (Qp) e o

degrau de quantização (Qstep)

► Qp é 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

(22)

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

(23)

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

(24)

Filtro “de-blocking” (3)

► resultados subjectivos da codificação Intra sem e com filtro

(25)

Filtro “de-blocking” (4)

► resultados subjectivos da codificação Inter sem e com filtro

(26)

Varrimento

(27)

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

(28)

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)

(29)

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

(30)

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

(31)
(32)
(33)

Eficiência de codificação

PSNR Y (dB)

24 39

32

bit rate (Kbit/s)

0 128 256 384 512 640 768

PSNR Y (dB)

24 32 40

ganho em débito relativamente ao H.263 (%)

0 10 20 30 40 50 ► Sequência “Paris” CIF, 15 Hz

(34)

Eficiência de codificação (2)

► Sequência “Tempete” CIF, 30 Hz

(35)

Complexidade

o reverso da medalha ...

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”

(36)

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

with step size of constant increment

Scalar quantization with step size of constant increment

Vector quantization

Scalar quantization with step size of 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

(37)

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/backwardforward/forward 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

(38)

Extensões ao H.264

H.264 Scalable Video Video Coding (SVC)

(39)

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

(40)

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)

(41)

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

(42)

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

(43)

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

(44)

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

(45)

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

(46)

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

(47)

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

(48)

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

Referências

Documentos relacionados

O Diagnóstico Organizacional, pelos seus mecanismos, designadamente Balanço de Competências Organizacional, viabilizará um levantamento exaustivo dos recursos humanos

Esses parâmetros são padronizados e relacionados com a codificação do áudio e do vídeo, frames que compõem a imagem ou grupo de imagem, resolução do vídeo (HDTV,

Esses parâmetros são padronizados e relacionados com a codificação do áudio e do vídeo, frames que compõem a imagem ou grupo de imagem, resolução do

Para determinar a eficiência da capa térmica foram realizadas medições de conforto térmico expressas em Índice de Bulbo Úmido Termômetro de Globo Médio (IBTUG) que é

Uma Dimensão Fractal (D) constante em diferentes escalas indica auto-similaridade dos objetos (MILNE apud LAGRO, 1991), ou seja, cada porção pode ser considerada uma imagem em

Para ele, a educação que se opõe à capacitação técnica é tão ineficiente quanto aquela que nega a formação geral humanista, limitando-se ao desenvolvimento das

O objetivo deste estudo foi avaliar a produção e a composição centesimal do leite de ovelhas de diferentes grupamentos genéticos, assim com a influência da produção de leite no

Por outro lado, Stylogyne pode apresentar placentação bisseriada (Ricketson & Pipoly 1997), o que também ocorre em Ardisia (Pipoly 1996).. Ricketson & Pipoly (1997)