Научная статья на тему 'Однопроходный режим компрессии видеоданных'

Однопроходный режим компрессии видеоданных Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
348
42
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РЕЖИМ CBR (CONSTANT BITRATE) / РЕЖИМ КОМПРЕССИИ VBR (VARIABLE BITRATE) / КВАНТАЙЗЕР

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шинкаренко Константин Всеволодович

Представлен алгоритм управления переменной скоростью передачи видеоданных, сжатых по стандарту AVC (H.264). Алгоритм основан на использовании Rate-Distortion-модели второго порядка [1] и прогнозе сложности видеокадров на основе накопленных статистических данных о сложности предыдущих кадров. Алгоритм реализован с учетом требований, предъявляемых моделью виртуального буфера декодера.

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

One-pass video encoding mode

In this paper we investigate one-pass variable bitrate control mode for AVC (H.264) video encoders. Algorithm based on second order rate-distortion model and pre-encoding and past-encoding video complexity estimation. Algorithm conformed with VBV restrictions.

Текст научной работы на тему «Однопроходный режим компрессии видеоданных»

Шидловский Станислав Викторович

Ассистент кафедры информационно-измерительной техники ТУСУРа Телефон: (3822) 41 48 35 Эл. почта: stas@iit.tusur.ru

S.V. Shidlovskiy

The analysis of functional resources of isotropic structure guaranteeing computation of disordered Boolean functions

The article is devoted to construction of control devices on the basis of multifunctional logical modules guaranteeing the realization of control algorithms from stated class with the help of re-tuning of device structure.

УДК 681.3.069:681.327:621.391 К.В. Шинкаренко

Однопроходный режим компрессии видеоданных

Представлен алгоритм управления переменной скоростью передачи видеоданных, сжатых по стандарту AVC (H.264). Алгоритм основан на использовании Rate-Distortion-модели второго порядка [1] и прогнозе сложности видеокадров на основе накопленных статистических данных о сложности предыдущих кадров. Алгоритм реализован с учетом требований, предъявляемых моделью виртуального буфера декодера.

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

Существует два режима контроля скорости передачи видеоданных. Первый предполагает, что видеоданные будут следовать с постоянной на кратком временном интервале скоростью и выполняются жесткие требования, накладываемые моделью виртуального буфера декодера [1]. Это так называемый режим CBR (Constant Bitrate). Другой режим компрессии, VBR (Variable Bitrate), подразумевает, что возможны значительные колебания мгновенного битрейта видеопотока от заданного среднего, однако на некотором достаточно длительном отрезке времени средний заданный битрейт видеопотока должен быть выдержан. При этом модель виртуального буфера декодера основывается на заданном максимально допустимом моментальном значении битрейта видеопотока. Представленный алгоритм разработан для кодирования видео в режиме VBR.

Управляемым параметром в алгоритме сжатия видеоизображений является так называемый квантайзер (Q), увеличение которого обеспечивает большее загрубление картинки и большую степень сжатия, уменьшение — лучшее качество, но и большой битовый поток. Задачей алгоритма RC является определение квантайзера, который будет использоваться для енкодирования видео. Квантайзер для формата AVC (H.264) может изменяться в пределах от нуля до пятидесяти одного. Базовым является определение квантайзера для кадров типа P (Predicted). Квантайзер для B-кадров (bidirectional predicted) и для опорных /-кадров (Intraframe) определяется относительно квантайзера для P-кадров. Эта задача решается с использованием квадратичной модели зависимости размера видеокадра от квантайзера, так называемой R-D-модели (Rate-Distortion) [1].

Квадратичная Л-^-модель представляет собой следующее выражение:

я «м=я.+щ. (!)

Яр Яр

где Л(Яр) — результирующий размер видеокадра, зависящий от используемого для его сжатия параметра квантизации Яр; С!, С2 — коэффициенты модели; V — сложность кодирования видеокадра.

Параметр квантизации меняется в пределах от 0 до 255. Для получения квантайзера из параметра квантизации используется функция перехода, аналогичная разработанной в стандарте сжатия МРЕО-4 [2].

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

C + Qp =-

C,2 - 4RC2

1 v

-, (2)

2 R v

где величины C1; C2, Qp, V имеют тот же смысл, что и в (1); R — требуемый размер кадра после кодирования.

Важную роль в алгоритме играет планирование ресурса на группу кадров между соседними опорными кадрами, т.е. на GOP (Group Of Picture). Планирование производится согласно следующей формуле в момент прихода кадра, который будет кодироваться как /-кадр:

Ti = AvgB(1 + пр + пВ) + ^, (3)

fps

где Ti — имеющийся в распоряжении ресурс битов для расходования на текущий GOP; i — номер кадра в GOP'е (в данном случае i = 1); AvgB — заданный средний битрейт видеопотока, бит; nP — число кадров P-типа в текущем GOP'е (определяется заданной структурой GOP^); пВ — число кадров B-типа в текущем GOP'е (определяется заданной структурой GOP'а); X — параметр инерционности алгоритма (типичное значение равно 0,03); fps — фреймрейт видеопотока, кадр/с;

Г-AvgB /2, - AvgB /2 > Ft, (Fi, - AvgB/2 < F,

где F =

0, i = 0

AvgB — заполненность виртуального буфера декодера после кодирова-

Fi-1 + Si

fps

ния очередного i-го кадра, бит. В начале кодирования видеопоследовательности значение заполненности буфера равно нулю; AvgB, fps имеют тот же смысл, что и в (3); i — номер кадра; Si — фактический размер i-го кадра после его кодирования.

После кодирования i-го кадра в GOP'е величина T, отвечающая за имеющийся в распоряжении до конца GOP'а ресурс, изменяется согласно формуле

Tt+1 = T - Si. (4)

Нужно отметить, что важную роль в алгоритме играет определение требуемого размера кадра. Поскольку алгоритм должен обеспечивать равное качество всех кадров в видеопоследовательности, более сложным для кодирования кадрам необходимо выделять больший ресурс битов. Для определения сложности кодирования кадра используются две характеристики сложности видео. Первая характеристика сложности видеокадра есть среднее абсолютное отклонение яркости пикселей (по макроблокам). Будем использовать принятое в англоязычной литературе сокращенное обозначение этой величины — MAD (Mean Absolute Difference). Поскольку алгоритм базируется на определении квантайзеров на кадрах Р-типа, мы будем вычислять MAD для вычтенных кадров этого типа. Ниже приведена формула вычисления MAD:

Nm

MAD = MADk , (5)

Nmb

1 16 16

где Nmb — количество макроблоков в кадре; MADk = " XXpum^ - lum| — MAD k-го

i j

макроблока, где lumt j — яркость пикселя с координатами i и j в k-м макроблоке; lum — среднее значение яркости пикселей в k-м макроблоке.

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

MADp = aMADp-1 + b , (6)

где коэффициенты модели a и b рассчитываются с помощью метода линейной регрессии, аналогичного представленному в [2]; MADP_-1 — это фактическое значение MAD на предыдущем кадре P-типа, вычисляемое согласно (5).

Для подбора коэффициентов используются данные о последних двадцати значениях MAD P-кадров. Они находятся, исходя из условия минимизации ошибки предсказания по этим двадцати имеющимся значениям MAD. Не используются данные, имеющие значительные отклонения от средних значений MAD. Это повышает устойчивость модели.

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

Xft = + (7)

i 8 8ф у }

где ф — коэффициент, принимающий значение 1 для l- и P-кадров, и значение 1,36 для B-кадров [1]; ft — тип кадра (I, P либо B).

Используя полученные по формулам (4), (6) и (7) значения T, MAD и X, рассчитаем требуемый размер текущего P-кадра исходя из следующего выражения:

„ XpMADpT ттР

Rp =_i_i__Hp (8)

i (nPXp + nBX.) AvgMADp '

где Xp и XB — сложность кодирования кадров соответственно P- и В-типа на момент обработки текущего i-го кадра; nP, nB — остающееся в ООР'е на момент кодирования текущего кадра количество P- и В-кадров соответственно; Hp— объем заголовочной информации видеокадра P-типа; AvgMADp — усредненное по всей видеопоследовательности значение MAD для P-кадров.

На требуемый размер кадра накладываются ограничения, обусловленные виртуальным буфером декодера (далее для простоты FBF-буфером, от английского Virtual Buffer Verifier). Состояние VBV-буфера изменяется после енкодирования очередного кадра в соответствии со следующей формулой:

VBV Statet =

0, i = 0

MaxB

-S, i > 0,

fps

где i — номер кадра, MaxB — максимально допустимый битрейт видеопотока, бит; fps — фреймрейт видеопотока, 1/с; Si — фактический размер i-го кадра после енкодирования. VBV-буфер ограничен снизу нулевым значением, сверху — значением MaxB.

Данные поступают в виртуальный буфер с максимальной скоростью, а выбираются в момент декодирования и показа кадров. При заполнении VBV-буфера до верхней границы данные в него перестают поступать. В том же случае, если к требуемому моменту декодирования очередного кадра данные не успеют поступать в VBV-буфер, то возникнет ситуация недополнения буфера (underflow). Во избежание такой ситуации максимально возможный размер i-го кадра задается как значение расчетной заполненности VBV-буфера VBV_Statei в соответствии со следующим выражением:

k

Rp = MAX(Rp, VBV _ Statei). (9)

Теперь вернемся к формуле (2). В качестве сложности кодирования видеокадра V примем величину MADp, получаемую согласно (6). Смысл величины R выполняет Rp, окончательное выражение для которой представлено формулой (8). Для того чтобы получить параметр квантизации, нам не хватает коэффициентов модели C1 и C2. Для их вычисления используется метод наименьших квадратов, подразумевающий минимизацию функционала

N 2

EC,C2) = £(CQp;1 + C2QP;2 -Y) ^ min,

i= 1

где Y =

RP

MADp

Найдя частные производные по параметрам С1 и С2, приравняв их нулю, получим систему из двух уравнений с двумя неизвестными, откуда выразим искомые С1 и С2:

N NN N

£ YkQPk1 £ Qpt - £ YkQpk2 £ Qp-2

Г* _ k=1_k = 1_k = 1_k = 1_

C1 = x ч2 : (10)

( N Y N N

£ QPk3 - £ Qpt £ Qp-2 Vk=1 ) k=1 k=1

N N

C1 £ Qp--3k - Y £ Qp--1-C2 = k=1 K-^-, (11)

N

£QP--2-

k=1

где Qpk — параметр квантизации кадра с номером к в текущем наборе из N последних кадров типа Р. Характерным значением для N является двадцать.

Набор данных, используемый методом наименьших квадратов, обновляется после енко-дирования кадра Р-типа. Это касается параметров квантизации и значений величины У.

Таким образом, вычислив коэффициенты модели по формулам (10) и (11), по формуле (2) мы рассчитаем параметр квантизации для Р-кадра. Однако для получения непосредственно квантайзера необходимо произвести над параметром квантизации преобразование:

QP = QpToQ(QpP).

где функция QpToQ(Qp) представляет собой табличный дискретный аналог функции 101п0р [2].

На полученное значение квантайзера накладывается ряд ограничений, необходимых для избежания резких скачков качества видео:

• квантайзер не может измениться больше чем на единицу относительно квантайзера на предыдущем Р-кадре;

• квантайзер не может измениться больше чем на два относительно квантайзера на первом Р-кадре в текущем ООР'е.

Следует оговорить также две исключительные ситуации. Первая возникает, когда требуемый размер кадра Rp' < 0 и вычисление квантайзера с помощью R-D модели невозможно. Тогда квантайзер для Р-кадра просто увеличивается на единицу, поскольку мы оказались в ситуации перерасхода ресурса битов и необходимо увеличить степень компрессии видео, чтобы уложиться в требуемый размер. В этом случае вводится следующее ограничение: кван-тайзер не может измениться больше чем на три относительно квантайзера на первом Р-кадре в текущем ООР'е.

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

• квантайзер не может измениться больше чем на два относительно квантайзера на предыдущем Р-кадре;

• квантайзер не может измениться больше чем на четыре относительно квантайзера на первом Р-кадре в текущем ООР'е.

Для определения квантайзеров для I- и В-кадров использованы рекомендации [2], представленные двумя нижеследующими формулами.

NP

NPQP

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

Q1 = —--2,'

NP

где NP — количество P-кадров в предыдущем ООР'е; Q1 — искомый квантайзер для кадра /-типа.

B QP1 + QP1

QB = Ql-1 Ql+1 + 2, 2

где QP_1 и QP+1 — квантайзеры опорных P-кадров для текущего i-го B-кадра; QB — искомый квантайзер для кадра B-типа.

Финальным ограничением на значение квантайзера является диктуемое стандартом AVC (H.264) ограничение:

Qft = MAX(Qft ,0), Qft = MIN(Qft ,51), где ft — тип кадра: I, P либо B.

В том случае, если структура GOP'а не подразумевает наличия в видеопотоке P-кадров, то R-D модель, аналогичная представленной, реализуется для I-кадров.

Представленный алгоритм реализован в AVC (H.264) енкодере компании Elecard. Экспериментальные результаты показывают, что ошибка попадания в заданный средний битрейт составляет не более 1,5 % при кодировании более 300 кадров.

В таблице приведены экспериментальные результаты работы алгоритма. Для сравнения качества видеороликов выбрана мера качества PSNR. Сравнение производится с алгоритмом CBR (Constant Bitrate), сжатие — с битрейтом 1 Мбит/с, структура GOP'а — 30:1.

Результаты тестирования

Название ролика PSNR VBR, дБ PSNR CBR, дБ Девиация PSNR VBR, дБ Девиация PSNR CBR, дБ

Woman_walk 2B,93 26,56 4,B5 5,49

Baseball 35,93 35,77 4,45 4,94

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

Таким образом, можно резюмировать, что алгоритм обеспечивает высокое и стабильное качество видео за один проход кодирования. Кроме того, с высокой точностью выполняется требование соответствия объема сжатых видеоданных заданной величине. Алгоритм разработан и реализован для стандарта кодирования AVC (H.264), однако не существует принципиальных преград для использования его с другими стандартами сжатия видео, например MPEG-2.

Литература

1. Zhengguo Li, Feng Pan, Keng Pang Lim, Genan Feng, Xiao Lin and Susanto Rahardja. Adaptive Rate Control for JVT. (ISO/IEC JTC1/SC29/WG11 and ITU-T SG^ Q.6). December, 2002.

2. H.J. Lee and T.H. Chiang and Y.Q.Zhang. Scalable Rate Control for MPEG-4 Video. IEEE Trans. Circuit Syst. Video Technology, 10: B7B-B94, 2000.

Шинкаренко Константин Всеволодович

Студент 5-го курса кафедры автоматизированных систем управления ТУСУРа Эл. почта: shinkarenko_k@mail.ru

K.V. Shinkarenko

One-pass video encoding mode

In this paper we investigate one-pass variable bitrate control mode for AVC (H.264) video encoders. Algorithm based on second order rate-distortion model and pre-encoding and past-encoding video complexity estimation. Algorithm conformed with VBV restrictions.

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