Научная статья на тему 'Управление скоростью и ошибкой кодирования в системе сжатия и передачи видеоинформации с ограничениями на память передающего и принимающего устройств'

Управление скоростью и ошибкой кодирования в системе сжатия и передачи видеоинформации с ограничениями на память передающего и принимающего устройств Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
153
43
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Беляев Е. А., Тюрликов А. М.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Беляев Е. А., Тюрликов А. М.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Управление скоростью и ошибкой кодирования в системе сжатия и передачи видеоинформации с ограничениями на память передающего и принимающего устройств»

УПРАВЛЕНИЕ СКОРОСТЬЮ И ОШИБКОЙ КОДИРОВАНИЯ В СИСТЕМЕ СЖАТИЯ И ПЕРЕДАЧИ ВИДЕОИНФОРМАЦИИ С ОГРАНИЧЕНИЯМИ НА ПАМЯТЬ ПЕРЕДАЮЩЕГО И ПРИНИМАЮЩЕГО УСТРОЙСТВ

Е.А. Беляев, А.М. Тюрликов Санкт-Петербургский Государственный Университет Аэрокосмического Приборостроения

Аннотация

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

Введение

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

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

H.264) [1], а также алгоритмы, базирующиеся на дискретном вейвлетом преобразовании (JPEG2000) [2].

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

В данной работе предлагается алгоритм, который обеспечивает приемлемое качество для всех сегментов для данной пропускной способности канала.

1. Управление битовой скоростью в стандарте 1РБС2000

Схема кодирования, используемая в стандарте ШЕв2000, кратко может быть описана следующим образом. После преобразования цветового пространства каждый сегмент изображения подвергается процедуре многоуровневого дискретного вейв-летного преобразования [3, 4]. Для этого используется два вейвлетных фильтра: низкочастотный фильтр И0 (п) и высокочастотный фильтр (п). При разложении сигнала сегмента изображения вначале выполняется разложение по строкам, а затем по столбцам. Результатом разложения являются 4 матрицы: НН0, НЬ0, ЬН0, ЬЬ0, соответствующие

фильтрации фильтром Иг(п) по строкам и по столбцам; фильтром (п) по строкам и И0 (п) по столбцам; фильтром И0(п) по строкам и Иг(п) по столбцам; фильтром Н0 (п) по строкам и столбцам. Далее производится децимация (прореживание) полученных матриц по строкам и столбцам с коэффициентом 2. Затем матрица ЬЬ0 подвергается дальнейшему вейвлетно-му разложению. Его результатом являются матрицы: НН1, НЬ1, ЬН1, ЬЬ1 (рис. 1). Такое разложение повторяется V раз. Результатом разложения является набор из 3v +1 матриц уменьшающейся размерности.

Дальнейшее кодирование состоит из трех основных шагов. На первом шаге (Тіег-1) происходит сжатие без потерь коэффициентов вейвлетного разложения. Каждая из матриц разложения делится на блоки, которые кодируются независимо друг от друга. Коэффициенты разложения блоков представляются в двоичном виде. Двоичные символы коэффициентов, относящиеся к одному разряду, образуют битовую плоскость. Кодирование осуществляется по битовым плоскостям: начиная от битовой плоскости, соответствующей старшему разряду коэффициентов. Каждая битовая плоскость (кроме самой старшей) кодируется в три прохода так, что кодирование может быть прервано после любого числа проходов. Общее количество проходов р = 3(пь -1) +1, где пь - количество битовых плоскостей в блоке.

х(п)т

2Т2

ад — ;2

К (п) -— 2|2 -—ЬЬХ

*і(«)—2Т2

■ЬНХ

-нц

К(П) 2Т

А„(я)

:Т2 -Ж,

^о(я)

ЫП)~^21

К(п) 2Т

-1Н„

-ни

-1П1п

ы, ьнх ьн0

нц нн,

нь0 нн0

Рис. 1. Вейвлетное разложение изображения На втором шаге кодирования (КВ-Ор1ішІ7а1іоп), для каждого блока определяются проходы, которые будут переданы декодеру. Пронумеруем блоки, входящие в сегмент изображения і = 1,2,.... Блоку і

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

к°=0

г С

Проход Проход Проход Проход

1 2 к+1 Р

йр=0

</° сі', £ СІ* СІ." СІГ' .

Рис. 2. Структура кодового блока Обозначим через п = {п,} вектор отсечения сегмента, компонента пі которого означает, что і - ый блок отсекается в точке с номером пі. Общая среднеквадратическая ошибка для сегмента

а (п) = £ <■,

і

где ап - среднеквадратическая ошибка для блока і после отсечения его в точке пі .

Согласно [5] среднеквадратическая ошибка может быть вычислена как

ап = Х( ^ [и,у] - [и, V])2

{и ,у}

где і) [и,V] - исходный вейвлетный коэффициент с

координатами и и V в блоке і; і"'[и, V] - восстановленный вейвлетный коэффициент с учетом отсе-

чения блока в точке п,

- весовой коэффициент

матрицы вейвлетного разложения. Суммарные битовые затраты на сегмент

г (п)=Хг”'

где г'”' - битовые затраты на блок і после отсечения его в точке п'. Оптимизационная задача заключается в поиске вектора отсечения пор(, такого, что

\ а (п р) = тіп а (п)

{п}

(1)

Для решения оптимизационной задачи (1) в стандарте 1РБв2000 [2, приложение 1.10] применяется метод множителей Лагранжа. Метод множителей Лагранжа подразумевает, что для каждого блока используется множество подходящих точек отсечения. Для любых двух подходящих точек отсечения У и к, ] < к блока '

а / - а к

гк - гГ

> 0

. ап - ак . а] - ап

ШІП— ----------— > ШІП—'-----

к п

г, - г,

]>п' г ' г

Иными словами, множество подходящих точек отсечения есть множество точек отсечения, лежащих на выпуклой кривой скорость/искажение. Множество векторов отсечения, компоненты которого состоят из подходящих точек отсечения, обозначим за N. Любой вектор отсечения п е N минимизирующий

г (п)+м (п) = £ (уп+хап),

I

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

шш ^ (г”' + ха”) = ^ ш1п(г”‘ + лап).

г 1

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

и

2

w

для каждого блока отдельно. Решение оптимизационной задачи заключается в поиске такого значения Я , что r (n) = rmax. При этом каждому значению Я соответствует вектор отсечения n, компонента которого n = arg min { +Яdki }.

Поиск искомого значения Я может осуществляться следующим образом. Первоначально, из некоторых соображений, выбираются значения Яшіп и Яшзх. Затем выполняется поиск значения Я путем деления пополам отрезка [Яшіп,Яшзх] .

На шаге З (Tier-2) кодирования, формируется сжатый сегмент изображения в соответствии с найденным вектором отсечения nopt .

2. Система передачи видеоинформации на основе алгоритма JPEG 2000

Система передачи на основе JPEG 2000 может быть описана следующим образом. Будем считать, что время в системе дискретно и разделено на окна единичной длины [t, t +1), а под моментом времени t будем подразумевать окончание этого интервала времени. Источник видеоинформации через одинаковые интервалы времени подает на вход кодера очередной сегмент изображения. Кодер работает в реальном масштабе времени, поэтому на момент окончания окна [t, t +1) в сглаживающий буфер передатчика [б] помещается сжатый сегмент, размером r(xt) бит, xt є Nt. В зависимости от количества бит в буфере передатчика формируются требования к следующему сжимаемому сегменту. Количество бит в буфере передатчика b(t) в момент времени t , после помещения в буфер очередного сжатого сегмента, объемом r (xt) бит и передаче по каналу с постоянной скоростью r, изменяется следующим образом:

b(t) = max {0, b(t _ 1) _ r} + r (xt). (2)

Решение оптимизационной задачи (1) гарантирует, что буфер передатчика размером B0 = r бит никогда не переполнится, если для каждого передаваемого сегмента выбирается такой вектор деления xt є Nt, чтобы

d (xt) = min d (n)

пє^

r(xt) < r.

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

3. Система передачи видеоинформации на основе модифицированного алгоритма JPEG2000

В данной работе предлагается управлять не только количеством бит на сжатый сегмент, но и визуальным качеством каждого сегмента. То есть сегменты предлагается сжимать с одинаковым, приемлемым визуальным качеством, с учетом ограничений на пропускную способность канала. Для того, чтобы обеспечить ошибку не более d, необходимо аналогично (1), найти такой вектор отсечения x, e N,, чтобы

r (x,) = min r (n)

neN,

d(x,) < d.

При этом очевидно, что битовые затраты на каждый сегмент могут существенно отличаться и превосходить пропускную способность канала r. Поэтому объем буфера передатчика B0 > r . При этом задержка, вносимая при использовании буфера, равна у сегментов [7].

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

минимизировать max d(x )

' (3)

b(t) < B0.

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

Решение динамическим программированием

Если мы не имеем ограничений на вычислительные ресурсы и память, то поставленную задачу (3) можно решить динамическим программированием. При этом на каждом шаге алгоритма:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

1. Отбрасываются пути, приводящие к переполнению буфера.

2. Из множества путей с одинаковой максимальной ошибкой d удаляются все пути кроме одного, для которого количество бит в буфере минимально.

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

Для наглядности рассмотрим пример из последовательности трех сегментов (см. рис. 3), каждому из которых соответствуют три вектора отсечения: {а1, а2, а3} для сегмента а ; {Ь1,Ь2,Ь3} для сегмента Ь , {с1, с2, с3} для сегмента с. Каждому вектору соответствует точка на плоскости «скорость-искажение».

На рис. 4 схематически показано решение оптимизационной задачи путем динамического программирования. Каждый шаг алгоритма для наглядности разбит на этап записи сжатого сегмента в буфер и этап передачи данных из буфера в канал. На шаге 1 пути не отбрасываются. На шаге 2 из возможных 9-ти путей отбрасываются 7. На шаге 3 из возможных 6-ти путей отбрасываются 3. Оптимальному решению соответствует выбор векторов отсечения а2 для сегмента а , Ь2 для сегмента Ь , с2 для сегмента с .

Решение последовательным поиском

Максимальное значение ошибки на сегмент, найденное динамическим программированием, может быть получено также и последовательным поиском. Обозначим за Б множество возможных значений, переупорядоченных по возрастанию ошибок для всех сегментов, дополненное значениями 0 и ж. За а, обозначим элемент этого множества. Для рассмотренного выше примера такое множество имеет следующий вид Б = {0, а(Ь3), а(а3), а(а2), а(Ь2), а (с3), а (с2), а (Ь1), а (с1), а (а1), ж}.

Работа алгоритма разбивается на этапы. На этапе і выбирается порог а = а,. Для каждого сегмента ґ выбирается вектор отсечения хґ є К,, такой что

х, = а^шах {а(п): а(п) < И}, (4)

пєК, V '

а также согласно (2) вычисляется количество бит в буфере Ь (ґ) при последовательной передаче сжатых сегментов. Если, на этапе і, в какой либо момент времени буфер объемом Всоп переполнился, то производятся аналогичные действия на этапе і +1, в противном случае решение найдено и порог а является значением решения оптимизационной задачи.

Описанный алгоритм будем называть алгоритмом последовательного поиска (см. рис. 5).

Утверждение 1. Не существует последовательности векторов отсечения, не приводящих к переполнению буфера и имеющих максимальное значение среднеквадратической ошибки меньше, чем а ,

где а - решение, полученное алгоритмом последовательного поиска.

Доказательство. Предположим, что алгоритм последовательного поиска остановился на этапе '. Тогда для любого этапа у , предшествующего этапу ' для кадра, содержащего Ь сегментов, в процессе работы алгоритма выбирается последовательность векторов х1, х2,..., хЬ таких, что а (х,) < а 1,

t е [1...Ь], х, е N и, из описания алгоритма, в некоторый момент времени т буфер переполнился:

~(т) > Всоп . (5)

Теперь рассмотрим любую другую последовательность векторов у 1, у 2,..., у Ь, таких, что

а(у,) < а],, е [1...Ь], у, е N и обозначим за Ь(,) количество бит в буфере в момент времени для данной последовательности. Из (4) следует, что для любого момента времени а (х,) > а (у,). При этом известно,

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

Г (х,) < г (у,). (6)

С учетом условия (6) и выражения (2) получим, что при Ь (0) = Ь(0) = Ь0, во все моменты времени Ь (,) < Ь(,). Поэтому, с учетом (5), в момент времени т' < т значение Ь(т') > Всоп .

Алгоритм управления скоростью и ошибкой кодирования при ограничениях на память

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

а алгоритма последовательного поиска в процессе работы системы, при таких ограничениях на память.

Обозначим эту оценку ё (,). Оценивать значение а

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

большей ё(,). Превышение порога Вн означает,

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

оценка ошибки ё(,) увеличивается.

Алгоритм описывается при помощи следующих трех шагов.

Шаг 0.

0.1 Установить начальное значение , = 0,

а (0) = а0, Ь(0) = 0.

0.2 Перейти к шагу 1.

Шаг 1. (Заполнение буфера)

1.1 , =, +1

1.2 Передать в канал шт{Ь(, -1), г} бит.

1.3 Выполнить сжатие сегмента ґ без потерь и найти множество векторов отсечения N.

1.4 Выполнить поиск хґ є К,, такого, что

\г (х,) = ШІП г (п)

І пє^

| Л(х,) < ^).

1.5 Если шах{0, Ь(ґ -1) - г} + г(х,) > Вн то перейти к шагу 2.4.

1.6 Поместить в буфер передатчика г(х,) бит и перейти к шагу 1.1.

Шаг 2. (Опустошение буфера)

2.1 ґ = ґ +1

2.2 Передать в канал шіп{Ь(ґ -1), г} бит.

2.3 Выполнить сжатие сегмента ґ без потерь и найти множество векторов отсечения К,.

2.4 Вычислить количество бит, необходимое для освобождения буфера при передаче сегмента с ошибкой не более ёетр1у , путем поиска вектора отсечения хґ є N, такого, что

Гг (хґ) = шіп г (п)

І пє^

і Л(хґ ) < ЛетРу.

СІ{ Яі)

«/( а3)

* сегмент а сегмент Ъ .

^(с2)

^(Сз)

^(ь2) І—"Г

Л Р— Т1 __1_ 1 1

(а,) г(а*) г(щ) г(Ьі) г(Ь2) г(Ь3)

2.5 Выполнить поиск у , е К,, такого, что [ё(у ) = ш1п ё(п)

I пеК,

[г(у,) < ш1п{50 -Ь(,), Г(х,)}.

2.6 Если значение шах{0,Ь(, -1) - г} = 0, то ё(( +1) = ё(,) + Дё, и перейти к шагу 1.4.

2.7 Поместить в буфер передатчика г( у,) бит и перейти к шагу 2.1.

В качестве примера работы алгоритма на рис. 6 показана зависимость степени заполненности буфера от номера сегмента. Участки кривой, относящиеся к шагу 1 и шагу 2 алгоритма, показаны тонкой и толстой непрерывными линиями, соответственно.

Утверждение 2. Пусть алгоритму последовательного поиска с объемом буфера Всоп соответствует максимальное значение среднеквадратической ошибки ё . Тогда, при использовании предложенного алгоритма с порогом Вн = Всоп и начальным

значением оценки порога ошибки <з?(0) < ё, для всех моментов времени , выполняется неравенство

ё(/) < ё + Дё .

сегмент с

и.

I

Кс,) г(с2) г (с,) Рис. 3. Последовательность из трех сегментов

^а.) <!=<!( с2)

^(а2)

«/(■з)

Рис. 4. Решение динамическим программированием сегмент а сегмент Ъ

^(Ь.)

і

и!--* т--------------

а(ь2)

1 Й?(Ь3)

й(с,)

С2)

а(с3)

-I—

I

-I— - J— I

_1_

сегмент с

''(а,) г{а,) г(а3) г(Ь,) г(Ь2) /-(Ь3) /-(с,) г(с2) г(с3)

Рис. 5. Решение последовательным поиском

Рис. 6. Пример работы алгоритма

Доказательство. Обозначим за Ь (,) количество бит в буфере объемом Всоп при последовательном поиске. Количество бит, помещаемых в буфер в момент времени , при последовательном поиске, обозначим ~ ). Из описания алгоритма последовательного поиска, порог ошибки ё обеспечивает для всех моментов времени выполнение неравенства

~(,) < Всоп .

Пусть предложенный алгоритм начинает работать со значением оценки порога ошибки <з?(0) < ё и в некоторый момент времени т значение оценки порога ошибки первый раз попадет в диапазон (в противном случае, для всех моментов времени , ,

£?(/) < ё)

ё < <з?(т) < ё + Дё , (7)

где Дё - шаг изменения оценки порога ошибки. Количество бит в буфере передатчика (см. п. 2.6 алгоритма) перед помещением в буфер сжатого сегмента, в момент времени т

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Ь(т) = 0, (8)

С учетом (7) в моменты времени , > т г (х,) < г(,), (9)

Из (2), (8) и (9) следует, что в моменты времени

, > т

шах{0, Ь(, - 1) - г} + г(х, ) < £(/) < Всоп = Вн .

Таким образом, начиная с момента времени т , условие шах{0, Ь(, -1) - г} + г(х,) > Вн (см. п. 1.5 алгоритма) не будет выполняться, и, следовательно, алгоритм не попадет в шаг 2.6, тогда для всех сегментов значение порога ошибки

I й?(,) < ё, если, < т [ <^(,) < ё + Дё, если, > т.

Из утверждения 2 следует, что при выборе порога Вн = Всоп в моменты времени , > т среднеквад-

Номер сегмента

ратическая ошибка на сегмент не превышает

d + ДС .

4. Выбор параметров для алгоритма управления и практические результаты Для получения практических результатов была использована открытая реализация JPEG2000 стандарта JASPER версии 1.701.0. Для сравнения использовались три тестовые видеопоследовательности разрешением 1920x1080 с различными статистическими свойствами: видеопоследовательность, содержащая компьютерную графику (test1); видеопоследовательность, содержащая фрагменты, как компьютерной графики, так и естественные (фотографические) фрагменты (test2); а также видеопоследовательность, содержащая только естественные фрагменты (test3). Для упрощения представления результатов каждая тестовая последовательность формировалась из одинаковых кадров.

Объем буфера, кБ Рис. 7. Зависимость максимальной среднеквадратической ошибки восстановления для сегмента от объема буфера при последовательном поиске. Параметр гаґе=0,04

Будем полагать, что из ограничений на память устройства задан объем сглаживающего буфера B0 и известна минимально возможная скорость канала. Необходимо выбрать значения Bн и Летр1у. Для

этого предлагается следующая последовательность действий. Для тестовых последовательностей строится зависимость максимальной среднеквадратиче-

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

опустошении буфера и значение Вн = В0 - Ветр(у .

I

V —-О™- JASPER без сегментиров.

JASPER с сегментиров. первый кадр для предложенного алгоритма

после адаптации

У

$ Г II

г

и у*

и

0,04 0,06 0,08 0,10 0,12 0,14

rate

Рис. S. Зависимость скорость/искажение для последовательности testl

■™0™- JASPER без сегментирования ® JASPER с сегмен-

тир эван лем

1 >

%

№ женного алгор лтма чгоритм ии

после адаптац

0,04 0,06 0,08 0,10 0,12 0,14

rate

Рис. 9. Зависимость скорость/искажение для последовательности test2

На рис. 8-10, показаны результаты использования оригинального алгоритма JPEG2GGG как с сегментированием, так и без сегментирования, а также предложенного алгоритма для первого кадра последовательности и для кадра после адаптации алгоритма к скорости канала. Объем сглаживающего буфера передатчика был выбран из расчета, что дополнительная задержка при передаче не будет превосходить величину, эквивалентную 0,15 кадра. Величина Bempty выбрана так, чтобы обеспечивать пиковое отношение сигнал/шум на сегмент не хуже З0 дБ.

На рис. 11 показана зависимость пикового отношения сигнал/шум от номера сегмента для видеопоследовательности, содержащей компьютерную графику. График наглядно демонстрирует, что при

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

При постановке оптимизационной задачи (3) предполагалось, что статистические свойства кадров меняются незначительно. Если в процессе работы предполагается смена сцены так, что статистические свойства следующей сцены существенно отличаются от предыдущей, то предложенный алгоритм после адаптации к скорости канала выйдет на значение ошибки, соответствующей «наихудшему» кадру. Для избежания этого эффекта в предложенный алгоритм достаточно внести следующую модификацию. Если в течение целого кадра система находилась на шаге 1 и количество бит после передачи последнего сегмента равно нулю, то следует уменьшить оценку ошибки й?(, +1) = <з?(,) - Дё .

36

32

30

—■0 ■■ JASPER без сегментирования —І)— JASPER с сегмен-

тир ован 4ЄМ

,Л Г Г < і

j К""

і И'""

(>-’н 1—1 >—'

Г'

эн ценного алгоритма дложенный алгоритм эсле адаптации

т

0,04 0,06 0,08 0,10 0,12 0,14

rate

Рис. l0. Зависимость скорость/искажение для последовательности test3

0 20 40 60 80 100 120 140

Номер сегмента

Рис. 11. Зависимость Р8МЯ от номера сегмента для исходного алгоритма ЗРБ02000 с сегментированием и предложенного алгоритма для последовательности ґєзґі. Параметр гаів=0,07

Заключение

В работе было показано (см. например рис. 8 и 1. рис.11), что при условии ограничений на память, алгоритм управления битовой скоростью, используемый в алгоритме ШБв2000, не подходит для сжатия изображений, содержащих компьютерную графику.

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

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

Литература

Marpe D., George V., Cycon H. L., and Barthel K. U. Performance Evaluation of Motion-JPEG2000 in Comparison with H.264/AVC Operated in Intra Coding Mode // Proc. SPIE, vol. 5266, pp. 129-137, 2004.

ITU-T and ISO/IEC JTC 1. JPEG 2000 Image Coding System: Core Coding System, ITU-T Recommendation T.800 and ISO/IEC 15444-1 // JPEG 2000 Part 1, 2000. Mallat S. A Theory of Multiresolution Signal Decomposition: The Wavelet Representation // IEEE Transactions on Pattern Anal. Mach. Intell., 1989. - V. 11. - Pp. 674-693. Antonini M., Barlaud M., Mathieu P., Daubechies I. Image coding using wavelet transform Image Processing // IEEE Transactions on Image Processing, 1992. - Vol. 1. Issue 2. - Pp. 205-220,

Taubman D. High Performance Scalable Image Compression with EBCOT // IEEE Transactions on Image Processing, 2000. - Vol. 9. - No. 7. - Pp. 1158-1170, Jelinek F. Buffer overflow in variable-length coding of fixed rate sources // IEEE Trans. Inform. Theory, 1968. Vol. IT-14, pp. 490-501.

Reibman A.R., Haskell B.G. Constraints on variable bit-rate video for ATM networks // IEEE Transactions on Circuits and Systems for Video Technology, 1992. - V. 2. -Issue 4. - Pp. 361-372.

i Надоели баннеры? Вы всегда можете отключить рекламу.