![Page 1: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/1.jpg)
Algoritmo para codificação em bitrate constante
Vinicius Kursancew
![Page 2: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/2.jpg)
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
![Page 3: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/3.jpg)
INTRODUÇÃO AO MPEG VIDEO
DCT Quantização VLC1011010
![Page 4: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/4.jpg)
DCT
● Representa o sinal em termos de cossenos apenas
● No MPEG é feita em em blocos 8x8
● Quatro blocos adjacentes formam um macrobloco
![Page 5: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/5.jpg)
DCT
● Expressão
![Page 6: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/6.jpg)
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
![Page 7: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/7.jpg)
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)
![Page 8: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/8.jpg)
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
![Page 9: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/9.jpg)
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
![Page 10: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/10.jpg)
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
![Page 11: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/11.jpg)
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
![Page 12: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/12.jpg)
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
![Page 13: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/13.jpg)
Quantização Adaptiva PASSO2
● A partir de dj calcula-se o valor base da quantização
![Page 14: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/14.jpg)
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:
![Page 15: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/15.jpg)
Resultados
● Imagens
500kbps500kbps 750kbps
![Page 16: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/16.jpg)
Resultados
● Imagens
1000kbps Sem quantização adaptiva
![Page 17: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/17.jpg)
Resultados
● Valores de mquantj para os 10 primeiros macroblocos
500kbps 750kbps 1000kbps
13121313111312111312
8888798788
6666565566
![Page 18: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/18.jpg)
Resultados
● Tamanho da stream (12 frames)– 500kbps: 37452 bytes
– 750kbps: 55175 bytes
– 1000kbps: 73467 bytes
– Sem bitrate constante: 238412 bytes
![Page 19: Algoritmo para codificação em bitrate constante Vinicius Kursancew](https://reader034.vdocuments.pub/reader034/viewer/2022051515/552fc0f8497959413d8b4fa9/html5/thumbnails/19.jpg)
Resultados
● Implementação em hardware:– Área anterior: 918374.8 sq um
– Área atual: 1703531.0 sq um