(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy
.pdfГлава14. Стандарты кодирования динамических изображений
Таким образом, среднее количество битов, приходящихся на P-кадр группы равно
TP = Tост/NP .
Так как количество битов, реально потраченных на P-кадр, отличается от расчетного значения, то в целях обеспечения более равномерного распределения битов на кадры используется виртуальный буфер. Этот буфер также служит для сглаживания неравномерности потока кодированных данных, которая обусловлена использованием различных типов кадров, различной сложностью кадров и пр.
Пусть BS — размер виртуального буфера (часто его размер задается как NI ·ПСК/4), а B — его заполненность (перед началом кодирования буфер считается заполненным наполовину — BBS /2). Тогда перед кодированием очередного P-кадра предполагаемое количество битов можно рассчитать как
TP = Tост/NP · [B + 2 · (BS − B)]/[2 · B + (BS − B)].
Таким образом, если буфер заполнен больше чем наполовину, количество выделяемых битов уменьшается, в противном случае — увеличивается. После того как P-кадр закодирован, следует уточнить количество битов для следующего P-кадра и обновить заполненность виртуального буфера.
Tост = Tост − TP ,
NP = NP − 1,
B = B + TP − BK ,
где BK — количество битов, уходящих из виртуального буфера в канал за время между двумя последовательными кадрами.
Чтобы избежать сильной деградации качества P-кадров или переполнения виртуального буфера в случае, когда реальные размеры P-кадров получаются больше расчетных, можно пропускать P-кадры. Однако следует учитывать, что пропуск кадров приводит к ухудшению предсказания и к большей сложности последующего кадра. Количество пропускаемых P-кадров NП рассчитывается следующим образом:
NП = 0;
while(B > 0,8 · BS ){
NП = NП + 1;
NP = NP − 1;
B = B − BK ; }
Также следует отметить те случаи, когда группа кадров при кодировании не укладывается в отведенный ей поток, например при смене сюжета. В этом случае количество перерасходованных битов можно учесть при кодировании следующей группы кадров.
Обновление R-D модели
Обновление модели можно разбить на два этапа: определение количества кадров n, результаты кодирования которых будут учтены при уточнении параметров модели, и уточнение параметров модели.
Описываемый ниже механизм позволяет предотвратить (уменьшить) негативное влияние изменения сложности кадров (смены медленного сюжета более быст-
14.7. Некоторые проблемы реализации видеокодирующих систем
рым и наоборот). Например, если сложность текущего кадра значительно больше, чем у предыдущего, то количество кадров, принимаемых во внимание, (размер окна статистики) следует уменьшить. Таким образом, кодер может принимать решение, основываясь, например, на разнице в сложности текущего и предыдущего кадров.
Допустим, что закодировано N3 кадров группы, тогда W = min(N3, 20), т. е. максимальный размер окна статистики равен 20.
Пусть сложность текущего закодированного кадра равна CAPтек, а предыдущего — CAPпред, тогда
n = W · CAPпред/CAPтек, если CAPтек > CAPпред, n = W · CAPтек/CAPпред, если CAPтек < CAPпред.
Уточнение параметров модели x1 и x2 осуществляется в три этапа. Сначала рассчитываются новые значения x1 и x2 (см. вышеприведенные формулы). Затем с помощью этих новых параметров проводится оценка количества битов для всех кадров окна статистики, и из него исключаются те кадры, для которых оценка количества битов отличается от реального размера закодированного кадра больше чем на среднеквадратичное отклонение оценки от реального размера в окне статистики. На третьем этапе повторяется расчет новых значений x1 и x2 в уточненном окне статистики.
Описанная выше схема регулирования скорости выходного потока была реализована в программных кодерах, отвечающих стандартам H.261, H.263, MPEG-2, MPEG-4. Результаты работы этой методики рассмотрены на примере работы кодера MPEG-4 и отображены на графиках зависимости количества битов в виртуальном буфере (заполненность буфера) от номера кадра видеопоследовательности. После кодирования очередного кадра количество битов в буфере увеличивается, а скорость уменьшения количества битов в буфере постоянна и равна заданной пропускной способности канала. При идеальной работе методики регулирования скорости потока график должен иметь пилообразный вид, с большими пиками на I-кадрах и плавным уменьшением до нуля к концу группы кадров.
На рис. 14.45–14.48 представлены зависимости количества битов в буфере при кодировании тестовых последовательностей Carphone и Foreman с различными параметрами.
На приведенных графиках количество битов в виртуальном буфере колеблется около нулевого значения и почти всегда положительно, т. е. модель регулировки потока работает корректно. Однако во множестве задач требуется более точное регулирование скорости потока. Кроме того, единый коэффициент квантования на кадр не обеспечивает наилучшего качества восстановленного изображения при заданной пропускной способности канала. Решением в данном случае может быть введение регулировки потока на уровне макроблоков. Описанная выше модель применима к различным видеообъектам, не только к кадрам целиком, но и к макроблокам.
Допустим, что известно расчетное количество битов, приходящихся на коэффициенты ДКП кадра (см. выше). Тогда перед кодированием каждого макроблока расчетное количество битов TM i, приходящихся на него, можно получить следующим образом:
TM i = CAPi/CAPост i · Tост i,
Глава14. Стандарты кодирования динамических изображений
Рис. 14.45. Заполненность виртуального буфера (количество битов в буфере) для последовательности Carphone формата QCIF (кадры от 0 до 400), ПСК = 300 кбитов/сек, NI = 25 кадров, KI = 5
Рис. 14.46. Заполненность виртуального буфера для последовательности Carphone формата QCIF (кадры от 100 до 200), ПСК = 300 кбитов/сек, NI = 25 кадров,
KI = 5
где i — номер макроблока, CAPi — его сложность, CAPост i — сложность незакодированной части кадра, Tост i — количество битов, оставшееся для незакодированной части кадра.
При кодировании первого макроблока в кадре CAPост i совпадает со сложностью кадра. При кодировании i-го макроблока она уменьшается на CAPi. Аналогично, Tост i перед началом кодирования кадра равно количеству битов, отводимых на весь кадр, после кодирования i-го макроблока Tост i уменьшается на TM i. Следует также отметить, что рассчитанное значение коэффициента квантования для макроблока иногда может или должно ограничиваться. Напри-
14.7. Некоторые проблемы реализации видеокодирующих систем
Рис. 14.47. Заполненность виртуального буфера для последовательности Carphone формата QCIF (кадры от 0 до 400), ПСК = 100 кбитов/сек, NI = 100 кадров,
KI = 5
Рис. 14.48. Заполненность виртуального буфера для последовательности Foreman формата CIF (кадры от 0 до 400), ПСК = 400 кбитов/сек, NI = 25 кадров, KI = 5
мер, в стандартах MPEG-4 и H.263 при определенных условиях коэффициенты квантования соседних макроблоков в кадре не могут отличаться более чем на 2. Ограничение значений коэффициента квантования может потребоваться также по ряду других причин, например для ограничения деградации качества части изображения из-за сильного квантования. В связи с этим часто применяется ограничение на изменение коэффициента квантования в пределах ± 25 % относительно некоторого значения для кадра.
Преимущества помакроблочной регулировки потока можно проиллюстрировать, если отобразить результаты на тех же графиках, что и для регулировки потока с одним коэффициентом квантования на кадр. На приведенных рис. 14.49–
Глава14. Стандарты кодирования динамических изображений
Рис. 14.49. Заполненность виртуального буфера для последовательности Carphone формата QCIF (кадры от 0 до 400), ПСК = 300 кбитов/сек, NI = 25 кадров,
KI = 5
Рис. 14.50. Заполненность виртуального буфера для последовательности Carphone формата QCIF (кадры от 100 до 200), ПСК = 300 кбитов/сек, NI = 25 кадров,
KI = 5
14.52 красными линиями обозначены результаты помакроблочного регулирования скорости потока, черными — покадрового.
Из приведенных графиков видно, что при помакроблочном регулировании скорости потока кодирование лучше согласуется с используемой моделью, т. е. расчетные и реальные размеры кадров более согласованы.
Существенной дополнительной возможностью уменьшения цифрового потока закодированных динамических изображений является использование переменного разрешения по кадру.
В некоторых специфических приложениях требуется обеспечить более четкое изображение в заданной части кадра. Например, при стыковке кораблей в космо-
14.7. Некоторые проблемы реализации видеокодирующих систем
Рис. 14.51. Заполненность виртуального буфера для последовательности Carphone формата QCIF (кадры от 0 до 400), ПСК = 100 кбитов/сек, NI = 100 кадров,
KI = 5
Рис. 14.52. Заполненность виртуального буфера для последовательности Foreman формата CIF (кадры от 0 до 400), ПСК = 400 кбитов/сек, NI = 25 кадров, KI = 5
се требуется наблюдать за всей картиной в целом, но зону стыковки необходимо показывать с повышенной четкостью. Обеспечивать повышенную четкость по всему кадру невыгодно с точки зрения требуемой для этого пропускной способности канала связи.
Эта задача решается одним из двух методов. В первом случае используется описанный выше метод помакроблочной регулировки выходного потока, но расчеты количества битов, коэффициентов квантования, параметров R-D модели и пр. осуществляются раздельно для макроблоков части кадра с повышенной четкостью и для остальных макроблоков. Соотношение между скоростями потоков данных, выделенных для более четкой части кадра Tч и остальной части
Глава14. Стандарты кодирования динамических изображений
Рис. 14.53. Кодирование с переменным разрешением по кадру
кадра Tнч (Tч + TнчT — суммарная заданная скорость потока), определяет степень повышения четкости. Во втором методе используется масштабированный систаксис потока кодирования MPEG-2 или MPEG-4, причем в базовом потоке изображение может кодироваться с меньшим разрешением, а в дополнительном потоке (используется пространственное масштабирование) кодируется заданная область изображения с повышенным разрешением. На рис. 14.53 приведены восстановленные изображения из кодированных последовательностей, в выделенной черной квадратной рамкой части которых обеспечена повышенная четкость.
14.7.3. Анализ смены сюжета
Смена сюжета в видеопоследовательности — это резкое изменение содержания сцены в соседних кадрах. Смена сюжета происходит при переключении источника видео (камеры), при соединении фрагментов видео (редактирование) и т. д.
При кодировании видеопоследовательностей и использовании предсказания по соседним кадрам следует учитывать смену сюжета по ряду причин:
–предсказание на основе кадров другого сюжета неэффективно (возможны только случайные совпадения), но на предсказание тратятся вычислительные ресурсы;
–учет смены сюжета позволяет повысить качество декодируемого видео при регулировании скорости выходного потока кодирования;
–использование опорных кадров при смене сюжета повышает качество и удобство работы при последующем редактировании закодированного видеоматериала.
Как известно, любая видеопоследовательность представляется в виде сменяющих друг друга сюжетов, связанных, например с переключением камеры, ведущей трансляцию, с монтажом или с другими эффектами. Очевидно, что выделение отдельного сюжета, внутри которого сохраняется высокая временная корреляция кадров, позволило бы увеличить эффективность предсказания движения, поднять степень сжатия и избежать искажений изображения, возникающих при нераспознавании смены сюжета. Другим приложением, где требуется распознавание смены сюжета, является создание баз видеоданных и организация видеосерверов, в которых необходимо как проводить каталогизацию, так и обеспечивать быстрый доступ к отдельному сюжету или кадру.
14.7. Некоторые проблемы реализации видеокодирующих систем
Распознавание движения камеры
Если съемка текущего фрагмента проводится одной и той же камерой, то при движении камеры возникают характерные особенности «движения» изображения, вызванные именно камерой. Разработаны методы, позволяющие классифицировать различные виды операций камеры, которые можно разбить на следующие основные группы:
–отсутствие движения, стационарная камера;
–движение камеры в горизонтальном направлении (panning), которое может заключаться как в повороте камеры относительно вертикальной оси, так и в поступательном движении камеры как целого по горизонтали;
–движение камеры в вертикальном направлении (tilting), поворот камеры относительно горизонтальной оси или поступательное движение по вертикали;
–«наезд» камеры (zooming), т. е. изменение фокуса или поступательное движение камеры по направлению к объекту или от него.
Могут быть также комбинации указанных движений. Если для кадра в целом удается выделить изменения, связанные с тем или иным движением камеры, то задача обработки движения облегчается.
Методы распознавания движения, связанного с работой камеры, излагаются в работах Маэды [5.76], Шерфауи и Бертена [5.77]. В данных методах проводится качественный анализ динамики последовательности кадров в заданном временном интервале, и критерием детектирования режима работы камеры является наличие объектов, движущихся по заранее рассчитанным траекториям, характерным для того или иного движения камеры. При этом в методе Маэды учитываются только прямолинейные траектории, что может приводить к неоправданно частой смене режимов, в то время как Шерфауи и Бертен используют аппроксимацию траекторий ломаной линией и достигают более адекватного отображения движения камеры.
Распознавание смены сюжета, не связанного с движением камеры
В ныне существующих методах распознавания смены сюжета для каждого кадра из анализируемой видеопоследовательности определяется индекс согласования кадров (IM, image match), т. е. некоторое число, интегральный показатель соответствия соседних кадров, динамика которого служит критерием смены сюжета. Очевидно, что смена сюжета может происходить как мгновенно, при этом индекс согласования кадров меняется скачкообразно, так и постепенно, в результате специальных эффектов, таких как затухание (fading), размывание (dissolving), редакторское наложение при монтаже и т. д. Детектирование постепенной смены сюжета является гораздо более сложной задачей, для которой еще не разработано надежных методов. Критерием эффективности того или иного метода является надежность распознавания смены сюжета и вычислительные затраты на определение динамики индекса согласования кадров.
В настоящее время применяются два основных подхода к распознаванию: первый, основанный на анализе статистических характеристик яркостных и цветностных составляющих кадра, и второй, основанный на анализе векторов движе-
Глава14. Стандарты кодирования динамических изображений
ния отдельных областей кадра. Простейшим методом из первой группы является сравнение сумм абсолютных значений разностей только яркостных компонентов или всех трех компонентов настоящего и предыдущего кадров при переходе к последующему кадру. Более продвинутые методы сравнивают гистограммы отдельных компонентов кадров. В работе Нагасаки и Танаки [5.78] указывается, что хорошие результаты дает χ2-тест гистограмм цветности между кадрами. Полагается, что при смене сюжета меняются цветовые характеристики изображения, и разности между пиками на гистограммах цветности будут очень заметны. Более надежные результаты дает тот же метод применительно к кадрам, разбитым на отдельные блоки, когда сравнение проводится для всех блоков, и результаты суммируются (см. раздел 12.4).
Методика расчета по сравнению гистограмм следующая. В первую очередь подсчитываются суммы абсолютных разностей SY , SU и SV между значениями столбцов гистограммы для данного и предшествующего кадров, и затем они нормируются на размерность гистограммы H:
f = (SY + SU + SV )2/H.
Из экспериментов находятся пороговые значения фактора f , отвечающие смене сюжета, и проблема заключается в том, чтобы установить адекватные значения порогов для различных типов изображений.
Уточнением данного метода является анализ дисперсии разности между кадрами | σ2|. Как было обнаружено, смена сюжета часто сопровождается резким увеличением дисперсии. Однако к этому же эффекту приводит наличие сцен с быстрым движением.
Другая группа методов начала развиваться в последнее время в связи с появлением MPEG-кодированных видеоизображений, для которых необходимо производить поиск смены сюжета в уже сжатом потоке видеоданных, например, для составления библиотек и каталогизации видеоданных. Вследствие того, что полное восстановление изображений с последующим применением методов, развитых для исходных несжатых изображений, является очень трудоемкой и отнимающей много ресурсов операцией, были предложены способы распознавания смены сюжета, основывающиеся на анализе данных из MPEG-потока, не требующих полного восстановления, а именно статистических характеристик значения нулевого коэффициента косинусного преобразования, которое соотносится со средним значением яркости в блоке, и значений векторов движения для блоков.
Полагается, что для В-кадра, за которым следует смена сюжета, большинство векторов движения блоков будут направлены вперед, и отношение числа векторов движения, направленных вперед, к числу направленных назад будет иметь ярко выраженный максимум.
Хотя указанные методы в том виде, как они изложены в [5.77], относятся к уже готовому потоку данных MPEG, они могут быть также применены и на стадии кодирования, так как при MPEG-кодировании находятся величины, которые используются в этих методах: коэффициенты косинусного преобразования и векторы движения для блоков. Представляется оптимальным использовать эти методы в сочетании с мониторингом фактора f и дисперсии | σ2|, так как последние не требуют больших вычислительных затрат на их нахождение.
14.7. Некоторые проблемы реализации видеокодирующих систем
Анализ смены сюжета можно проводить по результатам блочного анализа движения — если предсказывается небольшая часть блоков, то произошла смена сюжета. Этот алгоритм легко встраивается в процедуру кодирования, уже содержащую блочный анализ движения, но имеет некоторые недостатки. При этом алгоритме за смену сюжета будет также приниматься быстрое панорамирование, масштабирование, изменение освещенности и пр. Кроме того, на анализ движения (впоследствии ненужный из-за смены сюжета) расходуются вычислительные ресурсы.
В результате проведения исследований был разработан и предложен быстрый, эффективный и вычислительно простой метод поиска смены сюжета. Он основан на анализе изменения гистограммы распределения яркости в соседних кадрах [5.79–5.81].
Метод состоит из нескольких шагов.
– Изображение разбивается на несколько областей Ri, i = 0. . . (N – 1). Области могут быть как перекрывающимися, так и неперекрывающимися, они могут в совокупности охватывать либо кадр целиком, либо большую часть кадра.
– Для каждой области j кадра i подсчитывается гистограмма распределения яркостей пикселов Hi,j = {hi,j,k}, j = 0, . . . , (N − 1), k = 0, . . . (256/S − 1). Шаг вычисления гистограммы S выбирается больше единицы, например S = 8. Яркости пикселов распределены в диапазоне от 0 до 255, hi,j,k — процентная доля пикселов области Rj кадра i, имеющих яркость в диапазоне [k · S, (k + 1) · S].
– Для каждой области подсчитывается сумма квадратов разностей значений
!
гистограмм текущего и предшествующего кадров: Di,j = (hi,j,k
k
–Определяется количество областей, в которых Di,j > T , где T — пороговое значение, например T = 500.
–Если количество областей, в которых порог превышен, не менее половины, то детектируется смена сюжета.
Разработанный метод показал высокую эффективность анализа смены сюжета на изображениях различного разрешения и различного качества. Пороговые значения T определения смены сюжета необходимо изменять в зависимости от разрешения изображения и частоты кадров.
14.7.4.Оценка быстродействия кодирования изображений
При оценке быстродействия кодирования изображений по стандартам семейства MPEG важно получить информацию не только об общей скорости кодированиия различных типов кадров (I, P, B), но и о том, как время кодирования кадра распределено по отдельным стадиям кодирования [5.82].
В качестве существенных стадий кодирования можно выделить следующие:
–предварительная обработка кадров (префильтрация и т. д.);
–поиск движениия для макроблоков в P-кадрах или B-кадрах (во втором случае эта стадия может делиться на две — поиск движения вперед и назад);
