Диференциалната импулсно-кодова модулация представлява метод за кодиране с предсказване. При нея вместо предаване стойността на `N`-тия отчет `a_N`, се предава предсказаната стойност `a_{Nпр}=a_N-a_N^'`, където `a_N^'` е стойността, изчислена по фиксирана функция от няколко предходни отчета `a_{N-1}, a_{N-2}, a_{N-3}, ..., a_{N-Z}`. В най-простия случай `a_N^'` е равна на стойността на предходния отчет `a_{N-1}` и в канала за връзка се предава само разликата в стойностите на два съседни отчета.
На фиг.3.5а е показан вариант на структурна схема за кодиране с предсказване. При определяне стойността на предсказването `a_N^'` на `N`-тия отчет се използва определена зависимост, включваща линейна комбинация от стойностите на няколко предходни отчета. Стойностите на предходните отчети се запомнят в преместващ регистър, а зависимостта за формиране на предсказването `a_N^'`, се генерира в предскавзащия блок, представляващ комбинационна схема. За кодиране и предаване в канала за връзка се подава стойността `a_N-a_N^'`. В приемната страна по същата зависимост се определя предсказаната стойност `a_N^'` и след сумираща схема се получава истинската стойност на отчета `a_N` (фиг.3.5б). Такава схема на диференциална импулсно-кодова модулация може да работи при всякаква формула за предсказване като се спазва условието в приемната и предавателната страна да се използва една и съща формула за предсказване. Колкото по-точно е предсказването, толкова по-малък ще бъде информационният поток, предаван по канала за връзка. Кодирането с предсказване е без загуба на информация тъй като в приемната страна се възстановява входния сигнал.
Дискретна косинусова трансформация
При кодиране на изображението с предсказване възможностите за съкращаване на цифровия поток са ограничени - на практика могат да се съкратят най-много 4 бита на отчет.
Значително по-добри възможности за съкращаване има груповото кодиране, при което изображението се разпределя на блокове, които се подлагат на кодиране.
При груповото кодиране се използва преобразуване на изходните данни, което не довежда до визуално забележими изменения, но позволява значително да се съкрати обемът на цифровия поток. Ефективността на груповото кодиране на груповото кодиране на изображението се базира на:
- в процеса на преобразуване отчетите на изображението, редица коефициенти придобиват такива малки стойности, че могат да се пренебрегнат, без това да доведе до забележимо изменение в качеството на възстановеното изображение;
- в процеса на преобразуване на изображението се осъществява декорелация на цифровата информация, което повишава ефективността на статистическото кодиране;
- нелинейното квантуване на коефициентите на преобразуване позволява съществено да се съкрати обемът на предаваната информация без забележимо изменение в качеството на изображението при възстановяването му.

В резултат от двумерното преобразуване на Фурие от функцията `f(x,y)`, описваща изображението, се получава спектъра на това изображение:
`F(bar omega_x, bar omega_y)=int_A int f(x,y) e^{-i(bar omega_x x, bar omega_yy)}dxdy`,
където `bar omega_x` и `bar omega_y` са пространствените честоти, а `i=(-1)^{1/2}` е имагинерната единица.
Изходната функция може да бъде възстановена чрез обратно преобразуване на Фурие:
f(x,y)=(1/4pi^2)int_A int F(bar omega_x, bar omega_y) e^{-i(bar omega_x x, bar omega_yy)}dxdy
Недостатък на преобразуването на Фурие е това, че за всяка честота се получават по два коефициента - за синусовата и косинусовата компонента. Редът на Фурие на произволна непрекъсната реална и симетрична (четна) функция съдържа само реални коефициенти, които съответстват на косинусовите членове на реда. При косинусовата трансформация за всяка честота има само по един коефициент, което намалява обема на информацията двойно.
При дискретната косинусова трансформация `DCT` - коефициентите се определят от зависимостта:
`F(u,v)=2/N C(u)C(v) sum_{x=0}^{N-1}sum_{y=0}^{N-1}f(x,y)cos({(2x+1)upi}/{2N})cos({(2y+1)vpi}/{2N})`, където `N=8` е броят на отчетите в един блок; `u, v, x, y =0,1,2,...,N-1`; `x, y` - координатите на отчетите; `u, v` - координатите на `DCT` коефициентите (честотни координати); `F(u,v)` - `DCT` коефициент ; `f(x,y)` - стойността на пиксела; `C(u), C(v)` - коефициенти, чиято стойност е равна на `1/2^{1/2}` при `u=0` и `v=0` и е равна на `1`, когато `u` и `v` приемат други стойности.
Обратното (инверсното) дискретно косинусово преобразуване (IDCT) се дава със зависимостта:
`f(x,y)=2/N sum_{x=0}^{N-1}sum_{y=0}^{N-1}C(u)C(v) F(u,v)cos({(2x+1)upi}/{2N})cos({(2y+1)vpi}/{2N})`



Процесът на груповото кодиране с използване на дискретно косинусово преобразуване е показан по-долу в примера на блока `8xx8` на изображение на яркостна градация. Този блок има следната матрица `f(x,y)` на отчетите на сигнала за яркост:
От матрицата `f(x,y)` се съставя нова матрица `f^'(x,y)`, в която отделните стойности на отчетите са извадени от 128 - средната стойност на сигнала за яркост:
В матрицата `f^'(x,y)` отчетите със стойност над 128 са с отрицателен знак. Тя се подлага на дискретно косинусово преобразуване, в резултат на което се формира матрицата `F(u,v)` на `DCT` коефициентите:
От получената матрица `F(u,v)` на `DCT` коефициентите се вижда, че съществени стойности имат само коефициентите в левия горен край на матрицата, а останалите коефициенти рязко намаляват и стават нули.
Следваща стъпка от преобразуването е квантуване. То е нелинейно преобразуване, чиято характеристика има вид на монотонна стъпаловидна функция. При квантуването се отстранява пространствения излишък (ненужната информация) във видеосигнала и голяма част от коефициентите в матриците стават нули. Преди квантуването няма загуба на информация и процесът на `DCT`-преобразуването е обратим.
При `MPEG-2` квантуването се осъществява чрез делениена матрицата на `DCT` коефициентите с таблици (матрици `Q(u,v)`, дефинирани от стандарта `ISO-IEC 13818-2`). Тези таблици се получават емпирично и са еднакви за квантуване на сигнала за яркост и на сигнала за цветовите разлики, но са различни при `I` кадъра и при `B`, и `P` кадъра. Характерно за матрицата `Q(u,v)` е това, че първият ѝ член (в горния ляв ъгъл) има най-малка стойност - 8, а последният ѝ член (в долния десен ъгъл) - най-голяма стойност - 83 :
След квантуване от матрицата `F(u,v)` се получава:
Очевидно е, че след квантуването на `F(u,v)`, основната част от `DCT` коефициентите са нули или имат много ниска стойност, почти равна на нула. Получената матрица се подлага на закръгляване на коефициентите до цели числа:
Както се вижда, в новата матрица `F(u,v)` повечето от коефициентите са нули.

Това, че `DCT` коефициентите, чиято стойност е различна от нула, са съсредоточени в горния ляв ъгъл на матрицата, обуславя зиг-заг метод за четене на матрицата, който е приет в стандарта MPEG (фиг.3.10). Зиг-заг четенето на матриците с `DCT` коефициентите започва от горния ляв ъгъл на матрицата и завършва в долния ѝ десен ъгъл. Този начин на четене значително съкращава предаваните цифрови данни в сравнение с последователното четене ред по ред. В разглеждания случай, при четене на матрицата `F(u,v)` вместо `[3, -4, 0, 0, 0, ..., 0]`, се записва `[3, -4, 62xx0]`.
Друг ефективен начин за съкращаване обема на предаваната информация скед кодиращото устройство, е зиползването на променлива дължина на двоичния код за `DCT` коефициенти. От показания по-горе пример се вижда, че в матрицата на `DCT` коефициенти преобладават ниски стойности. Затова коефициентите се кодират в двоичен код с променлива дължина (VLC - Variable Lenght Coding), при който за статистически по-често срещаните стойности на `DCT` коефициентите, се използва по-малък брой битове, в сравнение с кодовете за по-рядко срещаните по-високи стойности. Този подход значително намалява скоростта на цифровия поток. Средно коефициентите на `DCT` матрицата при използване на `VLC` се кодират с около `40` бита сравнено с `512` (`8 xx 8xx8=512` бита) при обикновеното кодиране, т.е. 12 пъти по-ниска скорост на цифровия поток.
В `MPEG-2` стандарта са посочени таблиците за `VLC` за трите вида кадри - `I`, `P` и `B`.
Компенсация на движението
Реалното телевизионно изображение се състои от двe компоненти:
- новите части (ентропия) на изображението;
- частите на изображението, които остават непроменени в следващите един след друг кадри.
Ентропията се създава от движението на елементи в изображението. Съдържанието на телевизионното изображение се изменя поради това, че отделни обекти в него се движат или пък самата гледна точка (TV камерата) се движи.
В стандарта `MPEG` важен елемент е процесът на компенсацията на движението. Този процес се състои в определяне вектора на движението - вектор, който посоката и местоположението на преместването на всеки макроблок от 'N`-тия кадър в 'N+1`-вия (фиг.3.11). Векторът на движението може да се определя както в полукадрите, така и в кадрите на изображението. Всеки вектор има хоризонтална и вертикална съставка. Към приемното устройство се предава разликата на векторите на движението в съседните кадри и там се използва за реконструиране на предаваното изображение.
Допълнително към векторите на движението се предава и предсказаната разлика между макроблоковете. Комбинацията от предаването на векторите на движението на блоковете и `DCT` кодираната предсказана разлика на блоковете е силно средство за намаляване скоростта на цифровия поток.
В стандарта `MPEG-2` се използват два варианта за предсказване на разликата между кадрите:
- еднопосочно предсказване - предсказването става на база разликата между изображението на предишния кадър или на следващия кадър, т.е. на два поредни кадъра;
- двупосочно предсказване - предсказването става на база разликата между изображението на предишния кадър и на следващия кадър, т.е. на три поредни кадъра.
При `MPEG-2` междукадровото блоково кодиране се използват три вида кадри:
- `I` - кадър - вътрешно кодиран кадър (Intraframe Coded Picture). Това е кадър от от изображението, изцяло кодиран чрез `DCT` предсказване;
- `P` - кадър - предсказан кадър (Predictive Picture). Това е изображение, получено на базата на еднопосочно предсказване (от предходния кадър);
- `B` - кадър - двупосочно предсказан кадър (Bidirectional Predictive Picture). Това е изображение, което се формира от предсказване на изображението от предходен и от следващ кадър.

При `N=12` продължителността на една видеогрупа е `480 ms`, т.е. почти на всяка половин секунда се предава по един `I`-кадър. При смяна характера на телевизионното изображение, видеогрупата се прекъсва и се започва с нов `I`-кадър (нова видеогрупа).
Всеки `P`-кадър се получава от предсказването му с предходния `I`-кадър или `P`-кадър, а всеки `B`-кадър се получава от предсказването му с предходния `I`-кадър и следващия `P`-кадър.
Колкото е по-голям броят на `B`- и `P`-кадрите във видеогрупата, толкова повече, ще се намали скоростта на цифровия поток, но това повишава значително обема на необходимата хардуерна памет в кодера и декодера и се увеличава времето на задържане на сигнала между входа на кодера и изхода на декодера. За оптимален размер на видеогрупата се предпочитат 12 кадъра.

За предаване на един `I`- кадър са необходими средно `9.10^5` бита. За предаване на един `P`- кадър - `3.10^5` бита, а на един `B`- кадър - само `1.10^5` бита (около 10 пъти по-малко от `I`- кадъра). Примерно сравнение на количеството бит-информация е показано на фиг.3.14.
Няма коментари:
Публикуване на коментар