Compresso de Imagens em Movimento Padro MPEG1 Video

  • Slides: 58
Download presentation
Compressão de Imagens em Movimento Padrão MPEG-1 / Video PTC 2547 – Princípios de

Compressão de Imagens em Movimento Padrão MPEG-1 / Video PTC 2547 – Princípios de Televisão Digital Guido Stolfi – 9/2014 EPUSP - Guido Stolfi 1 / 58

Compressão M-JPEG • Considera cada quadro sucessivo como uma imagem independente • Efetua compressão

Compressão M-JPEG • Considera cada quadro sucessivo como uma imagem independente • Efetua compressão JPEG em cada imagem • Controla o fator de compressão de modo a manter a taxa de bits dentro de limites estabelecidos • Inconveniente: qualidade insuficiente, taxa de bits elevada. EPUSP - Guido Stolfi 2 / 58

Padrão MPEG-1 • Moving Pictures Experts Group - ISO/IEC 11172 a • Compressão de

Padrão MPEG-1 • Moving Pictures Experts Group - ISO/IEC 11172 a • Compressão de imagens não-entrelaçadas • Taxas de informação até 1, 5 Mb/s • Aplicações: vídeo-conferência sobre troncos E 1/T 1; multimídia em CD-ROM EPUSP - Guido Stolfi 3 / 58

Evolução dos Padrões de Compressão EPUSP - Guido Stolfi 4 / 58

Evolução dos Padrões de Compressão EPUSP - Guido Stolfi 4 / 58

Codificador com Preditor y(t) Preditor Transmissor y(t) e(t) + S 1 ^ y(t) Canal

Codificador com Preditor y(t) Preditor Transmissor y(t) e(t) + S 1 ^ y(t) Canal ^ y(t) S 2 Preditor Receptor • Eficácia do preditor reduz a energia do sinal transmitido e(t) • Chaves S 1 e S 2 devem ser abertas em instantes apropriados EPUSP - Guido Stolfi 5 / 58

Preditor de Ordem Zero: “Frame Store” Anterior (referência) Atual Erro de Predição (diferença entre

Preditor de Ordem Zero: “Frame Store” Anterior (referência) Atual Erro de Predição (diferença entre as duas imagens) EPUSP - Guido Stolfi 6 / 58

Diferença Entre Imagens Sucessivas EPUSP - Guido Stolfi 7 / 58

Diferença Entre Imagens Sucessivas EPUSP - Guido Stolfi 7 / 58

Preditor com Compensação de Movimento Anterior (referência) Atual Vetor de Movimento Predição (com compensação)

Preditor com Compensação de Movimento Anterior (referência) Atual Vetor de Movimento Predição (com compensação) Erro de Predição (sem compensação) Erro de Predição (com compensação) EPUSP - Guido Stolfi 8 / 58

Compensação de Movimento por Blocos EPUSP - Guido Stolfi 9 / 58

Compensação de Movimento por Blocos EPUSP - Guido Stolfi 9 / 58

Compensação de Movimento Sem Compensação de Movimento EPUSP - Guido Stolfi 10 / 58

Compensação de Movimento Sem Compensação de Movimento EPUSP - Guido Stolfi 10 / 58

Vetores de Movimento Sequência: “Jardim” Quadro no. 2 Quadro no. 6 EPUSP - Guido

Vetores de Movimento Sequência: “Jardim” Quadro no. 2 Quadro no. 6 EPUSP - Guido Stolfi 11 / 58

Vetores de Movimento Quadro 2 para 3 Quadro 2 para 6 EPUSP - Guido

Vetores de Movimento Quadro 2 para 3 Quadro 2 para 6 EPUSP - Guido Stolfi 12 / 58

Métodos de Detecção de Movimento Busca Exaustiva Busca Escalonada Busca Hierárquica Busca Recursiva EPUSP

Métodos de Detecção de Movimento Busca Exaustiva Busca Escalonada Busca Hierárquica Busca Recursiva EPUSP - Guido Stolfi 13 / 58

Métricas para Detecção de Movimento • Distorção Média Absoluta (DMA) x y x+dx y+dy

Métricas para Detecção de Movimento • Distorção Média Absoluta (DMA) x y x+dx y+dy quadro atual (P) referencia (I ou P) onde (dx, dy) é o deslocamento entre a imagem de referência ref(x, y) e o bloco da imagem de entrada f(x, y) EPUSP - Guido Stolfi 14 / 58

MPEG-1: Estrutura do Codificador EPUSP - Guido Stolfi 15 / 58

MPEG-1: Estrutura do Codificador EPUSP - Guido Stolfi 15 / 58

Codificador MPEG-1 EPUSP - Guido Stolfi 16 / 58

Codificador MPEG-1 EPUSP - Guido Stolfi 16 / 58

Preditor MPEG com Compensação de Movimento Erro de Reconstrução Vetores de Movimento Compensador de

Preditor MPEG com Compensação de Movimento Erro de Reconstrução Vetores de Movimento Compensador de Movimento Imagem Compensada Imagens de Referência Imagem Reconstruída EPUSP - Guido Stolfi 17 / 58

Tipos de Imagens em MPEG-1 • Imagens I (Independentes, Intra-frame): codificadas sem predição de

Tipos de Imagens em MPEG-1 • Imagens I (Independentes, Intra-frame): codificadas sem predição de movimento, apenas por DCT, quantização e compactação • Imagens P (predição progressiva de movimento): reconstruídas através de predição de movimento, baseando-se em imagens de referência anteriormente codificadas, tipo I ou P • Imagens B (predição bidirecional): o preditor baseia-se em duas imagens de referência (anterior e posterior, do tipo I ou P) EPUSP - Guido Stolfi 18 / 58

Predição de Movimento Bidirecional x y x+dx referencia futura (I ou P) y+dy quadro

Predição de Movimento Bidirecional x y x+dx referencia futura (I ou P) y+dy quadro atual (B) referencia anterior (I ou P) EPUSP - Guido Stolfi 19 / 58

Predição de Movimento Bidirecional Ex. : Movimento de Câmera (Translação) Predição progressiva Imagem anterior

Predição de Movimento Bidirecional Ex. : Movimento de Câmera (Translação) Predição progressiva Imagem anterior Imagem atual Predição regressiva Imagem futura EPUSP - Guido Stolfi 20 / 58

Grupos de Imagens em MPEG EPUSP - Guido Stolfi 21 / 58

Grupos de Imagens em MPEG EPUSP - Guido Stolfi 21 / 58

Estrutura de um Grupo de Imagens (GOP) • M = Distância entre imagens Tipo

Estrutura de um Grupo de Imagens (GOP) • M = Distância entre imagens Tipo I • N = Distância entre imagens Tipo I / P – Ex. : I B B P B B (I) (M=9, N=3) • Grupo Fechado: não necessita de imagens de referência externas ao grupo. – Ex. : | I B B P | I B B … EPUSP - Guido Stolfi 22 / 58

Hierarquia dos Elementos de uma Seqüência de Vídeo MPEG SEQUÊNCIA GRUPO DE IMAGENS FATIA

Hierarquia dos Elementos de uma Seqüência de Vídeo MPEG SEQUÊNCIA GRUPO DE IMAGENS FATIA DE IMAGEM MACROBLOCO 1 BLOCO 2 BLOCO 3 BLOCO 4 BLOCO 5 U (CROMIN NCIA) BLOCO 6 V (LUMIN NCIA) EPUSP - Guido Stolfi 23 / 58

Estrutura do Macrobloco MPEG Y 8 x 8 Y Cb (B-Y) 8 x 8

Estrutura do Macrobloco MPEG Y 8 x 8 Y Cb (B-Y) 8 x 8 Cr (R-Y) 8 x 8 EPUSP - Guido Stolfi 24 / 58

Estrutura de Amostragem “ 4: 2: 0” Amostras: Y U, V EPUSP - Guido

Estrutura de Amostragem “ 4: 2: 0” Amostras: Y U, V EPUSP - Guido Stolfi 25 / 58

Tabelas de Quantização MPEG-1 (Tabelas Padrão) 8 16 19 22 26 27 29 34

Tabelas de Quantização MPEG-1 (Tabelas Padrão) 8 16 19 22 26 27 29 34 16 16 16 22 24 27 29 34 37 16 16 19 22 26 27 39 34 34 38 16 16 22 22 26 27 29 34 37 40 16 16 22 26 27 29 32 35 40 48 16 16 26 27 29 32 35 40 48 58 16 16 26 27 29 34 38 46 56 69 16 16 27 29 35 38 46 56 69 83 16 16 Intra-Frame (Imagens Tipo I) Inter-Frame (Imagens Tipo P, B) EPUSP - Guido Stolfi 26 / 58

Quantização dos Coeficientes da DCT Blocos tipo I: arredondamento p/ inteiro mais próximo Blocos

Quantização dos Coeficientes da DCT Blocos tipo I: arredondamento p/ inteiro mais próximo Blocos tipo P, B: arredondamento em direção a zero EPUSP - Guido Stolfi 27 / 58

Reordenação em Zig-zag [ -26 -3 -6 2 2 0 0 0 1 -2

Reordenação em Zig-zag [ -26 -3 -6 2 2 0 0 0 1 -2 -4 0 0 0 -3 1 5 -1 -1 0 0 0 -4 1 2 -1 0 0 0 0 0 0 0 0 0 -26 -3 1 -3 -2 -6 2 -4 1 1 5 0 2 0 0 -1 2 0 0 0 -1 -1 EOB ] EPUSP - Guido Stolfi 28 / 58

Exemplos: Imagem Original 512 x 480 8 bits EPUSP - Guido Stolfi 29 /

Exemplos: Imagem Original 512 x 480 8 bits EPUSP - Guido Stolfi 29 / 58

Erro de Reconstrução (apenas DCT) Contraste aumentado (x 16) EPUSP - Guido Stolfi 30

Erro de Reconstrução (apenas DCT) Contraste aumentado (x 16) EPUSP - Guido Stolfi 30 / 58

Erro de Reconstrução (apenas Compensação de Movimento) Contraste aumentado (x 16) EPUSP - Guido

Erro de Reconstrução (apenas Compensação de Movimento) Contraste aumentado (x 16) EPUSP - Guido Stolfi 31 / 58

Erro de Reconstrução (Compensação de Movimento + DCT) Contraste aumentado (x 16) EPUSP -

Erro de Reconstrução (Compensação de Movimento + DCT) Contraste aumentado (x 16) EPUSP - Guido Stolfi 32 / 58

MPEG-1: Fluxo de Dados EPUSP - Guido Stolfi 33 / 58

MPEG-1: Fluxo de Dados EPUSP - Guido Stolfi 33 / 58

Estrutura do Fluxo de Dados MPEG (Vídeo) CABEÇA DE SEQUÊNCIA SEQUÊNCIA GRUPO DE IMAGENS

Estrutura do Fluxo de Dados MPEG (Vídeo) CABEÇA DE SEQUÊNCIA SEQUÊNCIA GRUPO DE IMAGENS CABEÇA DE GRUPO IMAGEM CABEÇA DE FATIA MACROBLOCO IMAGEM CABEÇA DE MACROBLOCO DADOS BLOCO 1 DADOS BLOCO 2 DADOS BLOCO 3 SEQUÊNCIA GRUPO DE IMAGENS FATIA MACROBLOCO IMAGEM DADOS BLOCO 6 EPUSP - Guido Stolfi 34 / 58

Prefixos dos Cabeçalhos MPEG-1 Prefixo: Código Hexadecimal: Início de Seqüência 00 00 01 B

Prefixos dos Cabeçalhos MPEG-1 Prefixo: Código Hexadecimal: Início de Seqüência 00 00 01 B 3 Início de Grupo de Imagens 00 00 01 B 8 Início de Imagem 00 00 01 00 Início de Fatia (linha 1 até 175) 00 00 01 01 até 00 00 01 AF Início de Extensão 00 00 01 B 5 Fim de Seqüência 00 00 01 B 7 Início de Área de Dados do Usuário 00 00 01 B 2 EPUSP - Guido Stolfi 35 / 58

Cabeçalho de Seqüência Código de Início de Seqüência (00 00 01 B 3 h)

Cabeçalho de Seqüência Código de Início de Seqüência (00 00 01 B 3 h) Resolução Horizontal (12 bits) Resolução Vertical (12 bits) Relação de Aspecto (4 bits - Tabela 1) Taxa de Frames por segundo (4 bits - Tabela 2) Taxa de Bits por segundo (18 bits, múltiplo de 400 bps) Tamanho de Buffer necessário (10 bits, mult. de 2 k. Bytes) Matriz de Quantização (Opcional) Matriz de Quantização Intra-Frame (64 valores) Matriz de Quantização Inter-Frame (64 valores) Código de Início de Extensões (Futuras) (00 00 01 B 5 h) Código de Área de Dados (Opcionais) (00 00 01 B 2 h) EPUSP - Guido Stolfi 36 / 58

Tabelas de Codificação de Seqüência Tabela 1: Relação de Aspecto do Pixel Tabela 2:

Tabelas de Codificação de Seqüência Tabela 1: Relação de Aspecto do Pixel Tabela 2: taxa de Quadros por segundo CÓDIGO A/L CÓDIGO Quadros / s 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Proibido 1. 00 0. 6735 0. 7175 0. 7615 0. 8055 0. 8495 0. 8935 0. 9375 0. 9815 1. 0255 1. 0695 1. 1135 1. 1575 1. 2015 Reservado 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Proibido 23. 976 24 25 29. 97 30 50 59. 94 60 Reservado Reservado EPUSP - Guido Stolfi 37 / 58

Cabeçalho de Grupo Código de Início de Grupo de Imagens (00 00 01 B

Cabeçalho de Grupo Código de Início de Grupo de Imagens (00 00 01 B 8 h) Time Code (25 bits - Tabela 4) Flag de Grupo Aberto / Fechado Flag de Seqüência Interrompida Código de Extensões (Futuras) (00 00 01 B 5 h) Código de Área de Dados (Opcionais) (00 00 01 B 2 h) EPUSP - Guido Stolfi 38 / 58

Tabelas de Codificação de Time Code Tabela 4 CAMPO Flag Drop Frame Horas Minutos

Tabelas de Codificação de Time Code Tabela 4 CAMPO Flag Drop Frame Horas Minutos (Valor Fixo) Segundos Frames BITS 1 5 6 1 6 6 VALORES 0 / 1 0 - 23 0 - 59 1 0 - 59 Time Code: hh: mm: ss: ff + flag drop frame EPUSP - Guido Stolfi 39 / 58

Cabeçalho de Imagem Código de Início de Imagem (00 00 01 00 h) Referência

Cabeçalho de Imagem Código de Início de Imagem (00 00 01 00 h) Referência Temporal (10 bits) Tipo de Imagem (3 bits - Tabela 5) Tempo Previsto para Encher Buffer (16 bits) * Flag de Precisão dos Vetores de Movimento (1 ou 0, 5 pixels) * Código dos Vetores de Movimento (3 bits, Tabela 6) ** Flag de Precisão dos Vetores Regressivos (1 ou 0, 5 pixels) ** Código dos Vetores Regressivos (3 bits, Tabela 6) Código de Extensões (Futuras) (00 00 01 B 5 h) Código de Área de Dados (Opcionais) (00 00 01 B 2 h) * - Apenas para Imagens P ou B ** - Apenas para Imagens B EPUSP - Guido Stolfi 40 / 58

Tabelas de Codificação de Imagem Tabela 5 - Codificação do Tipo de Imagem CÓDIGO

Tabelas de Codificação de Imagem Tabela 5 - Codificação do Tipo de Imagem CÓDIGO 000 001 010 011 100 101 110 111 TIPO DE IMAGEM Proibido Imagem I Imagem P Imagem B Imagem D Reservado EPUSP - Guido Stolfi 41 / 58

Tabelas de Codificação de Imagem Tabela 6 - Codificação do Tamanho dos Vetores de

Tabelas de Codificação de Imagem Tabela 6 - Codificação do Tamanho dos Vetores de Movimento CÓDIGO 001 010 011 100 101 110 111 TAMANHO 0 1 2 3 4 5 6 FATOR 1 2 4 8 16 32 64 TAMANHO = Número de bits da Codificação do Resíduo FATOR = Fator Multiplicativo do Valor Base (Tabela 9) EPUSP - Guido Stolfi 42 / 58

Alcance dos Vetores de Movimento CÓDIGO ALCANCE (1/2 pixel) ALCANCE (1 pixel) MÓDULO 001

Alcance dos Vetores de Movimento CÓDIGO ALCANCE (1/2 pixel) ALCANCE (1 pixel) MÓDULO 001 -8 a 7. 5 -16 a 15 32 010 -16 a 15. 5 -32 a 31 64 011 -32 a 31. 5 -64 a 63 128 100 -64 a 63. 5 -128 a 127 256 101 -128 a 127. 5 -256 a 255 512 110 -256 a 255. 5 -512 a 511 1024 111 -512 a 511. 5 -1024 a 1023 2048 EPUSP - Guido Stolfi 43 / 58

Cabeçalho de Fatia (“Slice”) Código de Início de Fatia de Imagem (00 00 01

Cabeçalho de Fatia (“Slice”) Código de Início de Fatia de Imagem (00 00 01 01 até 00 00 01 AF h) Fator de Escala do Quantizador "q" (5 bits) Flag de Informação Extra (Opcional) (bytes) EPUSP - Guido Stolfi 44 / 58

Cabeçalho de Macrobloco Enchimento (11 bits = 0000 1111 b) Incremento de Endereço de

Cabeçalho de Macrobloco Enchimento (11 bits = 0000 1111 b) Incremento de Endereço de Macrobloco ( 1 a 11 bits - Tabela 7) Tipo de Macrobloco (Tabela 8) * Fator de Escala de Quantização Alternativo (5 bits) * Vetores de Movimento Progressivos: Horizontal (Base e Residual) Vertical (Base e Residual) * Vetores de Movimento Regressivos: Horizontal (Base e Residual) Vertical (Base e Residual) * Padrão de Codificação de Blocos (Tabela 10) Coeficientes DC e AC dos blocos codificados * - Presentes de Acordo c/ Flags do Tipo de Macrobloco (Tabela 8) EPUSP - Guido Stolfi 45 / 58

Tabelas de Codificação de Macrobloco Tabela 7 - Códigos de Incremento de Endereço de

Tabelas de Codificação de Macrobloco Tabela 7 - Códigos de Incremento de Endereço de Macrobloco CÓDIGO INCREM. 1 1 0000 13 000 0010 0000 25 011 2 0000 0111 14 0001 1111 26 010 3 0000 0110 15 0001 1110 27 0011 4 00 0001 0111 16 0001 1101 28 0010 5 00 0001 0110 17 0001 1100 29 0 0011 6 00 0001 0101 18 0001 1011 30 0 0010 7 00 0001 0100 19 0001 1010 31 000 0111 8 00 0001 0011 20 0001 1001 32 000 0110 9 00 0001 0010 21 0001 1000 33 0000 1011 10 0010 0011 22 0000 1000 Escape (33) 0000 1010 11 000 0010 23 0000 1111 Enchimento 0000 1001 12 000 0010 0001 24 EPUSP - Guido Stolfi 46 / 58

Tabelas de Codificação de Macrobloco Tipo de CÓDIGO Imagem NOME Fator de Movim. Padrão

Tabelas de Codificação de Macrobloco Tipo de CÓDIGO Imagem NOME Fator de Movim. Padrão Escala Progress. Regress. de Blocos Codif. Intra Tipo 1 Intra-d Não Não Sim I 01 Intra-q Sim Não Não Sim 1 Pred-mc Não Sim Não 01 Pred-c Não Não Sim Não 001 Pred-m Não Sim Não Não 00011 Intra-df Não Não Sim 00010 Pred-mcq Sim Não 00001 Pred-cq Sim Não 000001 Intra-q Sim Não Não Sim Tipo P EPUSP - Guido Stolfi 47 / 58

Tabelas de Codificação de Macrobloco Tipo de CÓDIGO Imagem Tipo B NOME Fator de

Tabelas de Codificação de Macrobloco Tipo de CÓDIGO Imagem Tipo B NOME Fator de Movim. Padrão Escala Progress. Regress. de Blocos Codif. Intra 10 Pred-i Não Sim Não 11 Pred-ic Não Sim Sim Não 010 Pred-b Não Sim Não 011 Pred-bc Não Sim Não 0010 Pred-f Não Sim Não Não 0011 Pred-fc Não Sim Não 00011 Intra-d Não Não Sim 00010 Pred-icq Sim Sim Não 000011 Pred-fcq Sim Não 000010 Pred-bcq Sim Não 000001 Intra-q Sim Não Não Sim EPUSP - Guido Stolfi 48 / 58

Tabela de Padrão de Codificação de Blocos Código B 1 B 2 B 3

Tabela de Padrão de Codificação de Blocos Código B 1 B 2 B 3 B 4 B 5 B 6 111 1100 1011 1010 10011 10010 10001 10000 01111 01110 01101 01100 01011 001100 1 0 0 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 0 0 0 1 0 1 1 1 0 0 0 0 1 0 0 0 0 1 1 00011100 00011011 00011010 00011001 00011000 00010111 00010110 00010101 00010100 00010011 00010010 000100001111 00001110 1 0 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 0 1 1 1 1 0 0 0 1 1 1 Tabela 10 - (Trecho) EPUSP - Guido Stolfi 49 / 58

Exemplo de Macrobloco • Bloco pred-icq (Imagem tipo B): – Macrobloco interpolado, com predição

Exemplo de Macrobloco • Bloco pred-icq (Imagem tipo B): – Macrobloco interpolado, com predição bidirecional – 2 vetores de movimento (progressivo e regressivo) – Macrobloco codificado; alguns blocos individuais (Y, Cb ou Cr) podem ser omitidos – Fator de quantização q específico, consta do cabeçalho do macrobloco EPUSP - Guido Stolfi 50 / 58

Valor Base do Vetor de Movimento CÓDIGO 1 011 00011 00001011 00001001 00000111 0000010101

Valor Base do Vetor de Movimento CÓDIGO 1 011 00011 00001011 00001001 00000111 0000010101 0000010011 00000100001 00000011111 00000011101 00000011011 00000011001 VALOR BASE 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 CÓDIGO 010 00010 00001010 00001000 00000110 0000010100 0000010110 00000100000011110 00000011100 00000011010 00000011000 VALOR BASE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 EPUSP - Guido Stolfi 51 / 58

Codificação da Componente DC (Bloco) CÓD. TAMANHO (LUMIN NCIA) CÓD. TAMANHO (CROMIN NCIA) TAMANHO

Codificação da Componente DC (Bloco) CÓD. TAMANHO (LUMIN NCIA) CÓD. TAMANHO (CROMIN NCIA) TAMANHO AMPLITUDE CÓD. VALOR DA AMPLITUDE VALOR RESULTANTE 1111110 11111110 8 0000. . . 01111111 -128. . . -255 111110 1111110 7 0000000. . . 0111111 -64. . . -127 11110 111110 6 000000. . . 011111 -32. . . -63 1110 11110 5 00000. . . 01111 -16. . . -31 110 1110 4 0000. . . 0111 -8. . . -15 101 110 3 000. . . 011 -4. . . -7 01 10 2 00. . . 01 -2. . . -3 00 01 1 0 -1 100 00 0 - 0 00 01 10 2 10. . . 11 2. . . 3 101 110 3 100. . . 111 4. . . 7 110 1110 4 1000. . . 1111 8. . . 15 1110 11110 5 10000. . . 11111 16. . . 31 11110 111110 6 100000. . . 111111 32. . . 63 111110 1111110 7 1000000. . . 1111111 64. . . 127 1111110 11111110 8 10000000. . . 1111 128. . . 255 EPUSP - Guido Stolfi 52 / 58

Codificação RLE/Huffman p/ Coef. AC Intra Zeros EOB 0 0 0 0 0 Amplitude

Codificação RLE/Huffman p/ Coef. AC Intra Zeros EOB 0 0 0 0 0 Amplitude 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 40 Código 10 1 s 11 s 0100 s 00101 s 0000110 s 00100001 s 0000001010 s 000000011101 s 000000011000 s 000000010011 s 000000010000 s 000011010 s 000011001 s 000011000 s 000010111 s 0000011111 s 0000010000 s Zeros 1 1 1 2 2 2 3 3 4 4 4 5 30 31 escape Amplitude 16 17 18 1 2 3 4 5 1 2 3 4 1 2 3 1 1 1 Código 00000010010 s 00000010001 s 00000010000 s 0101 s 0000100 s 0000001001 s 000000010100 s 00111 s 00100100 s 000000011100 s 000010011 s 00110 s 0000001111 s 000000010010 s 000111 s 00000011100 s 00000011011 s 000001 (Trechos) EPUSP - Guido Stolfi 53 / 58

Exemplo de Arquivo MPEG-1 EPUSP - Guido Stolfi 54 / 58

Exemplo de Arquivo MPEG-1 EPUSP - Guido Stolfi 54 / 58

MPEG 1: Sistema EPUSP - Guido Stolfi 55 / 58

MPEG 1: Sistema EPUSP - Guido Stolfi 55 / 58

Multiplexação de Vídeo e Áudio Fluxo de Dados ISO 11172 Pack Cab. de Pack

Multiplexação de Vídeo e Áudio Fluxo de Dados ISO 11172 Pack Cab. de Pack Cab. de Sistema Pacote Cabeçalho de Pacote Byte Byte ISO_FIM Pacote Byte EPUSP - Guido Stolfi 56 / 58

Prefixos de Sistema MPEG Prefixo: Código Hexadecimal: Início de “Pack” (“Pack_start”) 00 00 01

Prefixos de Sistema MPEG Prefixo: Código Hexadecimal: Início de “Pack” (“Pack_start”) 00 00 01 BA Fim de Conjuntos (“ISO_FIM”) 00 00 01 B 9 Cabeçalho de Sistema 00 00 01 BB Pacote de Vídeo 00 00 01 E 0 a 00 00 01 EF Pacote de Áudio 00 00 01 C 0 a 00 00 01 DF Pacote de Enchimento 00 00 01 BE EPUSP - Guido Stolfi 57 / 58

Conteúdos Cabeçalhos de Sistema • Cabeçalho de “Pack”: – Referência de “Clock” temporal •

Conteúdos Cabeçalhos de Sistema • Cabeçalho de “Pack”: – Referência de “Clock” temporal • Cabeçalho de Sistema: – Comprimento do Cabeçalho – Taxas máximas de Vídeo e Áudio • Cabeçalho de Pacote: – Tamanho do pacote – Instante absoluto de exibição do pacote EPUSP - Guido Stolfi 58 / 58