You are on page 1of 15

Especificao Detalhada - MPEG4

()
Projeto Fnix

BRAZIL IP

Verso 0.1.0 | 13/10/03


Elmar Melcher

<logo ou nome do cliente>

(elmar@dee.ufcg.br)

BCP | Questionrio de Briefing de Design

Confidencial

nome do arquivo.doc

pg2/1

Projeto Fnix

Controlador MPEG4 - Terpscore

Histrico de Alteraes
Data

Verso

Descrio

ltimo
RF

ltimo
RNF

Autor

13/10/03

0.1.0

Especificao detalhada do controlador


de MPEG4

Elmar

01/01/04

0.2.0

Diagrama de blocos

Elmar

Lista de Aprovadores
Nome

Funo

Guido Arajo

Coordenador Tcnico Fnix

Controlador MPEG4 - Terpscore

92299825.doc

Pg 3/15

Projeto Fnix

Controlador MPEG4 - Terpscore

Contedo

1. Diagrama em Blocos.......................................................................................................................... 6
2. Decodificador de Bitstream................................................................................................................ 7
2.1 Entradas......................................................................................................................................... 7
2.2 Sadas............................................................................................................................................. 7
2.3 Referncias.................................................................................................................................... 7
3. Quantizao Inversa........................................................................................................................... 8
3.1 Entradas......................................................................................................................................... 8
3.2 Constantes...................................................................................................................................... 8
3.3 bits_per_pixel Quantidade de bits em cada pixel. Valor = 8;................................................ 8
3.4 Sadas............................................................................................................................................. 8
4. IDCT (Inverse Discrete Cosine Transform)...................................................................................... 9
4.1 Entrada.......................................................................................................................................... 9
4.2 Sada............................................................................................................................................... 9
4.3 Funo:.......................................................................................................................................... 9
4.4 Referncia do padro: ................................................................................................................. 9
4.5 Dvidas Abertas:........................................................................................................................... 9
4.6 Entradas de Configurao:.......................................................................................................... 9
5. Predio Inversa DC/AC.................................................................................................................. 10
5.1 Entrada........................................................................................................................................ 10
5.2 Sada............................................................................................................................................. 10
5.3 Funo de predio e escolha de direo de predio: ........................................................... 10
5.4 Referncia do padro:................................................................................................................ 10
5.5 Entradas de configurao:......................................................................................................... 10
6. Decodificao dos Coeficientes DCT.............................................................................................. 11
6.1 Entradas....................................................................................................................................... 11
6.2 Sadas........................................................................................................................................... 11
6.3 Referncia do padro.................................................................................................................. 11
6.4 Entradas de configurao.......................................................................................................... 11
6.5 Entradas de tabelas para consultas........................................................................................... 11
Controlador MPEG4 - Terpscore

92299825.doc

Pg 4/15

Projeto Fnix

Controlador MPEG4 - Terpscore

6.6 Funo.......................................................................................................................................... 12
7. Decodificador de Vetores de Movimento......................................................................................... 13
7.1 Entradas de configurao.......................................................................................................... 13
7.2 Entradas de dados....................................................................................................................... 13
7.3 Sadas de dados........................................................................................................................... 13
7.4 Funo.......................................................................................................................................... 13
8. Scan Inverso..................................................................................................................................... 14
8.1 Semntica..................................................................................................................................... 14
8.2 Entrada........................................................................................................................................ 14
8.3 Sada............................................................................................................................................. 14
9. Copiador de Bloco de Predio........................................................................................................ 15
9.1 Referncia do padro:................................................................................................................ 15
9.2 Entradas de Configurao:........................................................................................................ 15
9.3 Dados de Entrada:...................................................................................................................... 15
9.4 Dados de Sada:........................................................................................................................... 15
9.5 Funo:........................................................................................................................................ 15

Controlador MPEG4 - Terpscore

92299825.doc

Pg 5/15

Projeto Fnix

Controlador MPEG4 - Terpscore

1. Diagrama em Blocos
Motion
decoding

Pr
Encoded
video data

evious
VOP
Memory

Input
buf fer

7
2

Header
decoding

9
Prediction

Motion vector
decoding

block
copying

8
Inverse
Scan

DCT coef fivient


decoding

Inverse DC &
AC pr ediction

Inverse
Quantization

IDCT

Current
VOP
Memory

YCbCr
to
RGB

Decoded
video data

Block decoding

Controlador MPEG4 - Terpscore

92299825.doc

Pg 6/15

Projeto Fnix

Controlador MPEG4 - Terpscore

2. Decodificador de Bitstream

O decodificador de bitstream, nada mais do que um demultiplexiador do sistema MPEG4. Os erros


que podem ser detectados so:

Recebimento de um VLC(Variable Length Code) ilegal;


Um erro de semntica;
Mais de 64 coeficientes DCTs decodificados em um bloco;
E um cabealho de resincronizao inconsistente.

O bitstream decodificado ao longo do recebimento, se nenhum erro for detectado o stream


considerado vlido e a decodificao concluda com o pacote de vdeo.

2.1

Entradas

2.2

Sadas

2.3

Stream de vdeo, formato Simple Profile/Level 1.

Stream de movimento;
Stream de quadro;

Referncias

As referencias podem ser encontradas nas paginas 34-103, com as respectivas tabelas nas paginas 103164 e figuras nas paginas 165 e 166.

Controlador MPEG4 - Terpscore

92299825.doc

Pg 7/15

Projeto Fnix

Controlador MPEG4 - Terpscore

3. Quantizao Inversa
3.1

Entradas

Vetor de coeficientes com a predio AC/DC efetuada nos casos onde for necessria;
quantiser_scale Varivel vinda do cabealho dizendo qual a escala de quantizao foi
utilizada;
dc_scaler Escala DC, vinda do cabealho;
Parmetro que indica se o bloco intra ou inter (necessrio acrescentar).

3.2

Constantes

3.3

bits_per_pixel Quantidade de bits em cada pixel. Valor = 8;

3.4

quant_precision Preciso da quantizao. Valor = 5;

Matrizes de multiplicao W[w][v][u] Matrizes para a multiplicao dos blocos intra e


inter. As matrizes so constantes e no h diferena de matrizes para blocos de
crominncia ou luminncia.

Sadas

Vetor dos coeficientes utilizados na DCT do codificador Mpeg com as seguintes


caractersticas:
o Quantizao Aritmtrica Multiplicados os valores oriundos da predio DC/AC
pelas matrizes correspondentes;
o Saturao - Faixa de valores entre [-2048, 2047];
o Realizado o Mismatch Control;
o Tamanho de 12 bits.

Controlador MPEG4 - Terpscore

92299825.doc

Pg 8/15

Projeto Fnix

Controlador MPEG4 - Terpscore

4. IDCT (Inverse Discrete Cosine Transform)


4.1

Entrada

Coeficientes DCT , F[u][v]

4.2

Sada

f[y][x], tal que -2bits/pxel f[y][x] 2bits/pxel 1, para todo x, y

4.3

Funo:

Decodificar e, portanto, recuperar a matriz de pixels do sinal original.


Descrio da IDCT: Anexo A, pgina 326 (padro)

4.4

Referncia do padro:

Pginas 175-177.

4.5

Dvidas Abertas:

Observaes (Notas) da pgina 327, Implementao em ponto fixo.

4.6

Entradas de Configurao:

sadcf_disable (0)

Controlador MPEG4 - Terpscore

92299825.doc

Pg 9/15

Projeto Fnix

Controlador MPEG4 - Terpscore

5. Predio Inversa DC/AC


5.1

Entrada

Matriz bidimensional do SCAN inverso com coeficientes QF[v][u].

5.2

Sada

Matriz de coeficientes preditos, na seguinte faixa:

2047

QF[v][u] =

QF[v][u]

-2048

5.3

QF[v][u] > 2047

-2048 QF[v][u] 2047

QF[v][u] < -2048

Funo de predio e escolha de direo de predio:

Paginas: 170 e 171.

5.4

Referncia do padro:

Pginas 169-171.

5.5

Entradas de configurao:

short_vdeo_header setado para 0 e ser intra bloco.

Controlador MPEG4 - Terpscore

92299825.doc

Pg 10/15

Projeto Fnix

Controlador MPEG4 - Terpscore

6. Decodificao dos Coeficientes DCT

6.1

Entradas

Seqncia de bits com os cdigos de tamanho varivel num padro que uma modificao do cdigo
de Huffman, com carreiras de zeros suprimidos

6.2

Sadas

Ser gerada uma seqncia de 64 coeficientes DCT para cada bloco a ser recuperado

6.3

Referncia do padro

Pginas 167 e 168.

6.4

Entradas de configurao

dct_dc_size_luminance (2-11 bits)


dct_dc_size_crominance (2-12 bits)
dct_dc_differential (1-12 bits)
short_video_header (1 bit)
reversible_vlc (1 bit)
intra_dc_vlc_thr (3 bits)

6.5

Entradas de tabelas para consultas

Tabela 6.21 Significados de intra_dc_vlc_thr (pgina 122)


Tabela B-13 Cdigos de tamanho varivel para dct_dc_size_luminance (pgina 342)
Tabela B-14 Cdigos de tamanho varivel para dct_dc_size_crominance (pgina 342)
Tabela B-15 Cdigos adicionais DC diferencial (pgina 343)
Tabela B-16 Tabela VLC (cdigo de tamanho varivel) para TCOEF de Intra Luminncia e
Crominncia (pgina 343)

Controlador MPEG4 - Terpscore

92299825.doc

Pg 11/15

Projeto Fnix

Controlador MPEG4 - Terpscore

Tabela B-17 Tabela VLC (cdigo de tamanho varivel) para TCOEF de Inter Luminncia e
Crominncia (pgina 345)
Tabela B-18a Tabela de cdigo FLC (cdigo de tamanho fixo) para RUN (pgina 346)
Tabela B-18b Tabela de cdigo FLC (cdigo de tamanho fixo) para RUN (pgina 346)
Tabela B-18c - Tabela de cdigo FLC (cdigo de tamanho fixo) para LEVEL quando
short_vdeo_header 1 (pgina 346)
Tabela B-19 ESCL(a), valores LMAX de intra macro-blocos (pgina 346)
Tabela B-20 ESCL(b), valores LMAX de inter macro-blocos (pgina 347)
Tabela B-21 ESCR(a), valores RMAX de intra macro-blocos (pgina 347)
Tabela B-22 ESCR(b), valores RMAX de inter macro-blocos (pgina 347)
Tabela B-23 Tabela RVLC (cdigo de tamanho varivel) para TCOEF (pgina 347)
Tabela B-24 Tabela FLC (cdigo de tamanho fixo) para RUN (pgina 351)
Tabela B-25 Tabela FLC (cdigo de tamanho fixo) para LEVEL (pagina 351)

6.6

Funo

Recuperao dos cdigos de tamanho varivel gerando cdigos de tamanho fixo e recomposio das
carreiras de zeros que foram suprimidas na codificao.

Controlador MPEG4 - Terpscore

92299825.doc

Pg 12/15

Projeto Fnix

Controlador MPEG4 - Terpscore

7. Decodificador de Vetores de Movimento

Referncia do padro: pginas 207-211

7.1

Entradas de configurao

vop_fcode_forward (3 bits, expoente de fator de escala)

7.2

Entradas de dados

horizontal_mv_data
(6
bits),
horizontal_mv_residual
vertical_mv_data (6 bits), vertical_mv_residual (6 bits).

7.3

(6

bits),

Sadas de dados

MVx (9,1 bits), MVy(9,1 bits)

7.4

Funo

Algoritmo pgina 208 (escalonamento), decodificao diferencial (somar mediana de trs vizinhos)
pgina 210.

Controlador MPEG4 - Terpscore

92299825.doc

Pg 13/15

Projeto Fnix

Controlador MPEG4 - Terpscore

8. Scan Inverso
8.1

Semntica

O scan inverso um algortmo ultilizado para se transformar um vetor QFS[n] em um array


bidimensional PQF[u][v]. O vetor deve conter os cdios VCL(Variable code length), que por sua vez
sero transformados em PQF[u][v] em funo do tipo de predio atual.
A sada do scan ( PQF[u][v] ) ser ultilizado pelo quantizador inverso.

8.2

Entrada

Os cdigos VCL do codificador, os cdigos devem sair do codificador em um array unidimensional


com o nome QFS[n], onde n o nmero de elementos do array variando de 0..63. O tipo de predio
usada( I , P , B ) atualmente tambm uma entrada para o scan inverso.

8.3

Sada

A sada um array bidimensional chamado PQF[v][u] onde u e v variam de 0.7.


Eustquio (compensao de movimento)
Isaac (zig-zag inverso)

Controlador MPEG4 - Terpscore

92299825.doc

Pg 14/15

Projeto Fnix

Controlador MPEG4 - Terpscore

9. Copiador de Bloco de Predio


9.1

Referncia do padro:

Pginas 209-214

9.2

Entradas de Configurao:

Inexistentes

9.3

Dados de Entrada:

MVx (9,1 bits), MVy(9,1 bits), VDP anterior

9.4

Dados de Sada:

Macroblocos (MB)

9.5

Funo:

Decodificao diferencial, via soma de medianas de triplas de vizinhos (pp. 210-211)


Equao para a criao dos pixels de blocos de predio de luminncia 8*8 p. 212

Controlador MPEG4 - Terpscore

92299825.doc

Pg 15/15

You might also like