logo
Лекции по ЦО АВС

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), который для передачи длинной цепочки нулей задает только ее начало и длину.

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4