A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Guido Stolfi - EPUSP 1 / 65 Compressão de Imagens em Movimento Padrão H.264 PTC2547 Princípios de Televisão Digital Guido Stolfi – 10/2012.

Apresentações semelhantes


Apresentação em tema: "Guido Stolfi - EPUSP 1 / 65 Compressão de Imagens em Movimento Padrão H.264 PTC2547 Princípios de Televisão Digital Guido Stolfi – 10/2012."— Transcrição da apresentação:

1 Guido Stolfi - EPUSP 1 / 65 Compressão de Imagens em Movimento Padrão H.264 PTC2547 Princípios de Televisão Digital Guido Stolfi – 10/2012

2 Guido Stolfi - EPUSP 2 / 65 Padrão ITU-T H.264 –Finalizado em Março de 2003 e aprovado pelo ITU- T em Maio de 2003 –Padrão Internacional ou MPEG-4 part 10 AVC (Advanced Video Coder) do ISO/IEC –Complexidade computacional: ~5x MPEG-2 –Ganho de até 50% na taxa de bits em relação ao MPEG-2

3 Guido Stolfi - EPUSP 3 / 65 Perfis H.264: Baseline, Extended e Main

4 Guido Stolfi - EPUSP 4 / 65 Perfis H.264 PerfilRecursos Adicionais BaselineSem imagens tipo B, 8 bits, 4:2:0 Extended Com imagens B, Fatias SI e SP, c/ entrelaçamento Main Com CABAC, sem fatias SI e SP, sem ordem arbitrária de macroblocos HighCom transformada 8 x 8 e 4 x 4 High 10Amostras de 8, 9 ou 10 bits High 4:2:2Formato 4 : 2 : 2 High 4:4:4Formato 4 : 4 : 4

5 Guido Stolfi - EPUSP 5 / 65 Perfil Baseline Codificação de imagens (fatias) tipo I e tipo P Compactação de dados por CAVLC (Context Adaptive Variable Length Coding) Baixa latência Aplicações: Videofone, videoconferência, telefonia celular, etc.

6 Guido Stolfi - EPUSP 6 / 65 Perfil Extended Codificação de imagens (fatias) tipo I, P e B, com predição ponderada Fatias SI e SP para permitir chaveamento entre fluxos de dados diferentes Particionamento de Dados permite maior robustez a erros de transmissão Aplicações: streaming, edição de vídeo digital

7 Guido Stolfi - EPUSP 7 / 65 Perfil Main Codificação de imagens (fatias) tipo I, P e B, com predição ponderada Suporte para vídeo com entrelaçamento Compactação com CABAC (Context Adaptive Binary Arithmetic Coding) Preditor para blocos tipo I Sem fatias SI e SP, sem particionamento de dados Aplicações: radiodifusão, produção e edição de vídeo

8 Guido Stolfi - EPUSP 8 / 65 Perfis High, High 10, High 4:2:2 e High 4:4:4 Transformada 8 x 8 e 4 x 4 Digitalização das amostras com 9 a 12 bits Amostragem de Crominância com maior resolução Aplicações: produção de vídeo, cinema digital, aplicações profissionais

9 Guido Stolfi - EPUSP 9 / 65 Níveis de Desempenho H.264 Nível Formato de Vídeo (macroblocos por quadro) Taxa de Bits (baseline ~ high) Taxa de Bits (high 4:4:4) 1Até 396~ 1 Mb/s~ 3 Mb/s 2Até ~ 5 Mb/s8 ~ 16 Mb/s 3Até ~ 25 Mb/s40 ~ 80 Mb/s 4Até ~ 60 Mb/s80 ~ 200 Mb/s 5Até ~ 300 Mb/s0,5 ~0,9 Gb/s

10 Guido Stolfi - EPUSP 10 / 65 Detalhes dos Perfis H.264 Recursos Base- line Exten ded MainHigh High 10 High 4:2:2 High 4:4:4 Fatias I e PSSSSSSS Fatias BSSSSSS Fatias SI e SPS Imagens de Referencia MúltiplasSSSSSSS Filtro anti-blocagemSSSSSSS Codificação CAVLCSSSSSSS Codificação CABAC SSSS Ordenação Flexível de Macroblocos (FMO)SS Orientação Arbitrária de Fatias (ASO)SS Transformada Adaptativa 8x8 vs. 4x4SSSS

11 Guido Stolfi - EPUSP 11 / 65 Detalhes dos Perfis H.264 Recursos Base- line Exten ded MainHigh High 10 High 4:2:2 High 4:4:4 Fatias Redundantes (RS)SS Particionamento de DadosS Video Entrelaçado (PicAFF, MBAFF)SSSSSS Formato 4:2:0 de CrominânciaSSSSSSS Vídeo Monocromático (4:0:0)SSSS Formato 4:2:2SS Formato 4:4:4S Amostras de 8 bitsSSSSSSS Amostras de 9 e 10 bitsSSS Amostras de 11 e 12 bitsS

12 Guido Stolfi - EPUSP 12 / 65 Restrições dos Níveis x Perfis H.264 Nível Macroblos por segundo (max) Macroblocos por Imagem (max) Taxa de bits p/ Baseline, Ext. e Main (max) Taxa de bits para perfil High (max) Taxa de bits para High 10 (max) Taxa de bits para High 4:2:2 e 4:2:0 (max) kb/s80 kb/s192 kb/s256 kb/s 1 b kb/s160 kb/s384 kb/s512 kb/s kb/s240 kb/s576 kb/s768 kb/s kb/s480 kb/s1152 kb/s1536 kb/s kb/s960 kb/s2304 kb/s3072 kb/s Mb/s2,5 Mb/s6 Mb/s8 Mb/s Mb/s5 Mb/s12 Mb/s16 Mb/s Mb/s5 Mb/s12 Mb/s16 Mb/s

13 Guido Stolfi - EPUSP 13 / 65 Restrições dos Níveis x Perfis H.264 Nível Macroblos por segundo (max) Macroblocos por Imagem (max) Taxa de bits p/ Baseline, Ext. e Main (max) Taxa de bits para perfil High (max) Taxa de bits para High 10 (max) Taxa de bits para High 4:2:2 e 4:2:0 (max) ,5 Mb/s30 Mb/s40 Mb/s ,5 Mb/s42 Mb/s56 Mb/s Mb/s60 Mb/s80 Mb/s Mb/s60 Mb/s80 Mb/s Mb/s62,5 Mb/s150 Mb/s200 Mb/s Mb/s62,5 Mb/s150 Mb/s200 Mb/s Mb/s168,75 Mb/s405 Mb/s540 Mb/s Mb/s300Mb/s720 Mb/s960 Mb/s

14 Guido Stolfi - EPUSP 14 / 65 Quadros por Segundo – Nível 1 (max) Nível Macroblocos/quadro (max) Macroblocos/segundo (max) FormatoLarguraAlturaMBsQuadros por segundo (max) SQCIF ,962,5125,0172 QCIF ,030,360,6120 QVGA ,020,039,6 525 SIF ,118,236,0 CIF ,615,230,0 525 HHR

15 Guido Stolfi - EPUSP 15 / 65 Quadros por Segundo – Nível 2 (max) Nível Macroblocos/quadro (max) Macroblocos/segundo (max) FormatoLarguraAlturaMBsQuadros por segundo (max) SQCIF ,0 QCIF ,0172,0 QVGA ,666,067,5 525 SIF ,060,061,4 CIF ,050,051,1 525 HHR ,030,7 625 HHR ,025,6 VGA , SIF ,3 525 SD (D-1) ,0 4CIF ,8 625 SD ,5

16 Guido Stolfi - EPUSP 16 / 65 Quadros por Segundo – Nível 3 (max) Nível Macroblocos/quadro (max) Macroblocos/segundo (max) FormatoLarguraAlturaMBsQuadros por segundo (max) QVGA ,0172,0 525 SIF ,7172,0 CIF ,3172,0 525 HHR ,4163,6172,0 625 HHR ,1136,4172,0 VGA ,890,0172, SIF ,781,8163,6 525 SD (D-1) ,080,0160,0 4CIF ,668,2136,4 625 SD ,066,7133,3 SVGA ,8113,7 XGA (XVGA) ,270,3 720p HD ,060,0 4VGA ,0 SXGA ,2

17 Guido Stolfi - EPUSP 17 / 65 Quadros por Segundo – Nível 4 (max) Nível Macroblocos/quadro (max) Macroblocos/segundo (max) FormatoLarguraAlturaMBsQuadros por segundo (max) 525 SD (D-1) ,0 4CIF ,2 172,0 625 SD ,7 172,0 SVGA ,3 172,0 XGA (XVGA) ,0 160,0 720p HD ,3 136,5 4VGA ,2 102,4 SXGA ,0 96, SIF ,5 93,1 16CIF ,8 77,6 4SVGA (UXGA) ,8 65, HD ,1 60,2 2K x 1K ,0 60,0 4XGA

18 Guido Stolfi - EPUSP 18 / 65 Quadros por Segundo – Nível 5 (max) Nível55.1 Macroblocos/quadro (max) Macroblocos/segundo (max) FormatoLarguraAlturaMBsQuadros por segundo (max) XGA (XVGA) ,0 720p HD ,8172,0 4VGA ,9172,0 SXGA ,2172, SIF ,7172,0 16CIF ,1155,2 4SVGA (UXGA) ,6131, HD ,3120,5 2K x 1K ,0120,0 4XGA ,080,0 16VGA ,751, x 1536 (2,53 : 1) ,245, x 1536 (2,39 : 1) ,744,5 4K x 2K , x 2304 (16 : 9) ,7

19 Guido Stolfi - EPUSP 19 / 65 Ferramentas de Codificação do H.264

20 Guido Stolfi - EPUSP 20 / 65 Compensação de Movimento – Blocos 16 x 16

21 Guido Stolfi - EPUSP 21 / 65 Compensação de Movimento – Blocos 8 x 8 e 4 x 4

22 Guido Stolfi - EPUSP 22 / 65 Escolha doTamanho dos Blocos Quanto menor o tamanho do bloco utilizado para predição de movimento, menor o erro resultante. Isso implica em maior carga computacional no mecanismo de busca, além de maior quantidade de bits transmitidos (maior quantidade de vetores de movimento). O padrão H.264 usa então blocos de tamanho variável, que podem ser escolhidos de acordo com as características de homogeneidade do movimento detectado.

23 Guido Stolfi - EPUSP 23 / 65 Macroblocos de Tamanho Variável

24 Guido Stolfi - EPUSP 24 / 65 Vetores de Movimento Fracionários Macrobloco a ser compensado Vetor de Movimento com precisão de 1 pixel Vetor de Movimento com precisão fracionária

25 Guido Stolfi - EPUSP 25 / 65 Interpolação de ½ Pixel

26 Guido Stolfi - EPUSP 26 / 65 Busca com Interpolação

27 Guido Stolfi - EPUSP 27 / 65 Exemplos de Busca com Interpolação SAE = Sum of Absolute Error (somatória do módulo dos erros de reconstrução)

28 Guido Stolfi - EPUSP 28 / 65 Interpolação de Pixels no H.264 R K JSTU A E B C D V F K = (A - 5B + 20C +20D -5E + F)/32 J = (R - 5S + 20T +20U -5C + V)/32 1ª. Etapa (1/2 pixel): Interpolação de Pixels adjacentes a pontos de amostragem, usando filtro FIR de 6 coeficientes na horizontal e vertical

29 Guido Stolfi - EPUSP 29 / 65 Interpolação de Pixels no H.264 R K JSTU G A E B C D V F Q = (L – 5M + 20N +20O -5K + P)/32 2ª. Etapa (1/2 pixel): Interpolação dos Pixels adjacentes aos pontos já interpolados, usando o mesmo filtro FIR LMNOPQ

30 Guido Stolfi - EPUSP 30 / 65 Interpolação de Pixels no H.264 T G U B D C W = ( J + U ) /2 X = ( J + Q ) /2 Y = ( U + O ) /2 3ª. Etapa (1/4 pixel): Interpolação dos Pixels adjacentes aos pontos calculados, usando interpolação linear (média) OQN JW XY

31 Guido Stolfi - EPUSP 31 / 65 Interpolação de Pixels no H.264 T G U B D C H = ( J + N ) /2 Z = ( J + O ) /2 4ª. Etapa (1/4 pixel): Interpolação dos Pixels faltantes, usando interpolação linear em diagonal a partir de pontos na grade de ½ pixel OQN JW XYHZ

32 Guido Stolfi - EPUSP 32 / 65 Interpolação de ¼ de Pixel

33 Guido Stolfi - EPUSP 33 / 65 Interpolação dos Macroblocos de Crominância Já que a luminância é interpolada em ¼ de pixel, a crominância deve ser interpolada em 1 / 8 ; Interpolação bi-linear entre 4 amostras de crominância

34 Guido Stolfi - EPUSP 34 / 65 Estrutura de Amostragem (Quadro) Luminância Crominância

35 Guido Stolfi - EPUSP 35 / 65 Estrutura de Amostragem (Campo) Luminância Crominância Campo TopCampo Bottom

36 Guido Stolfi - EPUSP 36 / 65 Predição dos Vetores de Movimento Para cada macrobloco decodificado no receptor, o vetor de movimento é obtido pela soma de um vetor gerado por um preditor (MVp) com um erro de predição (MVd), que é transmitido junto com o macrobloco MV = MVp + MVd A geração do vetor previsto (MVp) depende das disponibilidades e dimensões dos macroblocos superiores e à esquerda do atual.

37 Guido Stolfi - EPUSP 37 / 65 Predição dos Vetores de Movimento MV(E) = Mediana (MV( B ), MV( C ), MV( A ))

38 Guido Stolfi - EPUSP 38 / 65 Predição Linear para Macroblocos Intra Preditor em imagens tipo I: –Preditor espacial linear, extrapola pixels de um bloco a partir dos pixels vizinhos (à esquerda e acima) –Blocos de Luminância 4 x 4 admitem 9 tipos de predição linear –Blocos de Luminância 16 x 16 admitem 4 tipos –Blocos de Crominância admitem 4 tipos de preditor

39 Guido Stolfi - EPUSP 39 / 65 Nomenclatura das Amostras para Interpolação MBDFH J ACEG I K L a e i m b f j n c g k o d h l p Pixels na Linha Acima Pixels na Coluna à Esquerda macrobloco 4 x 4 a ser codificado

40 Guido Stolfi - EPUSP 40 / 65 Preditores Lineares para Luminância 4 x 4 Ex.: Pixel d = ¼ (B + 2C + D)

41 Guido Stolfi - EPUSP 41 / 65 Preditores Lineares para Luminância 16 x 16

42 Guido Stolfi - EPUSP 42 / 65 Exemplo de Predição Intra 4 x 4 macrobloco 4 x 4 a ser codificado

43 Guido Stolfi - EPUSP 43 / 65 Exemplo de Predição Intra 4 x 4 menor erro de predição

44 Guido Stolfi - EPUSP 44 / 65 Exemplo de Predição Intra 16 x 16 macrobloco 4 x 4 a ser codificado

45 Guido Stolfi - EPUSP 45 / 65 Exemplo de Predição Intra 16 x 16 menor erro de predição

46 Guido Stolfi - EPUSP 46 / 65 Filtro Anti-blocagem No codificador, é aplicado um filtro espacial para reduzir descontinuidades entre os blocos 4 x 4, depois da reconstrução (transformada) e antes da imagem ser armazenada como possível referência No receptor, é aplicado antes da exibição e da armazenagem O filtro é ligado ou desligado sob comando do codificador

47 Guido Stolfi - EPUSP 47 / 65 Amostras Utilizadas nos Filtros Anti-blocagem Exemplos: Filtro tipo 1: p0 = f(p1, p0, q0) Filtro tipo 2: p2 = f1(p3, p2, p1, p0, q0) p1 = f2(p2, p1, p0, q0) p0 = f3(p2, p1, p0, q0, q1)

48 Guido Stolfi - EPUSP 48 / 65 Filtro Anti-blocagem

49 Guido Stolfi - EPUSP 49 / 65 Transformadas da Codificação H.264 Blocos 4 x 4 de Luminância: Transformada Inteira, similar à DCT

50 Guido Stolfi - EPUSP 50 / 65 Primitivas da Transformada Inteira H.264

51 Guido Stolfi - EPUSP 51 / 65 Transformadas de Hadamard (Nivel DC)

52 Guido Stolfi - EPUSP 52 / 65 Reordenação dos Coeficientes

53 Guido Stolfi - EPUSP 53 / 65 Comutação entre 2 Fluxos Usando Fatias SP (Perfil Extended)

54 Guido Stolfi - EPUSP 54 / 65 Fast Forward com Fatias SP (Perfil Extended)

55 Guido Stolfi - EPUSP 55 / 65 Codificação Entrópica H.264 Codificação Entrópica: –CAVLC (Context Adaptive Variable Length Coder): Tabelas VLC adaptam-se às características da imagem de acordo com os símbolos já transmitidos –CABAC (Context Adaptive Binary Arithmetic Coder): Baseia-se em modelos para as probabilidades condicionais de ocorrência dos símbolos

56 Guido Stolfi - EPUSP 56 / 65 Particionamento de Dados (Perfil Extended) Os dados de uma Fatia são subdivididos em 3 partições: A = Cabeçalhos da Fatia e dos Macroblocos B = Coeficientes codificados para os macroblocos tipo intra da fatia C = Coeficientes para os macroblocos tipo inter (P, B) Cada partição é transmitida em unidades separadas A partição A pode ter prioridade maior

57 Guido Stolfi - EPUSP 57 / 65 Comparações entre MPEG e H.264

58 Guido Stolfi - EPUSP 58 / 65 Comparações MPEG x H.264 MPEG H.264 (sem filtro anti-blocagem) Distorções de Reconstrução

59 Guido Stolfi - EPUSP 59 / 65 Filtro Anti-blocagem

60 Guido Stolfi - EPUSP 60 / 65 Comparações: Imagem original

61 Guido Stolfi - EPUSP 61 / 65 Codificação MPEG-2 (150 kbps) (detalhe)

62 Guido Stolfi - EPUSP 62 / 65 Codificação MPEG-4 Perfil Simples (150 kbps)

63 Guido Stolfi - EPUSP 63 / 65 Codificação H.264 Baseline (150 kbps)

64 Guido Stolfi - EPUSP 64 / 65 Desempenho dos Codificadores

65 Guido Stolfi - EPUSP 65 / 65 Desempenho dos Codificadores Avaliação subjetiva de sequencias de vídeo HDTV


Carregar ppt "Guido Stolfi - EPUSP 1 / 65 Compressão de Imagens em Movimento Padrão H.264 PTC2547 Princípios de Televisão Digital Guido Stolfi – 10/2012."

Apresentações semelhantes


Anúncios Google