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/2014.

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/2014."— 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/2014

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 14496-10 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é 16202 ~ 5 Mb/s8 ~ 16 Mb/s 3Até 512010 ~ 25 Mb/s40 ~ 80 Mb/s 4Até 870420 ~ 60 Mb/s80 ~ 200 Mb/s 5Até 36864100 ~ 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) 114859964 kb/s80 kb/s192 kb/s256 kb/s 1 b148599128 kb/s160 kb/s384 kb/s512 kb/s 1.13000396192 kb/s240 kb/s576 kb/s768 kb/s 1.26000396384 kb/s480 kb/s1152 kb/s1536 kb/s 1.311880396768 kb/s960 kb/s2304 kb/s3072 kb/s 2118803962 Mb/s2,5 Mb/s6 Mb/s8 Mb/s 2.1198007924 Mb/s5 Mb/s12 Mb/s16 Mb/s 2.22025016204 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) 34050016201012,5 Mb/s30 Mb/s40 Mb/s 3.110800036001417,5 Mb/s42 Mb/s56 Mb/s 3.221600051202025 Mb/s60 Mb/s80 Mb/s 424576081922025 Mb/s60 Mb/s80 Mb/s 4.1245760819250 Mb/s62,5 Mb/s150 Mb/s200 Mb/s 4.2522240870450 Mb/s62,5 Mb/s150 Mb/s200 Mb/s 558982422080135 Mb/s168,75 Mb/s405 Mb/s540 Mb/s 5.198304036864240 Mb/s300Mb/s720 Mb/s960 Mb/s

14 Guido Stolfi - EPUSP 14 / 65 Quadros por Segundo – Nível 1 (max) Nível11.11.21.3 Macroblocos/quadro (max) 99396 Macroblocos/segundo (max) 14853.0006.00011.800 FormatoLarguraAlturaMB’sQuadros por segundo (max) SQCIF128964830,962,5125,0172 QCIF1761449915,030,360,6120 QVGA320240300-10,020,039,6 525 SIF352240330-9,118,236,0 CIF352288396-7,615,230,0 525 HHR352480660----

15 Guido Stolfi - EPUSP 15 / 65 Quadros por Segundo – Nível 2 (max) Nível22.12.2 Macroblocos/quadro (max) 3967921.620 Macroblocos/segundo (max) 11.88019.80020.250 FormatoLarguraAlturaMB’sQuadros por segundo (max) SQCIF1289648172,0 QCIF17614499120,0172,0 QVGA32024030039,666,067,5 525 SIF35224033036,060,061,4 CIF35228839630,050,051,1 525 HHR352480660-30,030,7 625 HHR352576792-25,025,6 VGA6404801200--16,9 524 4SIF7044801320--15,3 525 SD (D-1)7204801350--15,0 4CIF7045761584--12,8 625 SD7205761620--12,5

16 Guido Stolfi - EPUSP 16 / 65 Quadros por Segundo – Nível 3 (max) Nível33.13.2 Macroblocos/quadro (max) 1.6203.6005.120 Macroblocos/segundo (max) 40.500108.00021.6000 FormatoLarguraAlturaMB’sQuadros por segundo (max) QVGA320240300135,0172,0 525 SIF352240330122,7172,0 CIF352288396102,3172,0 525 HHR35248066061,4163,6172,0 625 HHR35257679251,1136,4172,0 VGA640480120033,890,0172,0 524 4SIF704480132030,781,8163,6 525 SD (D-1)720480135030,080,0160,0 4CIF704576158425,668,2136,4 625 SD720576162025,066,7133,3 SVGA8006001900-56,8113,7 XGA (XVGA)10247683072-35,270,3 720p HD12807203600-30,060,0 4VGA12809604800--45,0 SXGA128010245120--42,2

17 Guido Stolfi - EPUSP 17 / 65 Quadros por Segundo – Nível 4 (max) Nível44.14.2 Macroblocos/quadro (max) 8.192 Macroblocos/segundo (max) 245.760 589.824 FormatoLarguraAlturaMB’sQuadros por segundo (max) 525 SD (D-1)7204801350172,0 4CIF7045761584155,2 172,0 625 SD7205761620151,7 172,0 SVGA8006001900129,3 172,0 XGA (XVGA)1024768307280,0 160,0 720p HD1280720360068,3 136,5 4VGA1280960480051,2 102,4 SXGA12801024512048,0 96,0 525 16SIF1408960528046,5 93,1 16CIF14081152633638,8 77,6 4SVGA (UXGA)16001200750032,8 65,5 1080 HD19201088816030,1 60,2 2K x 1K20481024819230,0 60,0 4XGA2048153612288---

18 Guido Stolfi - EPUSP 18 / 65 Quadros por Segundo – Nível 5 (max) Nível55.1 Macroblocos/quadro (max) 21.69636.864 Macroblocos/segundo (max) 589.824983.040 FormatoLarguraAlturaMB’sQuadros por segundo (max) XGA (XVGA)10247683072172,0 720p HD12807203600163,8172,0 4VGA12809604800122,9172,0 SXGA128010245120115,2172,0 525 16SIF14089605280111,7172,0 16CIF14081152633693,1155,2 4SVGA (UXGA)16001200750078,6131,1 1080 HD19201088816072,3120,5 2K x 1K20481024819272,0120,0 4XGA204815361228848,080,0 16VGA256019201920030,751,2 3616 x 1536 (2,53 : 1)361615362169627,245,3 3676 x 1536 (2,39 : 1)368015362208026,744,5 4K x 2K4096204832768-30,0 4096 x 2304 (16 : 9)4096230436864-26,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 com Entrelaçamento) 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 Blocos 8 x 8 Blocos 4 x 4

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

66 Guido Stolfi - EPUSP 66 / 65 Codificador HEVC / H.265

67 Guido Stolfi - EPUSP 67 / 65 Codificador HEVC / H.265 ISO/IEC MPEG + ITU-T VCEG (Moving Pictures Experts Group e Video Coding Experts Group) ISO/IEC: 23008-2 MPEG-H Parte 2 ITU-T: H.265 Finalizado em 25/01/2013 Ratificado em 13/04/2013 Metas: redução para 50% da taxa de bits em relação a H.264; suporte a UHDV (8k)

68 Guido Stolfi - EPUSP 68 / 65 Codificador HEVC / H.265 Recursos: –“Coding Tree Unit”: 64 x 64, 32 x 32, 16 x 16, 8 x 8, 4 x 4 –Vários espaços de Cromaticidade: NTSC, PAL, Rec.601, Rec.709, Rec.2020, RGB, etc. –Focado em vídeo sem entrelaçamento –Transformadas inteiras 4x4, 8x8, 16x16 e 32x32 –Preditores Intra com mais direções de interpolação –Codificação CABAC apenas

69 Guido Stolfi - EPUSP 69 / 65 Codificador HEVC / H.265 Partições 16 x 16 vs. 64 x 64

70 Guido Stolfi - EPUSP 70 / 65 Codificador HEVC / H.265 Comparação com H.264:


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/2014."

Apresentações semelhantes


Anúncios Google