algoritmo para codificação em bitrate constante vinicius kursancew
TRANSCRIPT
Algoritmo para codificação em bitrate constante
Vinicius Kursancew
INTRODUÇÃO AO MPEG VIDEO
● Padrão de codificação perceptivo
● Usado em transmissão de TV digital
● A ISO especifica o comportamento do decoder
● Elimina redundancia espacial
● Utiliza quantização para reduzir número de bits necessários para representar um dado
INTRODUÇÃO AO MPEG VIDEO
DCT Quantização VLC1011010
DCT
● Representa o sinal em termos de cossenos apenas
● No MPEG é feita em em blocos 8x8
● Quatro blocos adjacentes formam um macrobloco
DCT
● Expressão
Quantização
● Processo de reduzir o número de bits necessários para representar os coeficientes
● Divide os coeficientes por um valor predefinido
● Componentes mais altas de freqüencia são divididos por valores maiores
Quantização
Coeficiente DC(F(0,0)) = 73
O coeficiente DC é dividido por 8:
floor[73(100'1001b)/8(1000b)] = 9(1001b) 3 bits a menos
Coeficiente AC (F(6,5)) = 189
O Coeficiente AC(F(6,5)) é dividido por 48
floor[189(8bits)/48] = 3 (2 bits, 6 a menos)
Quantização adaptiva
● Aumentar os fatores de quantização para manter a taxa de bits
● Diminui a qualidade
● Necessário pois a largura de banda de transmissões é limitada
● Útil apenas para visialização em tempo real
Quantização adaptiva
● Leva em conta dois fatores principais– O quanto ja foi gasto da banda
– Atividade espacial da imagem
● Método consiste de 3 passos:– Alocar quantidade de bits para frame
– Calcular fator adaptivo base
– Calcular fator adaptivo para o macrobloco
Quantização adaptiva - PASSO1
● Calcula quantos bits existem disponíveis para este frame, parametro rc_T
BITRATE/FRAMERATE
● Porém... se faltaram ou sobraram bits para codificação do frame anterior estes devem ser considerados
BITRATE/FRAMERATE + BITS_FRAME_ANTERIOR
Quantização adaptiva - PASSO1
● Depois de codificar a imagem um ”parâmetro de compexidade global” (rc_X) é calculado:
Bits Usados na Imagem * média dos fatores
● A média dos fatores é obtida somando cada um dos fatores de quantização adaptiva calculados para cada macrobloco no frame anterior e dividindo-se pelo total de macroblocos
Quantização Adaptiva PASSO2
● Antes de codificar um macrobloco o algoritmo estima quanto falta para encher o ”buffer virtual”. O algoritmo determina como achar este valor (dj).
dj = rc_d + Bj-1 (rc_T*j)/TOTAL MACROBLOCOS
● Bj é o número de bits gerados para codificar o frame até o presente macrobloco
● rc_d é o indicador de quanto sobrou o faltou de bits estão sobrando ou faltando até o momento
rc_d = rc_d + BitsAlocados - BitsUsados
Quantização Adaptiva PASSO2
● A partir de dj calcula-se o valor base da quantização
Quantização Adaptiva PASSO3
● Por último se calcula o valor de quantização adaptiva para o macrobloco j
● actj é o mínimo das varianças entre os blocos(vblk) do macrobloco e avgactj é a média das varianças do frame anterior:
Resultados
● Imagens
500kbps500kbps 750kbps
Resultados
● Imagens
1000kbps Sem quantização adaptiva
Resultados
● Valores de mquantj para os 10 primeiros macroblocos
500kbps 750kbps 1000kbps
13121313111312111312
8888798788
6666565566
Resultados
● Tamanho da stream (12 frames)– 500kbps: 37452 bytes
– 750kbps: 55175 bytes
– 1000kbps: 73467 bytes
– Sem bitrate constante: 238412 bytes
Resultados
● Implementação em hardware:– Área anterior: 918374.8 sq um
– Área atual: 1703531.0 sq um