Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy

.pdf
Скачиваний:
251
Добавлен:
15.03.2016
Размер:
23.26 Mб
Скачать

Известно, что субъективная чувствительность глаза к уровню яркости участка изображения зависит от структуры соседних участков изображения: чем больше они насыщены мелкими деталями и чем больше их контраст, тем менее заметными оказываются ошибки, возникающие при кодировании изображения с потерей информации. Поскольку структурные свойства изображений неоднородны,

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

вто время как в иных местах можно было бы допустить и большие ошибки без ущерба для визуального качества.

-

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

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

Данная проблема решается с помощью формирования поля допустимых искажений (допусков), где каждому пикселу исходного изображения соответствует значение максимально допустимой погрешности передачи его значения.

В [4.13, 4.14] предлагаются два варианта определения допустимых изменений уровней каждого пиксела изображения при анализе рельефа обрабатываемых блоков изображения и выборе коэффициентов квантования — оценка модуля градиента яркости каждого пиксела и вычисление максимума вариаций уровней

10.1. Изменения коэффициентов квантования блоков

в некоторой задаваемой окрестности каждого пиксела:

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

Amax i,j =

A0 + k

(Xi+1,j − Xi−1,j )2 + (Xi,j+1 − Xi,j−1)2,

(10.1)

 

2

Amax i,j

=

A + k

 

max

r,r

X

X

i,j |

,

 

(10.2)

 

0

di,dj=

| i+di,j+dj

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

где Amax i,j — допустимая ошибка величины яркости пиксела Xi,j ;

A0, k —

эмпирические константы.

 

 

 

 

 

 

 

 

 

 

 

Кодер определяет такие параметры квантования каждого блока коэффициентов ДКП, чтобы ошибки в восстановленном изображении были максимальны,

но не превышали допустимой величины:

 

4

 

 

 

Amax i,j .

 

Xi,j − Xi,j

После двумерного дискретного косинусного

преобразования

и квантования

элементов образов блоков компонент изображения

производится

восстановление

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

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

Недостатками подобного способа являются необходимость определения коэффициента квантования спектральных компонент ДКП каждого блока итерационным методом, что резко увеличивает объем вычислительных операций, и отсутствие возможности адаптации алгоритма цифровой обработки к пропускной способности используемого канала цифровой передачи информации. В связи с этим был предложен усовершенствованный алгоритм [4.14].

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

На рис. 10.1 изображен вариант структурной схемы устройства для реализации такой цифровой обработки изображений. На рис. 10.2 приведена типичная зависимость ошибки восстановления от коэффициента квантования блока изображения.

Поясним принцип работы устройства на рис. 10.1. Кадры цветного изображения обычно представляют собой либо двумерные массивы скалярных компонент при дискретизации полного цветового сигнала, кодируемого, например, по системам SECAM, PAL, NTSC, либо двумерный массив векторов, состоящий из трех скалярных компонент, соответствующий величинам цветовых составляющих R, G, B.

Глава 10. Внутрикадровое кодирование изображений

Рис. 10.1. Структурная схема устройства для реализации адаптивного квантования: 1 — блок цифровой памяти кадров изображений, 2 — блок разделения кадра на компоненты, 3 — формирователь допусков, 4 — схема памяти блоков, 5 — преобразователь ДКП, 6 — схема матрицирования, 7 — первая схема квантования и округления, 8 — преобразователь ОДКП, 9 — вычислитель ошибок, 10 — вычислитель коэффициентов квантования, 11 — вторая схема квантования и округления, 12 — схема оценки кода каждого блока кадра, 13 — сумматор кодов оценки, 14 — схема сравнения, 15 — перемножитель, 16 — схема памяти, 17 — схема квантования и округления данных всех блоков кадра, 18 — блок кодирования

Этот массив данных запоминается в блоке 1 цифровой памяти кадров изображений и через блок 2, в котором создаются компоненты изображения (обычно, яркостная составляющая Y и цветоразностные сигналы U, V), поступающие на соответствующие блоки их цифровой обработки, по структурной схеме не отличающиеся друг от друга.

В одном из таких блоков, например обработки составляющей яркости, с помощью формирователя 3 допусков создается рельеф допустимых отклонений значений пикселов каждого кадра.

Один из известных эффективных вариантов вычисления такого рельефа определяется соотношением:

m=r n=r

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

G(i, j) = K0

a(m, n) · [X(i + m + 1, j + n) − X(i + m − 1, jn)]2 +

 

m=−r n=−r

 

 

 

 

1/2 ,

 

 

 

 

+ [X(i + m, j + n + 1) − X(i + m, j + n − 1)]2

(10.3)

 

 

 

 

 

 

 

 

 

 

 

где X (i, j) — значение пиксела в точке (i, j), a (m, n) = 1/round

 

 

2

+ n

2

 

 

6m

 

 

 

коэффициенты взвешивания, K0 — коэффициент

пропорциональности.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

10.1. Изменения коэффициентов квантования блоков

 

Рис. 10.2. Типичная зависимость ошибки восстановления от коэффициента квантования

Сформированные таким образом допустимые отклонения определяют возможные изменения величин пикселов компоненты при ее восстановлении после преобразования, обеспечивающего сжатие изображений.

Выделенные схемой 4 коды каждого блока размером N × N пикселов (например, согласно стандарту JPEG — 8 × 8) проходят последовательную обработку в нескольких блоках. Сначала данные поступают на преобразователь ДКП 5, формирующий из дискретных значений пикселов X(i, j), 0 i, j N , спектральные компоненты дискретного косинусного преобразования блока F (u, v), 0 u, v N . Затем они проходят схему 6 матрицирования, в которой каждая компонента ДКП делится на соответствующее число Q(u, v), учитывающее влияние визуальной заметности изменений различных спектральных компонент ДКП. Далее следуют первая схема 7 квантования и округления, формирующая преобразованные спектральные компоненты, round[(1/K ) · F (u, v)/Q(u, v)], где K — заранее заданный коэффициент квантования, и преобразователь ОДКП, формирующий из «восстановленных» спектральных компонент косинусного дискретного преобразования:

F (u, v) = K · Q(u, v) · round[(1/K ) · F (u, v)/Q(u, v)],

(10.4)

измененные вследствие обработки значения пикселов компоненты ¯ . После

X(i, j)

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

В результате на выходе вычислителя 9 формируются отклонения преобразованных вследствие матрицирования и квантования с заданным коэффициен-

том K значений пикселов от исходных величин: Δ(i, j) = X¯ (i, j)

X(i, j) .

Ввиду того, что величина этих отклонений значений пикселовпрактически

линейно зависит от коэффициента квантования K в достаточно

большом диа-

пазоне его значений (см. рис. 10.2), на основании полученных данных можно рассчитать требуемый коэффициент квантования KДОП, обеспечивающий такое преобразование пикселов блока, что изменения их значений будут находиться в зонах допустимых отклонений ДОП(i, j) = G(i, j), формируемых в схеме 3.

Глава 10. Внутрикадровое кодирование изображений

Расчет величины коэффициента квантования KДОП в блоке 10 может осуществляться различным образом. Один из вариантов расчета связан с определением средних значений реальных и допустимых отклонений в блоке:

1

i=N −1 j=N −1

1

i=N −1 j=N −1

 

 

 

 

 

i

 

(10.5)

=

 

 

Δ(i, j), ДОП =

 

 

ДОП(i, j),

 

N 2

i=0

j=0

N 2

=0

j=0

 

 

 

 

 

и по этим значениям вычисляют величину KДОП по формуле KДОП = K ·

ДОП/

/(Δ + λ), где λ <

ДОП — некоторая малая величина.

 

Другой вариант, требующий меньше вычислительных операций, связан с определением величин ДОП и только путем усреднения нескольких минимальных значений среди ДОП(i, j) и соответствующих им по положению в блоке значений

Δ(i, j).

Вычисленный блоком коэффициент квантования используется для вычислений во второй схеме квантования и округления 11 спектральных компонент ДКП

каждого блока кадра:

 

L(u, v) = round[(1/KДОП) · F (u, v)/Q(u, v)], 0 u, v N.

(10.6)

По значениям этих величин каждого из M блоков кадра в схеме 12 производится Z-упорядочивание спектральных компонент ДКП и оценка величины кода (например, кода Хаффмана) Size(m), 1 m M , определяющего цифровой поток каждого блока.

Коды Size(m) поступают на сумматор 13, где накапливаются величины ко-

!M

дов всех блоков кадра SizeΣ = Size(m), и далее — на схему сравнения 14,

m=1

в которой значение SizeΣ сравнивается с допустимым значением кода SizeΣДОП. Если величина q = SizeΣ/SizeΣДОП > 1, то формируемый поток оказывается

больше пропускной способности канала передачи информации.

Для того чтобы устранить это несоответствие, в перемножителе 15 коэффициенты квантования всех блоков кадра, запомненные схемой памяти 16, умножаются на рассчитанный коэффициент KДОП(m) = q · KДОП(m), 1 m M и подаются на схему 17 квантования и округления данных, на второй вход которой поступают также спектральные компоненты ДКП всех блоков кадра, предварительно запомненные в схеме памяти 16.

Таким образом, на выходе схемы формируются коды цифровых данных всех блоков кадра:

L

m

(u, v) = round

[1/K

(m)]

·

F

(u, v)/Q(u, v) , 0 u, v N, 1 m M.

 

{

ДОП

 

m

}

 

 

 

 

 

 

 

(10.7)

Эти результаты обработки одной из компонент изображения поступают на блок 18 кодирования, на который подаются результаты обработки других компонент изображения.

В случае, если цифровой поток вновь окажется не соответствующим пропускной способности канала связи, операции вычисления коэффициента q = = SizeΣВЫХ/SizeΣДОП, где SizeΣВЫХ — цифровой поток, полученный в результате указанных выше преобразований, и уточнения коэффициентов квантования могут быть повторены. Выход блока 18 является выходом устройства, реализующего данный принцип цифровой обработки изображений.

10.2. Направленное пространственное внутрикадровое предсказание

Рис. 10.3. Изображение «Залив», сжатое с помощью стандартного алгоритма JPEG, коэффициент сжатия 16

Исследования сложного тестового изображения «Залив», содержащего большое количество мелких деталей с высоким контрастом, показали, что при применении адаптивного выбора коэффициентов глубины квантования коэффициентов ДКП получается более высокое визуальное качество восстановленного изображения при той же степени сжатия, либо при сохранении качества восстановленного изображения возможно получение большей степени сжатия (примерно в 1,5 раза — см. рис. 10.3 и рис. 10.4).

На рис. 10.5 приведен пример кадра, закодированного программно-реализо- ванным кодером видеоконференцсвязи с величиной выходного битового потока 58 кбитов/c, на котором демонстрируется использование переменных коэффициентов квантования.

Встандарте кодирования динамических изображений Н-264/AVC [4.16, 4.17] поддерживается несколько типов пространственного внутрикадрового предсказания яркости, обозначаемых Intra_4 × 4, Intra_8 × 8 или Intra_16 × 16, а также предсказание цветности.

Режим Intra_4 × 4 основан на предсказании каждого блока яркости 4 × 4, и подходит для кодирования частей изображения с существенными деталями, режим Intra_8 ×8 использует предсказание каждого блока яркости 8 ×8. Режим Intra_16 × 16 осуществляет предсказание блока яркости 16×16 целиком и более подходит для гладких областей изображения. В дополнение к этим типам предсказания яркости вводится отдельный режим предсказания цветности.

Глава 10. Внутрикадровое кодирование изображений

Рис. 10.4. Изображение «Залив», сжатое с помощью алгоритма с адаптивным выбором коэффициентов квантования, коэффициент сжатия 16

Рис. 10.5. Адаптивный выбор коэффициентов квантования при кодировании динамической последовательности по стандарту H.261 (поток 58 кбитов/c, 10 кадров/c)

10.2. Направленное пространственное внутрикадровое предсказание

Рис. 10.6. Слева: предсказание Intra_4×4 для отсчетов a–p блока с использованием отсчетов A–Q; справа: 8 «направлений предсказания» для предсказания Intra_4 × 4

Внутрикадровое предсказание в Н.264/AVC всегда проводится в пространственной области с помощью ссылок на соседние отсчеты ранее закодированных блоков, которые находятся слева и/или выше предсказываемого блока.

10.2.1.Режим предсказания пикселов яркости блоков 4 × 4

При использовании режима Intra_4×4 каждый блок 4×4 предсказывается по пространственно соседним отсчетам, как показано на рис. 10.6 слева. 16 отсчетов блока 4 × 4, помеченые буквами a–p, предсказываются с использованием ранее декодированных отсчетов соседних блоков, отмеченных буквами A–Q.

Для каждого блока 4 × 4 используется один из 9 режимов предсказания. В дополнение к DC-предсказанию (одно значение используется для предсказания всего блока 4 × 4), имеются 8 режимов «направленного» предсказания, как показано на рис. 10.6 справа. Эти режимы полезны для предсказания направленных структур в изображении, таких как границы, расположенные под различными углами.

На рис. 10.7 показаны пять из девяти режимов предсказания Intra_4 × 4. Для режима 0 (вертикальное предсказание) отсчеты над блоком 4 × 4 копируются в блок, как показано стрелками. Режим 1 (горизонтальное предсказание) работает аналогично вертикальному предсказанию за исключением того, что копируются отсчеты слева от блока 4 × 4. Для режима 2 (DC-предсказание) прилегающие отсчеты усредняются. Оставшиеся шесть режимов являются режимами диагонального предсказания и называются предсказаниями диагонально- вниз-влево, диагонально-вниз-вправо, вертикально-вправо, горизонтально-вниз, вертикально-влево и горизонтально-вверх. Как показывают их названия, они подходят для предсказания текстур со структурами указанных направлений. Первые два режима диагонального предсказания также проиллюстрированы. Когда отсчеты E–H для предсказания диагонально-вниз-влево отсутствуют (потому что они еще не декодированы или, например, не принадлежат внутрикодированному макроблоку в режиме ограниченного внутрикадрового предсказания), они заменяются значением отсчета D.

Режим предсказания по вертикали отсчетов сигнала яркости — направление обозначено цифрой 0 (Intra_4 × 4_Vertical). Этот режим может исполь-

Глава 10. Внутрикадровое кодирование изображений

Рис. 10.7. Пять из девяти режимов предсказания Intra_4 × 4

зоваться, если доступны значения пикселов Y (i, −1) при i = 0, . . . , 3 (например, эти пикселы не выходят за границы изображения), и реализуется в соответствии с соотношением (см. рис. 10.7, режим 0):

ˆ

(10.8)

Y (i, j) = Y (i, −1) при i, j = 0, . . . , 3.

Режим предсказания по горизонтали отсчетов сигнала яркости — направление обозначено цифрой 1 (Intra_4 × 4_Horizontal). Этот режим может использоваться, если доступны значения пикселов Y (−1, j) при i = 0, . . . , 3, и реализуется в соответствии с соотношением (см. рис. 10.7, режим 1):

ˆ

(10.9)

Y (i, j) = Y (−1, j) при i, j = 0, . . . , 3.

Режим предсказания средней составляющей DC обозначается цифрой 2 (Intra_4 × 4_DC). Может быть использован один из следующих вариантов вычисления DC: если доступны значения пикселов Y (i, −1) при i = 0, . . . , 3 и Y (−1, j) при j = 0, . . . , 3, то предсказанные значения пикселов блока находят

следующим образом (см. рис. 10.7, режим 2):

 

Yˆ (i, j) = )n=0 Y (n, −1) + n=0 Y (−1, n) + 4 /8*

при i, j = 0, . . . , 3; (10.10)

3

3

 

 

 

 

если недоступны значения пикселов Y (−1, j) при j = 0, . . . , 3, а имеются значения пикселов Y (i, −1) при i = 0, . . . , 3, то предсказанные значения пикселов блока определяются так:

10.2. Направленное пространственное внутрикадровое предсказание

Yˆ (i, j) = )n=0 Y (n, −1) + 2 /4*

при i, j = 0, . . . , 3;

(10.11)

3

 

 

 

 

 

если недоступны значения пикселов Y (i, −1) при i = 0, . . . , 3, но имеются значения пикселов Y (−1, j) при j = 0, . . . , 3, то предсказанные значения пикселов

блока определяются так:

при i, j = 0, . . . , 3

(10.12)

Yˆ (i, j) = )n=0 Y (−1, n) + 2 /4*

3

 

 

 

 

 

и, наконец, если некоторые значения пикселов Y (i, −1) при i = 0, . . . , 3 и некоторые значения пикселов Y (−1, j) при j = 0, . . . , 3 недоступны, то предсказанные значения пикселов блока следует рассчитывать так:

Yˆ (i, j) = 2(BY −1) при i, j = 0, . . . , 3,

(10.13)

где BY — число битов на отсчет сигнала яркости. Здесь и далее значение [M ] равно целой части числа M .

Режим предсказания диагонально-вниз-влево отсчетов сигнала яркости — направление обозначено цифрой 3 (Intra_4 × 4_Diagonal_Down_Left). Этот режим может использоваться, если имеются значения пикселов Y (i, −1) при i = 0, . . . , 7. Предсказанные значения пикселов определяются следующим образом (см. рис. 10.7, режим 3):

 

Y (6,−1)+3Y (7,−1)+2

,

 

,

i = j = 3;

 

4

 

 

i, j = 0, . . . , 3, i = j = 3.

Yˆ (i, j) = Y (i+j,

 

4

 

 

 

 

 

 

 

1)+2Y (i+j+1,

 

1)+Y (i+j+2,

 

1)+2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(10.14)

Режим предсказания диагонально-вниз-вправо отсчетов сигнала яркости — направление обозначено цифрой 4 (Intra_4 × 4_Diagonal_Down_Right). Этот режим может использоваться, если доступны значения пикселов Y (i, −1)

при i = 0, . . . , 3 и Y (−1, j) при j = −1, . . . , 3.

 

 

 

 

 

 

 

 

 

Предсказанные значения пикселов при i, j

 

 

= 0, . . . , 3 определяются следую-

щим образом:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y (i−j−2,−1)+2Y (i−j−1,−1)+Y (i−j,−1)+2

,

i > j;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

Y (i, j) =

 

 

 

 

− −

 

4

− −

 

 

 

 

,

i < j;

(10.15)

ˆ

 

 

Y (

 

1,j

i 2)+2Y (

 

1,j

 

i

1)+Y

(

 

1,j

 

i)+2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y (0,

 

 

4

 

 

 

 

 

 

,

 

 

 

i = j.

 

 

 

 

1)+2Y (

1)+Y (

1,0)+2

 

 

 

 

 

 

 

 

1,

 

 

 

 

 

 

 

 

Режим

предсказания вертикально-вправо отсчетов сигнала яркости —

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

направление обозначено цифрой 5 (Intra_4 ×4_Vertical_Right). Этот режим может использоваться, если доступны значения пикселов Y (i, −1) при i = 0, . . . , 3 и Y (−1, j) при j = −1, . . . , 3. Если обозначить n = 2 i − j(i, j = 0, . . . , 3), то предсказанные значения пикселов определяются следующим образом: