Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ЦО АВС.doc
Скачиваний:
73
Добавлен:
07.09.2019
Размер:
5.86 Mб
Скачать

4.6.2 Предварительная обработка

В соответствии с принятым стандартом CCIR 601 обычно используется YUV-представление цифрового изображения с разрешением 720х576 по Y и 360х576 по U и V (4:2:2), при этом значения всех отсчетов задаются целыми числами из интервала 0-255. Попутно отметим, что такое разрешение определяет неквадратный пиксел с аспектным отношением 0.9375. MPEG-стандарт не ограничивает метода перехода от данного разрешения к требуемому - 352х288 по Y и 176х144 по U и V (4:1:1). Для примера можно привести следующий простой, но надежный способ. Сначала выбирается одно из полей полного кадра, т.е. выбрасывается его каждая вторая строка. Затем для Y производится построчное сглаживание фильтром вида (-29,0,88,138,88,0,-29)//256 и выборка каждого второго значения сглаженных строк. В результате мы приходим к матрице 360х288, уже из которой выбрасываются первые и последние четыре столбца. Аналогично поступают для U и V, но после выбора одного полукадра осуществляют как строчную, так и вертикальную выборки с сглаживающим фильтром вида (1,3,3,1)//8 - "ставят" по одному новому отсчету между двумя старыми. В результате получают, что на каждый фрагмент изображения размером 16х16 (макроблок) приходится 16х16 Y-отсчетов (4 блока 8х8) и по 8х8 U- и V-отсчетов (по одному блоку).

4.6.3 Преобразование макроблоков I-изображений

Все макроблоки I-изображения являются опорными (имеют тип intra) и подвергаются независимому преобразованию. Оно начинается с DCT каждого из шести блоков макроблока. Двумерное DCT определяется как

суммирование отсчетов изображения f ведется по пространственным координатам х,у (от О до 7), а полученные коэффициенты F задают представление изображения в частотной плоскости m,n (от 0 до 7). DCT является обратимым - по распределению F обратным преобразованием однозначно восстанавливается f. По физическому смыслу DCT сводится к представлению изображения в виде суммы (ко)синусоидальных гармоник (волн), значения F определяют амплитуды этих гармоник, а координаты m,n - их частоты. При этом значение F(0,0) пропорционально среднему уровню в блоке и может достигать величины 2040 (8*255). В то же время высокие частоты "отвечают" за передачу "тонких" деталей изображения. Поскольку, как правило, эти детали относительно среднего уровня слабо выделены, то и высокочастотные амплитуды имеют небольшие значения относительно F(0,0).

Следующим необходимым шагом преобразования является квантование коэффициентов DCT и сведение их к диапазону (-255,255). Установлено, что глаз более чувствителен к ошибкам передачи изменений значений на больших площадях, т.е. на низких частотах. Это требует использовать для них более точное квантование. Конкретная матрица квантования может задаваться кодером, но по умолчанию MPEG предполагает использование следующей эффективной матрицы, заимствованной из JPEG-стандарта:

8 16 19 22 26 27 29 34

16 16 22 24 27 29 34 37

19 22 26 27 29 34 34 38

22 22 26 27 29 34 37 40

22 26 27 29 32 35 40 48

26 27 29 32 35 40 48 58

26 27 29 34 38 46 56 69

27 29 35 38 46 56 69 83

Конкретный шаг квантования для каждой частоты определяется как произведение соответствующего значения матрицы и масштаба квантования. Кодер по необходимости может менять масштаб квантования от макроблока к макроблоку, но по умолчанию будет использоваться его предыдущее значение. Допустимый диапазон изменений масштаба - от 1 до 31. Таким образом, шаг квантования может меняться в широких пределах. Исключением является квантование значения F(0,0), для которого стандартом с целью повышения точности передачи средних уровней в блоках устанавливается фиксированный шаг, равный 8. Более того, в силу заметной корреляции средних уровней соседних блоков (для остальных коэффициентов это не так) квантованию подвергаются их разности (независимо для Y, U и V блоков). При этом исходные (опорные) значения для формирования разностей и последующего восстановления по ним в начале каждого раздела макроблоков установлены как 1024. Для передачи последовательности разностей эффективным оказывается метод Хаффмана (Huffman), который наиболее часто встречаемым значениям присваивает наиболее короткий битовый код. Таблица соответствия определяется стандартом.

Что касается остальных коэффициентов, то из вышеизложенного понятно, что большинство из них после квантования окажутся равными нулю. Характерный пример полученной матрицы значений приведен ниже.

1 0 0 0 0 0 0 0

2 -3 0 0 0 0 0 0

4 -5 0 0 0 0 0 0

1 0 0 13 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

Следующий шаг сводится к преобразованию матрицы в одномерную последовательность путем зигзаг-сканирования.

1 2 6 7 15 16 28 29

3 5 8 14 17 27 30 43

4 9 13 18 26 31 42 44

10 12 19 25 32 41 45 54

11 20 24 33 40 46 53 55

21 23 34 39 47 52 56 61

22 35 38 48 51 57 60 62

36 37 49 50 58 59 63 64

Для нее эффективным методом математического кодирования оказывается RLE (Run Legnth Encoding), который для передачи длинной цепочки нулей задает только ее начало и длину.