tese de doutorado em engenharia

Transcrição

tese de doutorado em engenharia
TESE DE DOUTORADO EM ENGENHARIA
ELÉTRICA
CODIFICADOR DISTRIBUÍDO DE VÍDEO COM
COMPLEXIDADE VARIÁVEL A PARTIR DE
CODIFICAÇÃO EM RESOLUÇÃO ESPACIAL MISTA
Bruno Luiggi Macchiavello Espinoza
Brasília, Abril de 2009
UNIVERSIDADE DE BRASÍLIA
FACULDADE DE TECNOLOGIA
UNIVERSIDADE DE BRASÍLIA
FACULDADE DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA ELÉTRICA
CODIFICADOR DISTRIBUÍDO DE VÍDEO COM
COMPLEXIDADE VARIÁVEL A PARTIR DE
CODIFICAÇÃO EM RESOLUÇÃO ESPACIAL MISTA
Bruno Luiggi Macchiavello Espinoza
ORIENTADOR: Ricardo Lopes de Queiroz
CO-ORIENTADOR: Debargha Mukherjee
TESE DE DOUTORADO EM ENGENHARIA ELÉTRICA
Publicação: PPGENE.TD 036/09
Brasília/DF: Abril- 2009
UNIVERSIDADE DE BRASÍLIA
Faculdade de Tecnologia
TESE DE DOUTORADO EM ENGENHARIA
ELÉTRICA
CODIFICADOR DISTRIBUÍDO DE VÍDEO COM
COMPLEXIDADE VARIÁVEL A PARTIR DE
CODIFICAÇÃO EM RESOLUÇÃO ESPACIAL MISTA
Bruno Luiggi Macchiavello Espinoza
Tese de doutorado submetida ao Departamento de Engenharia Elétrica da
Faculdade de Tecnologia da Universidade de Brasília, como parte dos requisitos
necessários para a obtenção do grau de Doutor.
Banca Examinadora
Ricardo Lopes de Queiroz, PhD.
UnB/ ENE (Orientador)
Francisco Assis de O. Nascimento, Dr.
UnB/ ENE (Examinador Interno)
Eduardo A. Barros da Silva, PhD.
UFRJ/ COPPE (Examinador Externo)
Joao Souza Neto, Dr.
UCB/ MGCTI (Examinador Externo)
Adolfo Bauchspiess, Dr-Ing
UnB/ ENE (Examinador Interno)
iii
FICHA CATALOGRÁFICA
MACCHIAVELLO, BRUNO L. E.
Codificador Distribuído de Vídeo com complexidade variável a partir
de codificação em resolução espacial mista. [Distrito Federal] 2009.
xxii, 131p., 297 mm (ENE/FT/UnB, Doutor, Telecomunicações
Processamento de Sinais, 2008). Tese de Doutorado.
Universidade de Brasília. Faculdade de Tecnologia.
Departamento de Engenharia Elétrica.
1. Codificação Distribuída de Fonte
2. Wyner-Ziv
3. Codificação Distribuída de Vídeo
4. Codificação de Baixa Complexidade
5. H.264/AVC
6. Semi super resolução
I. ENE/FT/UnB
II. Título (série)
REFERÊNCIA BIBLIOGRÁFICA
MACCHIAVELLO, B. L. E. (2009). Codificador Distribuído de Vídeo com complexidade
variável a partir de codificação em resolução espacial mista. Tese de Doutorado em Engenharia
Elétrica com enfase em Telecomunicações, Publicação MTARH.DM - 326 A/08, Departamento
de Engenharia Elétrica, Universidade de Brasília, Brasília, DF, 131p.
CESSÃO DE DIREITOS
NOME DO AUTOR: Bruno Luiggi Macchiavello Espinoza.
TÍTULO DA TESE DE DOUTORADO: Codificador Distribuído de Vídeo com complexidade
variável a partir de codificação em resolução espacial mista.
GRAU / ANO:
Doutor / 2009
É concedida à Universidade de Brasília permissão para reproduzir cópias desta tese de doutorado
e para emprestar ou vender tais cópias somente para propósitos acadêmicos e científicos. O autor
reserva outros direitos de publicação e nenhuma parte desta dissertação de mestrado pode ser
reproduzida sem a autorização por escrito do autor.
Bruno Luiggi Macchiavello Espinoza
SQN 216 Bloco B Apto 322
70875-020 Asa Norte, Brasília - DF - Brasil.
v
Dedicatória
À minha esposa Nubia, a meus irmãos Julissa e Alvaro, a meus pais Walter e Emmy, e
à minha avó Rosa
Bruno Luiggi Macchiavello Espinoza
vii
Agradecimentos
Agradeço a meus pais Walter e Emmy, e a meu irmão Alvaro, que mesmo
longe sempre estão presentes na minha vida. Agradeço especialmente
a minha irmã Julissa, que me ajudou muito durante o período do meu
doutorado e mestrado. Agradeço a minha esposa Nubia por fazer parte
da minha vida. Ao meu orientador, Professor Ricardo Lopes de Queiroz,
por sua ajuda, críticas e sugestões ao trabalho. Sem ele o trabalho
não teria alcançado o nível desejado. Ao meu co-orientador Doutor
Debargha Mukherjee, que contribuiu com idéias, apoio e me ajudou
muito durante minha estadia em Palo Alto, USA. Ao Professor Francisco
Assis de Oliveira Nascimento que foi meu orientador no mestrado, e
abriu as portas da Universidade de Brasília para mim. Ao pessoal da
HP Brasil, Ricardo Pianta, Paulo Sá e Marcelo Thielo, que todo ano
apóiam o nosso grupo de pesquisa. Aos companheiros do grupo da
HP, Rafael “Capim”, Fernanda Brandi, Alexandre Zaghetto, Eduardo
“Grilo” Peixoto, Edson Mintsu, Tiago Alvez, Karen Oliveira, Renan
Utida, Diogo “Buraco”, que me ajudaram muito durante a minha
pesquisa, e compartilhamos risadas, jogos de vídeo game e sessões
de BANG. Agradecimentos especias a Mintsu e Grilo pelas revisões.
Aos companheiros do GPDS Rafael Ortis, Maria do Carmo, Frederico
“Aspira” Nogueira, Chaffim “Rei do Mingau”, Patrick, Alberto, Marcelo
e Camilo que formam um excelente ambiente de trabalho. Aos meus
amigos Fabio Paião, João Baptista e Christian “Magrão” simplesmente
por sua amizade. Aos meus amigos de Brasília Rafael “Metal”, Alecio,
Rodolfo, Flavio Vidal, Barbosa, Marcelino e todos os que esqueci
mencionar. A Eliane, Edilene, Carlos e Denis. Aos meus amigos
peruanos Sergio, Marco Carrion, Joel, Miguel, Burga, Miguelón, Victor,
Marco “Fracasado”, Pavo, Renzo, Moto, José Balbuena, Wong, Bruno
Tarzona, Francisco Orbegozo, Juan Bertolotti e todos os que posso ter
esquecido mencionar. A meus ex-colegas de trabalho do MTC, Julissa,
Karem, Marisol e José. Por fim, ao pessoal da banda MARBRU, Marcelo
Portela e Marcelo “Baqueta”, pelas músicas que fazemos juntos.
Bruno Luiggi Macchiavello Espinoza
ix
RESUMO
Recentemente, novas exigências têm surgido para a codificação de vídeo.
Estas exigências incluem flutuação da largura de banda, qualidade de serviço e
limitações de energia. Em dispositivos móveis é importante limitar o consumo de
energia. Tipicamente, o codificador possui uma maior complexidade, requerendo
maior consumo de energia que o decodificador. Um novo paradigma, chamado
codificação de vídeo distribuída, possibilita a codificação com complexidade
reversa, onde o codificador requer um menor esforço computacional do que
o decodificador. A codificação de vídeo distribuída é baseada no teorema de
Wyner-Ziv para a codificação separada, com decodificação conjunta de fontes
correlatas. Assim, um codec distribuído pode ser utilizado em cenários de
potência limitada.
É proposto um modo de codificação baseado em quadros-chave de resolução
espacial completa e quadros intermediários codificados a resolução reduzida
mediante um codificador Wyner-Ziv. Um bom desempenho de taxa-distorção é
alcançado mediante uma melhor geração da informação lateral no decodificador
e um mecanismo automático de alocação de taxa no codificador. Este modo
possibilita a redução de complexidade de codificação dos quadros intermediários,
seguido de codificação Wyner-Ziv do resíduo. Os coeficientes quantizados do
quadro residual são mapeados em cosets sem o uso de um canal de retorno.
Para isto, foi feito um estudo dos parâmetros ótimos de codificação na criação
dos cosets sem memória. Também, foi elaborado um mecanismo de estimação
da correlação estatística entre os sinais. Este mecanismo guia a escolha dos
parâmetros de codificação e a alocação de taxa, durante o processo da criação
dos cosets.
A geração da informação lateral explora a informação obtida da camada base
de baixa resolução. No decodificador, a decodificação de canal dos cosets é
realizada usando a informação lateral para obter uma versão de alta qualidade do
quadro intermediário decodificado. Resultados da complexidade de codificação
e do desempenho, em termos de taxa-distorção, são apresentados usando o
padrão H.264/AVC. É mostrado que o modo de codificação Wyner-Ziv proposto
é competitivo ao ser comparado com a codificação convencional. O modo
Wyner-Ziv proposto também possui adaptabilidade na redução de complexidade
e suporta um modo de decodificação de baixa complexidade.
xi
ABSTRACT
Recently, new requirements in video coding have emerged. These requirements
include bandwidth fluctuation, quality of service and energy constraints. In handheld mobile devices, it is important to limit the energy consumption. Typically,
the encoder has a higher complexity, requiring more energy consumption than
the decoder. A new paradigm in video coding, called distributed video coding,
enables a reversed complexity coding mode, where the decoder requires more
computational effort than the encoder. Distributed video coding is based on the
Wyner-Ziv theorem for separately coding but jointly decoding correlated sources.
A distributed video codec can be used in power constrained scenarios.
We propose a mixed resolution framework based on full resolution key frames
and spatial-reduction-based Wyner-Ziv coding of intermediate non-reference
frames. Improved rate-distortion performance is achieved by enabling better sideinformation generation at the decoder and better rate-allocation at the encoder.
The framework enables reduced encoding complexity by low-resolution encoding
of the non-reference frames, followed by Wyner-Ziv coding of the residue. The
quantized transform coefficients of the residual frame are mapped to cosets
without the use of a feedback channel. For that purpose, a study to select optimal
coding parameters in the creation of the memoryless cosets is made. Furthermore,
a correlation estimation mechanism that guides the parameter choice process is
proposed. This estimation algorithm is one of the main contributions of this work.
The side information generation method exploits information for the low
resolution coded frames. At the decoder, coset decoding is carried using the
side-information to obtain a higher quality version of the decoded frame. Results
for the coding complexity and rate-distortion performance are presented using
the H.264/AVC codec. It is shown that the proposed Wyner-Ziv coding mode
is competitive. It allows a scalable compexity reduction and supports a lowdecoding-complexity mode.
SUMÁRIO
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1
C ODIFICAÇÃO DE VÍDEO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2
A PRESENTAÇÃO DO P ROBLEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3
O RGANIZAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1
3
5
2 CODIFICAÇÃO DE FONTE COM INFORMAÇÃO LATERAL . . . . . . . . . . . . . . .
2.1
C ONCEITOS B ÁSICOS DE T EORIA DA I NFORMAÇÃO . . . . . . . . . . . . . . . . . . . . . . . .
2.2
C ODIFICAÇÃO DE FONTE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3
C ODIFICAÇÃO DE CANAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4
C ODIFICAÇÃO DE FONTE COM INFORMAÇÃO LATERAL . . . . . . . . . . . . . . . . . . . . .
2.4.1 C ODIFICAÇÃO S LEPIAN -W OLF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.2 C ODIFICAÇÃO W YNER -Z IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
9
10
11
11
13
3 PARADIGMAS DE CODIFICAÇÃO DE VÍDEO DIGITAL . . . . . . . . . . . . . . . . . . . .
3.1
C ODIFICAÇÃO H ÍBRIDA DE V ÍDEO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2
C ODIFICAÇÃO D ISTRIBUÍDA DE V ÍDEO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 A RQUITETURA S TANFORD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2 A RQUITETURA PRISM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3
VANTAGENS E D ESVANTAGENS DA C ODIFICAÇÃO DE V ÍDEO D ISTRIBUÍDA
15
15
20
21
24
27
4 CODIFICADOR DISTRIBUÍDO COM RESOLUÇÃO ESPACIAL MISTA . . .
4.1
R ESOLUÇÃO M ISTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2
A RQUITETURA DO C ODEC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1 C ODIFICADOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2 D ECODIFICADOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3
C ODIFICADOR W YNER -Z IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4
S EMI S UPER R ESOLUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31
32
34
34
36
37
42
5 ESTIMAÇÃO DA CORRELAÇÃO ESTATÍSTICA PARA CODIFICAÇÃO
DISTRIBUÍDA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1
M ODELO E STATÍSTICO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2
E STIMAÇÃO DA C ORRELAÇÃO E STATÍSTICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.1 E STIMAÇÃO DA VARIÂNCIA DOS COEFICIENTES RESIDUAIS L APLACIANOS
5.2.2 E STIMAÇÃO DO FATOR DE ATENUAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.3 E STIMAÇÃO DA VARIÂNCIA DO RUÍDO G AUSSIANO . . . . . . . . . . . . . . . . . . . . . . . . .
5.3
E SCOLHA DOS PARÂMETROS DE C ODIFICAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.1 C ODIFICAÇÃO POR cosets SEM MEMÓRIA SEGUIDA DE RECONSTRUÇÃO
MSE COM INFORMAÇÃO LATERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3.2 F ONTE L APLACIANA COM RUÍDO ADITIVO G AUSSIANO . . . . . . . . . . . . . . . . . . . .
5.4
S ELEÇÃO ÓTIMA DOS PARÂMETROS DE C ODIFICAÇÃO . . . . . . . . . . . . . . . . . . . .
5.4.1 C ORRESPONDÊNCIA DE D ISTORÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
47
47
48
49
50
52
53
54
56
57
60
6 CODIFICAÇÃO DA CAMADA DE REALCE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1
C ODIFICAÇÃO DE E NTROPIA NO H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
xiii
6.1.1
6.1.2
6.1.3
6.2
6.2.1
C ODIFICAÇÃO E XP -G OLOMB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
S EQÜÊNCIAS DE Z EROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
CAVLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
C ODIFICAÇÃO DA CAMADA W YNER -Z IV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
D-CAVLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
64
66
66
68
69
7 EXPERIMENTOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1
S EQÜÊNCIAS DE V ÍDEOS PARA T ESTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2
D ESEMPENHO DO D-CAVLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3
A NÁLISE DE C OMPLEXIDADE DE C ODIFICAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4
E STIMAÇÃO DA CORRELAÇÃO ESTATÍSTICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5
D ESEMPENHO DO MODO DE CODIFICAÇÃO W YNER -Z IV COM RESOLUÇÃO
MISTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.1 C OMPARAÇÃO COM CODIFICAÇÃO CONVENCIONAL HÍBRIDA . . . . . . . . . . . . . . .
7.5.2 C OMPARAÇÃO COM OUTRAS ARQUITETURAS DVC . . . . . . . . . . . . . . . . . . . . . . . . .
73
74
75
76
79
80
80
87
8 CONCLUSÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
8.1
A PRESENTAÇÃO DAS C ONTRIBUIÇÕES DO D OUTORADO . . . . . . . . . . . . . . . . . . 96
8.2
P ERSPECTIVAS PARA T RABALHOS F UTUROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
REFERÊNCIAS BIBLIOGRÁFICAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
APÊNDICES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
I
CARACTERIZAÇÃO DAS FUNÇÕES DE TAXA E DISTORÇÃO . . . . . . . . . . .113
I.1
C ODIFICAÇÃO POR cosets SEM MEMORIA SEGUIDA DE RECONSTRUÇÃO
MSE COM INFORMAÇÃO LATERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
I.2
C ODIFICAÇÃO A TAXA ZERO SEGUIDA DE RECONSTRUÇÃO MSE COM
INFORMAÇÃO LATERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
I.3
C ODIFICAÇÃO S LEPIAN -W OLF IDEAL COM RECONSTRUÇÃO MSE E
INFORMAÇÃO LATERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
I.4
C ODIFICAÇÃO CONVENCIONAL SEGUIDA DE RECONSTRUÇÃO MSE
COM E SEM INFORMAÇÃO LATERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
II TABELAS DO D-CAVLC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .119
II.1
TABELAS DE CODIFICAÇÃO PARA O NÚMERO DE COEFICIENTES E
trailing ones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
II.1.1 G RUPO I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
II.1.2 G RUPO II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
II.1.3 G RUPO III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
II.2
TABELAS DE CODIFICAÇÃO PARA O NÚMERO TOTAL DE ZEROS . . . . . . . . . . . . 125
III PRODUÇÃO BIBLIOGRÁFICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
III.1
P UBLICAÇÕES EM R EVISTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
III.1.1 C ODIFICADOR DISTRIBUÍDO COM RESOLUÇÃO MISTA . . . . . . . . . . . . . . . . . . . . . . 129
III.1.2 O UTRAS C ONTRIBUIÇÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
III.2
P UBLICAÇÕES EM C ONGRESSO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
III.2.1 C ODIFICADOR DISTRIBUÍDO COM RESOLUÇÃO MISTA . . . . . . . . . . . . . . . . . . . . . . 129
III.2.2 O UTRAS C ONTRIBUIÇÕES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
LISTA DE FIGURAS
1.1
Elementos de uma sequência de vídeo digital: pixels e quadros. .........................
2.1
Compressão de fonte sem perdas. A fonte X deve ser transmitida com não menos
que H(X) bits. ........................................................................................
Codificação conjunta de duas fontes X e Y . Uma taxa não inferior a H(X, Y ) é
suficiente para reconstrução sem perdas. .......................................................
Codificação separada de duas fontes, com decodificação conjunta. H(X, Y )
continua sendo suficiente para reconstrução sem per das. ..................................
Região de possível reconstrução sem perda. A região triangular indica a região
de codificação Slepian-Wolf. ......................................................................
Codificação de fonte sem perdas com informação lateral...................................
Codificação de fonte com perdas com informação lateral. .................................
2.2
2.3
2.4
2.5
2.6
3.1
3.2
3.3
3.4
3.5
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
5.1
Esquema básico de um codificador híbrido ....................................................
Esquema básico de um decodificador híbrido .................................................
Exemplos de codificação preditiva e bi-preditiva. É mostrada a ordem de exibição
e codificação, as setas indicam quais quadros são usados como referência da
codificação do quandro fonte. .....................................................................
Diagrama de blocos de codec DVC de Stanford. .............................................
Diagrama de Blocos do PRISM. (a) codificador, (b) decodificador ......................
2
9
11
12
13
13
14
17
17
19
22
25
Usos diferentes dos quadros NRWZ. (a) um quadro intermediário tipo B, (b) dois
quadros intermediários tipo B, (c) um quadro tipo P . ...................................... 33
Três cenários de codificação adaptável. (a) adaptabilidade temporal, (b) adaptabilidade
temporal e espacial que o SVC permite, (c) resolução mista. ............................. 35
Aquitetura do codificador para os quadros NRWZ. .......................................... 36
Aquitetura do decodificador para os quadros NRWZ. ....................................... 38
Funções massa de probabilidade. A função fX (x) é a fdp dos coefficientes
transformados residuais modelada como distribuição laplaciana. p(q) é calculada
para cada valor possível de q. pC (c) = ψ(QPwz , M ) depende de fX (x) e a
quantidade de valores possíveis é determinada por M , neste caso M = 5. ............ 40
Exemplo de Decodificação. O índice recebido é c = 2, a informação lateral
y = −1. Logo, o valor reconstruído x̂ dadas todas as possibilidades onde o valor
q gerou o índice c = 2, para as funções de massa de probabilidade exemplificadas,
é igual a −3. ........................................................................................... 42
Procura da melhor predição. Depois de seleccionar o melhor predito nos quadros
filtrados, a alta freqüência do bloco é adicionada. ............................................ 45
Iteração do processo de semi super resolução. ................................................ 46
Comparação entre interpolação e semi super resolução. (a) Quadro interpolado
com PSNR 34,12 dB. (b) Quadro em semi super resolução com PSNR 36,775 dB.
A melhora é visualmente perceptível. ........................................................... 46
As primeiras sete bandas de freqüência em um bloco 8 × 8 de coeficientes
transformados ......................................................................................... 48
xv
5.2
5.3
5.4
5.5
Estimação da variância dos coeficientes residuais Laplacianos. Valores reais
de σx2 /QPt2 vs. E e sua aproximação linear usando H.263+ para 4 bandas de
freqüência. .............................................................................................
Estimação da variância dos coeficientes residuais Laplacianos. Valores reais de
σx2 /QPt2 vs. E e sua aproximação linear usando H.264/AVC para 6 bandas de
freqüência. .............................................................................................
2
Estimação da variância do ruído Gaussiano. Valores reais de σX
/σZ2 vs. Rn e sua
aproximação linear usando H.263+ para 4 bandas de freqüência. ........................
Curvas de RD obtidas para calcular o casco convexo inferior. Mostrando as curvas
de codificação ideal Slepian-Wolf (SW), codificação convencional sem cosets
com reconstrução ótima, e: (a) curvas RD com M constante e variando QPwz ,
(b) curvas de RD com QPwz constante e variando M . ......................................
51
52
54
59
6.1
Ordem zig-zag de um bloco 4 × 4................................................................ 66
7.1
Quadros de exemplo das seqüências utilizadas. (a) Baixo Movimento, da
esquerda para direita: Akiyo, Container e Hall Monitor. (b) Movimento Médio,
da esquerda para diretira: Mother-Daughter e Silent. (c) Alto Movimento, da
esquerda para direita: Coastguard, Foreman, Mobile e Soccer ...........................
Resultados de PSNR média para a componente de luminância da seqüência
Foreman no modo IbP bP . Comparando H.264 convencional no modo IBP BP
e o modo de codificação Wyner-Ziv depois de 1,2 e 3 iterações. .........................
Resultados de PSNR média para a componente de luminância para seqüências de
baixo e médio movimento no modo IbP bP . Comparando H.264 convencional no
modo IBP BP , o modo de codificação Wyner-Ziv IbP bP depois de 3 iterações,
a camada base e os quadros chave junto com os quadros SSR. (a) Akiyo, (b) Hall
Monitor e (c) Silent ..................................................................................
Resultados de PSNR para a componente de luminância para seqüências de
alto movimento no modo IbP bP . Comparando H.264 convencional no modo
IBP BP , o modo de codificação Wyner-Ziv depois de 3 iterações, a camada base
e os quadros chave junto com os quadros SSR. (a) Foreman, (b) Coastguard, (c)
Soccer e (d) Mobile ..................................................................................
Resultados de PSNR para a componente de luminância e crominância para
seqüências de baixo e médio movimento no modo IbP bP . Comparando H.264
convencional, o modo de codificação Wyner-Ziv depois de 3 iterações e a camada
base. (a) Akiyo, (b) Hall Monitor e (c) Silent ..................................................
Resultados de PSNR para a componente de luminância e crominância para
seqüências de alto movimento no modo IBPBP. Comparando H.264 convencional,
o modo de codificação Wyner-Ziv depois de 3 iterações e a camada base. (a)
Foreman, (b) Coastguard, (c) Soccer e (d) Mobile ...........................................
Resultados de PSNR para a componente de luminância no modo IpP pP .
Comparando H.264 convencional, o modo de codificação Wyner-Ziv depois de
3 iterações, a camada base e os quadros chave junto com os quadros SSR. (a)
Container - baixo movimento, (b) Mother-Daughter - movimento médio, (c)
Foreman - alto movimento .........................................................................
Resultados de PSNR para a componente de luminância e crominância no modo
IpP pP . Comparando H.264 convencional, o modo de codificação Wyner-Ziv
depois de 3 iterações e a camada base. (a) Container - baixo movimento, (b)
Mother-Daughter - movimento médio, (c) Foreman - alto movimento .................
7.2
7.3
7.4
7.5
7.6
7.7
7.8
76
80
81
82
84
85
86
87
7.9
7.10
7.11
7.12
7.13
I.1
I.2
I.3
I.4
Resultados de PSNR para a componente de luminância no modo IbIbI. Comparando
H.264 convencional no modo IBIBI, o modo de codificação Wyner-Ziv depois
de 3 iterações e a camada base e os quadros chave junto com os quadros SSR. (a)
Hall Monitor - baixo movimento, (b) Coastguard- alto movimento, (c) Foremanalto movimento .......................................................................................
Resultados de PSNR para a componente de luminância e crominância no
modo IbIbI. Comparando H.264 convencional no modo IBIBI; o modo de
codificação Wyner-Ziv depois de 3 iterações; e a camada base. (a) Hall Monitor
- baixo movimento, (b) Coastguard- alto movimento, (c) Foreman- alto movimento
Resultados de PSNR para a componente de luminância da seqüência Foreman
no modo IbbP bbP . Comparando H.264 convencional e o modo de codificação
Wyner-Ziv. .............................................................................................
Curvas de PSNR para a componente Y . Comparando o modo de codificação com
resolução mista com outra arquitetura de DVC: (a) Foreman CIF; (b)Hall Monitor
CIF, (c) Soccer CIF ..................................................................................
Resultados do processo de semi super resolução para quatro seqüências diferentes.
Comparando a semi super resolução para quadros b usando quadros-chave tipo I
e tipo P , e a interpolação SE-B para os mesmos quadros chave. .........................
88
89
90
91
93
Codificação de cosets con reconstrução MSE. ................................................ 115
Codificação a taxa zero e reconstrução MSE. ................................................. 116
Codifiador Slepian-Wolf ideal com recosntrução MSE. .................................... 117
Codificação convencional com reconstrução MSE ........................................... 118
LISTA DE TABELAS
5.1
5.2
Valores do fator de atenuação ρ para um bloco 4 × 4 ....................................... 51
Tabela de mapeamento para σZ =1.1 ............................................................. 62
6.1
6.2
Códigos Exp-Golomb ............................................................................... 65
Tabela de Codificação (Primeiro Grupo, 1 ≤ maxC ≤ 3). ................................. 70
7.1
7.2
7.3
7.4
Seqüências de vídeos utilizadas nos experimentos ...........................................
Ganho da taxa de bits do bit-stream da camada Wyner-Ziv ................................
Tempo de codificação do H.264/AVC codec. (EM: Estimação de Movimento) ......
Tempo de codificação do modo com resolução mista no H.264/AVC (EM:
Estimação de Movimento) .........................................................................
Tempo de codificação do modo com resolução mista no H.264/AVC (EM:
Estimação de Movimento, FPS: frame per second) ..........................................
7.5
75
75
77
78
79
II.1 Tabela de Codificação, grupo I, 10 < maxC ≤ 16. T1s significa número de
Trailing ones. .......................................................................................... 119
II.2 Tabela de Codificação, grupo I, 6 < maxC ≤ 10............................................. 120
II.3 Tabela de Codificação, grupo I, 3 < maxC ≤ 6. ............................................. 120
II.4 Tabela de Codificação, grupo I, 1 < maxC ≤ 3. ............................................. 120
II.5 Tabela de Codificação, grupo I, 0 ≤ maxC ≤ 1. ............................................. 120
II.6 Tabela de Codificação, grupo II, 10 < maxC ≤ 16. ......................................... 121
II.7 Tabela de Codificação, grupo II, 6 < maxC ≤ 10............................................ 122
II.8 Tabela de Codificação, grupo II, 3 < maxC ≤ 6. ............................................ 122
II.9 Tabela de Codificação, grupo II, 1 < maxC ≤ 3. ............................................ 122
II.10 Tabela de Codificação, grupo II, 0 ≤ maxC ≤ 1. ............................................ 122
II.11 Tabela de Codificação, grupo III, 10 < maxC ≤ 16. ........................................ 123
II.12 Tabela de Codificação, grupo III, 6 < maxC ≤ 10........................................... 124
II.13 Tabela de Codificação, grupo III, 3 < maxC ≤ 6. ........................................... 124
II.14 Tabela de Codificação, grupo III, 3 < maxC ≤ 6. ........................................... 124
II.15 Tabela de Codificação, grupo III, 0 ≤ maxC ≤ 1. ........................................... 124
II.16 Códigos quando a quantidade Total de zeros máxima igual a 1. .......................... 125
II.17 Códigos quando a quantidade Total de zeros máxima igual a 2. .......................... 125
II.18 Códigos quando a quantidade Total de zeros máxima igual a 5. .......................... 125
II.19 Códigos quando a quantidade Total de zeros máxima igual a 9. .......................... 126
II.20 Códigos quando a quantidade Total de zeros máxima igual a 15. ........................ 127
xix
LISTA DE SIGLAS, ABREVIAÇÕES E
ACRÔNIMOS
Abreviações, Acrônimos e Siglas
BF
CABAC
CAVLC
CBP
CODEC
CRC
DCT
DPCM
DSC
DVC
EM
FDP
FGS
H.26X
H.261
H.263
H.263+
H.264/AVC
H.26L
IDCT
ITU
LPDC
MPEG
MPEG-1
MPEG-2
MPEG-4
MR-DVC
MSE
MV
NRWZ
PDF
PRISM
PSNR
QoS
QWZ
RD
RDO
SAD
SI
SNR
SSR
SVC
SW
TV
WZ
Banda de Freqüência
Context-Based Adaptive Binary Arithmetic Coding
Context-Based Adaptive Variable Length Coding
Coded Block Pattern
Codificador e Decodificador
cyclic redundancy check
Discrete Cousine Transform
Differential Pulse Code Modulation
Distributed Source Coding
Distributed Video Coding
Estimação de Movimento
Função Densidade de Probabilidade
Fine Granular Scalability
Padrões de compressão de vídeo da International Telecomunication Union
Padrão de Compressão de vídeo
Padrão de Compressão de vídeo
Padrão de Compressão de vídeo (versão melhorada do H.263)
Padrão de Compressão de vídeo (Advanced Video Coding)
Codificador implementado entre os padrões H.263+ e H.264/AVC
Inverse Discrete Cousine Transform
International Telecommunication Union
Low-Density Parity-Check Codes
Motion Picture Experts Group
Padrão de Compressão de vídeo
Padrão de Compressão de vídeo
Padrão de Compressão de vídeo
Mixed Resolution Distributed Video Codec
Mean Square Error
Motion Vectors
non-reference Wyner-Ziv
Probability Density Function
Power-efficient, robust, high-compression syndrome based multimedia coding
Peak Signal to Noise Ratio
Quality of Service
Quadros Wyner-Ziv
Rate-Distortion
Rate-Distortion Optimization
sum of absolute differences
Side Information
Signal to Noise Ratio
Semi Super Resolução
Scalable Video Coder
Slepian-Wolf
Televisão
Wyner-Ziv
xxi
1 INTRODUÇÃO
1.1
CODIFICAÇÃO DE VÍDEO
A compressão de vídeo digital é necessária para se realizar uma codificação eficiente, seja
para armazenamento ou transmissão do sinal de vídeo. O objetivo é manter uma qualidade de
reconstrução que depende da aplicação, ao mesmo tempo reduzindo ao máximo a quantidade de
dados (bits) armazenados ou transmitidos.
Uma seqüência de vídeo natural é um sinal contínuo no tempo e espaço. O vídeo digital
é composto por sinais amostrados temporal e espacialmente. Uma vez digitalizado, o vídeo
possui uma disposição tridimensional. Duas dimensões indicam a disposição espacial (horizontal
e vertical), e a terceira dimensão representa o domínio do tempo. Os elementos que compõem
uma imagem espacialmente são denominados de pixels, do inglês picture elements. Os pixels
possuem as informações de brilho e cor (luminância e crominância, respectivamente). No sistema
de transmissão de cores Y U V , o valor de Y (luminância) representa a componente de brilho. Este
sinal pode ser reproduzido sem os demais componentes, gerando uma versão monocromática ou
em escalas de cinza da imagem. Os componentes U e V (crominância) possuem a informação de
saturação e matiz das cores [1].
Ao amostrar temporalmente uma seqüência de vídeo cria-se o que é denominado quadro ou
frame. Um quadro representa o conjunto de todos os pixels que correspondem a um único instante
de tempo. Basicamente, um quadro é o mesmo que um retrato estático. A digitalização de um
sinal de vídeo é mostrada na Figura 1.1. A quantidade de pixels em cada quadro define a resolução
espacial do vídeo, enquanto a quantidade de quadros por segundo define a resolução temporal.
A compressão de vídeo pode ser definida como a redução da taxa de dados necessários
para codificar uma seqüência de quadros. Os métodos de compressão podem ser classificados
como: compressão com perdas, ou compressão sem perdas. A compressão sem perdas significa
comprimir os dados sem rejeitar ou alterar nenhuma informação presente neles. A compressão
com perdas tenta eliminar a informação irrelevante e redundante existente nos sinais de vídeo.
1
Figura 1.1: Elementos de uma sequência de vídeo digital: pixels e quadros.
Dependendo da taxa de compressão desejada, a quantidade de informação rejeitada aumenta ou
diminui, alterando a qualidade do sinal. A redundância pode ser do tipo espacial ou temporal.
Assim, a compressão de vídeo reduz tipicamente a redundância espacial utilizando técnicas de
compressão da imagem em cada quadro. Isto é conhecido como a compressão intra-quadros.
Por outro lado, a redução da redundância temporal é feita tipicamente mediante técnicas de
compensação de movimento, conhecida como compressão inter-quadros.
Atualmente, a maioria dos padrões técnicos de compressão de vídeo são projetados para
aplicações do tipo radiodifusão (broadcasting), onde existe um único codificador potente e
vários decodificadores de baixa complexidade. Alguns padrões técnicos são concebidos para
situações específicas como codificação a baixa taxa para videoconferência [2]. Os padrões de
codificação de vídeo como MPEG [3, 4, 5] e H.26X [2, 6] atingem altas taxas de compressão a
partir do uso da transformada discreta de cosseno em blocos e codificação preditiva inter-quadro.
Tipicamente, o codificador requer um esforço computacional muito maior que o decodificador [6]
devido principalmente à função de estimação de movimento. Portanto, eles são adequados para
comunicações de vídeo onde a codificação é feita apenas uma vez e a decodificação é realizada
várias vezes.
No entanto, novos requisitos na codificação de vídeo digital têm surgido. Requisitos como
2
flutuação de banda, restrição de energia e qualidade de serviço (QoS) podem chegar a ser tão
importantes como a taxa de compressão. A necessidade de satisfazer diferentes exigências de
decodificação faz com que a transcodificação seja necessária em muitas situações. Devido ao
fato de o transcodificador requerer alta capacidade computacional, a necessidade de um codec
(codificador e decodificador) de vídeo adaptável tem aumentado. Existe uma extensão com
adaptabilidade na relação sinal-ruido (signal to noise ratio ou SNR) para o padrão H.264/AVC
[7, 8, 9]. Esta extensão é conhecida como scalable video coder (SVC), e pode atingir algumas das
novas exigências de codificação. Outros codificadores com SNR adaptável foram apresentados
anteriormente [10, 11, 12], e há também trabalhos para obter e avaliar os limites teóricos do
desempenho em taxa-distorção, em inglês rate-distortion (RD), para algoritmos de compressão
de vídeo com taxa de bits adaptável [13].
A codificação distribuída de vídeo, em inglês distributed video coding (DVC), viabiliza
a criação de codecs com complexidade reversa. Na codificação de vídeo, e especificamente
neste trabalho, a complexidade se refere ao esforço computacional em termos de operações
realizadas para comprimir uma seqüência de vídeo. Os codecs com complexidade reversa
possuem baixa complexidade no codificador e alta complexidade de decodificação, ao contrário
da codificação convencional, orientada a codecs de radiodifusão. Logo, na codificação distribuída,
o decodificador requer maior esforço computacional que o codificador. Assim, o paradigma DVC
é adequado para aparelhos com restrição de potência que capturam e codificam vídeo em tempo
real, tanto para transmissão ou armazenamento, como redes de sensores, telefones móveis com
vídeo chamada e aparelhos portáteis, por exemplo.
1.2
APRESENTAÇÃO DO PROBLEMA
A codificação distribuída de fonte, em inglês distributed source coding (DSC), é baseada na
teoria de codificação de fontes correlatas desenvolvida por Slepian e Wolf [14] para o caso sem
perdas e Wyner e Ziv [15] para o caso com perdas. Recentemente, a codificação distribuída tem
sido o foco de diferentes tipos de codificadores de vídeo [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26].
Na arquitetura DVC é necessário gerar uma informação lateral, side information (SI), para a
3
correta decodificação do sinal. O desempenho da codificação distribuída é altamente dependente
da qualidade da informação lateral.
Em cenários realistas para comunicações de vídeo usando aparelhos com restrição de energia,
é importante verificar os seguintes aspectos:
• Não é realmente necessário que o codificador de vídeo sempre opere no modo de
complexidade reversa. Este modo pode ser ligado somente quando a bateria disponível
diminui.
• Se a redução de complexidade é importante, manter a largura de banda também é
um requisito básico. Logo, a redução de complexidade deve se adaptar levando em
consideração um melhor desempenho em termos de RD.
• Como o vídeo transmitido por um aparelho móvel pode ser recebido e executado em tempo
real por outro aparelho móvel, o decodificador deve pelo menos suportar um modo de
decodificação de baixa qualidade, mas de baixo esforço computacional. Um processo de
decodificação de alta qualidade pode ser realizado paralelamente por um servidor. A outra
opção seria introduzir um transcodificador na rede que possa permitir baixa complexidade
em ambos terminais de comunicação [27, 28].
• Enquanto a maioria dos trabalhos prévios em DVC [17, 24, 29] usam uma arquitetura que
precisa de um canal de retorno, é mais prático considerar o caso onde a decodificação não
necessariamente deve ser feita imediatamente após ser recebida. Logo, se a decodificação
pode ser feita a qualquer momento o canal de retorno pode não estar disponível.
Além destas observações, como já mencionado, existem diferentes trabalhos recentes sobre
DVC. Vários deles são baseados em codificadores DVC que usam quadros-chave periódicos, os
quais são codificados utilizando somente técnicas de compressão intra-quadros ou simplesmente
do tipo intra [17, 24, 30, 31, 32].
Logo, sem estimação de movimento, o codificador é
significativamente menos complexo que o decodificador. Porém, isto limita o desempenho em
termos de RD, devido à elevada taxa requerida para codificação apenas intra-quadro, e a baixa
qualidade da SI. Uma forma óbvia de melhorar o desempenho seria permitir o uso de codificação
inter-quadro nos quadros-chave. Porém, o desempenho ainda seria limitado, devido à qualidade
4
da SI gerada no decodificador. Uma variação deste tipo de métodos [18, 33] transmite uma
informação auxiliar para melhorar a geração da SI. Porém, a taxa necessária para transmitir a
informação auxiliar normalmente é proibitiva. Outro método [34] usa uma versão altamente
comprimida dos quadros, limitando a estimação de movimento a vetores iguais a zero, para
também melhorar a SI. Porém, no caso de haver um canal de retorno, este método não possui
um mecanismo adequado de alocação de taxa.
Assim, neste trabalho apresentamos uma proposta para um codificador distribuído de vídeo
que considera todos os aspectos mencionados anteriormente, além de oferecer uma nova
arquitetura de DVC, novos métodos de geração de SI e mecanismos para omitir o canal de retorno.
1.3
ORGANIZAÇÃO
O trabalho está dividido em oito capítulos, incluíndo o presente capítulo introdutório. O
Capítulo 2 tem como objetivo apresentar conceitos básicos de codificação de fonte e canal, assim
como introduzir os teoremas de Slepian-Wolf e Wyner-Ziv.
No Capítulo 3 serão abordados os princípios básicos da codificação de vídeo convencional,
conhecida como codificação híbrida. Também, serão apresentadas as duas arquiteturas de DVC
mais mencionadas na literatura; e serão listadas as vantagens e desvantagens da codificação
distribuída em comparação à codificação convencional.
O Capítulo 4 representa a descrição do codificador e decodificador propostos. Neste capítulo,
serão abordadas as formas de funcionamento do modo de codificação Wyner-Ziv desenvolvido, e
a geração do código de canal utilizado.
Os mecanismos para a escolha dos parâmetros de codificação e estimação da correlação
estatística dos sinais, para evitar o uso do canal de retorno, são descritos no Capitulo 5. Neste
capítulo, uma caracterização RD para diferentes modelos de codificação distribuída é apresentada
também.
No Capítulo 6 é detalhada a codificação de entropia dos cosets. A qual foi feita modificando
um codificador existente no H.264/AVC.
5
Os resultados experimentais obtidos a partir da aplicação do trabalho desenvolvido ao padrão
de codificação de vídeo H.264/AVC [6] são apresentados no Capítulo 7.
Finalmente, o Capítulo 8 é destinado às conclusões finais do trabalho, detalhando as
contribuição feitas e as perspectivas para a continuidade da pesquisa.
6
2 CODIFICAÇÃO DE FONTE COM
INFORMAÇÃO LATERAL
Neste capítulo definimos certos conceitos básicos de teoria da informação e apresentamos uma
introdução à codificação de fonte e canal.
Também trataremos brevemente dos resultados
teóricos da codificação de fonte usando informação lateral no decodificador, tanto para codificar
sem perdas como com perdas. O entendimento destes conceitos básicos é importante para a
compreensão da aplicação da presente pesquisa.
2.1
CONCEITOS BÁSICOS DE TEORIA DA INFORMAÇÃO
A teoria da informação responde as duas questões fundamentais da compressão e codificação
de dados: qual a máxima compressão possível, e qual a melhor taxa de transmissão nas
comunicações [35]. Ela é elaborada sobre o tratamento de variáveis aleatórias, assim como o
agrupamento delas em processos estocásticos. Uma variável aleatória é uma função mensurável,
que atribui valores numéricos únicos a todos os possíveis resultados de um experimento aleatório
sob determinadas condições. Os processos estocásticos permitem expressar matematicamente
as relações entre suas variáveis aleatórias. Uma introdução a variáveis aleatórias e processos
estocásticos pode ser encontrada em outros trabalhos [36].
Um conceito básico da teoria da informação é o conceito de fonte. O termo fonte é usado para
indicar um processo que gera mensagens de informação sucessivas dentre um dado conjunto de
mensagens possíveis. Uma fonte pode ser modelada como uma variável aleatória X que emite
símbolos de um alfabeto χ e com função massa de probabilidade p(x). Associada a cada fonte
existe sua entropia H. A entropia é uma medida da incerteza de uma variável aleatória. Em
termos de teoria de informação, a entropia indica a média da informação que uma fonte possui,
em bits por símbolo.
Definição: Seja X uma variável aleatória discreta com alfabeto χ e função massa de probabilidade
7
p(x), x ∈ χ. Logo a entropia H(X) é definida como:
H(X) = −
X
p(x) log2 p(x).
(2.1)
x∈χ
A partir de (2.1) é possível definir a entropia conjunta e a entropia condicional de duas
variáveis aleatórias. Seja Y uma variável aleatória discreta com alfabeto γ.
Definição: A entropia conjunta H(X, Y ) de duas variáveis aleatórias discretas (X, Y ) com
função massa de probabilidade conjunta p(x, y) é definida como:
H(X, Y ) = −
XX
p(x, y) log2 p(x, y).
(2.2)
y∈γ x∈χ
E a entropia condicional de Y dado X é expressada como:
H(Y |X) = −
XX
p(x, y) log2 p(x|y).
(2.3)
x∈χ y∈γ
Pode ser mostrado que a entropia conjunta de duas variáveis aleatórias é igual à entropia de
uma delas mais a entropia condicional da outra:
H(X, Y ) = H(X) + H(Y |X).
(2.4)
Outro conceito importante é a informação mútua. A informação mútua é uma medida da
quantidade de informação que uma variável aleatória possui sobre outra variável aleatória. Em
outras palavras, é a redução de incerteza de uma fonte X devido ao conhecimento de Y .
Definição: Considere duas variáveis aleatórias X e Y com função massa de probabilidade
conjunta p(x, y) e com funções massa de probabilidade marginais p(x) e p(y). A informação
mútua I(X; Y ) é a entropia relativa entre a distribuição conjunta e o produto de p(x)p(y):
I(X; Y ) =
XX
p(x, y) log2
x∈χ y∈γ
p(x, y)
.
p(x)p(y)
(2.5)
A equação (2.5) pode ser expressa em termos da entropia de uma das fontes e sua respectiva
entropia condicional:
8
I(X; Y ) = H(Y ) − H(Y |X).
(2.6)
Como H(X, Y ) = H(X) + H(Y |X) temos que:
I(X; Y ) = H(X) + H(Y ) − H(X, Y ).
2.2
(2.7)
CODIFICAÇÃO DE FONTE
No trabalho de Shannon [37] existem três resultados principais: o teorema de codificação de
fontes, o teorema da taxa-distorção e o teorema da codificação de canal. O primeiro consiste na
compressão sem perdas de uma fonte discreta; fontes contínuas não podem ser reproduzidas sem
perdas. Neste teorema, foi provado que uma fonte discreta X pode ser reconstruída perfeitamente
se, e somente se foi transmitida com uma taxa RX não menor que a entropia H(X). Logo, a
condição necessária para compressão sem perdas é:
RX ≥ H(X).
(2.8)
A Figura 2.1 descreve um sistema básico de codificação e transmissão de uma fonte sem perda
de informação.
DECODIFICADOR
CODIFICADOR
Figura 2.1: Compressão de fonte sem perdas. A fonte X deve ser transmitida com não menos que
H(X) bits.
A compressão com perdas é tratada no teorema de taxa-distorção. Se a reconstrução do sinal
X é denotada por X̂ ou X ′ , então definimos a distorção D como:
D = d(X; X̂),
9
(2.9)
onde d é uma medida de distorção. Uma medida comum é o erro quadrático medio, ou mean
square error (MSE), definido como d(X; X̂) = E[(X − X̂)2 ]. Porém, existem outras medidas de
distorção [38].
O teorema taxa-distorção prova que dada uma distorção D aceitável, existe uma taxa mínima
RX associada a esta distorção. A taxa é determinada pela função de taxa-distorção RX (D). A
função RX (D) é convexa e retorna a mínima taxa para reconstruir X com uma distorção máxima
de D. Em outros estudos pode-se encontrar mais detalhes sobre ambos os teoremas [35, 37, 38,
39]. O teorema da codificação de canal é abordado na subseção a seguir.
2.3
CODIFICAÇÃO DE CANAL
Um código de canal transforma uma entrada binária ~i em um código ~c. A taxa do código é
definida como RC =
k
n
≤ 1, o qual especifica que uma entrada de tamanho k gera um código de
tamanho n. Os códigos corretores de erro ajudam a inferir a informação original ~i mesmo se o
código ~c estiver corrompido [40, 41]. O teorema da codificação de canal [35] indica que para um
valor real ǫ > 0 e uma taxa de codificação RC < C, onde C é a capacidade do canal, existe um
código C tal que a probabilidade de erro depois da decodificação é menor que ǫ. A definição da
capacidade do canal é descrita a seguir.
Definição: Se X é a entrada de um código discreto de canal sem memória que gera a saída C, a
capacidade de canal é definida como:
C = maxp(x) I(X; C),
(2.10)
A capacidade do canal indica quanta informação pode ser transmitida por um canal com uma
probabilidade de erro próxima a zero. Uma extensão dos teoremas de codificação de fonte e
codificação de canal é o teorema de codificação de fonte-canal [35]. Ele estabelece que existe um
codec fonte-canal que permite codificar uma fonte com entropia H(X) de maneira confiável num
determinado canal se e somente se H(X) < C. No caso de codificação com perdas, sendo D a
distorção permitida, é fácil verificar que se pode obter um código com taxa R(D) < C, já que
H(X) = R(0) ≥ R(D).
10
Um código de canal sistemático é formado pelo vetor original de entrada mais uma informação
extra, chamada de paridade.
A paridade ajuda a corrigir o vetor original no processo de
decodificação caso um erro de transmissão tenha ocorrido. Logo, em um codificador sistemático
C = [X|Pd ], onde Pd é a paridade e o operador “ | ” representa concatenação de vetores.
2.4
CODIFICAÇÃO DE FONTE COM INFORMAÇÃO LATERAL
A codificação de fonte com informação lateral é baseada nos resultados de Slepian-Wolf [14]
para codificação sem perda de informação, e Wyner-Ziv [15] para a codificação com perdas.
2.4.1
Codificação Slepian-Wolf
A teoria de codificação de fonte de Shannon, expressa por (2.8), pode ser facilmente expandida
para a codificação conjunta de duas fontes (X, Y ) com entropia conjunta H(X, Y ), se for tratada
como a codificação de uma única fonte Z com entropia H(Z) = H(X, Y ). Logo, para obter
uma reconstrução sem perdas basta usar uma taxa RZ ≥ H(Z). Porém, o problema também
pode ser visto da seguinte forma: podemos transmitir a fonte X a uma taxa RX ≥ H(X), e
transmitir Y usando RY ≥ H(Y |X) bits, baseado no perfeito conhecimento prévio de X. Note
que RX + RY ≥ H(X, Y ) por (2.4). O diagrama básico da codificação conjunta de duas fontes é
mostrado na Figura 2.2.
CODIFICADOR
1
DECODIFICAÇÃO
CONJUNTA
CODIFICADOR
2
Figura 2.2: Codificação conjunta de duas fontes X e Y . Uma taxa não inferior a H(X, Y ) é
suficiente para reconstrução sem perdas.
11
Em 1973, o resultado de Slepian e Wolf [14] conseguiu expandir a teoria de Shannon para
a codificação separada de duas fontes correlatas. De acordo com o teorema de Slepian-Wolf,
duas fontes podem ser codificadas separadamente e reconstruídas sem perdas se as estatísticas
são conhecidas e RX ≥ H(X|Y ), RY ≥ H(Y |X) e RX + RY ≥ H(X, Y ). Este resultado é
mostrado na Figura 2.3.
CODIFICADOR
1
DECODIFICAÇÃO
CONJUNTA
CODIFICADOR
2
Figura 2.3: Codificação separada de duas fontes, com decodificação conjunta. H(X, Y ) continua
sendo suficiente para reconstrução sem per das.
Este teorema estende a região de codificação com possível reconstrução sem perdas para
duas fontes correlatas. Na Figura 2.4 é mostrada a região de possível decodificação perfeita,
ressaltando a região triangular superior (entre os pontos A e B) que representa a contribuição da
codificação Slepian-Wolf.
A codificação de fonte com informação lateral sem perda de informação é um caso particular
da codificação Slepian-Wolf. Pela teoria de Slepian-Wolf se a fonte Y existe somente no
decodificador, ou foi transmitida a uma taxa não menor que H(Y ), é possível codificar a fonte
correlata X a uma taxa não menor que H(X|Y ) para obter uma reconstrução perfeita X̂ = X. A
fonte Y recebe o nome de informação lateral.
Se na codificação com informação lateral RX = H(X|Y ), o sistema estaria operando
exatamente no ponto A na Figura 2.4. O diagrama básico da codificação de fonte sem perdas
com informação lateral é apresentada na Figura 2.5.
12
RY
Taxas disponíveis para
codificação tradicional
(Shannon)
H(Y,X)
H(Y)
A
H(Y|X)
Taxas disponíveis para
codificação Slepian-Wolf
B
RX
H(X|Y)
H(X,Y)
H(X)
Figura 2.4: Região de possível reconstrução sem perda. A região triangular indica a região de
codificação Slepian-Wolf.
DECODIFICADOR
CODIFICADOR
Figura 2.5: Codificação de fonte sem perdas com informação lateral.
2.4.2
Codificação Wyner-Ziv
Três anos depois da publicação de Slepian e Wolf, Wyner e Ziv [15] expandiram os resultados
para a codificação com perdas com informação lateral. Assim como o teorema da codificação de
fonte pode ser visto como um caso especial do teorema da taxa-distorção, se D = 0, a codificação
de fonte com informação lateral de Slepian-Wolf pode ser vista como o caso de distorção zero
para a codificação de Wyner-Ziv.
Seja RW Z (D) a função taxa-distorção de Wyner-Ziv. Se RX (D) é a função taxa-distorção
para codificar e decodificar a fonte X com um valor esperado de distorção D, e RX|Y (D) é a
função associada à codificação de X dada a informação perfeita de Y com distorção aceitável D.
Wyner e Ziv provaram a veracidade das relações: RW Z (D) ≥ RX|Y (D) e RW Z (D) ≤ RX (D).
13
DECODIFICADOR
CODIFICADOR
Figura 2.6: Codificação de fonte com perdas com informação lateral.
O cenário interessante é quando a informação lateral Y está presente somente no decodificador
(Figura 2.6). No trabalho de Wyner-Ziv foi provado que, na codificação com informação lateral,
existe uma situação onde RW Z (D) = RX|Y (D), com o MSE como medida de distorção. O
que significa que a codificação com informação lateral iguala o desempenho do codificador
com conhecimento perfeito de Y . Para isso, X precisa ser uma fonte discreta ou contínua com
distribuição de massa ou densidade, respectivamente, gaussiana e a informação lateral deve ser
igual a:
Y = X + Z,
(2.11)
onde Z é gaussiana e independente de X. Mais tarde, foi provado que é necessário somente que
Z seja gaussiana [42]. Z é conhecido como ruído de correlação Wyner-Ziv.
Quando estas condições não são cumpridas, existe uma diferença de taxa ∆R = RW Z (D) −
RX|Y (D). Neste caso, a codificação com informação lateral sempre terá um desempenho pior que
a codificação conjunta de ambas as fontes. ∆R é chamada de perda de codificação Wyner-Ziv.
Foi provado que o limite superior desta perda é : ∆R < RX (D) − RX|Y (D) [43].
Neste capítulo foram apresentados conceitos básicos de teoria da informação e codificação de
fonte com informação lateral. Estes conceitos são importantes para o entendimento do codificador
proposto. No capítulo seguinte abordaremos os paradigmas de codificação híbrida e distribuída
de vídeo.
14
3 PARADIGMAS DE CODIFICAÇÃO DE VÍDEO
DIGITAL
Este capítulo tem como foco a compressão de vídeo digital. Aqui será revisto o estado-da-arte
em codificação convencional, conhecida como codificação híbrida, seguido de uma revisão de
contribuições importantes na codificação distribuída de vídeo.
Uma seção discutindo as vantagens e desvantagens da codificação distribuída comparada a
codificação híbrida está também presente neste capítulo. Assim, é possível entender os cenários
onde a codificação distribuída é preferível à convencional, e vice-versa; como bem compreender
melhor as contribuições do presente trabalho.
3.1
CODIFICAÇÃO HÍBRIDA DE VÍDEO
Um sinal digital de vídeo, como definido da Seção 1.1, é um sinal tridimensional. Este sinal é
composto de uma seqüência discreta de imagens (quadros), que são representados por uma matriz
discreta de valores de luminância e crominância. A maioria dos padrões de codificação de vídeo
é baseada no mesmo modelo genérico de codec de vídeo [44]. Este codec incorpora funções
de estimação e compensação de movimento, um estágio de transformação e quantização, e um
codificador de entropia. Este modelo é normalmente conhecido como codificação híbrida, pois
combina a codificação por transformada, normalmente a transformada discreta de cossenos (ou
DCT), e a codificação por compensação de movimento, referida como modelo DPCM (do inglês
differential pulse code modulation).
A redundância temporal de um sinal de vídeo digital é reduzida por codificação preditiva
inter-quadro. Na codificação DPCM cada amostra é predita a partir de uma ou mais amostras
previamente transmitidas.
Usando o mesmo princípio, um codec de vídeo DPCM, gera
um modelo do quadro a ser codificado baseado em quadros transmitidos (ou armazenados)
anteriormente. O quadro a ser codificado é chamado de quadro fonte, enquanto que os quadros
15
usados para realizar a predição são conhecidos como quadros de referência. Inicialmente, o
quadro fonte é dividido em blocos. A predição temporal, ou estimação de movimento, é feita
a partir destes blocos de forma independente. O objetivo é encontrar, nos quadros de referência,
a região mais similar ao bloco que está sendo codificado. Os quadros de referência normalmente
são quadros adjacentes, por exemplo, o quadro exatamente anterior ao quadro fonte. O processo
de gerar o quadro resultante, ao substituir cada bloco do quadro fonte pelo seu predito, é chamado
de compensação de movimento. Este quadro resultante é subtraído do quadro fonte original para
gerar o quadro residual. A entropia do quadro residual é menor que a do quadro fonte [45],
podendo ser codificado mais eficientemente. Assim, somente são codificadas as informações
necessárias para gerar o mesmo quadro compensado no decodificador (vetores de movimento) e
o quadro residual. Os vetores de movimento indicam a posição da região escolhida no quadro de
referência com relação ao bloco no quadro fonte.
No processo de transformação, o quadro residual é levado para outro domínio e representado
por coeficientes. No domínio espacial, as amostras são altamente correlatas. O objetivo da
transformação é reduzir esta correlação, gerando idealmente um pequeno número de coeficientes
significativos para obter uma representação visual com uma distorção aceitável, e um número
alto de coeficientes que podem ser eliminados [45]. Finalmente, os coeficientes restantes são
codificados mediante um codificador de entropia (ou codificador sem perdas).
Nas Figuras 3.1 e 3.2 são mostrados um codificador e um decodificador genéricos DPCM/DCT,
respectivamente. Se X(m, n, t) denota um sinal de vídeo tridimensional, onde (m, n) são
as dimensões espacias e t representa a dimensão temporal, podemos definir um quadro como
simplesmente X(t). Assim, no codificador (Figura 3.1) o quadro fonte, X(t), é processado para
gerar um bit-stream (seqüência de bits codificados). No decodificador (Figura 3.2) o bit-stream
recebido é usado para obter um quadro reconstruído X ′ (t) (ou X̂(t)). Note que normalmente
o processo possui perdas devidas principalmente à quantização dos coeficientes transformados,
logo X ′ {t} 6= X(t).
No codificador existem dois fluxos principais de dados: o fluxo de codificação e o fluxo de
reconstrução, conhecido como decodificador local. O fluxo de codificação DPCM/DCT pode ser
descrito da seguinte forma [44]:
16
Figura 3.1: Esquema básico de um codificador híbrido
Figura 3.2: Esquema básico de um decodificador híbrido
• O quadro fonte, X(t), a ser codificado, é inicialmente dividido em blocos de N × N pixels.
Normalmente N = 16. Os blocos são denominados macroblocos.
• Depois, os macroblocos de X(t) são comparados com os quadros de referência, por
exemplo com X ′ (t − 1). Assim, a função de estimação de movimento encontra a região
de N × N pixels em X ′ (t − 1) mais similar ao macrobloco que esta sendo codificado. A
região escolhida em X ′ (t − 1) é chamada de predita.
• A posição no quadro X ′ (t − 1) do predito de cada macrobloco é guardada em forma de
vetores de movimento (em inglês motion vectors, ou MV).
• Usando os MVs de cada macrobloco é gerado um quadro compensado, que é formado
ao substituir cada macrobloco em X(t) pelo seu predito. Este processo é chamado de
compensação de movimento.
• O quadro residual D(t) é formado subtraindo o quadro compensado do quadro fonte
original X(t).
17
• D(t) é transformado usando a DCT em blocos M × M . Usualmente, M = 8 ou M = 4.
• Cada bloco transformado é quantizado, usando um passo de quantização QP , e reordenado.
O reordenamento é feito para melhorar a eficiência da codificação de entropia.
• Finalmente, o sinal reordenado, junto com os MVs e informações adicionais de cabeçalho,
são comprimidos sem perdas, mediante um codificador de entropia.
O fluxo do decodificador local é o seguinte [44]:
• Cada bloco quantizado Q passa por um processo de re-escala. A re-escala tenta inverter
a quantização.
Porém, não é possível recuperar a perda de informação gerada pela
quantização, logo Q′ 6= Q.
• Os coeficientes passam pelo processo de transformação inversa (IDCT).
• O quadro compensado é adicionado ao resíduo D′ (t) para produzir o frame reconstruído
X ′ (t). Este quadro será armazenado para ser usado como quadro de referência.
Note que a estimação de movimento é feita utilizando dados reconstruídos, pois o decodificador
não possui os dados originais. Assim, evitam-se erros de escorregamento (no inglês drifting
errors). Existem trabalhos recentes que usam dados originais para a estimação de movimento e
dados reconstruídos para a compensação de movimento para permitir a paralelização do processo
[46, 47].
O fluxo de dados no decodificador remoto é similar ao fluxo do decodificador local, com a
diferença que no decodificador remoto é necessário utilizar um decodificador de entropia para
obter o resíduo quantizado e os vetores de movimento a partir do bit-stream.
Quando é utilizado somente o quadro anterior para codificar um quadro fonte, a codificação é
chamada de preditiva e o quadro codificado é chamado de tipo P . Se o quadro anterior e posterior
são utilizados como referência, então a codificação é bi-preditiva e o quadro é chamado de tipo
B. Os quadros B normalmente não são usados como referência para outros quadros, porém no
padrão H,264/AVC é possivel ter quadros B de referência. Isto é exemplificado na Figura 3.3,
18
Figura 3.3: Exemplos de codificação preditiva e bi-preditiva. É mostrada a ordem de exibição e
codificação, as setas indicam quais quadros são usados como referência da codificação do quandro
fonte.
onde os quadros I representam os quadros codificados sem informação temporal (codificação
intra-quadro), que basicamente seria transformação e quantização.
O modelo híbrido descrito é compatível com os padrões H.261 [48], H.263 [49], MPEG-1
[50], MPEG-2 [51], MPEG-4 Visual [52] e H.264/AVC [53]. O padrão MPEG-2 é um dos mais
usados em produtos comerciais na atualidade, como por exemplo, em vídeos no formato de digital
versatile disc (DVD) e alguns padrões de TV digital. O padrão MPEG-4 Visual além de comprimir
seqüências de video natural com melhor desempenho que o seu antecessor MPEG-2, possui uma
série de ferramentas, como codificação de objetos com forma arbitrária e codificação de vídeo
sintético, como por exemplo, animações 3-D. Porém, o padrão H.264/AVC, também conhecido
como MPEG-4 Part 10, representa o estado-da-arte para codificação de sequências naturais de
quadros retangulares. O H.264/AVC consegue, para uma qualidade determinada, menor taxa
que os outros padrões mencionados [44]. Uma boa introdução aos algoritmos de codificação do
19
H.264/AVC pode ser encontrada em trabalhos anteriores [6, 44].
O H.264/AVC obtém um melhor desempenho que seus antecessores principalmente devido
à: possibilidade de dividir o macrobloco em blocos retangulares de diferentes tamanhos;
possibilidade de utilizar até 15 quadros de referência não necessariamente adjacentes (tanto
anteriores como posteriores); aplicação de codificação preditiva nos próprios vetores de movimento
e informações adicionais de cabeçalho; e ao uso de codificadores de entropia com contexto. O
padrão também possui uma serie de modos de predição intra-quadro, que fazem uso da correlação
espacial no domínio dos pixels para comprimir o quadro sem utilizar informação temporal,
obtendo um melhor desempenho, em termos de taxa-distorção, do que somente a transformação e
quantização. O codificador H.264 operando em modo intra é capaz de superar inclusive padrões
considerados o estado-da-arte em codificação de imagens estáticas, como o JPEG-2000 [54].
A qualidade de um sinal de vídeo reconstruído é na verdade subjetiva. Porém, o desempenho
na codificação de vídeo é medida de forma objetiva na literatura pela taxa de bits versus o
MSE (mean square error), ou mais comumente versus a PSNR (peak signal to noise ratio). A
formulação da PSNR em decibéis é dada por:
P SN R = 10 log10
N
1 X
(2n − 1)2
, M SE =
(X(t) − X̂(t))2 ,
M SE
N t=0
(3.1)
onde n representa o número de bits utilizados para definir um pixel. Se n = 8, por exemplo, o
valor de pico do numerador é 255.
Logo, o padrão H.264/AVC consegue para um mesmo valor de PSNR comprimir a menor
taxa, que os outros padrões mencionados. O modo de codificação com complexidade reversa
apresentado neste trabalho foi implementado no padrão H.264/AVC.
3.2
CODIFICAÇÃO DISTRIBUÍDA DE VÍDEO
A codificação distribuída de vídeo, DVC, é baseada na codificação de fonte com informação
lateral presente somente no decodificador. No paradigma de codificação híbrida, o codificador
requer um maior esforço computacional que o decodificador principalmente devido à função de
20
estimação de movimento [6]. Se estágios de otimização de RD são usados, então a complexidade
do codificador aumenta ainda mais [6]. Logo, a idéia do paradigma DVC é transferir parte da
complexidade para o decodificador, gerando um codificador menos complexo. Basicamente,
tenta-se evitar ou reduzir ao máximo as operações ligadas à função de estimação de movimento,
sendo esta operação transferida ao decodificador.
Embora a codificação distribuída tenha seus fundamentos em estudos de teoria da informação
realizados nos anos setenta [14, 15], as pesquisas para a implementação de codecs de vídeo
práticos são recentes. A primeira proposta de codificação Wyner-Ziv foi implementada em 1999
[16], onde foi considerado o caso assimétrico de codificação de fonte com informação lateral para
fontes binárias e gaussianas. Trabalhos posteriores consideraram a codificação simétrica onde as
fontes são codificadas com a mesma taxa [55, 56, 57, 58]. Anos depois as primeiras arquiteturas
de DVC foram propostas: (i) modelo de Stanford [17, 24, 59], e (ii) o PRISM [18, 60, 61].
A arquitetura de Stanford tem sido explorada extensivamente na literatura, gerando diferentes
trabalhos derivados da proposta inicial que apresentam contínuas melhorias de desempenho.
A arquitetura PRISM, feita em Berkeley, não foi explorada tanto quanto a de Stanford por
requerer uma maior dificuldade de implementação. Porém, possui uma proposta diferente, sendo
referência para qualquer trabalho em DVC.
3.2.1
Arquitetura Stanford
O modelo de Stanford foi proposto inicialmente para trabalhar no domínio espacial (pixels)
[24, 29, 59, 62], depois expandido para o domínio da transformada [17]. O codificador SlepianWolf foi inicialmente implementado usando turbo codes como código de canal [17, 24, 59, 29,
62]. Posteriormente, este modelo foi atualizado para códigos LDPC (low-density parity-check
codes) [63, 64].
O diagrama de blocos básico do codec DVC é mostrado na Figura 3.4. Inicialmente o sinal
X(m, n, t) é dividido em dois grupos de quadros. Um grupo de quadros é denominado quadroschave. Os quadros chave são normalmente os quadros ímpares C(t) = X(2i + 1), i = 0, 1, 2, ...,
e são codificados de forma independente sem considerar a informação temporal. Ou seja,
são codificados somente usando técnicas de codificação intra. Os quadros restantes, W (t) =
21
X(2i), i = 1, 2..., são codificados mediante técnicas de codificação Wyner-Ziv.
Codificador de Baixa Complexidade
Quadros
Wyner-Ziv
W(t)
Decodificador de Alta Complexidade
Quadros
Wyner-Ziv
Decodificados
Codificador Slepian-Wolf
Quantizador
Xq
Codificador
de Canal
Pd
Buffer
Canal de Retorno
Decodificador
de Canal
Reconstrução
Informação Lateral: Yq
Interpolação
Quadros
Chaves
Decodificados
Quadros
Chave
C(t)
Codificador
Intra
Decodificador
Intra
Figura 3.4: Diagrama de blocos de codec DVC de Stanford.
A codificação Wyner-Ziv é implementada por um processo de quantização e um codificador
Slepian-Wolf. Como mencionado na Seção 2.4, o codificador Slepian-Wolf é um codificador que
permite a reconstrução perfeita, enquanto a função de quantização é a responsável pela distorção
introduzida da codificação Wyner-Ziv. O processo de codificação funciona da seguinte forma:
• W (t) é quantizado, usando um passo de quantização Qp,wz .
• O quadro quantizado é reordenado em planos de bits. O sinal quantizado e reordenado será
denominado por Xq .
• Xq é alimentado a um codificador de canal sistemático, do tipo corretor de erro (por
exemplo turbo codes) [40], gerando o sinal [Xq |Pd ], onde Pd representa a informação de
paridade adicionada pelo codificador de canal.
• Somente os bits de paridade Pd são enviados, a medida que sejam requeridos pelo
decodificador mediante o canal de retorno. (No caso da implementação usando LDPC a
informação enviada é a síndrome).
O canal de retorno é responsável por permitir a implementação do codificador Slepian-Wolf.
É por meio desse canal que o decodificador requer os bits de paridade até conseguir a reconstrução
perfeita do sinal quantizado X̂q = Xq . A decodificação segue os seguintes passos:
22
• Os quadros-chave previamente decodificados são utilizados para gerar a informação lateral
Yq . Varias técnicas na literatura têm sido apresentadas para a geração de informação lateral
em um codificador DVC com esta arquitetura [30, 31, 32, 65, 66]. Basicamente, a idéia é
utilizar o quadro chave anterior C(t) = X(i − 1), ou o anterior C(t) = X(i − 1) e posterior
C(t + 1) = X(i + 1), ao quadro Wyner-Ziv W (t) = X(i), para realizar uma interpolação
temporal, gerando o quadro interpolado Y (t).
• Y é quantizado e reordenado para gerar Yq , que representa a informação lateral presente
somente no decodificador.
• Yq é concatenado aos bits de paridade recebidos, obtendo o códigos [Yq |Pd ]. Note que para
o decodificador de canal Yq é uma versão ruidosa de Xq .
• O decodificador de canal vai requerer a quantidade de bits de paridade necessários para
reconstruir Xq
• Finalmente, Xq e o quadro interpolado Y são usados para reconstruir o quadro Ŵ (t) 6=
W (t). A reconstrução é feita por máxima verossimilhança Ŵ (t) = E[W (t)|Xq , Y ].
A complexidade do codificador é reduzida, pois nenhuma técnica de codificação interquadros, como a estimação de movimento, é utilizada. Já o decodificador é mais complexo, pois
o desempenho do codec está associado diretamente à qualidade da informação lateral gerada. A
geração do quadro interpolado Y requer algoritmos tão ou mais complexos que a estimação de
movimento usada na codificação convencional.
Esta arquitetura consegue reduzir drasticamente o esforço computacional no codificador. Uma
versão de menor qualidade temporal pode ser obtida no decodificador com baixa complexidade,
se são decodificados somente os quadros-chave. Por outro lado, as melhorias se restringem a
melhorar a informação lateral ou a codificação de canal. Existe um trabalho onde uma informação
auxiliar (hash) é enviada para o decodificador, para gerar um melhor quadro interpolado Y [33].
Porém, a taxa para enviar o hash é normalmente proibitiva. A necessidade de se ter um canal
de retorno restringe o uso deste codificador a situações onde a decodificação deve ser feita
imediatamente após o recebimento do sinal. Além disso, não é possível recuperar uma versão
de baixa complexidade de decodificação dos quadros Wyner-Ziv.
23
O desempenho desta arquitetura, usando a codificação intra do padrão H.263+, é superior a
codificar todos os quadros de forma intra (codificação III...), mas inferior a usar codificação
IP IP... [25]. No caso de usar H.264/AVC, para codificar os quadros-chave, a arquitetura de
Stanford apresenta um desempenho superior a codificação IIII... do H.264, porem inferior
a codificação IP IP... com vetores de movimento zero [67]. Note que ter MVs = 0 é um
subconjunto da codificação IP IP regular. Em sequências com muito movimento, o desempenho
do codificador DVC em H.264/AVC pode ser pior que quadros IIII... codificados com H.264.
3.2.2
Arquitetura PRISM
A outra arquitetura DVC que foi proposta no início das pesquisas é a arquitetura PRISM
(Power-efficient, robust, high-compression syndrome-based multimedia coding) [16, 18, 60, 61].
Esta proposta é significativamente diferente da arquitetura de Standford. O diagrama de blocos é
mostrada na Figura 3.5.
Na arquitetura PRISM, a codificação Wyner-Ziv não é feita em nível de quadros, mas sim
feita em nível de macroblocos. O quadro X(t) é dividido em macroblocos e transformados ao
domínio da DCT. Com base na estimação do ruído de correlação Wyner-Ziv, os macroblocos
são classificados. Esta classificação determina a expectativa da qualidade do bloco decodificado.
Dependendo da classificação, o codificador pode escolher por codificar o macrobloco de forma
intra. Os passos na codificação são os seguintes:
• Os coeficientes transformados dos blocos são divididos em alta e baixa freqüência. A classe
do macrobloco determina como a divisão é feita. Logo, o número de coeficientes de alta e
baixa freqüência é variável.
• Os coeficientes de alta freqüência são quantizados e codificados utilizando métodos
tradicionais de codificação de entropia. O passo de quantização depende da classificação
do macrobloco.
• Os coeficientes de baixa freqüência passam por dois processos de quantização paralelos.
O primeiro é idêntico a quantização dos coeficientes de alta freqüência. O segundo é um
processo de refinamento da quantização, a qual é dependente da distorção permitida (ou
24
(a)
(b)
Figura 3.5: Diagrama de Blocos do PRISM. (a) codificador, (b) decodificador
seja, do passo de quantização QP que seria usado na codificação convencional) e não da
classe do macrobloco.
• A diferença entre ambos os sinais, dos coeficientes quantizados de baixa freqüência, é
enviada ao codificador de entropia. O resultado do primeiro processo de quantização é
usado para gerar um código síndrome.
A codificação por síndrome é um tipo de codificação de canal. Em lugar de enviar a paridade,
é enviada a síndrome do código. Se S = XG, onde G é a matriz de paridade de um código
de blocos linear, então S é a síndrome do código. Maiores detalhes podem ser encontrados em
referências tradicionais [40]. A funcionalidade da síndrome é similar a da paridade, ambos são
25
usados para corrigir erros de transmissão. A síndrome pode ser considerada um coset. Se a fonte
X possui um alfabeto χ, ao dividir o alfabeto em regiões, cada região seria um coset. Logo a
síndrome indica a qual coset a informação pertence.
Além da informação de coset, o codificador PRISM gera um hash para cada macrobloco
usando códigos CRC (cyclic redundancy check). Logo, o bit-stream é formado pela síndrome,
coeficientes quantizados de alta freqüência, a diferença entra a quantização escalar e o refinamento
dos coeficientes de baixa freqüência, e o código CRC de cada macrobloco.
No decodificador o fluxo de dados é feito da seguinte maneira:
• Uma série de blocos candidatos a informação lateral no quadro decodificado anteriormente
X ′ (t − 1) são selecionados mediante uma procura similar à estimação de movimento,
usando os bits residuais do refinamento da quantização para realizar a procura dos blocos
candidatos.
• No primeiro candidato são substituídos os coeficientes de alta freqüência pelos existentes
no bit-stream, gerando assim a informação lateral, ou versão ruidosa da informação original
• A informação lateral é corrigida com o uso da síndrome, em seguida uma verificação é
feita usando os bits CRC. Se a verificação é incorreta é utilizado um novo candidato e o
processo é repetido até obter uma verificação válida entre todos os candidatos. Se todas
as verificações forem incorretas, então o candidato que gerou a verificação mais próxima à
correta é selecionado.
A redução de complexidade é alcançada porque no codificador não é realizada nenhuma
estimação de movimento. Já no decodificador, uma procura de movimento é feita quando são
gerados os blocos candidatos a informação lateral. Porém, não há como obter uma seqüência
decodificada, mesmo de baixa qualidade, com baixa complexidade de decodificação, pois a
codificação Wyner-Ziv é feita em cada macrobloco de todos os quadros.
Note que nesta arquitetura a codificação com informação lateral no decodificador já é
implementada com perdas. No caso da arquitetura de Stanford, a perda é devido ao processo
de quantização. Aqui, além da quantização, a síndrome é gerada de acordo a classificação dos
26
blocos. Não existe canal de retorno, logo a reconstrução perfeita está associada a uma estimação
perfeita do ruído para classificar corretamente cada macrobloco.
Sem o canal de retorno este codec pode ser usado em diferentes cenários onde a codificação
em baixa complexidade é necessária, ao contrário do restrito uso da arquitetura de Stanford.
Contudo, nos trabalhos publicados até a presente data, os autores não definem um mecanismo
eficiente de estimação de ruído nem um modelo prático de classificação de macroblocos. Os
autores assumem que possuem tanto no codificador como no decodificador a informação perfeita
do ruído inserido na geração da informação lateral. Com esta estimação perfeita foram feitos
testes que mostram resultados de desempenho similares à codificação IP P P.. no padrão H.263+
para uma quantidade limitada de quadros [61]. Estes testes mostram o potencial desta arquitetura,
mas não é realista assumir que o codec possui a informação perfeita do ruído. Isto requereria
que o codificador realize estimação de movimento para saber antecipadamente qual seria o
candidato a informação lateral escolhido no decodificador. Realizando estimação de movimento,
o codificador desta arquitetura seria tão complexo quanto um codificador híbrido convencional.
Logo, tal como proposta, a arquitetura PRISM não pode ser implementa na indústria. A grande
contribuição deste trabalho foi mostrar a possibilidade de criar um codificador DVC sem canal
de retorno e verificar que esta arquitetura é mais robusta quando o canal de transmissão é
ruidoso. Inclusive, o foco das simulações feitas com a arquitetura PRISM é verificar a resistencia
do codificador a erros de transmissão. Os autores mostraram que o PRISM é muito mais
robusto contra erros que a codificação tradicional híbrida [61]. Existem outros trabalhos onde
a codificação Wyner-Ziv de vídeo é usada especificamente para gerar um bit-stream resistente a
erros, no lugar de procurar baixa complexidade de codificação [68, 69, 70, 71].
3.3
VANTAGENS E DESVANTAGENS DA CODIFICAÇÃO DE VÍDEO
DISTRIBUÍDA
Ainda não existe um padrão técnico de codificação de vídeo que use o paradigma de
codificação distribuída, porém existe um alto interesse deste novo método mostrado por diferentes
grupos de pesquisa. A codificação distribuída possui certas funcionalidades que não são possíveis
27
de alcançar na codificação hibrida:
• Possibilidade de alocar a complexidade de forma adaptável entre o codificador e decodificador.
Como a codificação DPCM/DCT realiza a estimação de movimento totalmente no codificador,
este vai ser sempre mais complexo que o decodificador. Um codificador que consiga
misturar ambos os paradigmas pode potencializar o balanceamento do esforço computacional
de acordo com a necessidade.
• Os sinais codificados (bit-streams) dos codificadores Wyner-Ziv possuem uma proteção
intrínseca contra erros de transmissão. Como mostrado em [61], os códigos corretores de
erro que são usados para explorar a correlação dos sinais do decodificador também podem
ajudar a corrigir erros gerados na transmissão.
Estas vantagens estão associados a importantes desvantagens:
• O desempenho em termos de taxa-distorção dos codificadores DVC é pior que os dos
codificadores híbridos. Como a codificação Wyner-Ziv pode obter uma taxa igual a
codificação convencional somente quando trata-se de fontes gaussianas, como foi afirmado
em outros trabalhos [25], o DVC não deve atingir o desempenho de codificadores
convencionais. No entanto, arquiteturas como PRISM tem mostrado que existe uma
possibilidade de realmente atingir um desempenho muito similar.
• A complexidade transferida ao decodificador não é proporcional à complexidade diminuída
no codificador. O esforço computacional do codificador e decodificador juntos em uma
arquitetura DVC é normalmente superior ao de uma arquitetura convencional.
• Devido ao uso de códigos corretores de erro, mesmo usando um canal de retorno, é muito
mais difícil controlar a taxa e/ou distorção de um codificador DVC, já que isso depende de
uma boa estimação das estatísticas do ruído de correlação Wyner-Ziv.
• O canal de retorno é inviável em termos práticos.
Logo, é importante notar que a codificação DVC dificilmente deve substituir a codificação
convencional. O paradigma DVC deve ser usado como uma ferramenta adicional, que pode ser
28
ativada ou desativada num codificador, dependendo da situação, ou em aplicações especificas.
No próximo capítulo será proposta uma nova arquitetura de codificação distribuída, a qual pode
trabalhar como um modo opcional de codificação dentro de um codec convencional.
29
4 CODIFICADOR DISTRIBUÍDO COM
RESOLUÇÃO ESPACIAL MISTA
Um dos meios utilizados pelos codecs de vídeo distribuídos para reduzir o esforço computacional
na codificação é eliminar a etapa de estimação de movimento, transferindo esta função para o
decodificador. Uma outra alternativa é usar codificação baseada em redução da resolução espacial.
Na arquitetura que é apresentada neste capítulo, os quadros-chave são os quadros usados como
referência no processo de estimação de movimento. Estes quadros podem ser codificados como
quadros I, P , ou B (ver Seção 3.1) com resolução espacial completa. Os quadros intermediários
são codificados usando duas camadas: a camada base codificada com resolução espacial reduzida
e a camada de realce codificada mediante técnicas Wyner-Ziv. A codificação distribuída de
vídeo em camadas já foi usada em outros trabalhos [20, 21], baseados em resultados teóricos de
refinamento sucessivo de fontes gaussianas para codificação Wyner-Ziv [72], obtendo um codec
com adaptabilidade de SNR com desempenho similar ao MPEG-4/H.26L FGS [44]. Aqui, o
objetivo é obter uma adaptabilidade de complexidade de codificação, mediante resolução espacial
mista.
O modo de codificação Wyner-Ziv mediante resolução espacial mista pode ser implementado
em qualquer padrão de codificação de vídeo [2, 6]. A redução da complexidade de codificação é
atingida pois os quadros não usados como referência são codificados a baixa resolução espacial.
Como a redução da complexidade é alcançada independentemente da implementação do codec
convencional, qualquer técnica de estimação de movimento rápida [73, 74] pode ser utilizada. No
decodificador, se somente os quadros-chave são decodificados, podemos obter uma seqüência de
baixa complexidade de decodificação com perda de quadros, de forma similar à arquitetura de
Stanford (ver Seção 3.2.1). Porém, podemos também obter uma versão de baixa resolução dos
quadros intermediários em tempo real simplesmente decodificando a camada base e usando filtros
clássicos de interpolação.
Para decodificar a camada de realce é proposta uma decodificação iterativa. Outros estudos
usam decodificação iterativa em arquiteturas similares à de Stanford [30, 31, 32]. Alguns geram
31
a informação lateral a medida que os planos de bits são decodificados [30], enquanto outros
usam um processo similar à compensação de movimento [31]. O método aqui proposto é
significativamente diferente.
Usar codificação em baixa resolução para diminuir a complexidade de codificação já foi o
foco de outros estudos em DVC [30] e inclusive para codificadores tradicionais [75]. Porém,
usar resolução mista na codificação distribuída evita degradar os frames chave possibilitando um
melhor desempenho RD.
Este capítulo apresenta a arquitetura proposta de codificação e decodificação do modo WynerZiv com resolução espacial mista ou MR-DVC (do inglês mixed resolution-DVC), assim como o
código de canal utilizado para realizar a codificação distribuída. Note que a arquitetura não utiliza
canal de retorno. No Capítulo 5 é detalhado como foi possível eliminar o canal de retorno.
4.1
RESOLUÇÃO MISTA
O framework proposto é baseado nos quadros que não são usados como referência, que
chamaremos de quadros NRWZ (non-reference Wyner-Ziv). A redução de complexidade é
aplicada somente a estes quadros. Já que os quadros de referência serão codificados como
quadros I, P ou B, de um codificador híbrido convencional, não ocorrerão erros de drifting.
Logo, o decodificador pode reproduzir uma seqüência de vídeo de menor qualidade com baixo
esforço computacional. A decodificação da camada de realce aumenta a qualidade do sinal e a
complexidade de decodificação. O nosso framework não limita a quantidade de quadros NRWZ.
Idealmente, a quantidade de quadros NRWZ pode variar de acordo com os requisitos de esforço
computacional e distorção permitidos. Na Figura 4.1 três cenários de codificação são mostrados.
No primeiro, Figura 4.1 (a), os quadros do tipo B de um codificador convencional são convertidos
em quadros NRWZ. A Figura 4.1 (b) mostra um caso similar com maior redução de complexidade,
já que mais quadros NRWZ foram inseridos. Na Figura 4.1 (c) mostra-se o caso de baixo atraso
onde os quadros NRWZ são utilizados como quadros P .
Note que o framework proposto é diferente da adaptabilidade espacial do SVC, ou H.264/SVC,
[76]. O codec SVC possui um bit-stream adaptável composto de vários sub-streams, cada
32
(a)
(b)
(c)
Figura 4.1: Usos diferentes dos quadros NRWZ. (a) um quadro intermediário tipo B, (b) dois
quadros intermediários tipo B, (c) um quadro tipo P .
um deles é um bit-stream válido para um determinado decodificador.
O SVC possibilita
adaptabilidade temporal, espacial e de SNR. Porém, o foco do SVC não é a diminuição da
complexidade. A Figura 4.2 (a) mostra um codec com adaptabilidade temporal. A primeira
camada é formada pelos quadros H0, a segunda pelos quadros H0 e H1, e a terceira por
todos os quadros. Para codificadores híbridos, como o H.264/AVC, a adaptabilidade temporal
pode ser alcançada simplesmente restringindo os quadros de referência a quadros da mesma
camada. A Figura 4.2 (b) representa a combinação da adaptabilidade temporal e espacial que
pode ser implementada no SVC. Note que ambas camadas são codificadas tradicionalmente,
logo o processo de estimação de movimento é realizado em ambas camadas. Desta forma, o
33
esforço computacional aumenta proporcionalmente com o número de camadas. Cada camada
é totalmente decodificável, exceto se a predição entre camadas (inter-layer) for utilizada na
codificação. A codificação entre camadas permite usar quadros de camadas inferiores como
referência para predizer quadros de camadas superiores [76]. Na Figura 4.2 (c) mostra-se a
adaptabilidade espacial do framework proposto. O codificador somente realiza estimação de
movimento para os quadros-chave e quadros NRWZ na camada base, reduzindo a complexidade
devido à codificação em baixa resolução. A informação de alta freqüência dos quadros NRWZ é
codificada mediante um codificador Wyner-Ziv. A camada de alta resolução, ou camada WynerZiv, não representa um sinal de vídeo codificado. Este camada é na verdade uma camada de realce
da camada base, já que é necessário primeiro decodificar a camada base para poder decodificar a
camada Wyner-Ziv.
4.2
ARQUITETURA DO CODEC
Nesta seção serão descritos o codificador e decodificador do modo de codificação com
resolução mista. Este modo pode ser implementado como um modo opcional de codificação.
Quando não é necessária a codificação a baixa complexidade, a seqüência pode ser codificada
mediante codificação híbrida tradicional.
4.2.1
Codificador
No geral, um quadro pode ser codificado como inter-quadro, usando predição baseada em
múltiplos quadros de referência previamente codificados. Alguns codecs, como o H.264/AVC,
usam informação dos elementos de sintaxe (syntax elements). Estes elementos incluem dados de
movimento usados na predição do modo Direct-B [6] nos quadros tipo B, e para a geração dos
MVs nas funções de estimação de movimento rápidas. Mais detalhes sobre o modo Direct-B e
elementos de sintaxe podem ser encontrados em outros trabalhos [6].
Na arquitetura proposta, os quadros-chave são codificados mediante um codificador convencional
DPCM/DCT com resolução espacial completa, podendo ser do tipo I, P ou B. No modo de
codificação NRWZ, mostrado na Figura 4.3, a codificação é feita da seguinte maneira:
34
(a)
(b)
(c)
Figura 4.2:
Três cenários de codificação adaptável.
(a) adaptabilidade temporal, (b)
adaptabilidade temporal e espacial que o SVC permite, (c) resolução mista.
• Todos os quadros da lista de referência e o quadro fonte são dizimados por um fator 2n ×2n ,
onde n pode ser selecionado dependendo da redução de complexidade requerida.
• Depois, o quadro fonte em baixa resolução é codificado usando um codificador híbrido
convencional, o que requer um menor esforço computacional do que codificar o quadro em
35
resolução completa. Esta codificação em baixa resolução forma a camada base. O passo
de quantização, QP , usado na codificação do quadro em baixa resolução é o mesmo que
seria usado na codificação em resolução normal para obter uma determinada qualidade.
Note que os elementos de sintaxe são também transformados para poderem ser utilizados
na codificação em baixa resolução.
• Para criar a camada de realce, ou camada Wyner-Ziv, o codificador calcula a diferença entre
o quadro fonte original com resolução normal e o quadro reconstruído NRWZ, codificado
a baixa resolução, após ser interpolado. A interpolação do quadro em baixa resolução pode
ser feita utilizando qualquer filtro clássico de interpolação [77].
• O quadro residual é mandado ao decodificador mediante codificação Wyner-Ziv. É fácil
notar que a redução da complexidade é proporcional ao fator de dizimação e a quantidade
de quadros NRWZ, uma vez que a estimação de movimento será feita agora num quadro de
menor resolução.
Figura 4.3: Aquitetura do codificador para os quadros NRWZ.
4.2.2
Decodificador
O decodificador é mostrado na Figura 4.4. O fluxo de dados é descrito a seguir:
36
• O quadro em baixa resolução é decodificado usando um decodificador convencional
híbrido.
• O quadro NRWZ decodificado é interpolado, mediante o mesmo interpolador utilizado no
codificador. O quadro NRWZ decodificado e interpolado é uma versão de baixa qualidade,
porém de baixo esforço computacional de decodificação. Este quadro, junto aos quadroschave, pode ser reproduzido com pouco custo de complexidade, por exemplo, em tempo
real por um aparelho móvel com restrição de energia.
• O processo de decodificação da camada realce tem como primeiro passo a geração da
informação lateral. O quadro interpolado e os quadros-chave previamente decodificados
são usados para criar o denominado quadro em semi super resolução (SSR). O processo é
chamado de semi super resolução porque os quadros chave já estão em resolução alta. No
processo tradicional de super resolução, todos os quadros encontram-se em baixa resolução.
• Uma vez que o quadro em SSR é gerado, ele é subtraído do quadro decodificado
interpolado, gerando assim a informação lateral. Note que esta informação lateral é uma
versão ruidosa do quadro residual entre o quadro fonte original e o quadro reconstruído
interpolado no codificador.
• O quadro residual é apresentado ao decodificador de canal, para corrigir os erros mediante
a camada Wyner-Ziv. Este processo pode ser iterativo como detalhado na Seção 4.4.
• O quadro residual corrigido é adicionado ao quadro interpolado, gerando a versão de alta
qualidade do quadro NRWZ.
4.3
CODIFICADOR WYNER-ZIV
O codificador Wyner-Ziv implementado trabalha no domínio da transformada. Em codecs
onde diferentes tamanhos de transformada podem ser utilizados. Por exemplo, no H.264/AVC
Fidelity Range Extensions [78], o maior tamanho de bloco para transformação é preferível, mas
qualquer tamanho pode ser utilizado.
37
Figura 4.4: Aquitetura do decodificador para os quadros NRWZ.
O modelo assume que os coeficientes transformados do quadro residual seguem uma
distribuição Laplaciana com desvio padrão σX . Foi provado em diferentes trabalhos que este
é um modelo válido [17, 33]. Assim, de uma forma simplificada, a codificação Wyner-Ziv é feita
da seguinte forma:
• O quadro residual, formado pela diferença entre a reconstrução interpolada do quadro
NRWZ e o quadro original, é levado ao domínio da transformada DCT.
• Um processo de quantização é aplicado com passo de quantização QPwz , não necessariamente
igual ao QP utilizado na codificação convencional do quadro em baixa resolução da camada
base.
• A camada de realce é formada por índices de cosets sem memória, em inglês memoryless
cosets, gerados a partir dos coeficientes transformados quantizados.
38
Se a variável aleatória X denota os coeficientes transformados do quadro residual, X poderá
tomar o valor x cujo valor quantizado será denotado por q. Logo, a variável aleatória que
representa os coeficientes quantizados será Q = φ(X, QPwz ). O alfabeto de Q é determinado
por ΩQ = {−qmax , −qmax−1 , ..., −1, 0, 1, ..., qmax−1 , qmax }.
Os limites −qmax e qmax são
determinados pelo passo de quantização QPwz .
Como mencionado anteriormente, o codificador Wyner-Ziv não transmite os coeficientes
residuais quantizados, mas índices de cosets. Os cosets são calculados gerando a variável aleatória
C = ψ(Q, M ) = ψ(φ(X, QPwz ), M ), onde M é o módulo dos cosets [79]:
C = ψ(Q, M ) =


(q) − M ⌊q/M ⌋ ,
(q) − M ⌊q/M ⌋ < M/2
(4.1)
 (q) − M ⌊q/M ⌋ − M, (q) − M ⌊q/M ⌋ ≥ M/2
A
Logo, o alfabeto de C será ΩC = {⌊−(M − 1)/2⌋ , ..., −1, 0, 1, ..., ⌊(M − 1)/2⌋}.
equação (4.1) garante que os cosets estão centrados em 0. Na implementação do modo de
codificação Wyner-Ziv nesta tese os parâmetros {QPwz , M } variam para cada freqüência (m, n)
do coeficientes x = X(m, n, t), e inclusive podem variar de macrobloco a macrobloco. Os
parâmetros de codificação {QPwz , M } são escolhidos dependendo da estimação do ruído de
correlação Wyner-Ziv (ver Capítulo 5). O número de coeficientes transmitidos em forma de
cosets dentro de um macrobloco também varia. Os coeficientes que não são transmitidos são
igualados a zero.
Se o bin quantizado q corresponde ao intervalo [xl (q), xh (q)], logo a probabilidade de que o
bin q ∈ ΩQ , e a probabilidade que o índice de coset c ∈ ΩC são dadas pelas funções de massa de
probabilidade:
p(q) =
Z
xh (q)
fX (x)dx
(4.2)
xl (q)
pC (c) =
X
q∈ΩQ ,ψ(q,M )=c
p(q) =
X
q∈ΩQ ,ψ(q,M )=c
Z
xh (q)
fX (x)dx,
(4.3)
xl (q)
onde fX (x) é a fdp (função densidade de probabilidade) de X. Como a distribuição pC (c) é
simétrica para valores de M ímpares e possui moda zero, o codificador de entropia para q que já
existe no codec convencional pode ser re-utilizado para c. Porém, esta arquitetura permite que
39
um codificador de entropia específico para os índices de cosets seja utilizado. Um codificador
de entropia externo pode ser mais eficiente, mas usar o mesmo codificador de entropia existente
no codec convencional minimiza as modificações necessárias para inserir o modo de codificação
Wyner-Ziv. Neste trabalho modificamos um codificador existente do H.264/AVC para codificar
os cosets (ver Capítulo 6). Assim o codificador terá um melhor desempenho e não será necessário
introduzir um codificador de entropia externo. Exemplos das funções massa de probabilidade são
mostradas nas Figura 4.5.
Figura 4.5: Funções massa de probabilidade.
A função fX (x) é a fdp dos coefficientes
transformados residuais modelada como distribuição laplaciana. p(q) é calculada para cada valor
possível de q. pC (c) = ψ(QPwz , M ) depende de fX (x) e a quantidade de valores possíveis é
determinada por M , neste caso M = 5.
Note que não há canal de retorno. Idealmente, os parâmetros {QPwz , M } são escolhidos
utilizando as estatísticas correlatas entre o quadro residual e a informação lateral. Se Y representa
a versão ruidosa do quadro residual no decodificador, ou seja, a informação lateral, logo se pode
assumir que:
Y = X + Z,
(4.4)
onde Z é o ruído de correlação Wyner-Ziv. Este modelo é utilizado em diversos trabalhos [33, 17,
67, 80] onde o ruído de correlação Z é simplificado assumindo que não possui correlação com
X. No modelo probabilístico proposto, também assumimos que Z e X são descorrelacionados.
Esta hipótese simplifica as deduções matématicas e, após realizar simulações, verificamos que Z
40
pode ser modelado como uma variável aleatória com distribuição gaussiana e desvio padrão σZ .
Logo, como não existe canal de retorno, uma adequada escolha dos parâmetros de codificação
depende da correta estimação de {σX , σZ }. A estimação de {σX , σZ } deve levar em consideração
a qualidade desejada, ou distorção permitida. Note que Y não é quantizada na arquitetura proposta
do decodificador, logo tem uma maior precisão que coeficientes quantizados. Mesmo que o valor
exato de σX possa ser obtido no codificador, deve-se trabalhar com o valor estimado para garantir
que o decodificador e o codificador estão trabalhando no mesmo ponto de operação (usando os
mesmos parâmetros {QPwz , M }).
Para decodificar, a função de reconstrução ótima (MSE), X̂Y C (y, c), baseada na informação
lateral y e no índice de coset recebido c, é dada por:
X̂Y C (y, c) = E(X|Y = y, C = c),
R xh (q)
P
X̂Y C (y, c) =
xfX|Y (x, y)dx
xl (q)
,
R xh (q)
f
(x,
y)dx
X|Y
q∈ΩQ ,ψ(q,M )=c xl (q)
q∈ΩQ ,ψ(q,M )=c
P
(4.5)
onde [xl (q), xh (q)] é o intervalo que corresponde ao bin quantizado q.
As estatísticas {σX , σZ } estimadas para selecionar os parâmetros de codificação são também
utilizadas no cálculo da equação (4.5). Porém, o cálculo exato de (4.5) é difícil e lento, sendo
uma melhor solução usar aproximações obtidas a partir de tabelas pré-calculadas armazenadas no
decodificador. As tabelas podem ser normalizadas para σX = 1 e diferentes valores de σZ . No
processo de decodificação, estes valores podem ser adaptados usando a estimação de {σX , σZ }.
Um exemplo do princípio de decodificação é ilustrado na Figura 4.6. Neste exemplo o valor
recebido do índice de coset é c = 2 e a informação lateral existente no decodificador é y = −1.
Para as funções de massa de probabilidade exemplificadas, o processo de decodificação calcula
o valor esperado de x dentro de todas as possibilidades onde o valor quantizado q pode criar um
coset c = 2. Assim, no exemplo, x̂ = −3.
Os coeficientes que foram igualados a zero na geração dos cosets na codificação, são igualados
ao valor da informação lateral na decodificação.
41
Figura 4.6: Exemplo de Decodificação. O índice recebido é c = 2, a informação lateral y = −1.
Logo, o valor reconstruído x̂ dadas todas as possibilidades onde o valor q gerou o índice c = 2,
para as funções de massa de probabilidade exemplificadas, é igual a −3.
4.4
SEMI SUPER RESOLUÇÃO
A geração da informação tem como base o quadro obtido no processo de SSR, o qual
pode ser feito de forma iterativa. Seja o quadro NRWZ, inicialmente decodificado a baixa
resolução e interpolado, representado por F0 (t). Seja a operação de SSR denotada pela função
SSR(F (t), F S), a qual obtém uma versão melhorada F HR (t) de F0 (t) baseada nos quadros de
referência F S. Seja a decodificação de canal representada por CD(RF, bW Z ), a qual corrige o
quadro residual ruidoso RF usando o bit-stream da camada Wyner-Ziv bW Z . A iteratividade do
processo de decodificação para as iterações i = 0, 1, 2, . . . , N pode ser descrita como:
FiHR (t) = SSR(Fi (t), F S)
(4.6)
Fi+1 (t) = CD(FiHR (t) − F0 (t), bW Z ) + F0 (t).
(4.7)
Similarmente ao algoritmo baseado em exemplos (em inglês example-based algorithm) [81,
82, 83], procuramos recuperar a informação de alta freqüência de um bloco interpolado mediante
a procura em quadros previamente decodificados de blocos similares. O princípio é adicionar
somente os componentes de alta freqüência do bloco selecionado ao bloco interpolado.
42
A seqüência original em alta resolução possui quadros-chave e quadros NRWZ. O framework
codifica os quadros NRWZ em baixa resolução e os quadros chave em alta resolução. O
decodificador recebe uma seqüência de vídeo com resolução mista; o decodificador interpola
os quadros NRWZ para obter uma seqüência na mesma resolução. Porém, os quadros NRWZ
perderam informação de alta freqüência devido à dizimação e interpolação. Nosso algoritmo
tenta recuperar os componentes de alta freqüência utilizando informação temporal presente nos
quadros chave.
Primeiro, os quadros-chave imediatamente anterior e posterior ao quadro fonte NRWZ são
filtrados utilizando um filtro passa-baixas.
O filtro passa-baixas é implementado mediante
dizimação e interpolação (usando os mesmos filtros do codificador). Assim, temos tanto os
quadros NRWZ como os quadros chave na mesma resolução e sem detalhes de alta freqüência.
Depois, um algoritmo de procura de blocos é aplicado usando o quadro NRWZ como fonte e os
quadros chave filtrados como referência.
O algoritmo de procura funciona da seguinte forma: seja o quadro de referência F (t) =
B(t) + H(t), onde B(t) é a versão dizimada e interpolada (filtrada) de F (t), enquanto H(t)
é a alta freqüência, calculado como o resíduo entre B(t) e F (t). Para cada bloco 8 × 8 no
quadro interpolado NRWZ, o melhor vetor de movimento, usando estimação sub-pixel [6], em
cada quadro chave anterior e posterior, é calculado. Se os correspondentes blocos selecionados
nos quadros-chave passado e futuro são denotados por Bp (t) e Bf (t) respectivamente, vários
candidatos as predições são calculados como:
B(t) = αBp (t) + (1 − α)Bf (t),
(4.8)
onde α assume valores entre 0 e 1. Conforme implementado, α ∈ {0.0, 0.25, 0.5, 0.75, 1.0}.
Os valores possíveis de α foram obtidos após varias simulações. Logo, se a soma absoluta das
diferenças (em inglês sum of absolute differences, SAD) do melhor candidato de um determinado
bloco é menor que um limiar T , a alta freqüência correspondente do quadro de referência (Hp (t)
ou Hf (t)) é adicionada ao bloco do quadro NRWZ. Logo, a alta freqüência adicionada é dada
por:
43
H(t) = αHp (t) + (1 − α)Hf (t),
(4.9)
A Figura 4.7 ilustra este processo. Como é importante evitar adicionar ruído nos casos onde
não existe um bloco suficientemente similar, usamos um fator de confiabilidade para escalar
a alta freqüência a ser adicionada. Assumimos que uma menor SAD implica em uma maior
confiabilidade, logo maior conteúdo de alta freqüência deve ser adicionado. Um outro parâmetro
a utilizar para indicar o nível de confiabilidade é a taxa (Rn ) para codificar um determinado
macrobloco. Se Rn possui um valor alto, provavelmente se deve a um de dois fatores: (i)
ou o símbolo codificado não aconteceu com muita freqüência, o que significa que durante a
codificação de entropia sua probabilidade é baixa; (ii) ou a informação residual do macrobloco
for elevada, o que significa que existe uma diferença significativa entre o macrobloco atual e a sua
melhor predição. Logo, é intuitivo pensar que devemos ter menos confiabilidade quando a taxa
é elevada, já que pode indicar que não será possível recuperar as informações de alta freqüência
do macrobloco a partir de predições nos quadros adjacentes. O fator de confiabilidade multiplica
cada pixel do bloco de alta freqüência, antes de ser adicionado ao bloco NRWZ. A métrica do
fator de confiabilidade usada foi:
fc = 1 −
min(SAD + λRn , T )
,
T
(4.10)
onde λ é um multiplicador de Lagrange. Note que se SAD = Rn = 0 então fc = 1, o que significa
que todo o conteúdo de alta freqüência será adicionado. Por outro lado se (SAD + λRn ) = T
então fc = 0, então nenhuma informação será adicionada. Os valores de T e λ foram encontrados
empiricamente usando seqüência de testes.
Se a decodificação iterativa é empregada, a primeira iteração é feita como descrito anteriormente.
Nas demais iterações, certos parâmetros podem mudar. De iteração em iteração, a filtragem
passa-baixas deve ser reduzida. Na nossa implementação a filtragem é eliminada após a primeira
iteração. O grid para realizar o algoritmo de procura de blocos pode ser variado, para evitar o
efeito de bloco. É importante notar que depois da primeira iteração, o quadro já possui informação
de alta freqüência. Então, depois da primeira iteração, o processo é similar, porém no lugar de
adicionar a alta freqüência, o conteúdo por inteiro do bloco é substituído pela versão não filtrada
44
Figura 4.7: Procura da melhor predição. Depois de seleccionar o melhor predito nos quadros
filtrados, a alta freqüência do bloco é adicionada.
do predito. Em outras palavras, depois da primeira iteração, substitui-se B(t) + H(t) em lugar
de adicionar H(t). Sendo que, depois da primeira iteração, o limiar T deve ser drasticamente
reduzido, e gradualmente reduzido nas próximas iterações, para que a quantidade de blocos
afetados diminua.
A Figura 4.8 exemplifica o processo de iteração da SSR, e na Figura 4.9 se mostra um quadro
interpolado (depois de ser dizimado a um quarto da sua resolução), e o quadro gerado pela função
de semi super resolução após a primeira iteração. Como medida de qualidade objetiva é utilizada
a PSNR.
Neste capítulo foi apresentada a arquitetura do codec proposto, o qual opera com codificação
em resolução mista. Também, foi detalhada a criação da camada Wyner-Ziv mediante cosets
sem memória e a geração da informação lateral. No Capítulo 5 detalharemos como foi possível
eliminar o canal de retorno e estimar o ponto de operação do codificador proposto. A codificação
de entropia da camada Wyner-Ziv será abordada no Capítulo 6.
45
Figura 4.8: Iteração do processo de semi super resolução.
(a)
(b)
Figura 4.9: Comparação entre interpolação e semi super resolução. (a) Quadro interpolado
com PSNR 34,12 dB. (b) Quadro em semi super resolução com PSNR 36,775 dB. A melhora
é visualmente perceptível.
46
5 ESTIMAÇÃO DA CORRELAÇÃO
ESTATÍSTICA PARA CODIFICAÇÃO
DISTRIBUÍDA
O modo de codificação Wyner-Ziv com resolução espacial mista apresentado no Capítulo 4
foi implementado sem o uso de um canal de retorno. Isto faz possível a decodificação tanto
offline como imediatamente após ter recebido o sinal codificado. Porém, o fato de não termos
o canal de retorno dificulta a seleção correta dos parâmetros para que o codec trabalhe o mais
próximo possível da região de codificação Slepian-Wolf. Logo, um mecanismo para selecionar
corretamente os parâmetros de codificação, assim como uma correta estimação da correlação
estatística dos sinais, é necessário.
Neste capítulo apresentamos um método para estimar a correlação estatística dos sinais assim
como o ruído de correlação Wyner-Ziv, e um mecanismo para seleção ótima dos parâmetros de
codificação usando cosets sem memória para os quadros NRWZ. Outros trabalhos usam códigos
corretores de erro mais complexos como turbo codes ou LDPC, os quais são mais eficientes
para determinadas arquiteturas [84]. Porém, foi mostrado que para a decodificação apresentada
no Capítulo 4 o uso de código corretores de erro mais complexos não gera necessariamente um
ganho significativo, comparado com cosets sem memória [85].
Note que estes mecanismos que serão descritos a seguir podem ser incorporados, com
pequenas modificações, a outros frameworks, como na arquitetura PRISM [60, 61]. Estes
modelos foram implementados usando os codecs H.263+ e H.264/AVC.
5.1
MODELO ESTATÍSTICO
Para realizar a seleção dos parametros de codificação {QPwz , M }, assim como para estimar a
correlação estatística, assumimos o modelo:
47
Y = ρX + Z,
(5.1)
onde X é uma variável aleatória com distribuição Laplaciana, que representa o quadro residual
Wyner-Ziv na codificação, Z é um ruído gaussiano aditivo não correlacionado com X, Y é a
informação lateral presente no decodificador, ou seja, uma versão ruidosa do quadro residual
obtida a partir do processo de SSR, e 0 < ρ < 1 é um fator de atenuação, que deve decrescer em
altas freqüências. Note que este modelo é uma generalização do modelo clássico Y = X + Z,
apresentado no Capítulo 4. Porém, podemos re-escrever (5.1) como Y /ρ = X + Z/ρ. Logo, a
mesma codificação e decodificação dos cosets sem memória, da Seção 4.3, bem como o mesmo
procedimento de estimação, podem ser aplicados simplesmente substituindo σZ2 por (σZ /ρ)2 e Y
por Y /ρ durante a decodificação.
Assim, para simplificar certas deduções matemáticas, o modelo usado, na Seção 5.3, será
Y = X + Z enfatizando que na nossa implementação foi usado o novo modelo Y = ρX + Z
substituindo σZ por (σZ /ρ).
5.2
ESTIMAÇÃO DA CORRELAÇÃO ESTATÍSTICA
O modelo é específico para cada banda de freqüência (BF ) no macrobloco. Cada BF é
definida como uma diagonal num bloco transformado como ilustrado na Figura 5.1.
Figura 5.1: As primeiras sete bandas de freqüência em um bloco 8 × 8 de coeficientes
transformados
A correlação estatística entre os sinais X e Y é dependente do passo de quantização QPt
utilizado para codificar tanto os quadros-chave, quanto os quadros de baixa resolução. Além do
48
passo de quantização, outras informações podem ser obtidas da camada base para serem usadas no
processo de estimação. Como toda informação da camada base está presente tanto na codificação
como na decodificação, nenhuma informação adicional ou hash é necessária para realizar a
estimação. Uma forma alternativa seria transmitir explicitamente informação estatística dos
sinais, mas no nosso trabalho assumimos que a única comunicação existente entre o codificador e
decodificador é o sinal de vídeo codificado em duas camadas. Para gerar o modelo de estimação
usamos um sistema baseado em treinamento. Para um grupo de quadros de treinamento são
coletados dados correspondentes a X e Y para diferentes valores de QPt , juntamente com a
informação adicional obtida da camada base. A idéia é estimar σX ,σZ e ρ que serão usados para
selecionar {QPwz , M } (ver Seção 5.4) para a criação dos cosets e para a reconstrução MSE.
5.2.1
Estimação da variância dos coeficientes residuais Laplacianos
2
) não é a mesma para cada bloco do
A variância dos coeficientes residuais Laplacianos (σX
quadro codificado, já que não depende somente de QPt e BF , mas também do conteúdo de alta
freqüência do bloco. Se o quadro original possui muita informação de alta freqüência, é provável
que a diferença entre o quadro reconstruído interpolado e o quadro original seja grande. Note
que o conteúdo original de alta freqüência do quadro não está presente no decodificador, mas
2
. A quantidade de bordas presentes no bloco
certos parâmetros podem ser usados para estimar σX
em baixa resolução pode ser utilizado. É intuitivo pensar que uma maior quantidade de bordas
e contornos no bloco da camada base indica que o quadro original possui maior informação de
alta freqüência, enquanto a energia dos coeficientes de baixa freqüência está mais relacionada ao
passo de quantização QPt . Como medida objetiva da quantidade de bordas do bloco em baixa
resolução, usaremos a soma acumulada da diferença absoluta entre os pixels adjacentes dentro
de uma linha e coluna, denotado por E. Então, para um bloco bidimensional denotado por D de
tamanho M × N , E é definido como:
E=
N M
−1
X
X
j=1 i=1
|D(i, j) − D(i + 1, j)| +
M N
−1
X
X
i=1 j=1
|D(i, j) − D(i, j + 1)| .
2
Logo, a estimação de σX
é modelada como uma função de QPt ,BF e E. Isto é:
49
(5.2)
2
σX
= f1 (QPt , BF, E).
(5.3)
2
Para simplificar, assumimos que σX
é proporcional a QPt2 . Após, processar os dados de
treinamento, foi visto que era suficiente modelar a dependência com relação a BF de forma
linear, logo:
2
= (k1,BF E + k2,BF )QPt2
σX
(5.4)
onde ki,BF são constantes que variam para cada BF . Na Figuras 5.2 e 5.3, mostramos as
2
aproximações lineares de σX
/QPt2 versus E comparadas com os valores reais de um grupo de
quadros de treinamento, usando H.263+ e H.264/AVC, respectivamente. Pode-se observar que a
aproximação é particularmente boa para valores baixos de E.
5.2.2
Estimação do fator de atenuação
Para estimar o fator de atenuação ρ, usamos um modelo simplificado que depende somente de
QPt e BF :
ρ = f2 (QPt , BF ).
(5.5)
Se ΓBF,QPt representa os dados de treinamento para determinados valores de QPt e BF , a
estimação é feita como:
ρBF,QPt = argminρ
X
(X,Y )∈ΓBF,QPt
kY − ρXk2
(5.6)
Note que é esperado que para maiores valores de QPt , e para coeficientes de alta freqüência,
as variáveis X e Y devem ser menos correlacionadas. Isso foi confirmado obtendo os valores de
ρ com o conjunto de treinamento utilizado.
50
2da Banda de Freq.
2
3ra Banda de Freq.
2
s X/Qp Real
2
2
s X/Qp Real
Aproximação Linear
Aproximação Linear
4ta Banda de Freq.
5ta Banda de Freq.
s2X/Qp2 Real
s2X/Qp2 Real
Aproximação Linear
Aproximação Linear
Figura 5.2: Estimação da variância dos coeficientes residuais Laplacianos. Valores reais de
σx2 /QPt2 vs. E e sua aproximação linear usando H.263+ para 4 bandas de freqüência.
Os valores de ρ obtidos do treinamento podem ser armazenados em tabelas pré-calculadas
tanto no codificador como no decodificador. Os valores obtidos para um bloco 4×4 são mostrados
na Tabela 5.1, após serem aproximados.
Tabela 5.1: Valores do fator de atenuação ρ para um bloco 4 × 4
Banda de freqüência
ρ
0 (DC)
1
2
3
4
5
6
0.90
0.85
0.75
0.55
0.25
0.15
0.10
51
2da Banda de Freq.
ra
3 Banda de Freq.
sX2/Qp2 Real
Aproximação Linear
sX2/Qp2 Real
Aproximação Linear
4ta Banda de Freq.
5ta Banda de Freq.
sX2/Qp2 Real
Aproximação Linear
sX2/Qp2 Real
Aproximação Linear
6ta Banda de Freq.
7ta Banda de Freq.
sX2/Qp2 Real
sX2/Qp2 Real
Aproximação Linear
Aproximação Linear
Figura 5.3: Estimação da variância dos coeficientes residuais Laplacianos. Valores reais de
σx2 /QPt2 vs. E e sua aproximação linear usando H.264/AVC para 6 bandas de freqüência.
5.2.3
Estimação da variância do ruído Gaussiano
A variância σZ2 é calculada primeiro, nos dados de treinamento, Z = Y − ρX. No nosso
modelo assumimos que σZ2 de um macrobloco da camada de realce depende da taxa R necessária
para codificar o correspondente macrobloco na camada base, junto com QPt , BF e E. Uma taxa
elevada na camada base indica maior imprecisão na estimação de movimento em baixa resolução.
Logo, o quadro resultante da SSR provavelmente deve gerar uma predição menos eficiente no
52
decodificador, gerando um aumento de σZ2 . Porém, como R também depende de QPt , foi utilizada
uma taxa normalizada Rn = R × QP 2 , com o objetivo de remover o efeito de QPt na taxa R.
Agora, podemos modelar σZ2 como:
σZ2 = f3 (QPt , BF, E, Rn ).
(5.7)
2
Depois, assumimos que σZ2 é proporcional a σX
para determinados BF e Rn , e os efeitos de
2
QPt e E fazem parte de σX
. Logo, a estimação pode ser modelada como:
2
σZ2 = (k3,BF Rn + k4,BF )σX
(5.8)
2
Na Figura 5.4 são ilustradas as aproximações lineares de σZ2 /σX
vs. Rn comparadas com os
valores reais dos quadros de treinamento, usando H.263+.
5.3
ESCOLHA DOS PARÂMETROS DE CODIFICAÇÃO
A escolha ótima dos parâmetros de quantização e módulo {QPwz , M } para os cosets dos
quadros NRWZ, dado o modelo estatístico Y = ρX + Z, deve seguir os seguintes passos:
• Obter a distorção esperada do codificador convencional para um determinado passo de
quantização QPt . A distorção esperada será denominada como Dt .
• Obter o conjunto de combinações de {QPwz , M } que produzam uma distorção igual a
Dt . Já que os valores de {QPwz , M } são discretos é possível que não exista nenhuma
combinação que gere exatamente a distorção desejada, logo se deve escolher as combinações
que gerem uma distorção próxima, mas não maior que Dt .
• Dentro do conjunto escolhido, selecionar a opção que represente os valores ótimos de
{QPwz , M }. Ou seja, os valores que produzam menor distorção a menor taxa.
Para realizar os passos acima descritos deve-se fazer uma caracterização das funções de RD
para os diferentes cenários de codificação. Estas funções serão dependentes da estatística da
53
da
2 Banda de Freq.
2
ra
3 Banda de Freq.
2
2
s Z/s X Real
2
s Z/s X Real
Aproximação Linear
ta
5 Banda de Freq.
ta
4 Banda de Freq.
2
s2Z/s2X Real
2
s Z/s X Real
Aproximação Linear
Aproximação Linear
2
Figura 5.4: Estimação da variância do ruído Gaussiano. Valores reais de σX
/σZ2 vs. Rn e sua
aproximação linear usando H.263+ para 4 bandas de freqüência.
fonte e do ruído de correlação Wyner-Ziv. Em outras palavras estas funções são dependentes
2
das variâncias σX
e σZ2 , assim como do fator de atenuação do modelo estatístico ρ. Note que na
realidade estes parâmetros serão estimados, conforme descrito na Seção 5.2. Logo a escolha de
{QPwz , M } será ótima somente se a estimação da correlação estatística for correta.
A seguir, vamos revisar o mecanismo de escolha dos parâmetros de codificação para o modelo
mais simples Y = X + Z, para facilitar as deduções matemáticas.
5.3.1
Codificação por cosets sem memória seguida de reconstrução MSE com
informação lateral
O primeiro passo é obter as expressões para a taxa e distorção esperadas para os cosets
sem memória descritos na Seção 4.3, para um determinado par {QPwz , M }. Seja RY C a taxa
54
assumindo um codificador ideal de entropia para os cosets, e DY C a distorção dada a informação
lateral y e índice de coset c. Pode ser provado (ver Apêndice I, Seção I.1) que os valores esperados
são:
E(RY C ) =

X

i
(0)
(0)
−
mX (xh (q)) − mX (xl (q))


c∈ΩC
q∈ΩQ :ψ(Q,M )=c



h
i
X
(0)
(0)
× log2
mX (xh (q)) − mX (xl (q))
,


h
X
(5.9)
q∈ΩQ :ψ(Q,M )=c
E(DY C ) = σx2 −
Z
∞
{
X
−∞ c∈Ω
C
(1)
[mX|Y
q∈ΩQ :ψ(Q,M )=c
P
(xh (q), y) −
(0)
[mX|Y
q∈ΩQ :ψ(Q,M )=c
P
×fY (y)dy.
(1)
mX|Y
(xh (q), y) −
!2
(xl (q), y)]
(0)
mX|Y
!}
(xl (q), y)]
(5.10)
(i)
onde definimos mX (x) =
Rx
−∞
(i)
ν i fX (ν)dν e mX|Y (x, y) =
Rx
−∞
ν i fX|Y (ν, y)dν.
Uma escolha possível é utilizar codificação a taxa zero, onde nenhuma informação é
transmitida (i.e. QP → ∞ ou M = 1). Logo se a taxa é 0, pode ser provado (ver Apêndice
I, Seção I.2) que a distorção esperada baseada na reconstrução ótima utilizando somente Y é dada
por:
E(DY ) =
2
σX
−
2
= σX
−
Z
∞
Z−∞
∞
−∞
Z
∞
−∞
(1)
xfX|Y (x, y)dx
2
mX|Y (∞, y)2 fY (y)dy.
55
fY (y)dy
(5.11)
5.3.2
Fonte Laplaciana com Ruído aditivo Gaussiano
Usando o modelo de uma fonte Laplaciana, X, com ruído Gaussiano, Z, temos:
1 − xσx2 e
fX (x) = √
,
2σx
1 z 2
1
e− 2 | σz | .
fZ (z) = √
2πσz
√
Definindo β(x) = e
√
2x
σx
(5.12)
(5.13)
, temos
(0)
mX (x)
=


β(x)
,x
2
≤0
 1 − 1 ,x > 0
2β(x)

√
β(x)

√ ( 2x − σx ), x ≤ 0
(1)
2 2
mX (x) =
 − √ 1 (√2x + σ ), x > 0
x
2 2β(x)
(5.14)
Os momentos descritos por (5.14) podem ser usados no cálculo de E(RY C ) em (5.9). Se
definimos:
!
√
σx x − 2σz2
√
,
2σx σz
!
√
σx x + 2σz2
√
2σx σz
γ1 (x) = erf
γ2 (x) = erf
(5.15)
onde:
2
erf (x) = √
π
Z
x
2
e−t dt,
(5.16)
0
então, como Y = X + Z, temos:
1 y−x 2
1
− x 2 fXY (x, y) = √
e σx e− 2 ( σz ) ,
2 πσx σz
56
√
(5.17)
fY (y) =
Z
−∞
∞
2
σx
1
fXY (x, y)dx = √
e σz2 [γ1 (y) + 1.0 − β(y)2 (γ2 (y) − 1.0)],
2 2β(y)σx
σ2
√ √
− xσ 2 − 21 ( y−x
)2 − x2
σz
σz
fXY (x, y)
e x
2β(y)
= √
.
fX|Y (x, y) =
fY (y)
πσz [γ1 (y) + 1.0 − β(y)2 (γ2 (y) − 1.0)]
(5.18)
(5.19)
(i)
Dado fX|Y (x, y), os momentos mX|Y podem ser obtidos e usados no cálculo de E(DY C ) em
(5.10).
(0)
mX|Y (x, y) =
(1)
mX|Y (x, y) =















1
β(y)2 [1
[γ1 (y)+1.0−β(y)2 (γ2 (y)−1.0)]
 1−
1
[1
[γ1 (y)+1.0−β(y)2 (γ2 (y)−1.0)]
β(y)2 [y+
√
σ2
2 σX
Z
√ 2
σ (y−x)+ 2σZ
][erf ( X √
2σX σZ
√ 2
σX (y−x)+ 2σZ
√
)], x ≤ 0
2σX σZ
√ 2
σ (y−x)+ 2σ
erf ( X √2σ σ Z )], x > 0
X Z
− erf (
+
√
)−1]+ √π2 σZ β(x)2 e
[γ1 (y)+1.0−β(y)2 (γ2 (y)−1.0)]
(5.20)
√ 2 2
−1/2(σX (y−x)− 2σZ
)
σ2 σ2
X Y
,x ≤ 0
√ 2 2
−1/2(σX (y−x)− 2σZ
)
√ 2
√
2
2
√
√
2
2
2σ
σ
(y−x)+
σ
σ
σ
σ
Z )−γ (y)]+ √ 2 σ e
X
Y
β(y)2 [y+ 2 σX ](γ2 (y)−1)+[y+ 2 σX ][erf ( X √
1
π Z
2σX σZ
Z
Z
[γ1 (y)+1.0−β(y)2 (γ2 (y)−1.0)]
(5.21)
,x > 0
A função erf () pode ser calculada baseada em aproximações de polinômios de ordem 9 [86].
Assim, todos os valores esperados de taxa e distorção podem ser calculados usando integração
numérica de fY (y).
5.4
SELEÇÃO ÓTIMA DOS PARÂMETROS DE CODIFICAÇÃO
Mediante as equações (5.9) e (5.10) podem ser calculados os pontos de RD para o conjunto
de combinações possíveis de {QPwz , M }, dadas as estatísticas da fonte e do ruído de correlação
σX e σZ , respectivamente. Na Figura 5.5, são apresentados os pontos de RD obtidos para um
quantizador do tipo zona morta (em inglês deadzone) [87], para o caso especifico de σX = 1 e
σX = 0.4. Na Figura 5.5(a) cada curva de RD descrita como ′ P ontos de RD de M const′ é
gerada fixando M e mudando o QP em intervalos de 0.05. Porém, para a análise, assumimos
QP contínuo. Assim, o caso onde QP → ∞ para qualquer M corresponde à codificação de
57
taxa zero, e retorna o ponto de ínicio de todas as curvas {0, E(DY )}, com E(DY ) expressada
por (5.11). Alternativamente, este ponto pode ser visto como uma curva com M = 1. A Figura
5.5(b) mostra exatamente os mesmos resultados utilizando QP constante e mudando M de 1 até
60. Assumindo M contínuo, a medida que M → ∞ o codificador tem um desempenho similar ao
codificador convencional sem utilizar cosets mas ainda fazendo a reconstrução ótima baseada na
informação lateral Y . Em ambas figuras, a curva para codificar convencionalmente Q mediante
um codificador de entropia sem utilizar cosets, mas usando reconstrução ótima, é chamada de
′
Sem cosets + Recon Opt′ (as equações podem ser encontradas no Apêndice I, Seção I.4). A
curva correspondente à codificação ideal Slepian-Wolf dos coeficientes quantizados (Q) seguidos
de reconstrução ótima é também mostrada (′ SW (Q) Ideal + Recon Opt′ ), para detalhes ver
Apêndice I, Seção I.3. Note que esta curva também representa os pontos inferiores do casco
convexo dos pontos de RD obtidos mediante a codificação ideal Slepian-Wolf dos cosets C para
todas as combinações de {QPwz , M }, e representa o limite teórico do desempenho do presente
framework.
Observando a Figura 5.5 pode ser verificado que nem todos os valores de QPwz e M
geram códigos adequados, já que podem não ser melhores que a codificação convencional
(′ Sem cosets + Recon Opt′ ). Porém, também pode ser verificado na Figura, que se {QPwz , M }
forem escolhidos corretamente, a codificação utilizando cosets pode ter um melhor desempenho
que a codificação convencional. Uma escolha sub-ótima da combinação {QPwz , M } pode ser
feita achando o conjunto ótimo de Pareto [88]. Este conjunto é definido como o grupo de
elementos onde a cada instante não existe nenhum elemento superior ao elemento pertencente ao
conjunto. No nosso caso, os pontos de Pareto são os pontos que a uma determinada taxa possuem
uma distorção menos que qualquer outro ponto das curvas. Estes pontos estão marcados como ′ ×′
nas Figuras 5.5(a) e 5.5(b). Uma estratégia de escolha de parâmetros de codificação seria escolher
o ponto de Pareto mais próximo dada uma distorção desejada Dt . Porém, a estratégia que retorna
o melhor desempenho de RD é operar no casco convexo inferior do conjunto de pontos gerados
por todas as combinações de {QPwz , M }. Este grupo de pontos é um subconjunto dos pontos de
Pareto. Estes pontos estão marcados como ′ ◦′ nas Figuras 5.5(a) e 5.5(b). Como pode ser visto,
não existe uma combinação de {QPwz , M } que pertença ao casco convexo inferior para qualquer
valor de distorção e taxa, devido a que os valores de {QPwz , M } são discretos. Logo a estratégia
58
Curvas de RD com M Constante (σ =1, σ =0.4)
X
Z
0.14
Sem Cosets + Recon Opt
SW(Q) Ideal + Recon Opt
Pontos Ótimos de Pareto
Casco Convexo Inferior
Pontos RD com M const
0.12
Distorção
0.1
0.08
0.06
0.04
0.02
0
0
1
2
3
Taxa
4
5
6
(a)
Curvas de RD com QP
0.14
wz
Constante (σ =1, σ =0.4)
X
Z
Sem Cosets + Recon Opt
SW(Q) Ideal + Recon Opt
Pontos Ótimos de Pareto
Casco Convexo Inferior
Pontos de RD com QP Const
0.12
wz
Distorção
0.1
0.08
0.06
0.04
0.02
0
0
1
2
3
Taxa
4
5
6
(b)
Figura 5.5: Curvas de RD obtidas para calcular o casco convexo inferior. Mostrando as curvas
de codificação ideal Slepian-Wolf (SW), codificação convencional sem cosets com reconstrução
ótima, e: (a) curvas RD com M constante e variando QPwz , (b) curvas de RD com QPwz constante
e variando M .
adotada neste trabalho foi escolher o ponto do casco convexo inferior se ele existir, caso contrário
utilizar o ponto de Pareto mais próximo. Note que ainda existe como melhorar a codificação, já
que existe uma diferença entre a codificação por cosets e a codificação ideal Slepian-Wolf. Isto é
esperado já que a codificação ideal Slepian-Wolf trabalha com a entropia condicional de H(Q|Y ),
59
enquanto as curvas da codificação por cosets são baseadas na entropia de H(C). Porém, como
estamos considerando o cenário onde não existe um canal de retorno, é razoável que a fronteira
de Slepian-Wolf não seja alcançada.
5.4.1
Correspondência de Distorção
O objetivo da correspondência de distorção pode ser expresso em termos de (5.9) e (5.10). Se
QPt é o passo de quantização desejado durante a codificação convencional, usada para os quadros
chave, logo é melhor expressar a distorção desejada Dt em termos de QPt . A distorção esperada
para um codificador convencional seguido de reconstrução ótima por MSE sem informação lateral
é dada por (ver Apendice I Seção I.4):
2
E(DQ ) = σX
−
2
= σX
−
X
q∈ΩQ
X
q∈ΩQ
2
xh (q)
xf
(x)dx
X
xl(q)
R
R
xh (q)
xl(q) fX (x)dx
2
(1)
(1)
mX (xh (q)) − mX (xl (q))
(0)
(0)
mX (xh (q)) − mX (xl (q))
(5.22)
De (5.22) obtemos Dt para um determinado QPt . Logo, podemos realizar a procura do código
ótimo com uma distorção próxima e não superior a Dt . Na prática seria computacionalmente
custoso realizar estas operações durante a codificação e decodificação. Porém, o mapeamento
de QPt a {QPwz , M } pode ser pré-calculado e armazenado em tabelas para diferentes valores
de σZ e com σX = 1. Estas tabelas devem ser calculadas para diferentes valores de QPt .
Note que as tabelas estão normalizadas para σX = 1.
Para utilizar estas tabelas, basta
normalizar QPt por σX antes de realizar a procura, e escalar o valor resultante de QPwz .
Note que também é necessário arredondar QPwz para a mesma precisão que QPt .
Um
exemplo destas tabelas é mostrado na Tabela 5.2. No trabalho criamos tabelas para σZ ∈
{2.0, 1.2, 1.1, 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1}, com o passo de quantização desejado
normalizado QPt∗ ∈ [0, 2.9] em incrementos de 0.05.
Voltando para o modelo estatístico Y = ρX + Z, o procedimento para a escolha dos
parâmetros de codificação {QPwz , M } utilizando as tabelas pré-calculadas é a seguinte: (i)
estimar σZ /(ρ.σX ) para determinar qual será a tabela a ser consultada; (ii) encontrar a entrada
60
∗
mais próxima a distorção desejada normalizada QPt∗ = QPt /σX ; (iii) ler QPwz
normalizado
∗
∗
e M ; e (iv) modificar QPwz
para obter o valor final QPwz = QPwz
× σX . Os valores de QP
permitidos dependem do codificador utilizado. No nosso caso, H.264 permite variar o QP de
0.625 a 224 em escala logarítmica (estes valores são mapeados a números inteiros de 1 a 51 [6]).
Os mecanismos descritos no presente capítulo realizam a estimação da correlação estatística
dos sinais, a estimação do ponto de operação do codec, e a seleção ótima dos parâmetros de
codificação para a geração dos cosets sem a necessidade de utilizar um canal de retorno. No
capítulo seguinte será detalhada a codificação de entropia dos cosets, gerando o bit-stream da
camada de realce.
61
Tabela 5.2: Tabela de mapeamento para σZ =1.1
QPt∗
∗
QPwz
M
QPt∗
∗
QPwz
M
0.00
0.2
27
1.50
1.87
2
0.05
0.2
27
1.55
1.98
2
0.10
0.2
27
1.60
2.11
2
0.15
0.2
27
1.65
2.03
2
0.20
0.2
22
1.70
2.27
2
0.25
0.24
19
1.75
2.51
2
0.30
0.3
13
1.80
2.76
2
0.35
0.34
12
1.85
3.07
2
0.40
0.4
12
1.90
3.55
2
0.45
0.44
11
1.95
4.58
2
0.50
0.5
9
2.00
∞
1
0.55
0.54
9
2.05
∞
1
0.60
0.6
8
2.10
∞
1
0.65
0.66
8
2.15
∞
1
0.70
0.7
7
2.20
∞
1
0.75
0.77
6
2.25
∞
1
0.80
0.84
5
2.30
∞
1
0.85
0.9
4
2.35
∞
1
0.90
0.95
4
2.40
∞
1
1.00
1.02
4
2.45
∞
1
1.05
1.1
4
2.50
∞
1
1.10
1.17
3
2.55
∞
1
1.15
1.14
3
2.60
∞
1
1.20
1.27
3
2.65
∞
1
1.25
1.37
3
2.70
∞
1
1.30
1.47
3
2.75
∞
1
1.35
1.56
3
2.80
∞
1
1.40
1.66
3
2.85
∞
1
1.45
1.76
2
2.90
∞
1
62
6 CODIFICAÇÃO DA CAMADA DE REALCE
A arquitetura do modo de codificação Wyner-Ziv com resolução espacial mista, apresentado no
Capítulo 4, gera duas camadas. A primeira é a camada base, e a segunda é a camada de realce
ou camada Wyner-Ziv. A camada Wyner-Ziv é baseada na criação de cosets sem memória do
quadro residual obtido do quadro original e o quadro NRWZ reconstruído interpolado. Para
realizar uma codificação competitiva, os índices dos cosets são comprimidos sem perdas, ou seja,
passam por um codificador de entropia. Como foi mostrado na Seção 4.3, é possivel utilizar
o codificador de entropia presente no codificador de vídeo tradicional para os cosets. Mas um
codificador específico pode apresentar uma maior taxa de compressão. Se, por um lado, o uso de
um codificador externo específico para os cosets pode melhorar o desempenho, por outro lado,
utilizar um codificador externo aumentaria as modificações necessárias para incluir o modo de
codificação Wyner-Ziv em um codificador híbrido tradicional. Assim, neste trabalho optamos por
aperfeiçoar o codificador existente no codec tradicional para a camada de realce.
O codificador convencional híbrido utilizado foi o H.264/AVC, o qual possui dois codificadores
de entropia: o codificador CABAC (Context-Based Adaptive Binary Arithmetic Coding) e o
codificador CAVLC (Context-Based Adaptive Variable Length Coding). Sendo, que o CABAC
esta disponível somente no perfil pincipal (Main Profile) e no perfil alto (High Profile), e o
CAVLC em todos os perfis (Baseline, Main, High e Extended Profiles) [6]. Logo, optamos por
modificar o CAVLC. Assim, foi criado o D-CAVLC, do inglês Distributed CAVLC. Note que
modificações similares podem ser feitas em qualquer outro codificador de entropia presente no
codificador híbrido utilizado.
Neste Capítulo, inicialmente vamos descrever como a codificação CAVLC funciona, e depois
detalharemos o D-CAVLC utilizado para a camada de realce.
63
6.1
CODIFICAÇÃO DE ENTROPIA NO H.264
No padrão H.264 a codificação de entropia usa códigos de tamanho variável ou codificação
aritmética, dependendo do modo de codificação escolhido e do perfil utilizado [6].
As
informações que precisam ser codificadas pelo codificador de entropia, para cada macrobloco
16 × 16, são as seguintes:
• tipo do macrobloco;
• padrão do bloco codificado (em inglês coded block pattern ou cbp), que indica qual bloco
8 × 8 possui coeficientes diferentes de zero;
• o delta QP , ou variação do passo de quantização, utilizado somente se a otimização de RD
estiver ativa;
• o índice do quadro de referência para a predição inter-quadro;
• os vetores de movimento, transmitidos também em forma preditiva;
• os coeficientes residuais para cada bloco 4 × 4 ou 2 × 2.
No perfil de base (Baseline Profile) a codificação do bloco residual é realizada por CAVLC e
as outras informações de cabeçalho são codificadas utilizando códigos Exp-Golomb [44]. Na
codificação dos blocos residuais, o CAVLC codifica os coeficientes DC separadamente dos
coeficientes AC. Os coeficientes DC de cada bloco de 4 × 4 pixels, dentro de um macrobloco
de 16 × 16, são agrupados e codificados em blocos de 4 × 4 para o componente de luminância e
blocos de 2 × 2 pixels para os componentes de crominância.
6.1.1
Codificação Exp-Golomb
Os códigos exponenciais de Golomb, ou simplesmente códigos Exp-Golomb [44], são códigos
de tamanho variável com construção regular. Os códigos Exp-Golomb são construídos da seguinte
forma:
[N zeros][1][IN F O],
64
(6.1)
onde IN F O é um campo de N -bits o qual possui a informação. A palavra mais provável
é codificada sem zeros ao início e sem informação, ou seja por um único bit igual a 1.
Os dois códigos seguintes são codificados com um bit no campo de informação, os quatro
seguintes possuem dois bits no campo de informação, e assim sucessivamente. Este processo
é exemplificado na Tabela 6.1.
Tabela 6.1: Códigos Exp-Golomb
Número do Código
Código
0
1
1
010
2
011
3
00100
4
00101
5
00110
6
00111
7
0001000
8
0001001
...
...
A decodificação é feita da seguinte maneira:
• Ler os zeros antes do bit 1;
• Ler N -bits de informação, onde N é a quantidade de zeros lidos;
• o número do código é igual a 2N + IN F O − 1.
Logo, o mapeamento entre os símbolos a serem codificados e seus respectivos códigos deve
ser feito de tal forma que associe códigos menores aos símbolos mais freqüentes. Por exemplo,
o tipo de macrobloco mais freqüente deve ser associado ao número de código 0. Existem, várias
tabelas de mapeamento do H.264 para cada tipo de informação a ser codificada com códigos
Exp-Golomb. Para o caso específico do cbp existem duas tabelas de mapeamento: uma tabela é
utilizada quando a quadro foi do tipo intra e a outra quando o quadro for do tipo inter.
65
6.1.2
Seqüências de Zeros
Os coeficientes residuais quantizados precisam ser codificados da forma mais compacta
possível. Por isso, O CAVLC trabalha com seqüências de zeros, ou em inglês zero-runs. Isto
ocorre porque os coeficientes quantizados de um bloco residual normalmente são constituídos
por um grande numero de zeros e uma pequena quantidade de coeficientes diferentes de zero.
Logo, antes de realizar a codificação no CAVLC, os coeficientes são agrupados em pares do tipo
{seqüências de zeros, nível}. A seqüências de zeros indica a quantidade de zeros que precede um
determinado coeficiente diferente de zero, e o nível determina o valor desse coeficiente.
Para que a codificação por seqüências de zeros seja eficiente os coeficientes quantizados do
bloco residual devem ser reordenados para poder agrupar a maior quantidade de zeros antes
de cada nível. Pela característica da DCT os coeficientes residuais de alta freqüência possuem
valores mais próximos de zero que os coeficientes de baixa freqüência. Portanto, o reordenamento
dos coeficientes é feita em zig-zag conforme a Figura 6.1.
Figura 6.1: Ordem zig-zag de um bloco 4 × 4.
6.1.3
CAVLC
O codificador de entropia CAVLC no codec H.264/AVC é aperfeiçoado para codificar
seqüências de zeros do bloco residual ordenados em zig-zag. Os blocos podem ser de tamanho
4×4 ou 2×2. O tamanho 2×2 é usado somente para codificar os coeficientes DC da componente
de crominância, para todos os outros casos o tamanho de bloco é 4×4. A codificação CAVLC usa
certas características dos blocos residuais quantizados para codificar a informação. Por exemplo,
os coeficientes residuais de alta freqüência são comumente seqüências de ±1, portanto, o módulo
CAVLC codifica os coeficientes ±1 de alta freqüência de forma separada. Esses coeficientes são
66
chamados de trailing ones. A codificação CAVLC codifica as informações na seguinte ordem:
1. o número de coeficientes diferentes de zero e trailing ones;
2. o sinal de cada trailing one;
3. o nível dos coeficientes diferentes de zero restantes;
4. o número total de zeros antes dos coeficientes;
5. cada seqüência de zeros antes de cada coeficiente diferentes de zero.
No primeiro passo, O CAVLC codifica a quantidade de coeficientes diferentes de zero e a
quantidade de trailing ones como um único código. O número de coeficientes diferente de zero
varia de 0 a 16, enquanto a quantidade de trailing ones varia de 0 a 3 (somente os últimos ±1 são
considerados como trailing ones). Note que 0 é uma possibilidade para o número de coeficientes
porque o cbp é codificado para blocos 8 × 8. O CAVLC seleciona os códigos entre quatro tabelas
diferentes. Três tabelas contém códigos de tamanho variável e uma contém códigos de tamanho
fixo. A escolha das tabelas depende do número de coeficientes diferentes de zero nos blocos
previamente codificados posicionados acima e à esquerda no bloco atual. Cada uma das tabelas
de códigos com tamanho variável possui 62 entradas. A primeira usa códigos menores para
valores pequenos, a segunda para valores médios e a terceira para valores grandes. A codificação
de tamanho fixo usa palavras de 6 bits para cada código (4 bits para o número de coeficientes e 2
para a quantidade de trailing ones).
Os sinais de cada trailing one são codificados no segundo passo com 1 bit (0 = positivo, 1 =
negativo).
No terceiro passo, o nível de cada coeficiente diferente de zero, que não foi classificado como
trailing one, é codificado a partir do coeficiente de mais alta freqüência até o coeficiente de menor
freqüência. Para codificar os níveis, existem 7 tabelas diferentes. As tabelas são selecionadas
dependendo do valor do último coeficiente codificado, conforme o algoritmo seguinte:
1. iniciar a codificação com a primeira tabela;
2. codificar o coeficiente de mais alta freqüência diferente de zero;
3. se o valor codificado é maior que um limiar predefinido, utilizar a próxima tabela para o
próximo coeficiente.
67
A quantidade total de zeros que precede cada coeficiente diferente de zero é codificada no
quarto passo. O fato de codificar a quantidade total de zeros implica que a seqüência de zeros
do início do bloco em ordem zig-zag não precisa ser codificada. Se a quantidade de coeficientes
diferentes de zero indica que todos os 16 coeficientes são diferentes de zero, então o número total
de zeros não é codificado porque o decodificador sabe que será igual a zero. Logo, existem 15
tabelas de códigos diferentes para codificar o número total de zeros. Cada tabela depende do
número de coeficientes diferentes de zero, que pode variar de 1 a 15.
No último passo são codificadas cada seqüência de zeros que precede a cada coeficiente. Com
duas exceções:
• se não existem mais zeros a serem codificados, ou seja se a soma de todas as seqüências
codificadas até o momento é igual à quantidade total de zeros, a seqüência de zeros não é
codificada;
• também não é codificada a seqüência de zeros após o último coeficiente diferente de zero.
Para realizar a codificação o CAVLC escolhe entre 7 tabelas diferentes, de códigos com
tamanho variável, dependendo da quantidade de zeros restantes no bloco.
6.2
CODIFICAÇÃO DA CAMADA WYNER-ZIV
A geração do bit-stream da camada de realce é feita de maneira similar à codificação de
entropia da camada base. Porém, somente é necessário codificar o cbp e os dados residuais.
Não existe informação de cabeçalho, como tipo do macrobloco, vetores de movimento, etc. Os
parâmetros de codificação {QPwz , M } não são transmitidos, já que são determinados tanto no
codificador como no decodificador a partir de informação da camada base (ver Capítulo 5). Uma
escolha possível é codificar à taxa zero, o que significa utilizar QP → ∞ ou M = 1. Portanto,
o número de cosets gerados num bloco 4 × 4 é variável. Como foi mencionado, na Seção 5.2, os
parâmetros de codificação são gerados para cada banda de freqüência (BF ) no bloco.
Quando a seleção de {QPwz , M } feita pelo mecanismo de estimação indique que nenhum
coset será gerado no macrobloco inteiro de 16 × 16, ou seja quando M = 1 para todas as BF s de
68
cada bloco 4×4, nenhuma informação é codificada, nem o cbp. Isto ocorre porque o decodificador
possui um mecanismo similar de estimação. Logo, é possível deduzir no decodificador que
nenhum coset foi gerado no macrobloco sem necessidade do cbp. Se uma ou mais BF s são
selecionadas para criação de cosets (M 6= 1) para pelo menos um bloco 4 × 4 dentro do
macrobloco 16 × 16, então o cbp e a informação residual são codificados.
A codificação do cbp é feita utilizando os códigos Exp-Golomb, de maneira similar à camada
base, com a única diferença que a tabela de mapeamento utilizada para todos os quadros é a
tabela de predição intra. Como na seleção de parâmetros de codificação, é feita uma estimação
da quantidade de cosets que deve ser criada, se for necessário codificar o cbp, o mais provável é
que ele seja diferente de zero. A tabela de mapeamento inter utiliza códigos menores para cbp
próximos a zero, enquanto a tabela de mapeamento intra utiliza códigos menores para valores
maiores do cbp. Por isso, utiliza-se a tabela intra para os cosets. A informação residual é
codificada pelo D-CAVLC.
6.2.1
D-CAVLC
Nesta seção vamos detalhar as modificações feitas na codificação CAVLC no padrão
H.264/AVC para melhorar seu desempenho na camada de realce.
6.2.1.1
Número de coeficientes e trailing ones
Ao codificar os índices dos cosets temos a informação adicional da quantidade máxima de
cosets diferentes de zero dentro de um bloco de 4 × 4 pixels. Em outras palavras, quando
M 6= 1 durante a escolha dos parâmetros. Vamos nomear a quantidade máxima de cosets de
maxC . Idealmente maxC pode variar de 0 a 16. A partir do valor de maxC , as três tabelas de
códigos de tamanho variavél, utilizadas para codificar o número de coeficientes diferentes de zero
e trailing ones, podem ser aperfeiçoadas. Podemos criar três grupos de tabelas. O primeiro grupo,
por exemplo, deve retornar códigos pequenos para valores menores, similar a primeira tabela
do CAVLC padrão. Cada grupo deve possuir diferentes tabelas com a quantidade de entradas
decresente, logo com códigos menores. A quantidade de entradas é determinada por maxC .
Como os parâmetros de codificação são selecionados por BF , em um bloco 4 × 4 podemos
69
criar 7 tabelas diferentes em cada grupo. Na prática, não é necessário criar todas as tabelas
possíveis, já que o ganho é limitado. Logo, foram criados três grupos de tabelas de códigos de
tamanho variável, onde cada grupo possui 5 tabelas diferentes. As tabelas originais do CAVLC,
com 62 entradas, fazem parte de cada grupo, junto de 4 tabelas novas com maxC ∈ {1, 3, 6, 10}.
Durante a codificação, o grupo de tabelas é selecionado com o mesmo critério que no CAVLC
padrão, baseado nos coeficientes diferentes de zero dos blocos vizinhos. Dentro do grupo, cada
tabela é selecionada a partir de maxC . Um exemplo de uma tabela de codificação é apresentado
na Tabela 6.2. O conjunto completo de tabelas pode ser encontrado no Apêndice II.
Tabela 6.2: Tabela de Codificação (Primeiro Grupo, 1 ≤ maxC ≤ 3).
Trailing Ones
6.2.1.2
Num Coeff
0
1
2
3
0
1
-
-
-
1
0001
01
-
-
2
000010
000011
001
-
3
0000001
0000011
00000001
0000010
Níveis dos Coeficientes
Como mencionado anteriormente, o CAVLC utiliza 7 tabelas para codificar os níveis, sendo
que a codificação começa utilizando a primeira tabela feita para valores próximos a zero.
Ao codificar os níveis dos coeficientes diferentes de zero, para a camada Wyner-Ziv temos a
informação do módulo M usado para criar um determinado coset dentro de uma BF . Um valor
alto de M indica que é melhor usar tabelas coeficientes com valores médios ou altos. Portanto, se
M é maior que um limiar (10 em nossa implementação), a codificação dos níveis de coeficientes
começa a partir da segunda tabela ao invés da primeira. Note que já existe um mecanismo similar
no CAVLC padrão. Quando existem mais de 10 coeficientes diferentes de zero e menos que 3
trailing ones, a codificação também começa a partir da segunda tabela. O valor do limiar foi
determinado após diferentes testes.
70
6.2.1.3
Quantidade total de zeros
De forma similar à codificação do número de coeficientes e trailing ones, ao codificar o
número total de zeros temos a informação adicional de maxC . Esta informação também indica
o valor máximo do número total de zeros. Assim, podemos criar novas tabelas juntamente com
as 15 tabelas originais do CAVLC para codificar o número total de zeros. Além disso, se o
número de coeficientes diferentes de zero é igual a maxC , o número total de zeros não precisa ser
codificado. Na nossa implementação criamos 4 grupos de tabelas diferentes para serem utilizadas
com as tabelas originais. Para a criação das tabelas, os 4 limiares utilizados para o valor máximo
do número total de zeros foram 1,2,5 e 9. As tabelas podem ser encontradas no Apêndice II.
Em capítulos anteriores foi apresentada a arquitetura do codificador distribuído com resolução
mista, e os mecanismos para escolha dos parâmetros de codificação e estimação da correlação
estatística dos sinais. Neste capítulo foi detalhada a codificação da camada Wyner-Ziv ou camada
de realce. No Capítulo 7 serão apresentados os testes realizados com o codificador proposto,
mostrando seu desempenho e a redução no tempo de codificação.
71
7 EXPERIMENTOS
Este capítulo apresenta os resultados obtidos nos testes para avaliar o desempenho do codificador
de vídeo de complexidade reversa com resolução espacial mista (MR-DVC) e o detalhe das
condições dos testes de desempenho e do treinamento prévio feito para determinar o modelo
de estimação da correlação estatística dos sinais (ver Capítulo 5). A medida objetiva de distorção
utilizada foi a PSNR, apesar de não refletir perfeitamente a qualidade visual subjetiva do sinal, é
a mais usada na literatura. A PSNR é calculada pela equação (3.1).
Também foram realizados testes calculando o tempo de codificação, para poder comparar
a complexidade (esforço computacional) requerida para codificar uma seqüência de vídeo com
um codificador convencional e um codificador Wyner-Ziv, uma vez que o tempo requerido está
diretamente relacionado à quantidade de operações realizadas no algoritmo de codificação. Esta
metodologia é utilizada em outros trabalhos em DVC [89].
O modo de codificação Wyner-Ziv com resolução mista foi implementado no software KTA
do padrão estado-da-arte em codificação de vídeo H.264/AVC [90]. Para as simulações foi usada
estimação rápida de movimento [6]. O codificador de entropia CAVLC foi utilizado para a
camada base do modo Wyner-Ziv e para as simulações de codificação convencional híbrida. Para
a camada de realce foi utilizado o D-CAVLC (ver Capítulo 6). A função de otimização de RD
(em inglês Rate-Distortion Optimization, ou RDO) foi desativada para o modo de complexidade
reversa. O RDO é uma técnica não-normativa do padrão H.264/AVC, que minimiza a função de
custo de taxa-distorção permitindo variações no passo de quantização. Esta técnica é usada para
selecionar o modo ótimo para cada macrobloco [6]. O RDO é extremamente custoso em termos
de esforço computacional, portanto, como o objetivo é codificar a baixa complexidade, não foi
utilizada a função de otimização de RD. A janela de busca para a estimação de movimento em
todas as simulações foi 16 × 16 pixels, e foram usados no máximo 2 quadros de referência. O
modo direto dos quadros B foi o modo espacial [6].
73
7.1
SEQÜÊNCIAS DE VÍDEOS PARA TESTES
As seqüências de testes utilizadas neste trabalho fazem parte de um grupo de seqüências de
vídeo que são comumente utilizadas para realizar simulações e testes para medir o desempenho e
eficiência na codificação de vídeo. Cada seqüência possui 300 quadros capturados a 30 quadros
por segundo. As seqüências estão na resolução CIF, no formato Y U V 4 : 2 : 0, o que significa
que a componente de luminância Y possui 352 × 288 pixels e cada uma das componentes de
crominância (U e V ) possuem 176 × 144 pixels. É importante destacar que as três seqüências
recomendadas pela ITU (International Telecommunication Union) para testes de compressão de
vídeo em resolução CIF: Foreman, Silent e Container [91], fazem parte no grupo selecionado
neste trabalho.
Para uma melhor análise dos resultados as seqüências de testes foram agrupadas em três
categorias: baixo movimento, movimento médio e alto movimento. Para realizar a classificação
se optou por utilizar como critério a fração de blocos codificados com predição inter-quadro [92].
Para isso, primeiro devemos realizar a codificação das seqüências utilizando um codec híbrido
tradicional, no modo IP P P , com passo de quantização (QP ) igual a 1 e com restrição de taxa a
4.8 Mbps [92], onde IP P P significa que o primeiro quadro é intra e todos os outros são quadros
do tipo P (ver Seção 3.1). Depois, devemos obter a razão da quantidade de macroblocos que
foram codificados utilizando predição inter-quadro do total de macroblocos. Note que mesmo
o quadro sendo do tipo P o codificador pode optar por codificar um determinado macrobloco
com modo intra, e que o primeiro quadro do tipo I não deve ser considerado. Assim, quando a
fração de blocos inter for próxima a 1 (um) o vídeo é classificado como de baixo movimento, já
que praticamente 100% dos macrolobocos são preditos de quadros anteriores. Por exemplo, se a
fração for próxima a 0.5 o vídeo é classificado como de alto movimento, porque somente 50%
dos macroblocos podem ser obtidos com predição temporal.
Na Tabela 7.1 é mostrada a lista das seqüencias de vídeos utilizadas neste trabalho, uma breve
descrição de cada uma delas e sua classificação. Na Figura 7.1 é mostrado um quadro de cada
seqüência.
74
Tabela 7.1: Seqüências de vídeos utilizadas nos experimentos
Vídeo
Movimento
Fração
Descrição
de
blocos P
Akiyo
Baixo
0.9666
Uma apresentadora de jornal falando
Container
Baixo
0.9246
Um navio de carga se deslocando lentamente
Hall Monitor
Baixo
0.9146
Cena de um corredor com poucas pessoas andando
Silent
Médio
0.8637
Uma pessoa demonstrando linguagem de sinais
Mother-Daughter
Médio
0.8423
Uma mãe e filha falando
Foreman
Alto
0.5947
Um mestre de obras falando
Mobile
Alto
0.5722
Trem de brinquedo em movimento com um calendário atrás dele
Coastguard
Alto
0.5225
Um navio da guarda costeira se deslocando
Soccer
Alto
0.5484
Um treino de futebol
7.2
DESEMPENHO DO D-CAVLC
Conforme indicado no Capítulo 6, neste trabalho foram feitas modificações no codificador
CAVLC do padrão H.264/AVC para melhorar seu desempenho na codificação da camada WynerZiv. Para calcular o ganho de taxa foram feitos testes com as 9 seqüências, codificando 299
quadros, utilizando o CAVLC e o D-CAVLC. O percentual no ganho de taxas foi feito pelo
método recomendado pela ITU [93]. Na Tabela 7.2 é mostrada a redução na taxa de bits na
camada Wyner-Ziv ao utilizar o D-CAVLC. Para estes testes o modo de codificação reversa
Wyner-Ziv foi colocada para operar em modo IbP bP , onde um b indica um quadro NRWZ
codificado tipo B com um quarto da resolução (fator de dizimação 2 × 2). Como pode ser visto, o
ganho é significativo na maioria das seqüências, especialmente nas seqüências de alto movimento.
Tabela 7.2: Ganho da taxa de bits do bit-stream da camada Wyner-Ziv
Seqüências
Movimento Alto
Movimento Médio
Movimento Baixo
Foreman
Mobile
Soccer
Coastguard
Silent
Mother-Daughter
Hall Monitor
Container
Akiyo
5.91%
3.25%
2.50%
7.01%
2.02%
2.43%
1.98%
2.05%
1.51%
75
(a)
(b)
(c)
Figura 7.1: Quadros de exemplo das seqüências utilizadas. (a) Baixo Movimento, da esquerda
para direita: Akiyo, Container e Hall Monitor. (b) Movimento Médio, da esquerda para diretira:
Mother-Daughter e Silent. (c) Alto Movimento, da esquerda para direita: Coastguard, Foreman,
Mobile e Soccer
7.3
ANÁLISE DE COMPLEXIDADE DE CODIFICAÇÃO
Na arquitetura proposta utilizando resolução mista, a diminuição da complexidade é atingida
devido à codificação em baixa resolução dos quadros NRWZ. A quantidade de operações na
codificação de um quadro NRWZ deve ser menor que a quantidade de operações de um quadro
à resolução original. Para medida de complexidade optamos por utilizar o tempo de codificação.
Esta medida é somente um indicativo da complexidade de codificação, já que depende de diversos
fatores como a implementação do software, a arquitetura em que o software é executado, do
hardware do sistema, do sistema operacional, etc. Espera-se, que o tempo utilizado na estimação
76
de movimento nos quadros NRWZ seja menor do que o tempo utilizado para quadros com
resolução espacial normal. Assim, para realizar uma comparação objetiva de complexidade de
codificação foi medido o tempo médio de codificar uma determinada seqüência de vídeo para
diferentes valores de QP . Foram considerados 15 valores de QP e 299 quadros por seqüência.
Tabela 7.3: Tempo de codificação do H.264/AVC codec. (EM: Estimação de Movimento)
Modo IBIBI
Tempo Total (segundos)
Tempo EM (segundos)
EM / Tempo Total
Foreman
165.25
129.01
78.0%
Coastguard
170.95
132.78
77.6%
Silent
162.52
123.76
76.1%
MÉDIA
166.24
128.52
77.3%
Tempo Total (segundos)
Tempo EM (segundos)
EM / Tempo Total
Foreman
303.12
234.03
77.2%
Coastguard
319.61
249.02
77.9%
Silent
268.90
200.89
74.7%
MÉDIA
297.21
227.98
76.7%
Tempo Total (segundos)
Tempo EM (segundos)
EM / Tempo Total
Foreman
254.66
198.26
77.8%
Mother and Daughter
216.01
160.04
74.1%
MÉDIA
235.33
179.15
76.1%
Modo IP BP B
Modo IPn P Pn P
Na Tabela 7.3 é apresentado o tempo de codificação total médio e o tempo utilizado para
estimação de movimento do codec H.264 convencional, na implementação KTA, usando um Intel
Pentium D 915 Dual Core 2.80 GHz com 1 GB DDR2 de RAM. Para obter dados mais confiáveis
o processo de codificação foi feito com prioridade de tempo real, no sistema operacinal Windows
XP. Os modos de codificação utilizados foram o modo IPn P Pn P , onde Pn indica um quadro
tipo P que não é usado como referência, o modo IBP BP , onde os quadros B também não são
usados como referência, e o modo IBIB. Note que a estimação de movimento, mesmo sendo a
77
estimação rápida [6], é responsável por aproximadamente 76% do tempo total de codificação em
todos os casos.
O tempo de codificação para o modo com resolução mista proposto é mostrado na Tabela 7.4.
Este modo de codificação foi testado em IbIbI, IbP bP e IpP pP . Os quadros p e b indicam
quadros NRWZ com fator de dizimação 2 × 2.
Tabela 7.4: Tempo de codificação do modo com resolução mista no H.264/AVC (EM: Estimação
de Movimento)
Modo IbIbI
Tempo Total (seg)
Tempo EM (seg)
Redução do Tempo Total
comparado com IBIBI
Foreman
63.39
33.43
63.6%
Coastguard
63.08
32.44
63.1%
Silent
58.56
28.80
63.9%
MÉDIA
61.51
31.57
63.2%
Modo IbP bP
Tempo Total (seg)
Tempo EM (seg)
Redução do Tempo Total
comparado com IBP BP
Foreman
171.65
133.73
43.3%
Coastguard
184.06
142.86
42.4%
Silent
153.53
113.73
42.9%
MÉDIA
169.75
130.10
42.6%
Modo IpP pP
Tempo Total (seg)
Tempo EM (seg)
Redução do Tempo Total
comparado com IPn P Pn P
Foreman
162.73
125.90
36.1%
Mother and Daughter
134.75
98.70
37.6%
MÉDIA
148.74
112.30
36.79%
Pode-se observar que o codec em resolução mista utilizando quadros chave intra consegue
reduzir aproximadamente 63% do tempo de codificação. Quando os quadros chave são do tipo P
78
a redução de compexidade é aproximadamente 42%. No modo IpP pP a redução é de 36%
comparado ao IPn P Pn P . Para comparar como se pode adaptar a redução da complexidade
requerida, na Tabela 7.5 mostra-se o tempo de codificação de uma seqüência utilizando dois
quadros NRWZ, no modo IbbP bbP . Note que existe uma redução no tempo de codificação
comparado com o modo IbP bP , e que se comparamos sua codificação à codificação normal
IBBP BBP a redução do tempo de codificação é em torno de 66%.
Tabela 7.5: Tempo de codificação do modo com resolução mista no H.264/AVC (EM: Estimação
de Movimento, FPS: frame per second)
Modo IbbPbbP
Tempo Total (seg)
Tempo EM (seg)
Redução do Tempo Total
comparado com IBBP BBP
7.4
Foreman
117.97
78.65
66.4%
Silent
97.30
58.81
67.1%
MÉDIA
107.64
68.58
66.8%
ESTIMAÇÃO DA CORRELAÇÃO ESTATÍSTICA
Para obter o modelo de estimação da correlação estatística entre Y e X, é preciso estimar
σX , σZ e ρ. Este processo é realizado mediante as equações (5.4),(5.6) e (5.8), conforme descrito
no Capítulo 5. As constantes de cada equação são obtidas utilizando um grupo de quadros de
treinamento.
Durante o treinamento foram usados os 15 primeiros quadros de três seqüências diferentes,
totalizando 45 quadros. As seqüências utilizadas foram: Silent, Mobile e Akiyo. A seqüência
Silent é de movimento médio, a seqüência Mobile possui um movimento alto, e muita informação
de alta freqüência, por exemplo, bordas e contornos, enquanto a seqüência Akiyo é de baixo
movimento. Os 45 quadros de treinamento não fizeram parte dos testes de desempenho na
codificação. O grupo de testes, para a verificação do desempenho em termos de taxa-distorção, é
formado pelos 300 quadros de cada uma das 6 seqüências restantes, e os 285 quadros finais das
seqüências Silent, Mobile e Akiyo.
79
7.5
DESEMPENHO DO MODO DE CODIFICAÇÃO WYNER-ZIV
COM RESOLUÇÃO MISTA
Para os testes do desempenho do codificador Wyner-Ziv com resolução mista, realizamos
comparações com o codificador H.264/AVC convencional e com outras arquiteturas de DVC.
Para realizar as comparações no desempenho de codificação, as curvas de PSNR foram geradas
conforme a recomendação da ITU [91], onde a PSNR é obtida a partir da média da PSNR de cada
quadro.
foreman CIF: IbPbP
40
39
38
Y − Psnr Média (dB)
37
36
35
34
33
H.264/AVC
WZ com resolução mista após 3 iterações
WZ com resolução mista após 2 iterações
WZ com resolução mista após 1 iteração
32
31
30
0
500
1000
Taxa (Kbps) @ 30 fps
1500
Figura 7.2: Resultados de PSNR média para a componente de luminância da seqüência Foreman
no modo IbP bP . Comparando H.264 convencional no modo IBP BP e o modo de codificação
Wyner-Ziv depois de 1,2 e 3 iterações.
7.5.1
Comparação com codificação convencional híbrida
Na Fig. 7.2 é mostrado o desempenho da codificação para a seqüência Foreman de: (i) o
H.264/AVC convencional no modo IBP BP ; (i) o modo de codificação WZ IbP bP utilizando a
informação lateral depois de uma, duas e três iterações. A codificação é feita nas componentes de
luminância Y e crominância U V da seqüência, sendo que inicialmente mostramos os resultados
onde a PSNR foi calculada considerando somente a componente Y . Pode-se observar que o
modo WZ é competitivo, já que supera a codificação convencional a baixas taxas. Porém, para
altas taxas, a codificação convencional supera o modo WZ. A diferença de PSNR entre iterações é
pequena, mas existe uma diferença visual subjetiva perceptível. Para esta seqüência em particular,
80
mais iterações não representam um ganho significativo. Em todos os testes o limiar utilizado
na geração da informação lateral (ver Seção 4.4) foi Ti = {500, 80, 50, 8, 5}, onde o índice i
representa o número da iteração.
Akiyo CIF: IbPbP
Hall Monitor CIF: IbPbP
43
41
40
42
39
41
Y − Psnr Média (dB)
Y − Psnr Média (dB)
38
40
39
38
37
36
35
34
37
35
40
60
80
100
120
140
Taxa (Kbps) @ 30 fps
160
180
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
33
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
36
32
31
0
200
100
200
300
400
500
600
Taxa (Kbps) @ 30 fps
(a)
700
800
900
(b)
Silent CIF: IbPbP
41
40
Y − Psnr Média (dB)
39
38
37
36
35
34
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
33
32
100
200
300
400
500
Taxa (Kbps) @ 30 fps
600
700
(c)
Figura 7.3: Resultados de PSNR média para a componente de luminância para seqüências de
baixo e médio movimento no modo IbP bP . Comparando H.264 convencional no modo IBP BP ,
o modo de codificação Wyner-Ziv IbP bP depois de 3 iterações, a camada base e os quadros chave
junto com os quadros SSR. (a) Akiyo, (b) Hall Monitor e (c) Silent
Resultados adicionais para o mesmo modo IbP bP são mostrados na Figura 7.3 para
seqüências de baixo e médio movimento e na Figura 7.4 para seqüências de alto movimento. Nas
Figuras também são mostradas as curvas da camada base de baixa resolução, a qual representa
a decodificação a baixa complexidade, e a curva formada a partir dos quadros chaves e quadros
81
foreman CIF: IbPbP
Coastguard CIF: IbPbP
40
39
38
38
37
Y − Psnr Média (dB)
Y − Psnr Média (dB)
36
36
34
32
35
34
33
32
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
30
28
0
500
1000
Taxa (Kbps) @ 30 fps
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
31
30
29
400
1500
600
800
1000
(a)
39
35
38
34
37
33
36
32
35
34
33
32
31
200
400
2200
2400
31
30
29
28
27
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
29
2000
Mobile CIF: IbPbP
36
Y − Psnr Média (dB)
Y − Psnr Média (dB)
Soccer CIF: IbPbP
30
1800
(b)
40
28
0
1200 1400 1600
Taxa (Kbps) @ 30 fps
600
800
Taxa (Kbps) @ 30 fps
1000
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
26
25
24
0
1200
500
1000
(c)
1500
2000
Taxa (Kbps) @ 30 fps
2500
3000
3500
(d)
Figura 7.4: Resultados de PSNR para a componente de luminância para seqüências de alto
movimento no modo IbP bP . Comparando H.264 convencional no modo IBP BP , o modo de
codificação Wyner-Ziv depois de 3 iterações, a camada base e os quadros chave junto com os
quadros SSR. (a) Foreman, (b) Coastguard, (c) Soccer e (d) Mobile
SSR. É importante notar que em alguns casos a curva dos quadros SSR e quadros chave possui
grandes variações de PSNR entre quadros, já que os quadros chave e os quadros SSR não
necessariamente possuem uma distorção similar. Isto não acontece de forma tão evidente quando
a camada WZ é utilizada, já que a mecanismo de escolha de parâmetros de codificação vai tentar
gerar uma distorção constante na seqüência completa.
Podemos observar que para as seqüências de baixo e médio movimento o modo WZ
com resolução mista consegue ser muito eficiente, superando em alguns casos a codificação
82
convencional. Isto ocorre principalmente devido à geração adequada da SI. Para as seqüências
Akiyo e Silent o mecanismo de escolha de parâmetros de codificação não envia muitos índices
de cosets já que a predição indica que não é necessário. Para as seqüências de alto movimento o
desempenho é um pouco inferior, especialmente na seqüência Mobile. Isto deve-se a que esta
seqüência possui uma grande quantidade de informação de alta freqüência e movimento não
translacional superior ao que o processo de SSR consegue recuperar. O H.264/AVC possui
estimação de movimento com tamanho de blocos adaptativos de tal forma que pode realizar
uma melhor estimação de movimento para este tipo de seqüências. Logo, é possível melhorar
o resultado do codificador WZ para a seqüência Mobile se a geração da informação lateral for
implementada com tamanho de blocos variável. Para as seqüências Foreman, Coastguard e
Soccer, o modo WZ mesmo tendo o desempenho um pouco inferior, comparado às seqüências de
médio e baixo movimento, ainda é competitivo, e consegue superar a codificação híbrida a baixas
taxas em algumas seqüências. Os mesmos resultados considerando as componentes de luminância
e crominância são mostrados nas Figuras 7.5 e 7.6. Note que as componentes de crominância
possuem menor resolução que a componente de luminância e são sinais mais suaves. Assim,
a dizimação na crominância não é tão prejudicial como na luminância. Por isso, ao considerar
a PSNR de todas as componentes Y U V , a curva da camada base é mais próxima à curva da
codificação convencional.
Resultados para o modo de codificação IpP pP são apresentados nas Figuras 7.7 e 7.8
considerando somente a componente de luminância e todas as componentes, respectivamente.
A Figura mostra uma seqüência de cada grupo (baixo, médio e alto movimento). Também é
possível observar que os resultados para baixo e médio movimento são mais satisfatórios que os
resultados de alto movimento. Também, como os quadros P convencionais são menos eficientes
que os quadros B, o modo de codificação com resolução mista no modo IpP pP consegue um
desempenho aparentemente melhor, ao comparar com a codificação tradicional, do que no modo
IbP bP . Porém, o modo IpP pP é o que apresenta menor redução no tempo de codificação como
visto na Seção 7.3.
Como mostrado na Seção 7.3, o menor tempo de codificação é obtido utilizando quadros
de referência I. Nas Figuras 7.9 e 7.10 mostramos resultados do codificador WZ no modo
IbIbI comparados ao modo IBIBI do codec tradicional. Pode-se observar que neste modo
83
Akiyo CIF: IbPbP
Hall Monitor CIF: IbPbP
45
41.5
44
YUV − Psnr Média (dB)
YUV − Psnr Média (dB)
40.5
43
42
41
39.5
38.5
37.5
40
39
40
H.264/AVC
Camada Base
WZ com resolução mista
H.264/AVC
Camada Base
WZ com resolução mista
60
80
100
120
140
Taxa (Kbps) @ 30 fps
160
180
36.5
0
200
100
200
300
400
500
600
Taxa (Kbps) @ 30 fps
(a)
700
800
900
(b)
Silent CIF: IbPbP
43
42
YUV − Psnr Média (dB)
41
40
39
38
H.264/AVC
Camada Base
WZ com resolução mista
37
36
100
200
300
400
500
Taxa (Kbps) @ 30 fps
600
700
(c)
Figura 7.5: Resultados de PSNR para a componente de luminância e crominância para seqüências
de baixo e médio movimento no modo IbP bP . Comparando H.264 convencional, o modo de
codificação Wyner-Ziv depois de 3 iterações e a camada base. (a) Akiyo, (b) Hall Monitor e (c)
Silent
o codificador WZ apresenta um resultado inferior aos outros modos, quando comparado com a
codificação tradicional. Todavia, neste modo a redução da complexidade supera 60% (ver Tabela
7.4).
Outra alternativa para reduzir o tempo de codificação é incrementar o número de quadros
NRWZ. Porém, é esperado qune quanto maior o número de quadros NRWZ, pior será o
desempenho do codificador em termos de RD. Isto ocorre porque a geração da informação
lateral não é tão eficiente quando não se utiliza quadros contíguos temporalmente. Na Figura
84
foreman CIF: IbPbP
Costguard CIF: IbPbP
43
44
42
43
H.264/AVC
Camada Base
WZ com resolução mista
41
YUV − Psnr Média (dB)
YUV − Psnr Média (dB)
42
40
39
38
41
40
39
37
H.264/AVC
Camada Base
WZ com resolução mista
36
35
0
500
1000
Taxa (Kbps) @ 30 fps
38
37
400
1500
600
800
1000
(a)
Soccer CIF: IbPbP
2000
2200
2400
Mobile CIF: IbPbP
37
42
36
41
35
YUV − Psnr Média (dB)
YUV − Psnr Média (dB)
1800
(b)
43
40
39
38
37
36
34
33
32
31
30
H.264/AVC
Camada Base
WZ com resolução mista
35
34
0
1200
1400
1600
Taxa (Kbps) @ 30 fps
200
400
600
800
Taxa (Kbps) @ 30 fps
1000
H.264/AVC
Camada Base
WZ com resolução mista
29
28
0
1200
(c)
500
1000
1500
2000
Taxa (Kbps) @ 30 fps
2500
3000
3500
(d)
Figura 7.6: Resultados de PSNR para a componente de luminância e crominância para seqüências
de alto movimento no modo IBPBP. Comparando H.264 convencional, o modo de codificação
Wyner-Ziv depois de 3 iterações e a camada base. (a) Foreman, (b) Coastguard, (c) Soccer e (d)
Mobile
7.11 mostramos o resultados da codificação da seqüência de alto movimento Foreman em modo
IbbP bbP comparado ao modo IBBP BBP do H.264 tradicional. Como esperado, o desempenho
em termos de RD do codificador WZ é significativamente inferior ao codificador tradicional,
mas possui uma queda na complexidade de aproximadamente 66% (ver Seção 7.3). O tempo
em codificar uma seqüência IBBP BBP em um codificador tradicional é superior ao tempo de
codificar a mesma seqüência no modo IBP BP , já que os quadros B são mais custosos que os
quadros P . No caso do codificador WZ proposto o modo IbbP bbP é mais rápido que o modo
85
Container CIF: IpPpP
Mother−Daughter CIF: IpPpP
39
42
38
41
37
40
Y − Psnr Média (dB)
Y − Psnr Média (dB)
36
35
34
33
39
38
37
32
30
29
0
36
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
31
100
200
300
400
Taxa (Kbps) @ 30 fps
500
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
35
34
50
600
100
150
200
250
Taxa (Kbps) @ 30 fps
(a)
300
350
(b)
foreman CIF: IpPpP
39
38
Y − Psnr Média (dB)
37
36
35
34
33
32
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
31
30
0
200
400
600
800
Taxa (Kbps) @ 30 fps
1000
1200
1400
(c)
Figura 7.7:
Resultados de PSNR para a componente de luminância no modo IpP pP .
Comparando H.264 convencional, o modo de codificação Wyner-Ziv depois de 3 iterações, a
camada base e os quadros chave junto com os quadros SSR. (a) Container - baixo movimento,
(b) Mother-Daughter - movimento médio, (c) Foreman - alto movimento
IbP bP , já que possui mais quadros NRWZ. Logo, é possível adaptar a complexidade mediante o
número de quadros NRWZ.
Como foi mencionado anteriormente, a baixas taxas para a maioria das seqüências, o modo de
codificação Wyner-Ziv proposto neste trabalho, possui um melhor desempenho em termos de RD
do que o H.264/AVC padrão. Isto se deve a correta geração da SI aplicada a um framework com
resolução mista. A codificação em resolução mista proposta pode ser vista como uma codificação
interpolativa. A codificação interpolativa foi proposta para imagens [94] e permite um melhor
86
Container CIF: IpPpP
Mother−Daughter CIF: IpPpP
43
44.5
44
42
43.5
YUV − Psnr Média (dB)
YUV − Psnr Média (dB)
41
40
39
38
36
0
100
200
300
400
Taxa (Kbps) @ 30 fps
500
42
41.5
41
40.5
H.264/AVC
Camada Base
WZ com resolução mista
37
43
42.5
H.264/AVC
Camada Base
WZ com resolução mista
40
39.5
50
600
100
150
200
250
Taxa (Kbps) @ 30 fps
(a)
300
350
(b)
foreman CIF: IpPpP
42
YUV − Psnr Média (dB)
41
40
39
38
H.264/AVC
Camada Base
WZ com resolução mista
37
36
0
200
400
600
800
Taxa (Kbps) @ 30 fps
1000
1200
1400
(c)
Figura 7.8: Resultados de PSNR para a componente de luminância e crominância no modo
IpP pP . Comparando H.264 convencional, o modo de codificação Wyner-Ziv depois de 3
iterações e a camada base. (a) Container - baixo movimento, (b) Mother-Daughter - movimento
médio, (c) Foreman - alto movimento
desempenho que a compressão de imagens com resolução original a baixas taxas.
7.5.2
Comparação com outras arquiteturas DVC
Para uma melhor análise da eficiência do nosso codificador, comparamos o codificador com
resolução mista com um dos codecs WZ mais populares na literatura: o codec DISCOVER [67].
O DISCOVER é um codificador distribuído que utiliza a arquitetura de Stanford (ver Seção
3.2.1). Dentro dos codecs com a arquitura de Stanford, o DISCOVER é um dos codecs que
87
Hall Monitor CIF: IbIbI
Coastguard CIF: IbIbI
41
40
40
39
38
39
Y − Psnr Média (dB)
Y − Psnr Média (dB)
37
38
37
36
35
36
35
34
33
34
33
32
600
800
1000
1200
1400
Taxa (Kbps) @ 30 fps
1600
1800
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
32
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
31
30
1000
2000
1500
2000
2500
Taxa (Kbps) @ 30 fps
(a)
3000
3500
(b)
foreman CIF: IbIbI
42
40
Y − Psnr Média (dB)
38
36
34
H.264/AVC
Camada Base
Camada base + SSR
WZ com resolução mista
32
30
0
500
1000
1500
2000
Taxa (Kbps) @ 30 fps
2500
3000
3500
(c)
Figura 7.9: Resultados de PSNR para a componente de luminância no modo IbIbI. Comparando
H.264 convencional no modo IBIBI, o modo de codificação Wyner-Ziv depois de 3 iterações e a
camada base e os quadros chave junto com os quadros SSR. (a) Hall Monitor - baixo movimento,
(b) Coastguard- alto movimento, (c) Foreman- alto movimento
reportam melhor desempenho. O DISCOVER utiliza uma geração de informação lateral mediante
interpolação temporal de quadros uni e bi-direcional, refinamento dos vetores de movimento e
técnicas de suavização [95, 96]. A codificação de canal do DISCOVER, pode ser feita por Turbo
Codes ou LDPC, sendo que a implementação com LDPC apresenta um melhor desempenho e foi
utilizada nestes testes.
As simulações do DISCOVER foram feitas utilizando estimação de movimento rápida e
codificação de entropia CAVLC. Além disso, realizamos testes com o DISCOVER com e sem
88
Coastguard CIF: IbIbI
44
42
43
YUV − Psnr Média (dB)
YUV − Psnr Média (dB)
Hall Monitor CIF: IbIbI
43
41
40
39
H.264/AVC
Camada Base
WZ com resolução mista
38
37
600
800
1000
1200
1400
Taxa (Kbps) @ 30 fps
1600
1800
42
41
40
39
H.264/AVC
Camada Base
WZ com resolução mista
38
1000
2000
1500
2000
2500
Taxa (Kbps) @ 30 fps
(a)
3000
3500
(b)
foreman CIF: IbIbI
44
43
YUV − Psnr Média (dB)
42
41
40
39
38
H.264/AVC
Camada Base
WZ com resolução mista
37
36
0
500
1000
1500
2000
Taxa (Kbps) @ 30 fps
2500
3000
3500
(c)
Figura 7.10: Resultados de PSNR para a componente de luminância e crominância no modo
IbIbI. Comparando H.264 convencional no modo IBIBI; o modo de codificação Wyner-Ziv
depois de 3 iterações; e a camada base. (a) Hall Monitor - baixo movimento, (b) Coastguardalto movimento, (c) Foreman- alto movimento
RDO. A maioria dos resultados do DISCOVER reportados na literatura utilizam o RDO [67, 95].
O codec DISCOVER somente trabalha com a componente de luminância Y e unicamente permite
utilizar quadros chave do tipo intra, ou seja, o modo de codificação foi IZIZI, onde Z indica
um quadro WZ codificado totalmente de forma distribuída. Também é importante notar que o
DISCOVER utiliza tabelas de quantização para os quadros Z que são dependentes da seqüência.
Em outras palavras, dada uma determinada seqüência, o DISCOVER utiliza uma determinada
tabela de quantização. Esta tabela de quantização não é feita para maximizar o desempenho, mas
89
foreman CIF: IbbPbbP
41
40
39
Y − Psnr Média (dB)
38
37
36
35
34
33
H.264/AVC
WZ com resolução mista
32
31
100
200
300
400
500
600
700
Taxa (Kbps) @ 30 fps
800
900
1000
1100
Figura 7.11: Resultados de PSNR para a componente de luminância da seqüência Foreman no
modo IbbP bbP . Comparando H.264 convencional e o modo de codificação Wyner-Ziv.
para obter uma qualidade visual subjetiva uniforme da seqüência decodificada. O DISCOVER
também utiliza um canal de retorno. O modo de codificação distribuído proposto neste trabalho,
não utiliza canal de retorno e a seleção dos parâmetros de quantização para os quadros NRWZ é
feita de forma automática.
Em termos de complexidade utilizando o RDO, o codec DISCOVER codifica uma seqüência
CIF em 165 segundos, em média. Este tempo é comparável ao tempo do codificador proposto
nos modos IbP bP e IpP pP sem RDO. Por outro lado, sem RDO, o DISCOVER pode codificar
uma seqüência inteira em aproximadamente 20 segundos. A arquitetura de resolução mista não
consegue atingir uma complexidade tão baixa. No caso, de utilizar quadros chave do tipo intra
(IbIbI) o codificador com resolução mista utiliza aproximadamente 60 segundos. Porém, como
pode ser visto na Figura 7.12, o modo proposto possui um desempenho em termos de RD superior
ao DISCOVER. Na Figura 7.12 mostramos a curvas de RD: (i) o codificador com resolução mista
no modo IbP bP e (ii) no modo IbIbI, (iii) o DISCOVER no modo IZIZI com RDO e (iv)
sem RDO. Note que tanto a PSNR como a taxa são calculadas somente para a componente de
luminância.
Nas seqüências Foreman e Hall Monitor o codificador com resolução mista em ambas as
configurações supera o DISCOVER por uma margem significativa. Na seqüência Foreman o
modo de codificação na configuração IbIbI supera o DISCOVER por 1 a 2 dB, e o modo na
90
configuração IbP bP por mais de 5 dB. Na seqüência Hall Monitor a diferença é ainda maior. De
todos os testes realizados, o único onde o DISCOVER consegue superar o codificador proposto
é na seqüência Soccer, onde o DISCOVER supera o modo de resolução mista somente em
IbIbI para altas taxas. Isto deve se dar porque a estimação dos parâmetros {QPwz , M } não
foi satisfatória na seqüência Soccer no modo IbIbI, enquanto o DISCOVER utiliza um canal de
retorno. Contudo, o modo IbP bP tem um melhor desempenho que o DISCOVER também nesta
seqüência.
Foreman CIF
Hall Monitor CIF
44
44
42
43
41
42
40
41
39
Y − Psnr Média (dB)
Y − Psnr Média (dB)
43
38
37
36
35
39
38
37
36
34
33
35
DISCOVER IZIZI com RDO
DISCOVER IZIZI sem RDO
WZ com resolução Mista IbPbP
WZ com resolução Mista IbIbI
32
31
30
0
40
1000
2000
3000
4000
5000
DISCOVER IZIZI com RDO
DISCOVER IZIZI sem RDO
WZ com resolução Mista IbPbP
WZ com resolução Mista IbIbI
34
33
32
0
6000
500
1000
1500
Taxa (Kbps) @ 30 fps
2000
2500
3000
3500
4000
Taxa (Kbps) @ 30 fps
(a)
(b)
Soccer CIF
42
41
40
39
Y − Psnr Média (dB)
38
37
36
35
34
33
32
DISCOVER IZIZI sem RDO
DISCOVER IZIZI com RDO
WZ com resolução mista IbPb
WZ com resolução mista IbIb
31
30
29
28
0
500
1000
1500
2000
2500
3000
Taxa (Kbps) @ 30 fps
(c)
Figura 7.12: Curvas de PSNR para a componente Y . Comparando o modo de codificação com
resolução mista com outra arquitetura de DVC: (a) Foreman CIF; (b)Hall Monitor CIF, (c) Soccer
CIF
Como já foi mencionado, o DISCOVER somente opera com quadros chave intra. Para
verificar o potencial da arquitetura de Stanford com quadros chave inter, implementamos uma
91
geração de informação temporal muito utilizada nesta arquitetura: algoritmo SE-B [65, 66]. Neste
algoritmo, a idéia básica é realizar estimação de movimento entre os dois quadros chave e gerar o
quadro interpolado. Inicialmente a estimação de movimento é feita utilizando o quadro anterior
como fonte e o posterior como referência obtendo os vetores de movimento M VF . Depois, um
novo processo de estimação de movimento é feito agora com o quadro posterior como fonte e o
anterior como referência, gerando M VB . O quadro intermediario é gerado a partir de uma média
entre os quadros compensados utilizando M VF /2 e M VB /2. Basicamente, este método assume
que o movimento do quadro que está sendo interpolado é a metade entre o movimento existente
entre os quadros chave anterior e posterior. A interpolação SE-B é uma das mais usadas na
arquitetura de Stanford, e é usada como referência para comparar geração de informação lateral
em outros trabalhos [30, 31, 32]. Realizamos, então, testes de geração de informação lateral
comparando o SE-B e o algoritmo de semi super resolução (SSR), assumindo que uma melhor
informação lateral possibilita um melhor desempenho do codificador Wyner-Ziv.
Na Figura 7.13, é mostrada a comparação entre o desempenho dos processos de geração de
SI. Estas curvas de PSNR foram calculadas a partir da MSE da seqüência inteira. Isto se deve ao
fato que seqüências formadas pelos quadros chaves e quadros da geração de SI (SE-B ou SSR)
possuem grandes variações de PSNR. Os quadros chaves possuem uma PSNR significativamente
melhor que os quadros de SI. Logo, utilizar a PSNR média para este caso particular não é um
bom indicativo da qualidade subjetiva do sinal. Nos gráficos são mostrados: (i) os quadros chave
decodificados e os quadros resultantes do processo de SSR após uma iteração, para o codificador
com resolução mista no modo IbIbI; (ii) os quadros chave decodificados e os quadros resultantes
do processo de SSR após uma iteração, para o codificador com resolução mista no modo IbP bP ;
(iii) os quadros chave tipo I e os quadros interpolados mediante o método SE-B para a arquitetura
de Stanford; e (iv) os quadros chave tipo P e os quadros interpolados mediante o método SE-B
para a arquitetura de Stanford. Foram utilizadas as seqüências de alto movimento Coastguard,
Foreman, Mobile, e a seqüência de movimento médio Silent.
Como era esperado, o nosso método possui um desempenho superior à geração de informação
lateral SE-B. Novos métodos de geração de informação lateral para a arquitetura de Stanford
podem levar a um melhor desempenho do codificador Wyner-Ziv [30, 31, 32, 97]. Porém, como
nosso framework trabalha com uma versão em baixa resolução do quadro, a nossa arquitetura
92
Coastguard CIF
35
40
34.5
39
34
38
33.5
Y Psnr (dB)
Y Psnr (dB)
Silent CIF
41
37
36
32.5
32
35
31.5
34
Resolução Mista+SSR (IbIbI)
Resolução Mista+SSR (IbPbP)
Stanford + SE-B (IZPZP)
Stanford + SE-B (IZIZI)
33
32
0
33
500
1000
1500
2000
Rate (Kbps) @ 30 fps
2500
3000
Resolução Mista + SSR (IbIbI)
Resolução Mista+SSR (IbPbP)
Stanford + SE-B (IZPZP)
Stanford + SE-B (IZIZI)
31
30.5
500
3500
1000
1500
2000
2500
Rate (Kbps) @ 30 fps
(a)
3000
3500
(b)
Foreman CIF
Mobile CIF
37
28
36
27.5
35
34
Y Psnr (dB)
Y Psnr (dB)
27
33
26.5
32
31
26
Resolução Mista + SSR (IbIbI)
Resolução Mista+SSR (IbPbP)
Stanford + SE-B (IZPZP)
Stanford + SE-B (IZIZI)
30
29
0
500
1000
1500
2000
Rate (Kbps) @ 30 fps
2500
3000
Resolução Mista + SSR (IbIbI)
Resolução Mista+SSR (IbPbP)
Stanford + SE-B (IZPZP)
Stanford + SE-B (IZIZI)
25.5
0
3500
(a)
500
1000
1500
2000
2500
3000
Rate (Kbps) @ 30 fps
3500
4000
4500
5000
(b)
Figura 7.13: Resultados do processo de semi super resolução para quatro seqüências diferentes.
Comparando a semi super resolução para quadros b usando quadros-chave tipo I e tipo P , e a
interpolação SE-B para os mesmos quadros chave.
tem o potencial de superar qualquer método de geração de informação lateral da arquitetura de
Stanford. Uma melhor informação lateral implica um melhor desempenho de RD do codec [66].
Por outro lado, como foi discutido anteriormente, a arquitetura de Stanford consegue codificar
seqüências de vídeo a um custo computacional menor.
No próximo capítulo serão apresentadas as conclusões gerais do trabalho, detalhando as
contribuições realizadas na presente pesquisa e as perspectivas para trabalhos futuros.
93
8 CONCLUSÕES
O trabalho apresentado consiste em um modo de codificação de vídeo com complexidade reversa,
ideal para cenários onde a codificação de vídeo é feita por dispositivos móveis com restrição de
energia. A codificação com complexidade reversa é baseada na codificação distribuída de vídeo.
A redução de complexidade, no processo de codificação, é alcançada mediante a codificação de
quadros em baixa resolução, formando a camada base. A camada de realce é gerada a partir de
um quadro residual entre o quadro reconstruído interpolado e o quadro original. Os coeficientes
transformados do quadro residual são codificados mediante uma técnica distribuída utilizando
índices de cosets sem memória, sem o uso de um canal de retorno.
O modo de codificação possui resolução mista, já que os quadros-chave são codificados em
uma resolução espacial normal. Este modo pode ser utilizado opcionalmente, permitindo que o
codificador de vídeo não opere sempre no modo de complexidade reversa. Este modo pode ser
ligado somente quando necessário, por exemplo, se o dispositivo móvel está com pouca bateria. O
uso de quadros com resolução mista faz com que a codificação Wyner-Ziv possua um desempenho
competitivo, em termos de taxa-distorção. A redução no esforço computacional, que implica uma
perda de desempenho, pode ser feita de forma adaptável mudando a quantidade de quadros em
baixa resolução e o fator de dizimação.
O único canal de comunicação entre o decodificador e codificador é o sinal de vídeo codificado
em duas camadas. Não existe canal de retorno nem informação auxiliar (hash). Logo, o
decodificador pode reproduzir a seqüência de vídeo imediatamente após esta ser recebida ou
armazenar a seqüência para reproduzi-la em qualquer outro momento. A arquitetura também
permite que o decodificador consiga reproduzir uma seqüência com baixa complexidade de
decodificação sem perda de quadros, simplesmente interpolando os quadros da camada base.
Foi feito um estudo de complexidade, baseado no tempo de codificação, para verificar a
redução do esforço computacional que a arquitetura proposta possibilita. Foi mostrado que a
codificação com resolução mista pode obter uma complexidade similar com um desempenho
superior à arquitetura de codificação Wyner-Ziv de Stanford [17, 67], usando quadros-chave
95
com codificação do tipo inter.
Por outro lado, é improvável que consigamos obter uma
redução de complexidade tão drástica como a obtida pela arquitetura de Stanford com quadros
chave do tipo intra, já que na codificação com resolução mista a estimação de movimento é
sempre necessária. Porém, o uso de codificadores de vídeo em hardware, ou o aumento de
capacidade dos dispositivos móveis, pode fazer que uma drástica redução de complexidade não
seja necessária. Assim, a arquitetura desenvolvida permite uma melhor adaptabilidade da redução
de complexidade em troca do desempenho de codificação.
Para se atingir um bom desempenho de taxa-distorção foi apresentado um novo método de
geração de informação lateral que usa um fator de confiabilidade (Seção 4.4) para controlar
a adição de alta freqüência. Este método possibilita que o nosso codificador com resolução
mista consiga alcançar um desempenho até mesmo superior à codificação convencional para
seqüências de baixo conteúdo de alta freqüência e baixo movimento. Em outras palavras, o
método de geração de informação lateral consegue recuperar satisfatoriamente perdas moderadas
de informação de alta freqüência. A geração da informação lateral pode ser feita de forma iterativa
melhorando a sua qualidade visual, mas a um custo de maior complexidade de decodificação, já
que cada iteração é um novo processo de decodificação.
8.1
APRESENTAÇÃO DAS CONTRIBUIÇÕES DO DOUTORADO
A concepção e implementação do framework no padrão H.264/AVC, é uma das principais
contribuições desta tese. Este framework permite codificação em duas camadas com redução
de complexidade. A decodificação também possui um modo de baixa complexidade, e quando
a camada de realce é codificada, o codec é competitivo ao ser comparado com a codificação
convencional híbrida. Foi mostrado, por meio dos experimentos, que utilizando um modo de
operação com resolução mista é possível que a codificação distribuída supere a codificação
convencional, embora em um caso restrito a baixas taxas, e principalmente caso a seqüência de
vídeo possua baixo ou médio movimento. O modo de operação com resolução mista pode reduzir
as redundâncias temporais de uma seqüência, podendo aproveitar o conteúdo de alta freqüência
de alguns quadros, os quadros-chave, para reutilizar em outros, os quadros Wyner-Ziv. Nos
96
experimentos, a codificação Wyner-Ziv foi comparada com a codificação convencional operando
nas mesmas condições, sem restrições, diferentemente de comparações com a codificação
tradicional restringindo o uso somente de vetores de movimento nulos (iguais a zero), o que é mais
comumente encontrado na literatura para codificadores Wyner-Ziv implementados no H.264/AVC
[67, 95].
Outra contribuição importante deste trabalho é o método de estimação da correlação estatística
dos sinais. Foi realizada uma busca na literatura e parece não haver um método similar que
tenha sido apresentado anteriormente, já que a grande maioria das arquiteturas de codificação
distribuída utiliza um canal de retorno. Alguns estudos apresentaram um mecanismo para a
alocação de taxa da arquitetura de Stanford sem utilizar canal de retorno [98, 99, 100]. Porém,
normalmente uma simples diferença nos valores dos pixels entre o quadro original e o quadro
de referência é utilizada para predizer a probabilidade de erro nos planos de bits [98, 99],
obtendo um desempenho similar ao utilizar o canal de retorno somente em algumas seqüências
de baixo movimento. O método de estimação da correlação estatística proposto neste trabalho
é mais robusto. O método de estimação da correlação é usado para a escolha dos parâmetros
de codificação. Logo, ele é responsável pela alocação automática da taxa. No caso de se
obter uma perfeita estimação, os parâmetros escolhidos para o código de canal mediante cosets
sem memória serão ótimos para o modelo estatístico proposto. Assim, nosso método apresenta
resultados satisfatórios para seqüências de baixo e médio movimento e inclusive para algumas
seqüências de alto movimento. A arquitetura PRISM [61], que não utiliza canal de retorno,
assume que a correlação entre os sinais e o ruído Wyner-Ziv é conhecida tanto no codificador
e decodificador. Nosso método pode ser aplicado, com algumas modificações, na arquitetura
PRISM. Como arquitetura PRISM não é separada em camadas, logo é necessário substituir a taxa
de codificação da camada base por outro parâmetro, como por exemplo, a taxa utilizada em blocos
vizinhos, para realizar a estimação. Também será necessário fazer um novo treinamento.
Como foi mencionado, na Seção 3.3, a codificação distribuída não oferece normalmente um
controle de taxa ou distorção. Porém, nosso mecanismo de estimação de correlação aplicada
na escolha dos parâmetros ótimos, também permite obter um valor esperado da distorção e
taxa, eliminando a incerteza do ponto de operação da codificação distribuída. Com os valores
estimados de taxa e distorção é possível elaborar funções de controle e/ou restrição de taxa no
97
codificador distribuído, de forma similar aos mecanismos de restrição de taxa na codificação
híbrida convencional [6].
Foi também apresentado um novo modelo para o sinal de informação lateral, onde é
considerado um fator de atenuação. Este modelo pode ser visto como uma generalização do
modelo clássico, onde a informação lateral é modelada como o sinal original adicionado de um
sinal de ruído. No modelo proposto a informação lateral é descrita pela adição do sinal de ruído
e o sinal original escalonado pelo fator de atenuação.
Para a geração da informação lateral foi implementado um método chamado de semi super
resolução, onde quadros em alta resolução são usados para aumentar a resolução espacial de um
quadro em baixa resolução. Como mostrado em outros trabalhos de super resolução utilizando
técnicas similares [83, 101], o método de semi super resolução pode ser utilizado em diferentes
cenários, que não necessariamente estejam relacionados com a codificação distribuída. O método
proposto neste trabalho possui um fator de confiabilidade e a possibilidade de utilizar várias
iterações, com o objetivo de melhorar a qualidade de quadro resultante do processo de semi super
resolução.
Finalmente, também modificamos um codificador de entropia, inicialmente otimizado para
trabalhar com coeficientes residuais, para codificar índices de cosets. Estas modificações podem
ser utilizadas em outros codificadores que utilizem cosets ou síndrome.
Uma lista das publicações obtidas neste trabalho, e outras contribuições, pode ser encontrada
no Apêndice III.
8.2
PERSPECTIVAS PARA TRABALHOS FUTUROS
Estudos futuros podem melhorar ou estender a pesquisa realizada nas seguintes áreas:
• Estender o trabalho para que possa ser usado em caso de codificação com vistas múltiplas
(em inglês multi-view systems). Em outras palavras, quando uma seqüência de vídeo é
gravada simultaneamente por várias câmeras em posições diferentes, com objetivo de obter
uma versão tridimensional do sinal, ou do arranjo ótimo das câmeras. Em sistemas com
98
vistas múltiplas as principais exigências são: (i) codificação a baixa complexidade, já
que os dispositivos devem normalmente transmitir em tempo real, (ii) resistência a erros
de transmissão, já que a codificação requer uma comunicação confiável entre todos os
dispositivos, e (iii) alta taxa de compressão, por existir limitação de banda no canal de
transmissão. Assim, este é outro cenário onde a codificação distribuída pode ser aplicada.
Inclusive já existem trabalhos onde uma arquitetura similar à arquitetura de Stanford é
aplicada a um sistema de vistas múltiplas [102].
• Implementar um mecanismo automático de alocação de recursos, o qual pode variar a
quantidade de quadros Wyner-Ziv e o fator de dizimação de forma dinâmica durante a
codificação de uma seqüência de vídeo a medida que a bateria, ou outros recursos, diminui.
• Melhorar a função de semi super resolução utilizando blocos de tamanho variável, e
combinando a técnica com técnicas Bayesianas de super resolução.
99
REFERÊNCIAS BIBLIOGRÁFICAS
[1] PRATT, W. K. Digital Image Processing. 3rd. ed. : Willey, 2001.
[2] COTE, G. et al. H.263+: Video coding at low bit-rates. IEEE Trans. Circuits Syst. Video
Technology, v. 8, n. 7, pp. 849–866, Novembro 1998.
[3] HASKELL, B.; PURI, A.; NETRAVALI, A. Digital Video: An Introduction to MPEG-2. :
Chapman & Hall, 1996.
[4] WALSH, A.; BOURGES-SéVENIER, M. MPEG-4 Jump Start. : Prentice-Hall, 2002.
[5] PEREIRA, F.; EBRAHIMI, T. The MPEG-4 Book. : IMSC Press, 2002.
[6] WEIGAND, T. et al. Overview of the H.264/AVC video coding standard. IEEE Transactions
on Circuits and Systems for Video Technology, v. 13, n. 7, pp. 560–576, 2003.
[7] SCHWARZ, H.; MARPE, D.; WIEGAND, T. SNR-scalable extension of H.264/AVC. In
Proc of IEEE International Conf on Image Processing, pp. 3113–3116, 2004.
[8] SCHWARZ, H.; MARPE, D.; WIEGAND, T. MCTF and scalability extension of
H.264/AVC. Picture Coding Symposium, San Franciso, USA, Dezembro 2004.
[9] SCHWARZ, H.; MARPE, D.; WIEGAND, T. Combined scalability support for the scalable
extension of H.264/AVC. In Proc. of IEEE International Conf on Multimedia and Expo.,
Amsterdam, The Netherlands, Julho 2005.
[10] DOMANSKI, M.; BLASZAK, L.; MACKOWIAK, S. AVC video coders with spatial and
temporal scalability. Picture Coding Symposium, Saint-Malo, France, Abril 2003.
[11] YAN, R. et al. Efficient video coding with hybrid spatial and fine-grain SNR scalabilities. In
Proc of SPIE Visual Communications and Image Processing, v. 4671, pp. 850–859, 2002.
[12] A.LEONTARIS; COSMAN, P. Drift-resistant SNR scalable video coding. IEEE Trans on
Image Processing, v. 15, n. 8, pp. 2191–2197, Agosto 2006.
101
[13] COOK, G. et al. Rate-distortion analysis of motion-compensated rate scalable video. IEEE
Trans on Image Processing, v. 15, n. 8, pp. 2170–2190, Agosto 2006.
[14] SLEPIAN, J.; WOLF, J. Noiseless coding of correlated information sources. IEEE Trans on
Information Theory, v. 19, n. 4, pp. 471–480, Julho 1973.
[15] WYNER, A.; ZIV, J. The rate-distortion function for source coding with side information at
the decoder. IEEE Trans on Information Theory, v. 2, n. 1, pp. 1–10, Janeiro 1976.
[16] PRADHAN, S. S.; RAMCHANDRAN, K. Distributed source coding using syndromes
(DISCUS): design and construction. in Proc. IEEE Data Compression Conf., pp. 158–167,
1999.
[17] AARON, A.; ZHANG, R.; GIROD, B. Transform-domain Wyner-Ziv codec for video. Proc.
SPIE Visual Communications and Image Processing, v. 5308, pp. 520–528, San Jose, Janeiro
2004.
[18] PURI, R.; RAMCHANDRAN, K. PRISM: A new robust video coding architecture based
on distributed compression principles. Allerton Conference on Communications, Control and
Computing, 2002.
[19] XU, Q.; XIONG, Z. Layered Wyner-Ziv video coding. Proc. SPIE Visual Communications
and Image Processing, San Jose, Janeiro 2004.
[20] XU, Q.; XIONG, Z. Layered Wyner-Ziv video coding. IEEE Trans on Image Processing,
v. 15, n. 12, pp. 3791–3809, Dezembro 2006.
[21] WANG, H.; CHEUNG, N. M.; ORTEGA, A. A framework for adaptive scalable video
coding using Wyner-Ziv techniques. EURASIP Journal on Applied Signal Processing, pp. 1–
18, 2006.
[22] TAGLIASACCHI, M.; MAJUMDAR, A.; RAMCHANDRAN, K. A distributed-sourcecoding based robust spatio-temporal scalable video codec. Picture Coding Symposium, USA,
San Francisco, Dezembro 2004.
102
[23] WANG, X.; ORCHARD, M. T. Desing of trellis codes for source coding with side
infotmation at the decoder. Proceedings of IEEE Data Compression Conference, pp. 361–370,
2001.
[24] AARON, A.; GIROD, B. Compression with side information using turbo codes.
Proceedings of IEEE Data Compression Conference, pp. 252–261, 2002.
[25] GIROD, B. et al. Distributed video coding. Proceedings of the IEEE, v. 93, n. 1, pp. 71–83,
Janeiro 2005.
[26] SEHGAL, A. et al. Scalable video coding using WynerŰZiv codes. Picture Coding
Symposium, Dezembro 2004.
[27] PEIXOTO, E.; QUEIROZ, R. L.; MUKHERJEE, D. Mobile video communications using a
wyner-ziv transcoder. Proc. of SPIE Visual Communications and Image Processing, San Jose,
2007.
[28] PEIXOTO, E. Transcodificador de vídeo Wyner-Ziv/H.263 para comunicação entre
dispositivos móveis. : Dissertação de Mestrado em Engenharia Elétrica com ênfase em
Telecomunicações, Departamento de Engenharia Elétrica, Universidade de Brasília, Brasília,
DF, 91p., 2008.
[29] AARON, A. M. et al. Wyner-Ziv coding for video: applications to compression and error
resilience. Proceedings of the IEEE Data Compression Conference, pp. 93–102, 2003.
[30] ARTIGAS, X.; TORRES, L. Iterative generation of motion-compensated side information
for distributed video coding. in Proc. IEEE International Conference on Image Processing,
v. 1, pp. I–833–6, 2005.
[31] ASCENSO, J.; BRITES, C.; PEREIRA, F. Motion compensated refinement for low
complexity pixel based distributed video coding. in Proc. of IEEE Conference on Advanced
Video and Signal Based Surveillance, pp. 593–598, Septembro 2005.
[32] WEERAKKODY, W. et al. An iterative refinement technique for side information generation
in DVC. in Proc. of IEEE International Conference on Multimedia and Expo, pp. 164–167,
Julho 2007.
103
[33] AARON, A.; RANE, S.; GIROD, B. Wyner-ziv video coding with hash-based motion
compensation at the receiver. in Proc. IEEE International Conference on Image Processing,
Outubro 2004.
[34] MARTINIAN, E. et al. Hybrid distributed video coding using SCA codes. IEEE Workshop
on Multimedia Signal Processing (MMSP), pp. 258–261, Outubro 2006.
[35] COVER, T. M.; THOMAS, J. A. Elements of Information Theory. 2nd. ed. : Wiley, 2006.
[36] PAPOULIS, A.; PILLAI, S. U. Probability, Random Variables and Stochastic Processes.
4th. ed. : Mc Grall Hill, 2002.
[37] SHANNON, C. E. A mathematical theory of communication. Bell System Technical Journal,
v. 27, n. 17, pp. 379–423,623–656, July and October 1948.
[38] JAYANT, N.; NOLL, P. Digital Coding of Waveforms. : Prentice-Hall, 1984.
[39] MACKAY, D. Information Theory, Inference and Learning Algorithms. : Cambrige
University Press, 2003.
[40] LIN, S.; COSTELLO, D. J. Error Control Coding. 2nd. ed. : Prentice-Hall, 2004.
[41] PROAKIS, J. G. Digital Communications. : McGraw-Hill, 1983.
[42] PRADHAN, S.; CHOU, J.; RAMCHANDRAN, K. Duality between source coding and
channel coding and its extension to the side information case. IEEE Transactions on
Information Theory, v. 14, n. 5, pp. 1181–1203, 2003.
[43] ZAMIR, R. The rate loss in the wyner-ziv problem. IEEE Transactions on Information
Theory, v. 42, n. 6, pp. 2073–2084, 1996.
[44] RICHARDSON, I. E. G. H.264 and MPEG-4 video compression. : Wiley, 2003.
[45] RICHARDSON, I. E. G. Video Codec Design. : Wiley, 2002.
[46] FONSECA, T. A. da. Redução de Complexidade na Compressão de Vídeo de
Alta Resolução. :
Dissertação de Mestrado em Engenharia Elétrica com ênfase em
Telecomunicações, Publicação PPGENE.DM 323/08, Departamento de Engenharia Elétrica,
Universidade de Brasília, Brasília, DF, 78p., 2008.
104
[47] FONSECA, Y. L. T. A.; QUEIROZ, R. L. Open-loop prediction in h.264/avc for high
definition sequences. Simpósio Brasileiro de Telecomunicações, Setembro 2007.
[48] INTERNATIONAL TELECOMMUNICATION UNION. H.261:
Video codec for
audiovisual services at p × 64 kbits. ITU-T Recommendation H.261, Março, 1993.
[49] INTERNATIONAL TELECOMMUNICATION UNION. H.263: Video coding for low bit
rate communication. ITU-T Recommendation H.263, 1996.
[50] INTERNATIONAL ORGANISATION FOR STANDARDISATION. Coding of moving
pictures and associated audio for digital storage media at up to about 1,5 mbit/s. ISO/IEC
11172-1, 1993.
[51] INTERNATIONAL ORGANISATION FOR STANDARDISATION; INTERNATIONAL
TELECOMMUNICATION UNION. Generic coding of moving pictures and associated audio
information: Video. ITU-T Recommendation H.262, ISO/IEC 13818-2, 2000.
[52] INTERNATIONAL ORGANISATION FOR STANDARDISATION. Coding of audiovisual objects - part 2: Visual. ISO/IEC 14496-2, 2001.
[53] JOINT VIDEO TEAM. H.264: Advanced video coding for generic audiovisual services,
Coding of audio-visual objects - part 10: Advanced video coding. ITU-T Recommendation
H.264, ISO/IEC 14496-10, 2003.
[54] QUEIROZ, R. L. et al. Fringe benefits of the H.264/AVC. International Telecommunication
Symposium, pp. 208–212, 2006.
[55] PRADHAN, S.; RAMCHANDRAN, K. Distributed source coding: symmetric rates and
applications to sensor networks. Proc. IEEE Data Compression Conference, pp. 363–372,
2000.
[56] PRADHAN, S.; RAMCHANDRAN, K. Group-theoretic construction and analysis of
generalized coset codes for symmetric/asymmetric distributed source coding. Conference
Information Sciences and Systems, NJ, 2000.
105
[57] PRADHAN, S.; RAMCHANDRAN, K. Geometric proof of rate-distortion function of
gaussian sources with side information at the decoder. Proc. IEEE International Symposium
Information Theory, pp. 351, 2000.
[58] PRADHAN, S.; KUSUMA, J.; RAMCHANDRAN, K. Distributed compression in a dense
microsensor network. IEEE Signal Processing Magazine, v. 19, n. 2, pp. 51–60, 2002.
[59] AARON, A.; ZHANG, R.; GIROD, B. Wyner-Ziv coding of motion video. In Proc.
Asilomar Conference on Signals and Systems, Novembro 2002.
[60] PURI, R.; RAMCHANDRAN, K. PRISM: A “reversed” multimedia coding paradigm.
Proc. IEEE International Conference on Image Processing, v. 1, pp. I–617–20, Setembro 2003.
[61] PURI, R.; MAJUMDAR, A.; RAMCHANDRAN, K. PRISM: A video coding paradigm
with motion estimation at the decoder. IEEE Transactions on Image Processing, v. 16, n. 10,
pp. 2436–2448, 2007.
[62] AARON, A.; SETTON, E.; GIROD, B. Towards practial Wyner-Ziv coding of video. Proc.
IEEE International Conference on Image Processing, Setembro 2003.
[63] AARON, A.; VARODAYAN, D.; GIROD, B. Wyner-Ziv residual coding of video. Proc.
International Picture Coding Symposium, Abril 2006.
[64] AARON, A.; VARODAYAN, D.; GIROD, B. Rate-adaptive distributed source coding
using low-density parity-checks codes. Proc. Asilomar Conference on Signals, Systems and
Computing, Novembro 2005.
[65] LI, Z.; DELP, E. J. Wyner-Ziv video side estimator: conventional motion search methods
revisited. Proc. IEEE International Conf on Image Processing, v. 1, pp. 825–828, Setembro
2005.
[66] LI, Z.; LIU, L.; DELP, E. J. Rate distortion analysis of motion side estimation in Wyner-Ziv
video coding. IEEE Transactions on Image Processing, v. 16, n. 1, pp. 98–113, Janeiro 2007.
[67] ARTIGAS, X. et al. The discover codec: Architecture, techniques and evaluation. Picture
Coding Symposium, Novembro 2007.
106
[68] AARON, A. et al. Systematic lossy foward error protection for video waveforms. Proc.
IEEE International Conference on Image Processing, pp. I–609–I–612, 2003.
[69] SEHGAL, A.; AHUJA, N. Robust predictive coding and the Wyner-Ziv problem. Proc.
IEEE Data Compression Conference, pp. 103–112, 2003.
[70] RANE, S.; AARON, A.; GIROD, B. Systematic lossy foward error protection for error
resilient digital video broadcasting. Proc. SPIE Visual Communication and Image Processing
Conference, 2004.
[71] RANE, S.; AARON, A.; GIROD, B. Systematic lossy foward error protection for error
resilient digital video broadcasting – a Wyner-Ziv coding approach. Proc. IEEE International
Conference on Image Processing, Outubro 2004.
[72] STEINBERG, Y.; MERHAV, N. On successive refinement for the Wyner-Ziv problem. IEEE
Transactions on Information Theory, v. 50, n. 8, pp. 1636–1654, 2004.
[73] GALANT, M.; CÔTÉ, G.; KOSSENTINI, F. An efficient computation-constrained blockbased motion estimation algorithm for low bit rate video coding. IEEE Transactions on Image
Processing, v. 8, Dezembro 1999.
[74] ZHU, C. A novel hexagon-based search algorithm for fast block motion estimation. Proc.
IEEE International Conference on Acoustic, Speech and Signal Processing, pp. 1593–1596,
Maio 2001.
[75] MACCHIAVELLO, B.; PEIXOTO, E.; QUEIROZ, R. L. A video coding framework with
spatial scalability. Simpósio Brasileiro de Telecomunicações, Setembro 2007.
[76] SCHWARZ, H.; MARPE, D.; WIEGAND, T. Overview of the scalable video coding
extension of the H.264/AVC standard. IEEE Transactions on Circuits and Systems for Video
Technology, v. 17, n. 9, pp. 1103–1120, Setembro 2007.
[77] GONZALEZ R. E. WOODS, S. L. E. R. C. Digital Image Processing using Matlab. :
Prentice-Hall, 2004.
107
[78] SULLIVAN, G.; TOPIWALA, P.; LUTHRA, A. The H.264/AVC advanced video coding
standard: Overview and introduction to the fidelity range extensions. Proc. SPIE Conference
on Applications of Digital Image Processing, Agosto 2004.
[79] MUKHERJEE, D. A robust reversed complexity Wyner-Ziv video codec introducing signmodulated codes. HP Labs Technical Report, HPL-2006-80, Maio 2006.
[80] BRITES, C.; ASCENSO, J.; PEREIRA, F. Studying temporal correlation noise modeling
for pixel based wyner-ziv video coding. IEEE international conference on Image Processing,
pp. 273–276, Outubro, 2006.
[81] FREEMAN, W.; JONES, T.; PASZTOR, E. Example-based super-resolution. IEEE
Computer Graphics and Applications, v. 22, pp. 56–65, 2002.
[82] BRANDI, F.; QUEIROZ, R. L. de; MUKHERJEE, D. Super resolution of video using key
frames. Proc. of IEEE International Symposium on Circuits and Systems, Maio 2008.
[83] BRANDI, F.; QUEIROZ, R. L. de; MUKHERJEE, D. Super resolution of video using
key frames and motion estimation. Proc. of International Conference on Image Processing,
Outubro 2008.
[84] GARCIA-FRIAS, J.; XIONG, Z. Distributed source and joint source-channel coding: from
theory to practice. Proc. IEEE International Conference on Acoustic, Speech and Signal
Processing, pp. V–1093–V–1095, 2005.
[85] MUKHERJEE, D. Parameter selection for Wyner-Ziv coding of laplacian sources. Proc. of
SPIE Visual Communications and Image Processing, San Jose, 2007.
[86] PRESS, W. H. et al. Numerical Recipes in C. 2nd. ed. : Cambridge University Press, 1992.
[87] SAYOOD, K. Introduction to Data Compression. 2nd. ed. : Morgan Kaufmann, 2000.
[88] OSBORNE, M. J.; RUBENSTEIN, A. A Course in Game Theory. : MIT Press, 1994.
[89] PEREIRA, F. et al. Application scenarios and functionalities for DVC. Distributed coding
for video services - DISCOVER group, Document Deliverable-D19, Agosto, 2007.
108
[90] SUHRING, K. KTA Software. http://iphome.hhi.de/suehring/tml/, último aceso em
13/06/2008 2008.
[91] TAN, T.; SULLIVAN, G.; WEDI, T. Recommended simulation common conditions
for coding efficiency experiments. ITU-T Video Coding Experts Group ITU-T SG16 Q.16
Document VCEG-AE010, 31st Meeting, Marocco, Jan 2007.
[92] WANG, Y.; CLAYPOOL, M.; KINICKI, R. Impact of reference distance for motion
compensation prediction on video quality. Proceedings of ACM/SPIE Multimedia Computing
and Networking, San Jose, California, 2007.
[93] BJONTEGAARD, G. Calculation of average psnr differences between RD curves. PITU-T
SC16/Q6, 13th VCEG Meeting Doc. VCEG-M33, April, 2001.
[94] ZENG, B.; VENETSANOPOULOS, A. N. A JPEG-based interpolative image coding
scheme. IEEE International Conference on Acoustics, Speech, and Signal Processing, v. 5,
1993.
[95] BRITES, C. et al. Evaluating a feedback channel based transform domain Wyner-Ziv video
codec. IEEE Transactions on Image Processing, v. 16, n. 1, pp. 98–113, 2007.
[96] ASCENSO, J.; BRITES, C.; PEREIRA, F. Improving frame interpolation with spatial
motion smoothing for pixel domain distributed video coding. Proceedings of EURASIP
Conference on Speech, Image Processing, Multimedia Communications and Services, Julho,
2005.
[97] PEIXOTO, E.; QUEIROZ, R. L.; MUKHERJEE, D. On side information generation for
Wyner-Ziv video coding. Simpósio Brasileiro de Telecomunicações, 2008.
[98] MORBEE, M. et al. Rate allocation algorithm for pixel-domain distributed video coding
without feedback channel. Proceedings of the IEEE ICASSP, pp. 521–524, Hawaii, 2007.
[99] SHENG, T. et al. Rate allocation for transform domain Wyner-Ziv video coding without
feedback. Proceedings of the 16th ACM international conference on Multimedia, pp. 701–704,
2008.
109
[100] YAACOUB, C.; FARAH, J.; PESQUET-POPESCU, B. Feedback channel suppression
in distributed video coding with adaptive rate allocation and quantization for multiuser
applications. EUSASIP Journal on Wireless Communications and Networking, v. 2008, pp.
1–13, 2008.
[101] BRANDI, F. Super-resolução utilizando quadros chave em seqüências de vídeo de
resolução mista. :
Dissertação de Mestrado em Engenharia Elétrica com ênfase em
Telecomunicações, Publicação PPGENE.DM 362A/09, Departamento de Engenharia Elétrica,
Universidade de Brasília, Brasília, DF, 90p., 2009.
[102] GUO, X. et al. Wyner-Ziv-Based multiview video coding. IEEE Transactions on circuits
and systems for video technology, v. 18, n. 6, pp. 713–724, 2008.
110
APÊNDICES
111
I. CARACTERIZAÇÃO DAS FUNÇÕES DE
TAXA E DISTORÇÃO
I.1
CODIFICAÇÃO POR COSETS SEM MEMORIA SEGUIDA DE
RECONSTRUÇÃO MSE COM INFORMAÇÃO LATERAL
Assumindo um codificador de entropia ideal para os cosets, como mostrado na Figura I.1, a
taxa esperada é a entropia da fonte C, a qual pode ser expressa como:
E(RY C ) = H(C) = −
= −

X 
c∈ΩC

X
pc (c) log2 pc (c)
c∈ΩC
X
Z
xh (q)
fX (x)dx
q∈ΩQ :ψ(Q,M )=c xl (q)



A equação acima pode ser re-escrita como:
× log2


X
Z
xh (q)
fX (x)dx
q∈ΩQ :ψ(Q,M )=c xl (q)




E(RY C ) =


h
i
X
X 
(0)
(0)
mX (xh (q)) − mX (xl (q))
−


c∈ΩC
q∈ΩQ :ψ(Q,M )=c



i
h
X
(0)
(0)
mX (xh (q)) − mX (xl (q))
× log2


q∈ΩQ :ψ(Q,M )=c
(i)
onde mX (x) =
Rx
−∞
ν i fX (ν)dν.
Se a reconstrução for feita pela função do menor erro quadrático médio (MSE) em (4.5), a
distorção esperada DY C , dada a informação lateral y e o índice de coset c, é dada por:
E(DY C |Y = y, C = c) = E([X − X̂Y C (y, c)]2 |Y = y, C = c)
= E(X 2 |Y = y, C = c) − X̂Y C (y, c)2 ,
113
onde X̂Y C (y, c) = E(X|Y = y, C = c). Marginalizando sobre y e c, temos:
E(DY C ) = E(X 2 ) −

Z ∞ X
−∞ c∈Ω
C
A equação (I.1) pode ser expressa como:
2
E(DY C ) = σX
−
Z
∞
{


2
X̂Y C (y, c) pC|Y (C = c|Y = y) fY (y)dy.


R xh (q)
P
xfX|Y (x, y)dx
X  q∈ΩQ :ψ(Q,M )=c xl (q)

R xh (q)
P

−∞ c∈Ω
C
q∈ΩQ :ψ(Q,M )=c
xl (q)
2



fX|Y (x, y)dx
×pC|Y (C = c|Y = y)}fY (y)dy,
onde pC|Y (C = c|Y = y) é a função massa de probabilidade condicional de C dado Y , que é
pC|Y (C = c|Y = y) =
X
Z
xh (q)
q∈ΩQ :ψ(Q,M )=c xl (q)
fX|Y (x, y)dx.
Logo, temos:
2
E(DY C ) = σX
−
Z
∞
{
X
P
q∈ΩQ :ψ(Q,M )=c
−∞ c∈Ω
C
P
R xh (q)
q∈ΩQ :ψ(Q,M )=c
×fY (y)dy.
xl (q)
xfX|Y (x, y)dx
R xh (q)
xl (q)
fX|Y (x, y)dx
Definindo:
(i)
mX|Y (x, y)
=
Z
x
−∞
podemos re-escrever E(DY C ) como:
114
ν i fX|Y (ν, y)dν,
!2
! }
2
E(DY C ) = σX
−
Z
∞
{
X
−∞ c∈Ω
C
(1)
[mX|Y
q∈ΩQ :ψ(Q,M )=c
P
(xh (q), y) −
(0)
[mX|Y
q∈ΩQ :ψ(Q,M )=c
P
×fY (y)dy.
(1)
mX|Y
(xh (q), y) −
!2
(xl (q), y)]
(0)
mX|Y
!}
(xl (q), y)]
Figura I.1: Codificação de cosets con reconstrução MSE.
I.2
CODIFICAÇÃO A TAXA ZERO SEGUIDA DE RECONSTRUÇÃO
MSE COM INFORMAÇÃO LATERAL
Uma escolha possível é simplesmente utilizar taxa zero (Figura I.2), onde nenhuma informação
é transmitida (i.e. QP → ∞ or M = 1). Neste caso, o decodificador realiza a reconstrução
X̂Y (y), baseada no menor erro quadrático médio, a partir da função:
X̂Y (y) = E(X|Y = y) =
=
Z
∞
xfX|Y (x, y)dx
−∞
(1)
mX|Y (∞, y)
Logo, a distorção esperada DY a taxa zero é dada por:
2
E(DY ) = σX
−
2
= σX
−
Z
∞
Z−∞
∞
−∞
Z
∞
−∞
(1)
xfX|Y (x, y)dx
2
mX|Y (∞, y)2 fY (y)dy.
115
fY (y)dy
Figura I.2: Codificação a taxa zero e reconstrução MSE.
I.3
CODIFICAÇÃO SLEPIAN-WOLF IDEAL COM RECONSTRUÇÃO
MSE E INFORMAÇÃO LATERAL
Agora vamos a considerar o cenário onde a taxa e distorção esperadas são as obtidas da
codificação ideal Slepian-Wolf dos bins quantizados, como descrito na Figura I.3. Note, que
o conjunto ótimo da codificação ideal Slepian-Wolf da fonte C é obtido quando M → ∞,
i.e. quando realizamos codificação Slepian-Wolf diretamente nos bins quantizados. Assim,
o codificador Slepian-Wolf ideal retorna uma taxa não maior a H(Q|Y ) para enviar os bins
quantizados sem erros. Uma vez que os bins sem erros sejam recebidos, a reconstrução também
será feita pelo mínimo MSE. Então, a taxa esperada é dada por:
E(RY Q ) = H(Q|Y ) =
−
Z
∞

X
−∞ q∈Ω
×fY (y)dy.
Q


pQ|Y (Q = q|Y = y) log2 pQ|Y (Q = q|Y = y)

A qual pode ser re-escrita como:
E(RY Q ) =
Z
∞
{
X
−∞ q∈Ω
Q
[m0X|Y (xh (q), y) − m0X|Y (xl (q), y)]
× log2 [m0X|Y (xh (q), y) − m0X|Y (xl (q), y)]}fY (y)dy.
A distorção esperada DY Q é a distorção gerada pela reconstrução MSE dado o bin quantizado
q e a informação lateral y. Esta função de reconstrução X̂Y Q (y, q) é expressa como:
116
R xh (q)
x (q) xfX|Y (x, y)dx
.
X̂Y Q (y, q) = E(X|Y = y, Q = q) = R lx (q)
h
f
(x,
y)dx
X|Y
xl (q)
A equação acima pode ser escrita da seguinte maneira:
X̂Y Q (y, q) =
(1)
(1)
(0)
(0)
mX|Y (xh (q), y) − mX|Y (xl (q), y)
mX|Y (xh (q), y) − mX|Y (xl (q), y)
Usando esta reconstrução, a distorção esperada (DY Q ), com bins livres de ruído, é dada por:

2 
R
xh (q)


X

xf
(x,
y)dx
X|Y
xl (q)
2
E(DY Q ) = σX −
fY (y)dy
R xh (q)

−∞ 
q∈ΩQ

f
(x,
y)dx
X|Y
xl (q)


2 
(1)

Z ∞

 X m(1)
X|Y (xh (q), y) − mX|Y (xl (q), y)

2
= σX − 
(0)
(0)
−∞ 

q∈ΩQ mX|Y (xh (q), y) − mX|Y (xl (q), y) 
Z
∞
×fY (y)dy].
Figura I.3: Codifiador Slepian-Wolf ideal com recosntrução MSE.
I.4
CODIFICAÇÃO CONVENCIONAL SEGUIDA DE RECONSTRUÇÃO
MSE COM E SEM INFORMAÇÃO LATERAL
O último cenário a ser considerado é a taxa e distorção se não realizamos codificação
distribuída nos bins quantizados (ver Figura I.4). Neste caso, a taxa esperada é simplesmente
a entropia de Q:
117
E(RQ ) = H(Q) = −
= −
X
pQ (q) log2 pQ (q)
q∈ΩQ
X
q∈ΩQ
(0)
(0)
{[mX (xh (q)) − mX (xl (q))]
(0)
(0)
× log2 [mX (xh (q)) − mX (xl (q))]}
Se a informação lateral Y estiver disponível, o decodificador pode ainda realizar a decodificação
distribuída . Nesse caso, a função de reconstrução e sua correspondente distorção esperada são
dadas pelas mesmas equações X̂Y Q (y, q) e E(DY Q ), respectivamente, usadas para o codificador
Slepian-Wolf ideal com reconstrução MSE. Por outro lado, se não existe informação lateral
disponível, a distorção esperada DQ é a distorção gerada pela reconstrução MSE somente baseada
no bin q. Essa função, X̂Q (q), é dada por:
R xh (q)
xl(q) xfX (x)dx
X̂Q (q) = E(X/Q = q) = R x (q)
h
xl(q) fX (x)dx
=
(1)
(1)
(0)
(0)
mX (xh (q)) − mX (xl (q))
mX (xh (q)) − mX (xl (q))
,
e a distorção esperada é expressa por:
2
E(DQ ) = σX
−
2
= σX
−
X
q∈ΩQ
X
q∈ΩQ
2
xh (q)
xf
(x)dx
X
xl(q)
R
R
xh (q)
xl(q) fX (x)dx
2
(1)
(1)
mX (xh (q)) − mX (xl (q))
.
(0)
(0)
mX (xh (q)) − mX (xl (q))
Figura I.4: Codificação convencional com reconstrução MSE
118
II. TABELAS DO D-CAVLC
II.1
TABELAS DE CODIFICAÇÃO PARA O NÚMERO DE COEFICIENTES
E TRAILING ONES
II.1.1
Grupo I
O grupo I é selecionado quando a média da quantidade de coeficientes diferentes de zero do
bloco acima e do bloco a esquerda é menor que 2.
Tabela II.1: Tabela de Codificação, grupo I, 10 < maxC ≤ 16. T1s significa número de Trailing
ones.
NumCoef\T1s
0
1
2
3
0
1
-
-
-
1
000011
01
-
-
2
00000111
0001001
001
-
3
000001001
00000110
0001000
00011
4
000001000
000001011
000000101
000010
5
0000000111
000001010
000000100
0001011
6
00000000111
0000000110
0000001101
00010101
7
000000001001
00000000110
0000001100
00010100
8
000000001000
00000001001
000000001010
000000111
9
0000000000111
000000001011
000000000101
0000000101
10
0000000000110
0000000001101
0000000001111
00000001000
11
00000000000011
0000000001100
0000000001110
000000000100
12
00000000000010
00000000000100
00000000000110
0000000000101
13
00000000000101
00000000000111
000000000010001
00000000001001
14
000000000000011
000000000000010
000000000010000
0000000000000011
15
00000000000000001
00000000000000011
00000000000000010
00000000000000101
16
00000000000000000
000000000000001001
0000000000000010001
0000000000000010000
119
Tabela II.2: Tabela de Codificação, grupo I, 6 < maxC ≤ 10.
NumCoef\T1s
0
1
2
3
0
1
-
-
-
1
000011
01
-
-
2
000100
000101
001
-
3
0000100
0000101
000000101
00011
4
00000101
00000110
000000111
00000100
5
00000111
000000110
0000000110
000000100
6
0000000100
0000000101
00000000101
0000000111
7
00000000110
00000000100
0000000001100
00000000111
8
0000000001110
0000000001101
0000000001111
0000000001001
9
0000000001010
0000000000100
0000000001011
0000000001000
10
0000000000101
0000000000110
0000000000001
0000000000111
Tabela II.3: Tabela de Codificação, grupo I, 3 < maxC ≤ 6.
NumCoef\T1s
0
1
2
3
0
1
-
-
-
1
00011
01
-
-
2
00010
0000010
001
-
3
000011
0000011
000000011
000010
4
00000010
000000010
0000000010
00000011
5
0000000011
00000000010
000000000010
00000000011
6
0000000000001
000000000011
00000000000001
000000000001
Tabela II.4: Tabela de Codificação, grupo I, 1 < maxC ≤ 3.
NumCoef\T1s
0
1
2
3
0
1
-
-
-
1
0001
01
-
-
2
000010
000011
001
-
3
0000001
0000011
00000001
0000010
Tabela II.5: Tabela de Codificação, grupo I, 0 ≤ maxC ≤ 1.
NumCoef\T1s
0
1
2
3
0
1
-
-
-
1
001
01
-
-
120
II.1.2
Grupo II
O grupo II é escolhido se a média da quantidade de coeficientes diferentes de zero do bloco
acima e do bloco a esquerda é menor que 4 e maior ou igual a 2.
Tabela II.6: Tabela de Codificação, grupo II, 10 < maxC ≤ 16.
NumCoeff\T1s
0
1
2
3
0
11
-
-
-
1
000011
011
-
-
2
000010
00011
010
-
3
001001
001000
001010
101
4
1000001
001011
100101
0011
5
00000111
1000000
1000010
00010
6
00000110
1000011
1001101
10001
7
000001001
10011101
10011100
100100
8
000001000
000001011
000000101
1001100
9
0000000111
000001010
000000100
10011111
10
0000000110
0000001101
0000001100
10011110
11
00000000101
00000000111
00000001001
000000111
12
00000000100
00000000110
00000001000
0000000101
13
000000000011
000000000010
000000000100
000000000111
14
0000000000011
000000000101
0000000000010
0000000001101
15
00000000000001
00000000000000
000000000000111
0000000001100
16
000000000000101
000000000000100
0000000000001101
0000000000001100
121
Tabela II.7: Tabela de Codificação, grupo II, 6 < maxC ≤ 10.
NumCoeff\T1s
0
1
2
3
0
10
-
-
-
1
000101
11
-
-
2
00111
001001
011
-
3
0100
001000
0000100
0101
4
00110
001011
0000101
001010
5
000100
000110
00000101
000111
6
0000110
0000111
000000100
00000110
7
00000100
00000111
000000110
000000101
8
0000000100
000000111
0000000110
0000000101
9
0000000111
00000000100
00000000110
00000000101
10
00000000110
00000000011
00000000001
00000000010
Tabela II.8: Tabela de Codificação, grupo II, 3 < maxC ≤ 6.
NumCoeff\T1s
0
1
2
3
0
10
-
-
-
1
0100
11
-
-
2
011
00111
0101
-
3
00110
00101
000111
00100
4
000100
000101
000011
000110
5
0000101
0000100
0000010
0000011
6
00000011
00000010
000000001
00000001
Tabela II.9: Tabela de Codificação, grupo II, 1 < maxC ≤ 3.
NumCoeff\T1s
0
1
2
3
0
1
-
-
-
1
0001
01
-
-
2
000010
000011
001
-
3
0000011
0000001
00000001
0000010
Tabela II.10: Tabela de Codificação, grupo II, 0 ≤ maxC ≤ 1.
NumCoeff\T1s
0
1
2
3
0
1
-
-
-
1
001
01
-
-
122
II.1.3
Grupo III
Este grupo é escolhido se a média da quantidade de coeficientes diferentes de zero do bloco
acima e do bloco a esquerda é menor que 8 e maior ou igual a 5. Se a média da quantidade de
coeficientes dos blocos vizinhos for maior ou igual a 8, então se utiliza os códigos de tamanho
fixo de 6 bits.
Tabela II.11: Tabela de Codificação, grupo III, 10 < maxC ≤ 16.
NumCoeff\T1s
0
1
2
3
0
0011
-
-
-
1
0000011
0010
-
-
2
0000010
101110
1101
-
3
000011
101001
010110
1100
4
000010
101000
010001
1111
5
101101
101011
010000
1110
6
101100
101010
010011
1001
7
101111
010101
010010
1000
8
0110101
010100
011101
00011
9
0110100
010111
011100
00010
10
0110111
0110110
0110000
011111
11
01111001
0110001
01111010
0110011
12
01111000
01111011
01100101
01100100
13
000000011
000000010
000000100
000000111
14
0000000011
000000101
0000001101
0000001100
15
0000000010
00000000011
00000000010
00000000001
16
0000000000001
000000000001
00000000000001
00000000000000
123
Tabela II.12: Tabela de Codificação, grupo III, 6 < maxC ≤ 10.
NumCoeff\T1s
0
1
2
3
0
1000
-
-
-
1
001111
1100
-
-
2
01010
01101
1011
-
3
1001
1111
001101
1110
4
1010
01000
001100
01100
5
1101
01001
001110
01111
6
01011
01110
001011
001001
7
001010
001000
000110
000101
8
000100
000111
0000100
0000110
9
0000101
0000111
00000100
00000101
10
00000111
00000011
00000010
00000110
Tabela II.13: Tabela de Codificação, grupo III, 3 < maxC ≤ 6.
NumCoeff\T1s
0
1
2
3
0
1000
-
-
-
1
1100
1001
-
-
2
1010
1101
1011
-
3
1110
1111
01101
01001
4
01000
01010
01110
01100
5
01011
00100
01111
00101
6
00110
00010
00101
00011
Tabela II.14: Tabela de Codificação, grupo III, 3 < maxC ≤ 6.
NumCoeff\T1s
0
1
2
3
0
10
-
-
-
1
010
11
-
-
2
0011
0010
011
-
3
00011
00001
000001
00010
Tabela II.15: Tabela de Codificação, grupo III, 0 ≤ maxC ≤ 1.
NumCoeff\T1s
0
1
2
3
0
11
-
-
-
1
01
10
-
-
124
II.2
TABELAS DE CODIFICAÇÃO PARA O NÚMERO TOTAL DE
ZEROS
As tabelas abaixo indicam os códigos utilizados para codificar o número total de zeros. Note
que se a quantidade de coeficientes for zero o igual ao número máximo de coeficientes que um
bloco pode possuir, então não é necessário codificar o número total de zeros.
Tabela II.16: Códigos quando a quantidade Total de zeros máxima igual a 1.
NumCoeff\TotZeros
1
0
1
1
0
Tabela II.17: Códigos quando a quantidade Total de zeros máxima igual a 2.
NumCoeff\TotZeros
1
2
0
1
0
1
01
1
2
00
-
Tabela II.18: Códigos quando a quantidade Total de zeros máxima igual a 5.
NumCoeff\TotZeros
1
2
3
4
5
0
1
001
001
00
0
1
011
01
01
01
1
2
010
11
11
1
-
3
001
10
10
-
-
4
0001
000
-
-
-
5
0000
-
-
-
-
125
Tabela II.19: Códigos quando a quantidade Total de zeros máxima igual a 9.
NumCoeff\TotZeros
1
2
3
4
5
6
7
8
9
0
1
111
000
0001
000
000
001
00
0
1
011
110
001
011
001
001
01
01
1
2
010
101
010
0011
011
01
11
1
-
3
0011
100
011
0010
11
11
10
-
-
4
0010
011
100
10
10
10
-
-
-
5
00011
010
101
11
010
-
-
-
-
6
00010
001
110
010
-
-
-
-
-
7
00001
0001
111
-
-
-
-
-
-
8
000001
0000
-
-
-
-
-
-
-
9
000000
-
-
-
-
-
-
-
-
126
Tabela II.20: Códigos quando a quantidade Total de zeros máxima igual a 15.
NumCoeff\TotZeros
1
2
3
4
5
6
7
0
1
111
0010
111101
01000
101100
111000
1
011
101
1101
1110
01010
101101
111001
2
010
011
000
0110
01011
1010
11101
3
0011
001
010
1010
1110
001
1001
4
0010
000
1011
000
011
010
1111
5
00011
1000
1111
100
100
000
00
6
00010
0101
011
110
1111
110
01
7
000011
1001
100
1011
110
111
101
8
000010
1100
0011
010
101
100
110
9
0000011
01000
1110
001
001
011
100
10
0000010
11011
1010
0111
000
10111
-
11
00000001
11010
11000
1111
01001
-
-
12
00000000
010010
110011
111100
-
-
-
13
00000011
0100111
110010
-
-
-
-
14
000000101
0100110
-
-
-
-
-
15
000000100
-
-
-
-
-
-
NumCoeff\TotZeros
8
9
10
11
12
13
14
15
0
101000
111000
10000
11000
1000
100
00
0
1
101001
111001
10001
11001
1001
101
01
1
2
10101
11101
1001
1101
101
11
1
-
3
1011
1111
101
111
0
0
-
-
4
110
00
01
0
11
-
-
-
5
00
01
11
10
-
-
-
6
111
10
00
-
-
-
-
-
7
01
110
-
-
-
-
-
-
8
100
-
-
-
-
-
-
-
9
-
-
-
-
-
-
-
-
10
-
-
-
-
-
-
-
-
11
-
-
-
-
-
-
-
-
12
-
-
-
-
-
-
-
-
13
-
-
-
-
-
-
-
-
14
-
-
-
-
-
-
-
-
15
-
-
-
-
-
-
-
-
127
III. PRODUÇÃO BIBLIOGRÁFICA
III.1
PUBLICAÇÕES EM REVISTA
III.1.1
Codificador distribuído com resolução mista
1. MACCHIAVELLO, B. L. E.; QUEIROZ, R. L. MUKHERJEE, D. Iterative Side-Information
Generation in a Mixed Resolution Wyner-Ziv Framework. a ser publicado em IEEE Transactions
on Circuits and Systems for Video Technologhy, 2009.
2. MACCHIAVELLO, B. L. E.; BRANDI, F.; PEIXOTO, E.; QUEIROZ, R. L.; MUKHERJEE, D.
Side-Information Generation for Temporally and Spatially Scalable Wyner-Ziv Codecs. Eurasip
Journal on Image an Video Processing, v. 2009, pp.1–12,2009.
III.1.2
Outras Contribuições
1. ANDRADE, M. M.; MACCHIAVELLO, B. L. E.; NASCIMENTO, F. A. O.; ROCHA, A. F.;
VASCONCELOS, D. F.; JESUS, P. C.; CARVALHO, H. S. Algoritmo híbrido para segmentação
do ventrículo esquerdo em imagens de ecocardiografia bidimensional.
Revista Brasileira de
Engenharia Biomédica, v. 22, p. 23-33, 2006.
2. ISHIHARA, J. Y. ; TERRA, M. H. ; MACCHIAVELLO, B. L. E. . H∞ Filtering for Rectangular
Discrete-time Descriptor Systems. a ser publicado em Automatica (Oxford), 2009.
III.2
PUBLICAÇÕES EM CONGRESSO
III.2.1
Codificador distribuído com resolução mista
1. MACCHIAVELLO, B. L. E.; QUEIROZ, R. L.; MUKHERJEE, D. Parameter Estimation for a
H.264 Based Distributed Video Coder. Proc. of the IEEE International Conference on Image
Processing, p. 1124-1127, 2008.
2. MACCHIAVELLO, B. L. E.; BRANDI, F.; QUEIROZ, R. L.; MUKHERJEE, D. Super-resolution
129
applied to Distributed Video Coding with Spatial Scalability. Anais do Simpósio Brasileiro de
Telecomunicações, Rio de Janeiro, 2008.
3. MACCHIAVELLO, B. L. E.; MUKHERJEE, D.; QUEIROZ, R. L. A Statistical Model for a Mixed
Resolution Wyner-Ziv Framework. Proceedings of the 2007 Picture Coding Symposium, Lisboa.
2007.
4. MACCHIAVELLO, B. L. E.; MUKHERJEE, D.; QUEIROZ, R. L. Motion-Based Side-Information
Generation for a Scalable Wyner-Ziv Video Coder. Proc. of the IEEE International Conference on
Image Processing, p. VI - 413-VI - 416, 2007.
5. MUKHERJEE, D.; MACCHIAVELLO, B. L. E.; QUEIROZ, R. L. A simple reversed-complexity
Wyner-Ziv video coding mode. Proceedings of SPIE Visual Communications and Image Processing
v. 6508. p. 65081Y1-65081Y12, 2007.
6. MACCHIAVELLO, B. L. E.; PEIXOTO, E.; QUEIROZ, R. L. A Video Coding Framework with
Spatial Scalability. nais do XXV Simpósio Brasileiro de Telecomunicações, Recife, 2007.
III.2.2
Outras Contribuições
1. REIS, M. C.; ROCHA, A. F.; VASCONCELOS, D. F.; MACCHIAVELLO, B. L. E.; NASCIMENTO,
F. A. O.; CARVALHO, J. L. A.; SALOMONI, S.; CAMAPUM, J. F. Semi-automatic detection of
the left ventricular border. Proceedings of the IEEE 30th International Conference on Engineering
in Medicine and Biology Society, Vancouver, 2008.
2. MACCHIAVELLO, B. L. E.; ANDRADE, M. M.; NASCIMENTO, F. A. O.; CARVALHO, H.
S.; VASCONCELOS, D. F.; ROCHA, A. F.; MELO JUNIOR, S.A. Algoritmo de segmentação de
ECO2D dinâmica durtante um ciclo completo. Anais do XXVIII Congresso Ibero Latino-Americano
sobre Métodos Computacionais em Engenharia, Porto, 2007.
3. ISHIHARA, J. Y.; MACCHIAVELLO, B. L. E.; TERRA, M. H. H-infinity Estimation and Array
Algorithms for Descriptor Systems. Proceedings of the 45th IEEE Conference on Decision and
Control, San Diego, 2006.
4. MACCHIAVELLO, B. L. E.; ISHIHARA, J. Y.; TERRA, M. H. Algoritmos Array para estimadores
H-infinito na forma de Informação. Anais do XVI Congresso Brasileiro de Automática, p. 30683073, 2006.
130
5. MACCHIAVELLO, B. L. E.; ANDRADE, M. M.; NASCIMENTO, F. A. O.; ROCHA, A. F.;
CARVALHO, H. S. Sistema Automático para a Geração da Curva de Variação de Área do Ventriculo
Esquerdo no Ciclo Cardíaco Completo. Anais do III Congresso Latino-Americano de Engenharia
Biomedica, v. 5. p. 1259-1262, 2004.
6. ANDRADE, M. M.; MACCHIAVELLO, B. L. E.; NASCIMENTO, F. A. O.; ROCHA, A. F.;
CARVALHO, H. S.; VASCONCELOS, D. F. Segmentação Automática do Ventriculo Esquedo
em Imagens de Ecocardigrafia Bidimensional.
Engenharia Biomedica, p. 1387-1390, 2004.
131
Anais do III Congresso Latino-Americano de

Documentos relacionados

Codificador de Vídeo Full HD em Tempo Real com

Codificador de Vídeo Full HD em Tempo Real com superior aos perfis predefinidos na biblioteca estudada. Em termos de PSNR, o aumento de desempenho é superior a 1 dB. Palavras-Chave— Vídeo digital, H.264, x264, Compressão de vídeo. Abstract— The...

Leia mais