VIDEOTELEFONIA E VIDEOCONFERÊNCIA Fernando Pereira Instituto Superior Técnico
Vídeo Digital
Vídeo versus Imagem Serviços de Imagem Fixa - não têm à partida requisitos temporais rigorosos Serviços de Vídeo (imagem em movimento) - existe a obrigação de respeitar limitações temporais rigorosas impostas pela necessidade de garantir uma boa ilusão de movimento A cada serviço de comunicação de imagem e vídeo pode associar-se um objectivo de qualidade que começa logo por determinar as resoluções espacial e temporal a usar.
Porque se Codifica a Informação de Vídeo V? Uma sequência de vídeo é criada e consumida como um conjunto de imagens ocorrendo no tempo a uma certa frequência temporal (F), cada uma delas com M N amostras de luminância e crominância, com um certo número de bits por amostra (L) logo o número de bits - e a banda e a memória - necessário para representar digitalmente uma sequência de vídeo é ENORME!!!
Videotelefonia: Apenas um Exemplo Resolução: 10 imagem/s com 288 360 amostras de luminância e 144 188 amostras de cada crominância, a 8 bit/amostra [(360 288) + 2 (180 144)] 8 10 = 12.44 Mbit/s Débito razoável: e.g. 64 kbit/s para um canal RDIS => Factor de compressão: : 12.44 Mbit/s/64 kbit/s 194 A diferença entre codificar e não codificar pode implicar a existência ou não de um serviço/ind o/indústria.
Vídeo Digital: o Porquê das Dificuldades Serviço TV alta definição TV (qualidade difusão, DVD) TV (gravação CD) Videotelefonia e Videoconfer. Videotelefonia móvel Resolução espacial Lum. (Y) Resolução espacial Crom. (U,V) Resolução temporal Factor de forma Débito binário (PCM) 1152 1920 576 960 50 img/s 16/9 1.3 Gbit/s 576 720 576 360 25 img/s entrelaçadas 288 360 144 180 25 img/s progressivas 288 360 144 180 10 img/s progressivas 144 180 72 90 5 img/s progressivas 4/3 166 Mbit/s 4/3 31 Mbit/s 4/3 12.4 Mbit/s 4/3 1.6 Mbit/s
Codificação de Vídeo: V uma Definição Representação o mais eficiente possível (menor número de bits), de uma sequência periódica de imagens, satisfazendo o conjunto de requisitos relevantes, p.e. qualidade mínima e resiliência a erros. E os requisitos variam segundo as aplicações e as respectivas funcionalidades...
Codificar e Descodificar... Codificador Descodificador
Qual a Força Necessária para a Codificação? Serviço TV alta definição TV alta definição TV (qualidade difusão, DVD) TV (qualidade difusão, DVD) TV (gravação CD) Resolução espacial 1152 1920 576 960 1152 1920 576 960 576 720 576 360 576 720 576 360 288 360 144 180 Videoconfer. 288 360 144 180 Videoconfer. 288 360 Videotelefonia fixa Videotelefonia móvel (GSM) 144 180 288 360 144 180 144 180 72 90 Resolução temporal Débito binário (PCM) Débito binário codificado Factor de compressão 50 img/s 1.3 Gbit/s 34 Mbit/s 38.2 50 img/s 1.3 Gbit/s 17 Mbit/s 76.5 25 img/s entrelaçadas 25 img/s entrelaçadas 25 img/s progressivas 25 img/s progressivas 10 img/s progressivas 10 img/s progressivas 5 img/s progressivas 166 Mbit/s 6 Mbit/s 27.5 166 Mbit/s 3 Mbit/s 55 31 Mbit/s 1.15 Mbit/s 27 31 Mbit/s 2 Mbit/s 15.5 12.4 Mbit/s 384 kbit/s 32.3 12.4 Mbit/s 64 kbit/s 194 1.6 Mbit/s 13 kbit/s 100
Principais Tipos de Codificação CODIFICAÇÃO EXACTA (SEM PERDAS) O sinal (p.e. imagem ou voz) é codificado preservando toda a informação presente; isto significa que o sinal original e o sinal descodificado são matematicamente idênticos. CODIFICAÇÃO COM PERDAS O sinal é codificado sem preservar toda a informação presente; isto significa que o sinal original e descodificado são matematicamente diferentes ainda que possam parecer subjectivamente idênticos (codificação transparente). Codificador com perdas Visualmente transparente Original Visualmente diferente
Donde Vem a Compressão? REDUNDÂNCIA - tem a ver com as semelhanças, correlação e preditabilidade entre as amostras das imagens (espaço e tempo). - a redução de redundância não involve a perda de informação ou seja as imagens são comprimidas sem perdas. IRRELEVÂNCIA - tem a ver com a informação imperceptível ao olho ou insignificante ao cérebro humano. - a redução de irrelevância é um processo irreversível, involvendo perda de informação. A codificação de vídeo v gere estes 2 conceitos pelo que é essencial ter algum conhecimento da estatística stica da informação e das características do sistema visual humano.
Irrelevância o 14 14 pixels o 35 cores (i.e., vectores [R,G,B] ) diferentes o R [97,103], G [127,134], B [147,158]
A Cadeia Básica da Codificação Vídeo Original Gerador de Símbolos Símbolos Codificador Entrópico Bits
Codificando... O codificador (de fonte) representa as imagens através de um conjunto de símbolos, e a seguir bits, usando as ferramentas de codificação disponíveis. O codificador extrai o sumo das imagens!
Métricas de Compressão Factor de Compressão = Número de bits PCM para a imagem original Número de bits para a imagem codificada Bit/pixel = Número de bits para a imagem codificada Número de pixels na imagem (tipicam. amostras Y)
Métricas de Qualidade Compressão X(m,n) Y(m,n) Avaliação subjectiva Avaliação objectiva e.g., votos numa escala de 5 níveis PSNR(dB) = 10log MSE 1 MN M N = i= 1 j= 1 10 2 255 MSE ( y x ij ) ij 2
A Interoperabilidade como Requisito: Para que mais não seja menos... A codificação é essencial para os serviços audiovisuais digitais onde a interoperabilidade é um requisito básico. A interoperabilidade requere a especificação de normas de codificação audiovisual. Para permitir alguma evolução das normas e a saudável competição entre empresas, as normas devem especificar o mínimo de elementos possível, tipicamente a sintaxe do fluxo binário e o descodificador (não o codificador!).
Normas: Fixar e Inovar Normativo! Codificador Descodificador
Normas de Codificação de Vídeo ITU-T T H.120 (1984) - Videoconferência (1.5-2 Mbit/s) ITU-T T H.261 (1988) - Serviços audiovisuais (videotelefonia e videoconferência) a p 64 kbit/s, p=1,,30 ISO/IEC MPEG-1 (1990)- Vídeo em CD-ROM ISO/IEC MPEG-2 ou ITU-T H.262 (1993)- TV digital ITU-T T H.263 (1996) - Vídeo na rede telefónica analógica e móvel ISO/IEC MPEG-4 (1998) - Objectos audiovisuais ISO/IEC MPEG-4 4 AVC ou ITU-T T H.264 (2003) Mais eficiência
Terminal e Comunicação de Videotelefonia ITU-T T H.320
Videotelefonia e Videoconferência Comunicações pessoais (bidireccionais) em tempo real!
Rec.. ITU-T T H.320: Motivações O início dos trabalhos que deram origem às recomendações H.320/H.261 remonta a 1984 quando se constata: O aumento significativo da procura de serviços de imagem, nomeadamente de videotelefonia e videoconferência, bem como a disponibilidade de linhas digitais a 64, 384 e 1536/1920 kbit/s. A disponibilidade a curto prazo em muitos países de linhas RDIS e a necessidade de disponibilizar equipamento que possibilitasse a comunicação de imagem neste contexto. A constatação de que a recomendação H.120 para videoconferência, acabada de sair, estava já na altura ultrapassada devido aos rápidos desenvolvimentos na área da codificação de vídeo.
RDIS: Motivação e Objectivo Crescente uso da tecnologia digital na transmissão e comutação de voz devido às suas variadas vantagens Procura crescente de serviços de transmissão de dados à medida que o custo dos computadores baixa Vantagens da integração de serviços numa única rede Necessidade de criar serviços que pudessem justificar a digitalização da rede local com vista à RDIS de banda larga Oferecer aos utentes a possibilidade de estabelecer ligações digitais através de um conjunto limitado de acessos suportando uma vasta gama de serviços destinados a dados, voz, áudio e vídeo. Tendo em conta a vastidão da estrutura de comunicações disponível, a evolução para a RDIS deverá ser gradual e baseada nos recursos actualmente disponíveis.
Canais Básicos RDIS Canal B - 64 kbit/s - as ligações num canal B podem ser feitas com comutação de circuito, de pacotes ou alugadas Canal D - 16 ou 64 kbit/s - têm como principal função transportar a sinalização associada aos canais B; nos tempos mortos podem ser usados para transmitir dados dos utentes em modo pacote Canal H - 384, 1536 ou 1920 kbit/s - disponibilizam ligações de débito binário superior
O Acesso à RDIS Os canais RDIS são agrupados segundo 2 tipos de acesso, oferecidos ao utente: Acesso Básico (2B+D) - Consiste em 2 canais B de 64 kbit/s (fullduplex) e um canal D de 16 kbit/s (full-duplex); esta configuração corresponde a um débito total de 192 kbit/s, incluindo a sincronização e o overhead de trama. Acesso Primário rio - Oferece 2 configurações relacionadas com as hierarquias de transmissão digital: - Europa usa 2048 kbit/s (30B+D) - EUA/Canadá/Japão usam 1544 kbit/s (23B+D)
Videotelefonia e Videoconferência: Principais Características Comunicações pessoais (ponto a ponto ou multiponto a multiponto) Comunicações bidireccionais simétricas (todos os pontos envolvidos têm características semelhantes) Requisitos de atraso críticos Requisitos de qualidade intermédios ou elevados Impactos psicológicos e sociológicos fortes...
Terminal H.320
Estabelecimento de uma Comunicação H.320 A norma H.242 define o protocolo de comunicação entre terminais H.320 nas fases iniciais de estabelecimento da ligação.
Norma H.221: Estrutura de Trama A norma H.221 define a estrutura de trama para serviços audiovisuais em canais de 64 kbit/s simples ou múltiplos. Estrutura de trama para um canal de 64 kbit/s - Canal B em RDIS
Codificação de Vídeo: Norma ITU-T T H.261
Norma H.261: Objectivo Codificação eficiente de sequências videotelefónicas ou de videoconferência com qualidade mínima aceitável usando débitos entre 40 kbit/s e 2 Mbit/s e visando canais síncronos (RDIS) a p 64 kbit/s, com p=1,...,30. É a primeira norma internacional para codificação de vídeo introduzindo assim o conceito de compatibilidade em codificação de vídeo digital.
Esquema Básico da Codificação H.261
H.261: Sinais a Codificar Os sinais amostrados, para cada imagem, são a luminância (Y) e 2 sinais de crominância, designados por C B e C R ou U e V. As amostras são quantificadas segundo a recomendação ITU-R BT-601, sendo: - Preto = 16; Branco = 235; Diferença de cor nula = 128 - Picos de diferença de cor (U,V) = 16 e 240 O algoritmo opera sobre sequências não-entrelaçadas (progressivas) a 29.97 img/s. A frequência temporal pode ser diminuída aceitando-se 0, 1, 2 ou 3 imagens não transmitidas entre cada uma transmitida.
Conversão RGB para YUV
H.261: Formato da Imagem Duas resoluções espaciais são possíveis: CIF (Common Intermediate Format) - 288 352 pels para a luminância (Y) e 144 176 pels para cada uma das crominâncias (U,V) ou seja 4:2:0, posicionados em 'quincux, progressivos, 30 tramas/s e com factor de forma 4/3 QCIF (Quarter CIF) - semelhante ao CIF mas com metade da resolução espacial em cada direcção ou seja 144 176 pels para a luminância e 72 88 pels para cada uma das crominâncias Todos os codecs devem funcionar em QCIF e alguns podem também funcionar em CIF.
Formatos de Subamostragem para a Crominância Formato Crominância Amostras Lum/Linha Linhas Lum/Imagem Amostras Crom/Linha Linhas Crom/Imagem Factor Subamostr. Horizontal Factor Subamostr. Vertical 4:4:4 720 576 720 576 - - 4:2:2 720 576 360 576 2:1-4:2:0 720 576 360 288 2:1 2:1 4:1:1 720 576 180 576 4:1-4:1:0 720 576 180 144 4:1 4:1
Groups Of Blocks (GOBs), Macroblocos e Blocos GOB 1 GOB 2 GOB 3 GOB 4 GOB 5 GOB 7 QCIF GOB 6 GOB 8 Espacialmente a sequência de vídeo está organizada segundo uma estrutura hierárquica com 4 níveis: - Imagem - Grupo de Blocos (GOB) - Macrobloco (MB) - Bloco GOB 9 GOB 11 GOB 10 GOB 12 CIF 1 2 Y 3 4 U V 5 6 4:2:0
H.261: Técnicas T de Codificação Redundância Temporal Codificação preditiva: transmissão das diferenças e compensação de movimento Redundância Espacial Redundância Estatística Irrelevância Codificação de transformada (DCT) Codificação entrópica de Huffman Quantificação dos coeficientes DCT
Explorando a Redundância Temporal
Predição Temporal A predição temporal baseia-se no princípio de que, localmente, cada imagem pode ser representada a partir de uma parte da imagem precedente. A qualidade da predição determina fortemente o desempenho do algoritmo de codificação já que define a energia do sinal diferença - o erro de predição. Quanto menor for o erro, menor a energia a transmitir e logo - melhor qualidade pode ser conseguida para um dado débito binário disponível - menor débito binário é necessário para alcançar uma dada qualidade
Predição Temporal A predição temporal no H.261 inclui 2 técnicas que têm como missão eliminar a redundância temporal existente no sinal de vídeo PCM: TRANSMISSÃO DAS DIFERENÇAS COMPENSAÇÃO DE MOVIMENTO
Redundância no Tempo: as Diferenças Diferenças: só se transmite entre imagens aquilo que muda, usando como predição a imagem anterior Não se perde nada!...
Cálculo de Diferenças: Exemplo Imagem t Imagem t-1 Diferenças
Codificar e Descodificar...
A Compensação de Movimento A compensação de movimento tenta melhorar a predição temporal de cada imagem/zona da imagem através da estimação/detecção e compensação de movimentos existentes na sequência de imagens. A estimação de movimento não é normativa mas o designado block matching é, sem dúvida, a técnica mais usada. No algoritmo H.261, a compensação de movimento é feita ao nível do macrobloco e é opcional. A estimação de movimento implica uma elevada carga computacional o que justifica que só quando do aparecimento de VLSI adequado se começasse a usar a 'procura exaustiva' deixando métodos menos 'pesados' mas mais ineficientes como o dos '3 passos'.
Imagem de referência Imagem a codificar
Redundância no Tempo: a Estimação do Movimento t
Procurar Onde? Área de busca Imagem de referência Imagem a codificar
Vectores de Movimento a Diferentes Resoluções
Área de Busca: Compromisso t
MBs a Codificar e MBs de predição Imagem anterior Imagem actual
Compensação de Movimento: Exemplo Imagem t Imagem t-1 Diferenças SEM comp. mov. Diferenças COM comp. mov. Vectores mov.
O Algoritmo dos 3 Passos Menos carga computacional à custa de soluções menos óptimas em termos de erro de predição!
Uma Característica de Decisão para a Compensação de Movimento X db difference block dbd displaced block difference y=x/2 X
H.261: Técnicas T de Codificação Redundância Temporal Codificação preditiva: transmissão das diferenças e compensação de movimento Redundância Espacial Redundância Estatística Irrelevância Codificação de transformada (DCT) Codificação entrópica de Huffman Quantificação dos coeficientes DCT
Estimação de Movimento no H.261 Opcional no codificador; obrigatório (compensação) no descofificador. PODE ser transmitido um vector de movimento por macrobloco. A gama de valores possíveis para os vectores de movimento é de -15 a + 15, na vertical e na horizontal, apenas valores inteiros. Só são válidos vectores de movimento referenciando zonas existentes da imagem. O vector de movimento transmitido para cada macrobloco é usado para os 4 blocos de luminância. O vector de movimento para a crominância é obtido dividindo por 2 e truncando o vector de movimento para a luminância. Um valor positivo da componente horizontal ou vertical do vector de movimento significa que a predição deve ser feita usando os pixels na imagem precedente, localizados espacialmente à direita e abaixo dos pixels a ser preditos.
Codificação Diferencial do Movimento no H.261 Para explorar a redundância entre vectores de movimento de MBs adjacentes, cada vector de movimento é codificado diferencialmente como a diferença entre o vector de movimento do MB actual e a sua predição ou seja o vector de movimento do MB precedente. Esta predição vale zero quando: - o MB actual é o número 1, 12 ou 23 - o último MB transmitido não é contíguo ao MB actual - o MB precedente (e contíguo) não sofreu compensação de movimento
Codificação (entrópica) entrópica ) dos Vectores (diferenciais) ) de Movimento
Um Chip para Estimação de Movimento
Explorando a Redundância Espacial e a Irrelevância
Depois do Tempo o Espaço Imagem actual + + - Transformada DCT Imagem com erro de predição Imagem predição (Compensada em movimento)
Codificação por Transformada A codificação por transformada envolve a divisão da imagem em blocos de N N pixels aos quais é aplicada a transformada, produzindo blocos de N N coeficientes. Uma transformada define-se formalmente pelas equações de transformação directa e inversa: F(u,v) = Σ i=0 N-1 Σ j=0 N-1 f(i,j) A(i,j,u,v) f(i,j) = Σ u=0 N-1 Σ v=0 N-1 F(u,v) B(i,j,u,v) onde f(i,j) - sinal de entrada (no espaço) A (i,j,u,v) - núcleo da transformada directa F(u,v) - coeficientes da transformada B (i,j,u,v) - núcleo da transformada inversa
Transformada de Fourier Discreta (DFT) A DFT decompõe o sinal do bloco de imagem nas suas componentes espectrais, sendo u e v as frequências espaciais horizontal e vertical F(u,v) = 1/N Σ j=0 N-1 Σ k=0 N-1 f(j,k) exp [- 2 π i (uj +vk) / N] f(j,k) = 1/N Σ u=0 N-1 Σ v=0 N-1 F(u,v) exp [2 π i (uj + vk) / N] com i = -1 É uma transformada separável já que se pode calcular em dois passos: primeiro aplica-se a transformação unidimensional às colunas e depois às linhas do bloco NxN de dados. Produz coeficientes complexos o que é uma desvantagem em termos de memorização e manipulação.
Características das Transformadas Relevantes Usam-se transformadas unitárias que apresentam as seguintes características: Reversibilidade Ortogonalidade dos vectores do núcleo da transformada Conservação da energia - a energia no domínio espacial é igual à energia no domínio da transformada
O que se espera da Transformada? INCORRELAÇÃO DA INFORMAÇÃO - a transformada ideal oferece coeficientes completamente incorrelacionados. COMPACTAÇÃO DA ENERGIA - a maior parte da energia do sinal é compactada num número reduzido de coeficientes. FUNÇÕES DE BASE DO NÚCLEO DA TRANSFORMADA INDEPENDENTES DA IMAGEM - uma vez que as imagens apresentam variações estatísticas acentuadas, a transformada óptima depende normalmente da imagem; devido ao peso computacional que representa a procura da transformada óptima para cada imagem, é desejável o uso de uma transformada cujas funções de base sejam independentes da imagem, ainda que isso possa ser pago em desempenho. RAPIDEZ DA IMPLEMENTAÇÃO - o elevado número de operações envolvidas justifica a necessidade de encontrar transformadas com implementações rápidas.
Como interpretar a Transformada A expressão da transformada inversa f(i,j) = Σ u=0 N-1 Σ v=0 N-1 F(u,v) B(i,j,u,v) indica que a transformada pode ser interpretada como a decomposição da imagem no espaço num conjunto de componentes básicas - as funções de base da transformada - adequadamente pesadas através dos coeficientes A Interpretação Espectral - Como a maior parte das transformadas usa funções de base com diferentes frequências (em sentido lato), a decomposição do sinal através dos coeficientes e das funções de base assume um caracter espectral onde cada coeficiente representa a fracção de energia na imagem original correspondente à respectiva função de base/frequência.
Os Coeficientes: : Como são?
Vantagens da Interpretação Espectral A interpretação espectral permite introduzir facilmente na codificação as características do sistema visual humano que são imprescindíveis para uma codificação eficiente. O sistema visual humano é menos sensível às altas frequências espaciais ->> codificação mais grosseira dos coeficientes correspondentes O sistema visual humano é menos sensível para luminâncias muito baixas ou muito elevadas ->> codificação mais grosseira do coeficiente DC da luminância nessas condições
Porque se Transformam Blocos? Basicamente a transformada representa o sinal original num outro domínio onde pode ser mais eficientemente codificado através da exploração da redundância espacial. A exploração mais completa da redundância espacial contida na imagem conduz à aplicação da transformada em blocos N N tão grandes quanto possível, idealmente toda a imagem. O esforço computacional associado à transformada aumenta rapidamente com a dimensão do bloco onde esta é aplicada. A aplicação da transformada a blocos, normalmente com 8 8 pixels, resulta do compromisso entre a exploração da redundância espacial e o esforço computacional associado.
O que se Transforma Y = 87 85 86 92 88 88 92 89 89 91 92 88 94 95 99 95 101 101 96 102 94 98 98 98 106 105 105 101 98 97 106 107 118 130 142 155 116 129 135 149 112 128 131 144 116 129 135 147 113 122 130 139 113 119 133 141 107 118 135 145 104 112 130 144
O Efeito de Bloco
Transformada de Karhunen-Loéve (KLT) A transformada de Karhunen-Loéve é muitas vezes considerada a transformada ideal por conseguir a MÁXIMA COMPACTAÇÃO DA ENERGIA DO SINAL ou seja se apenas um número limitado de coeficientes for transmitido, os coeficientes da KLT serão aqueles que conterão a fracção mais elevada da energia do sinal em comparação com qualquer outra transformada. As funções de base da KLT baseiam-se nos vectores próprios da matriz de covariância de blocos da imagem.
Porque não se usa a KLT? A utilização da KLT em sistemas de compressão de imagem reais é praticamente nula porque: As suas funções de base dependem da imagem a codificar requerendo o cálculo da matriz de covariância. Não existem algoritmos rápidos para o seu cálculo. Existem outras transformadas sem as desvantagens acima apontadas e com uma eficiência em termos de compactação de energia apenas ligeiramente inferior.
Transformada de Fourier Discreta (DFT) A DFT decompõe o sinal do bloco de imagem nas suas componentes espectrais, sendo u e v as frequências espaciais horizontal e vertical F(u,v) = 1/N Σ j=0 N-1 Σ k=0 N-1 f(j,k) exp [- 2 π i (uj +vk) / N] f(j,k) = 1/N Σ u=0 N-1 Σ v=0 N-1 F(u,v) exp [2 π i (uj + vk) / N] com i = -1 É uma transformada separável já que se pode calcular em dois passos: primeiro aplica-se a transformação unidimensional às colunas e depois às linhas do bloco NxN de dados. Produz coeficientes complexos o que é uma desvantagem em termos de memorização e manipulação. Gera componentes espectrais espúrias devido à periodicidade implícita dos blocos de imagem.
Transformada de Coseno Discreta (DCT) Transformada de Transformada de Coseno Coseno Discreta (DCT) Discreta (DCT) A DCT é uma das várias transformadas sinusoidais existentes, sendo os seus vectores de base constituídos por amostras de funções (co)sinusoidais. A DCT é, sem dúvida, a transformada mais usada em codificação de imagem por o seu desempenho se aproximar do da KLT para sinais com elevada correlação e por existirem algoritmos rápidos para a sua implementação. = = + + = 1 0 1 0 2 1 2 2 1 2 2 N j N k N k v N j u k j f v C u C N v u F ) ( cos ) ( )cos, ( ) ( ) ( ), ( π π = = + + = 1 0 1 0 2 1 2 2 1 2 2 N u N v N k v N j u v u F v C u C N k j f π π ) ( cos ) ( )cos, ( ) ( ) ( ), (
As Fórmulas DCT As As Fórmulas rmulas DCT DCT DCT Directa: c(i) = 1/ 2 se i = 0 e c(i) = 1 caso contrário e u,v = 0, 1, 2,, 7 DCT Inversa: j,k = 0, 1, 2,, 7 = = + + = 1 0 1 0 2 1 2 2 1 2 2 N u N v N k v N j u v u F v C u C N k j f π π ) ( cos ) ( )cos, ( ) ( ) ( ), ( = = + + = 1 0 1 0 2 1 2 2 1 2 2 N j N k N k v N j u k j f v C u C N v u F ) ( cos ) ( )cos, ( ) ( ) ( ), ( π π
Funções de Base da DCT Unidimensional (N=16)
Funções de Base da DCT Bidimensional (N=8)
DCT KLT
H.261: Técnicas T de Codificação Redundância Temporal Codificação preditiva: transmissão das diferenças e compensação de movimento Redundância Espacial Redundância Estatística Irrelevância Codificação de transformada (DCT) Codificação entrópica de Huffman Quantificação dos coeficientes DCT
Redundância no Espaço: a Transformada DCT X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X DCT X X X X X X X X X X X X X X X X X X X Domínio Espacial (amostras) Domínio Frequencial (coeficientes DCT)
144 130 112 104 107 98 95 89 145 135 118 107 106 98 99 92 141 133 119 113 97 98 95 88 139 130 122 113 98 94 94 88 147 135 129 116 101 102 88 92 144 131 128 112 105 96 92 86 149 135 129 116 105 101 91 85 155 142 130 118 106 101 89 87 DCT - 5.6187-3.9974 0.5240-0.1142 0.8696 0.1559 2.3804-3.4688 0.3496-0.8410 0.7874-0.0628 0.0601-0.6945 0.1650-4.1042-0.3942 1.7394 3.3000 0.4772 0.4010 2.6308 2.6624-7.9536 2.4750 2.0787 1.8446 2.5000 0.2085 0.8610 2.0745-0.7500 5.4051 2.7510-2.7203-2.1336-2.8421 1.5106 2.7271-1.9463-3.1640-3.1945 4.4558 2.4614-9.9277 2.3410 2.6557-5.3355 1.2591 8.4265-1.9909 0.2867-5.2187-7.6122-16.5235 12.1982 0.0330 3.5750-5.7540 0.7500-14.0897 26.6464 898.0000-149.5418 Y = Coef. DCT =
Codificação com Transformada: Esquema Básico Símbolos F(u,v) ) = c(u) c(v) ) /4 Σ j=0 j=0 7 Σ k=0 Bits 7 k=0 f(j,k) cos [(2j+1) π u / 16] cos [(2k+1) π v / 16]
A DCT no H.261 Na norma H.261, a DCT é aplicada a blocos de 8x8 (N=8) amostras. Este valor resulta dum compromisso entre a exploração da redundância espacial e o esforço de cálculo que cresce com N. Os coeficientes a transmitir são seleccionados usando limiares nãonormativos permitindo a introdução de critérios psico-visuais com vista a optimizar o impacto subjectivo final. Para explorar a irrelevância contida no sinal, os coeficientes DCT a transmitir são quantificados com um passo de quantificação constante (passo 8 fixo para o coeficientes DC dos MB Intra). Devido à compactação da energia no canto superior esquerdo e à variação do sensibilidade do sistema visual humano, os coeficientes quantificados são varridos em zig-zag com vista a assegurar sempre a transmissão daqueles mais relevantes.
A Quantificação A norma H.261 aceita como passo de quantificação todos os valores pares entre 2 e 62 (31 valores de quantificação). Dentro de cada macrobloco, todos os coeficientes DCT são quantificados com o mesmo passo, com excepção dos coeficientes DC Intra que são sempre linearmente quantificados com passo 8, sem zona morta. Exemplo de característica de quantificação A norma H.261 define os níveis de regeneração dos coeficientes mas não os limiares de decisão que podem ser escolhidos de forma a implementar diferentes tipos de característica de quantificação, uniformes ou não.
A Serialização dos Coeficientes DCT A transmissão dos coeficientes DCT quantificados requere o envio ao descodificador de 2 tipos de informação: posição e amplitude. Para cada coeficiente a transmitir, a sua posição e amplitude é representada através de um símbolo bidimensional designado por (DISTÂNCIA, NÍVEL) ou (run, level) onde a distância conta o número de coeficientes nulos antes do coeficientes a codificar e o nível indica qual o valor quantificado do coeficiente.
Varrimento dos Coeficientes DCT Zig-Zag Zag Cada bloco de coeficientes DCT é representado como uma sequência de pares (run, level), e.g. (0,124), (0, 25), (0,147), (0, 126), (3,13), (0, 147), (1,40)...
Explorando a Redundância Estatística stica
Redundância Estatística: stica: Codificação Entrópica A Codificação Entrópica CONVERTE OS SÍMBOLOS EM BITS! Usa a estatística dos símbolos a transmitir para alcançar compressão adicional (sem perdas), atribuindo de forma adequada palavras de código a símbolos. A, B, C, D -> 00, 01, 10, 11 A, B, C, D -> 0, 10, 110, 111
Codificação de Huffman A codificação de Huffman é uma das técnicas de codificação entrópica que permite explorar o facto dos símbolos produzidos pelo codificador não aparecerem com igual probabilidade. A cada símbolo gerado é atribuída uma palavra de código cujo comprimento (em bits) varia na razão inversa da sua probabilidade de ocorrência. O uso de códigos de comprimento variável implica também a necessidade de utilizar uma memória de saída que alise o fluxo de dados codificados se o canal funciona de modo síncrono. O aumento da eficiência de codificação conduz ao aumento da sensibilidade a erros de transmissão.
Exemplo de Tabela de Codificação: Posição dos MBs
Combinando as Ferramentas...
O Modelo Simbólico H.261 Vídeo Original Gerador de Símbolos Símbolos Codificador Entrópico Bits Uma sequência de vídeo é representada como uma sucessão de imagens estruturadas em macroblocos, sendo cada um deles representado usando vectores de movimento e/ou coeficientes DCT (intra ou inter).
Codificador: O Cocktail Vencedor! + Originais DCT Quantific. Quantific. inversa Geração símbolos Codif. entrópica Codif. entrópica Memória de saída DCT inversa + Movimento det./comp. Trama anterior
Descodificador: : o Escravo! Informação Memória Descodif. Demux. IDCT + Huffman Comp. Mov. Informação
A Memória de Saída A produção de bits pelo codificador é altamente NÃO uniforme no tempo essencialmente devido: À variação da actividade espacial entre as várias zonas de uma imagem À variação da actividade temporal ao longo do tempo À codificação entrópica dos símbolos gerados Para compatibilizar o fluxo de ritmo variável produzido pelo codificador com o fluxo constante de escoamento disponibilizado pelo canal usa-se uma memória de saída!
Controlo do Débito O codificador deve controlar muito eficazmente a evolução da sua produção de bits de modo a que seja adequada ao canal síncrono disponível e obtenha a melhor qualidade. A norma H.261 não especifica como deve ser feito o controlo do débito que pode ser feito através de: Variação da resolução temporal Variação da resolução espacial Classificação dos macroblocos Variação do passo de quantificação O controlo do débito tem um impacto enorme na qualidade de vídeo que se alcança para um dado débito binário!
Passo de Quantificação versus Enchimento da Memória de Saída O método reconhecido como mais eficiente para o controlo do débito binário faz variar o passo de quantificaçãoemfunção do enchimento da memória de saída do codificador. Sequência de imagens Controlo do passo de quantificação Codificador Memória de saída Fluxo binário Exemplo: B = max 31 q = 2 B + 1
H.261: Técnicas T de Codificação Redundância Temporal Codificação preditiva: transmissão das diferenças e compensação de movimento Redundância Espacial Redundância Estatística Irrelevância Codificação de transformada (DCT) Codificação entrópica de Huffman Quantificação dos coeficientes DCT
A Importância de Escolher Bem! O codificador para explorar bem a redundância e a irrelevância tem de escolher adequadamente Quais as ferramentas de codificação que devem ser usadas para cada MB, dependendo das suas características Qual o melhor conjunto de símbolos para representar cada MB, p.e. vectores de movimento e coeficientes DCT Enquanto o codificador tem a missão de fazer escolhas importantes, o descodificador é escravo limitando-se a seguir as ordens enviadas pelo codificador (só fica inteligente no cancelamento de erros).
Classificação dos Macroblocos Os macroblocos são a unidade básica da codificação pois é ao nível do macrobloco que se escolhem as ferramentas de codificação a usar. Cada técnica de codificação é mais ou menos adequada a um dado tipo de situação/imagem, sendo importante escolher em cada momento as ferramentas mais adequadas. Uma vez que a norma H.261 possui várias ferramentas de codificação, cabe ao codificador escolher as melhores ferramentas para cada macrobloco o que conduz à classificação dos macroblocos consoante as ferramentas de codificação usadas.
Tabela de Classificação dos Macroblocos MBA MTYPE MQUANT MVD CBP Coef. Data Estrutura do nível macrobloco O macrobloco pode ainda ser not coded (se corresponde a uma zona estática, ou nas situações de overflow do buffer)
Estrutura Hierárquica rquica da Informação Codificada Imagem - Resincronismo (Picture header) - Controlo da resolução temporal - Controlo da resolução espacial Grupo de Blocos (GOB) - Resincronismo mais interno (GOB header) - Controlo do passo de quantificação (obrigatório) Macrobloco - Unidade de detecção e compensação de movimento - Controlo do passo de quantificação (opcional) - Escolha das ferramentas de codificação (classificação dos MBs) Bloco - Aplicação da DCT
Sintaxe da Codificação: Níveis de Imagem e GOB
Sintaxe da Codificação: Níveis de MB e Bloco
Aquisição e Visualização Exemplo: f = 10 Hz R = 64 kbit/s Atraso aquisição-visualização < ~ 200 ms Buffer 12800 bits 0 ms Imagem 1 adquirida 100 ms Imagem 2 adquirida 200 ms Imagem 3 adquirida 300 ms Imagem 4 adquirida 400 ms Imagem 5 adquirida 500 ms Imagem 6 adquirida
Codificação de Canal Processo aplicado aos bits à saída do codificador de fonte de modo a aumentar a sua robustez contra erros de transmissão ou de armazenamento. No emissor é adicionada redundância ao sinal digital comprimido de forma a permitir ao descodificador de canal a detecção e correcção de erros. A introdução de redundância resulta num aumento do volume de dados a transmitir. A escolha da codificação de canal deve ter em conta o tipo de canal e de modulação. Símbolos Símbolos com Informação Útil Correctores m k n R = m/n = 1 k/n : taxa de codificação Códigos de Blocos
Correcção de Erros no Fluxo de Vídeo H.261 A correcção de erros no fluxo de vídeo H.261 é feita através de um código de blocos BCH (511,493) - Bose-Chaudhuri- Hocquenghem. O seu uso na descodificação é opcional. Este código corrige qualquer situação de 1 ou 2 erros.
Correcção de Erros no Fluxo de Vídeo H.261 A estrutura do sinal de vídeo apresenta então o seguinte aspecto (multitrama com 512 8= 4096 bits): Transmissão S1 S2 S7 S8 S1 Bits de código Bits paridade (1) (493) (18) 1 Bits de código vídeo (1) 0 (492) Bits de enchimento (1's) (1) (492) S1S2S3S4S5...S8 - Sequência de alinhament 00011011 Na descodificação, o realinhamento só é reconhecido após a recepção de 3 sequências de alinhamento (S1S2...S8) correctas.
Cancelamento de Erros Mesmo que se use codificação de canal, podem existir erros de transmissão residuais que têm consequências ao nível do descodificador de fonte. Os erros residuais podem ser detectados devido a incorrecções sintácticas ou semânticas. Para vídeo digital, as técnicas mais básicas de cancelamento de erros são: - Repetição da zona correspondente da imagem anterior - Repetição de parte da imagem anterior após compensação de movimento O cancelamento de erros não detectados pode ser feito por pósprocessamentodaimagemdescodificada.
Exemplos de Cancelamento de Erros e Pós- Processamento
Comentários Finais A norma H.261 foi a primeira norma internacional de codificação de vídeo com um nível de eficiência relevante. Tendo sido a primeira norma importante de codificação digital de vídeo estabeleceu requisitos de compatibilidade que tiveram alguma influência na tecnologia escolhida para as normas seguintes. Existem hoje inúmeros produtos e serviços baseados na norma H.261. Contudo esta norma já não representa hoje o estado da arte em termos de codificação de vídeo em tempo real.
Bibliografia Videoconferencing and Videotelephony, Richard Schaphorst, Artech House, 1996 Image and Video Compression Standards: Algorithms and Architectures, Vasudev Bhaskaran and Konstantinos Konstantinides, Kluwer Academic Publishers, 1995 Multimedia Communications, Fred Halsall, Addison-Wesley, 2001 Multimedia Systems, Standards, and Networks, A. Puri & T. Chen, Marcel Dekker, Inc., 2000