|
Kategorie: Diplomové, bakalářské práce |
Tento dokument chci!
Prvním cílem diplomové práce je prostudování základních principů komprimace obrazových signálů. Seznámení se s technikami používanými pro redukci zbytečnosti a nadbytečnosti v obrazovém signálu. Druhým cílem je, na základě těchto informací, realizovat jednotlivé komprimační nástroje v programovém prostředí Matlab a sestavit tak jednoduchý model video kodeku. Diplomová práce obsahuje popis realizace tří základních komprimačních bloků a sice - kódování uvnitř snímku, mezi snímkové kódování a kódování s proměnnou délkou slova - podle standardu MPEG-2.
toho první hodnota,
odpovídající koeficientu, kóduje přímo Huffmanovým kódováním. zbývajících 63
hodnot, odpovídajících koeficientům, aplikuje kódování délky běhu tento výsledek
je zpracován Huffmanovým kódováním.35
3. }
else
while blok(y)==0; Smyčka čítání běhu nul.
Snímek I/P
Vektory
pobyhu
Přenos zakódovaných vektorů
pohybuPřenos zakódovaných koeficientů
pohybuPřenos zakódovaných AC/DCT koeficientů
koeficientů pohybu
AC/DCT
koeficienty
DC koeficienty
AC/DCT
koeficienty
DC koeficienty
VLC tabulky MPEG-2/4
VLC tabulky MPEG-2/4
. }
Cik-cak
vyčítání
koeficientů
Kódování
délky běhu
Huffmanovo
kódování
Snímek I/P
Vektory
pobyhu
Huffmanovo
dekódování
Dekódování
délky běhu
Inverzní
cik-cak
vyčítání koef. Každý blok 8x8 DCT
koeficientů cik-cak vyčítáním převede vektor hodnot.3.
% Zápis skupiny: běh nul hodnota.3 Kódování proměnnou délkou slova
Zdrojový kód pro kódování proměnnou délkou slova odpovídá blokovému schématu na
obr. 44.1 Kódování délky běhu
Kódování délky běhu cíl zredukovat délku vektoru kvantovaných AC/DCT koeficientů
za pomoci čítání běhu nul následného vytvoření skupin složených délky běhu nul
a následující nenulové hodnoty. První tři bloky tvoří část kodéru, část dekodéru tvořena stejných počtem bloků,
ovšem inverzními funkcemi. snímku typu nebo blok DCT koeficientů
převede vektor hodnot.
3. Blokové schéma kódování proměnnou délkou slova.
{ Inkrementace čítače nul.
U snímku typu koeficienty zpracovávají odděleně.
Obr. 44.
{ Zápis identifikátoru NaN (EoB). ilustrováno následujícím
úryvkem kódu:
for i=1:size(data,1) Smyčka zpracování vektorů.
if sum(do konce bloku)==0 Podmínka pro zápis NaN (EoB).
while y<=delka_bloku; Smyčka zpracování vektoru. Pokud konce vektoru zbývají samé nuly, poslední
platnou skupinu zapsán identifikátor EoB (End Block). Ten celý zpracován kódováním délky běhu následným
Huffmanovým kódováním. Vektory pohybu kódují přímo Huffmanovým kódováním