(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy
.pdf
Глава14. Стандарты кодирования динамических изображений
Рис. 14.54. Пример оценки распределения вычислительных ресурсов при MPEG-кодиро- вании: 1 — предварительная обработка — 1%; 2 — поиск движения — 77%; 3 — кодирование — 22%; 3.1 — компенсация движения — 15%; 3.2 — ДКП — 14%; 3.3 — квантование — 54%; 3.4 — обратное ДКП — 4%; 3.5 — восстановление — 4%; 3.6 — формирование выходного потока — 9%
–компенсация движения для макроблоков в P- и B-кадрах;
–выбор типа макроблока (I- или P- в P-кадрах; I-, P- или B- в B-кадрах) в зависимости от эффективности компенсации движения для данного макроблока;
–дискретное косинусное преобразование блоков изображения;
–подбор коэффициентов квантования макроблоков для регулирования скорости выходного потока;
–квантование коэффициентов ДКП;
–обратное квантование, ОДКП, обратная компенсация движения для восстановления опорных кадров, используемых в дальнейшем для компенсации движения;
–кодирование и формирование выходного битового потока.
При кодировании I-кадров присутствуют стадии 1, 5–9. При кодировании P-кадров присутствуют стадии 1–9. При кодировании B-кадров присутствуют стадии 1–7, 9.
Вообще говоря, некоторые стадии могут отсутствовать (например, 1, 6) или быть совмещены с другими стадиями в зависимости от выбранной стратегии кодирования, алгоритма регулирования скорости выходного потока и т. д.
Сложность оценки быстродействия различных стадий кодирования может быть связана с тем, что эти стадии могут выполняться не последовательно над целыми кадрами, а группироваться и выполняться над слайсами или отдельными макроблоками. В этом случае времена отдельных действий надо суммировать в процессе обработки кадра.
Оценка скорости кодирования по стадиям особенно важна при построении высокоэффективного программного кодера, так как позволяет определить, какие стадии кодирования нуждаются в оптимизации. В зависимости от используемой архитектуры вычислительной системы может оказаться эффективным объединение некоторых стадий кодирования в одном блоке или разделение их на несколько отдельных вычислительных блоков.
На рис. 14.54 приведен пример оценки распределения вычислительных рессурсов при MPEG-кодировании динамических изображений.
14.7. Некоторые проблемы реализации видеокодирующих систем
14.7.5.Возможности кодирования стереоскопических изображений в рамках совместимости
со стандартами MPEG
На современном этапе развития телевидения и видеовещания стереоскопическое представление видеоинформации превращается из отдаленной перспективы развития техники в реальную услугу. Кроме того, быстрое развитие вычислительной техники, резкое повышение ее производительности позволяют проводить исследования и реализацию ресурсоемких (с точки зрения математических вычислений) систем без использования уникальных компьютеров или специализированных вычислителей.
Использование формата потока закодированных стереоскопических видеоданных в виде, совместимом с общепринятыми международными стандартами MPEG-2, MPEG-4, позволит расширить базу пользователей и использовать для просмотра видеопрограмм не только новые устройства, дающие стереоскопическую картину, но и старые приемники, работающие по стандартам MPEG-2, MPEG-4, которые дадут возможность просмотра программ (без стереоэффекта).
Были проведены теоретические и экспериментальные исследования компрессии стереоскопического видеосигнала, изучались пороги сохранения стереоэффекта при различных разрешениях видео и скоростях выходного потока и был выбран формат выходного потока, обеспечивающий совместимость со стандартами MPEG.
Результаты исследований показали эффективность кодирования последовательности стереоскопических изображений по следующим причинам [5.83]:
–методика позволяет обеспечить совместимость вещаемого стереоскопического сигнала с ныне существующим оборудованием;
–при таком подходе достигается значительная экономия пропускной способности канала связи при передаче стерео за счет высокой степени схожести между любыми двумя изображениями стереопары и использования этого факта при осуществлении компрессии последовательности стереоскопических видеокадров.
Стереоскопические пары изображений должны быть представлены таким образом, чтобы каждым глазом видеть только то изображение, которое для этого глаза предназначено, и не видеть изображение, снятое другой камерой [5.84].
Плоское изображение, снятое одной камерой, оба глаза видят одинаково: здесь смещение ближних предметов относительно дальних обнаружить невозможно, так как изображение снято с одной точки зрения. Только стереоскопические изображения способны воспроизвести объективную действительность во всех трех измерениях.
Из-за различия в точках зрения для каждого глаза существует небольшое горизонтальное смещение, называемое рассогласованием, между одними и теми же точками предметов, изображенными на сетчатой оболочке левого и правого глаза. В стереоскопическом зрительном восприятии объекты, на которых глаза сфокусированы и настроены, имеют нулевое рассогласование и расположены в центре сетчатой оболочки обоих глаз, в то время как объекты спереди и сзади имеют отрицательное и положительное рассогласование соответственно. Это рас-
Глава14. Стандарты кодирования динамических изображений
Рис. 14.55. Различие в восприятии одной сцены разными глазами в зависимости от глубины расположения объектов
согласование и интерпретируется мозгом как различие в глубине расположения предметов относительно наблюдателя (рис. 14.55).
Для достижения способности воспринимать глубину расположения объектов, используя записанные изображения, стереоскопическая камера должна состоять из двух камер, которые бы снимали с двух различных горизонтально сдвинутых относительно друг друга точек зрения. В большинстве случаев дистанция между двумя оптическими осями стереоскопической камеры того же порядка, что и расстояние между глазами человека (от 6 до 8 сантиметров). В более простых моделях оптические оси располагаются параллельно.
Наблюдаемый объект проецируется в различные позиции на плоскости изображения, поскольку он рассматривается под разными углами. Различие проецируемых позиций может быть легко вычислено из подобия треугольников (рис. 14.56):
d = rd − ld = f · (b/2 + x)/z − f · ((b/2 − x)/z = 2 · (f · (x/z),
где d — различие в позициях проекции точки для разных точек наблюдения; rd и ld — смещение позиции проекции точки относительно правой и левой оптической оси соответственно; f — расстояние между фокальной плоскостью и плоскостью изображения, которое для отдаленных объектов сопоставимо с фокусным расстоянием камер; x — удаленность точки от центральной оптической оси; b — расстояние между двумя оптическими осями; z — глубина расположения точки в пространстве.
Таким образом, смещение (рассогласование) объектов в рассматриваемой сцене между левой и правой точками зрения обратно пропорционально глубине распо-
14.7. Некоторые проблемы реализации видеокодирующих систем
Рис. 14.56. Проекция точки на плоскость изображения при стереоскопической съемке
ложения объектов (для объектов в бесконечности стремится к нулю) и обратно пропорционально фокусному расстоянию камер.
В более сложных моделях камеры берется в расчет сходимость оптических осей камеры под определенным углом.
На данный момент существуют различные техники создания стереоэффекта, используемые для воссоздания иллюзии глубины рассматриваемых объектов. В некоторых из них пары стереоскопических изображений оставляют без изменений, в других подвергают дополнительной обработке перед воспроизведением. Но в основе всех этих подходов лежит принцип формирования незначительно отличных друг от друга изображений для каждого из глаз наблюдателя.
Для реализации кодирования стереизображений в рамках стандартов MPEG необходимо использовать понятие масштабирования.
Под масштабированием в MPEG-2 (и других стандартах видеокомпрессии) понимается возможность разбиения выходного потока данных на несколько потоков, из которых один несет основную информацию, а остальные предоставляют возможность повышения качества декодированного видеосигнала, полученного
спомощью основного потока. Предусмотрено масштабирование пространственное, по качеству (отношению сигнал/шум), по времени и разделение видеопотока на две или более составляющих, передаваемых по разным каналам. При этом реализуется иерархический поток видеоданных. Первый (базовый) слой всегда декодируется независимо от остальных. При этом получается видеопоток с пониженным качеством. Остальные слои могут быть декодированы только вместе
спредшествующими им по иерархии.
Пространственное масштабирование позволяет кодировать отдельные слои с различным разрешением. Базовый слой обеспечивает базовое разрешение, а уточняющий слой использует пространственно интерполированный базовый слой для увеличения пространственного разрешения.
Масштабирование по качеству (по отношению сигнал/шум) служит для создания слоев с различным качеством видео. Базовый слой обеспечивает базовое качество, а уточняющий слой улучшает качество видео путем повышения точности квантования коэффициентов ДКП базового слоя.
Глава14. Стандарты кодирования динамических изображений
Временное масштабирование позволяет переход от меньшей кадровой скорости к большей. Базовый слой обеспечивает базовую кадровую скорость, а уточняющий слой использует временное предсказание относительно базового слоя. Базовый и уточняющий слои могут комбинироваться для создания выходного потока с полной кадровой скоростью.
Распределение данных между слоями производится для повышения помехоустойчивости видео. При этом более важная и значимая часть данных размещается в потоке более высокого приоритета, а менее важная часть — в потоке более низкого приоритета.
Встандарте MPEG-2 определен профиль, который позволяет передавать одну
иту же сцену, снятую разными камерами с разных точек наблюдения (MultiView Profile, MVP), используя режим масштабирования по времени. Для кодирования стереоскопического видео последовательность изображений, полученных с левой камеры, кодируется как базовый слой. Уточняющий слой содержит изображения с правой камеры и используется для вставки в качестве дополнительных кадров между кадрами базового слоя, что позволяет при воспроизведении сформировать последовательность изображений с удвоенной кадровой скоростью, если оба слоя оказываются доступными в декодированном потоке.
Данный подход позволяет передавать сигнал стереоскопического вещания в рамках стандарта MPEG-2 и при этом обеспечивает возможность приема данного сигнала как декодерами, способными отображать стерео, так и декодерами, предназначенными для воспроизведения лишь обычного сигнала от одной камеры.
Теоретические и экспериментальные исследования по возможности эффективной компрессии стереоскопических динамических видеоизображений на базе стандарта MPEG-2 проводились на различных последовательностях стереоскопических изображений. В каждой из последовательностей присутствовали как фрагменты, которые можно было бы охарактеризовать как статичные, так и фрагменты, преимущественно динамичные. Статичные фрагменты представлены малоподвижным от кадра к кадру фоном, на котором происходит движение небольших объектов. На динамичных фрагментах изменения от кадра к кадру значительны либо за счет быстрого движения снимающей сцену камеры, либо за счет движения в кадре отдельных крупных объектов или большого числа объектов.
Врежиме масштабирования по времени для кодирования базового слоя, содержащего изображения с левой камеры, допустимо использование только предсказания внутри данной последовательности изображений. В то же время, для предсказания в уточняющем слое, содержащем изображения с правой камеры, может применяться как предсказание только внутри слоя, так и предсказание, опирающееся на изображения базового слоя (рис. 14.57).
Таким образом, для устранения межкадровой избыточности в базовом слое применяется устранение избыточности информации за счет поиска векторов движения, которые отражают перемещение фрагментов изображения от кадра к кадру на временной оси. А для уточняющего слоя, кроме устранения избыточности по времени, используется тот факт, что пары стереоскопических изображений являются очень схожими, поскольку снимают одну сцену в один и тот же момент времени. При быстром движении точно вычислить векторы движения при перемещении объектов от кадра к кадру представляется затруднительным из-за выхода объектов за пределы зоны поиска векторов или за границы кадра. Но в
14.7. Некоторые проблемы реализации видеокодирующих систем
Рис. 14.57. Предсказание в режиме масштабирования по времени
Рис. 14.58. Векторы движения для кадра при предсказании по предшествующему ему по времени кадру (а) и по второму кадру из состава стереопары (б)
этом случае возможно построить поле различий двух кадров стереопары и использовать его в качестве предсказания для устранения избыточной информации (см. рис. 14.58, 14.59).
Для поиска движения между кадрами последовательности внутри одного слоя и для построения поля различий двух кадров одного стереоскопического изображения нужна мера определения сходства двух участков (макроблоков размером 16 × 16 пикселов) изображения.
В качестве такой меры могут быть использованы в соответствии с соотношением (14.31) среднеквадратичная разность (CKP ), сумма абсолютных различий (CAP ) или максимальная разность (M P ) яркостей пикселов.
Из соображений минимизации объема вычислений для поиска движения каждого макроблока кадра применяется мера CAP .
Как показал анализ различных тестовых последовательностей, для двух изображений стереопары использование при вычислениях средней яркости макроблока, как описано в формулах (14.31), является принципиально необходимым. Это обусловлено тем, что изображения поступают с двух различных камер, каждая из которых имеет свои индивидуальные аппаратные особенности и по-разному расположены по отношению к источнику освещения (рис. 14.60).
Глава14. Стандарты кодирования динамических изображений
Рис. 14.59. Разностные кадры при предсказании по предшествующему ему по времени кадру (а) и по второму кадру из состава стереопары (б)
Рис. 14.60. Кадры одной стереопары могут отличаться по яркости из-за различного расположения по отношению к источнику освещения и из-за индивидуальных аппаратных особенностей каждой из камер
Исследования подтвердили теоретические предположения о том, что поле векторов между двумя стереоскопическими изображениями направлено в среднем горизонтально и соседние векторы на любом участке кадра имеют высокую степень корреляции. Те области, в которых соседние векторы имеют сильные отличия друг от друга, являются с большой долей вероятности зонами ошибочного предсказания, что объясняется существованием преград, мешающих обнаружению этих зон с одного угла зрения, но не оказывающих никакого негативного влияния на их видимость с другого угла зрения (рис. 14.61, 14.62).
Размер области поиска векторов выбирается как результат компромисса между скоростью работы кодера и качеством предсказания движения. Если использовать в качестве алгоритма поиска векторов метод полного перебора всех возможных значений в области поиска, то при большем размере области поиска становится возможным обнаружить перемещение даже очень быстро двигающихся объектов, но при этом значительно увеличивается вычислительная нагрузка. Эксперименты показывают, что для достижения качественного результата в подавляющем большинстве случаев необходимо иметь область поиска, превосходящую размер макроблока по вертикали и горизонтали в 4 раза.
Экспериментально подтверждено, что, как и в случае с кодированием последовательности кадров от одной камеры, при кодировании стереоскопических последовательностей изображений, если каждое из изображений стереопары име-
14.7. Некоторые проблемы реализации видеокодирующих систем
Рис. 14.61. Векторы движения для кадра при предсказании по предшествующему ему по времени кадру (а) и по второму кадру из состава стереопары (б) при использовании только однонаправленного предсказания движения
Рис. 14.62. Векторы движения для кадра при предсказании по предшествующему ему по времени кадру (а) и по второму кадру из состава стереопары (б) при использовании двунаправленного предсказания движения
ет чересстрочную развертку, то выполнять поиск векторов предпочтительнее по отдельным полям, поскольку это дает несколько лучшие результаты предсказания.
Опираясь на все вышесказанное, процесс кодирования стереоскопических изображений может быть представлен в виде схемы, изображенной на рис. 14.63.
Здесь левые кадры последовательности стереоскопических изображений поступают в блок поиска векторов движения относительно опорных кадров из числа кадров этой же последовательности и результаты предсказания подвергаются кодированию для формирования битового потока базового слоя, который может быть декодирован любым стандартным декодером.
Пороги сохранения стереоэффекта для различных разрешений кадра и скоростей выходного потока определяются условиями появления заметных искажений и артефактов на декодированных кадрах. Заметные визуальные искажения, особенно несогласованные между левой и правой компонентами стереопары, разрушают стереоэффект.
Для кодирования видеопоследовательностей в стандарте MPEG-2 наиболее часто используемым значением размера группы кадров (последовательный набор кадров, который начинается с кадра, имеющего только внутрикадровое предсказание) является 16. При этом последовательность типов кадров в группе выглядит следующим образом: IBBPBBPBBPBBPBBP. Именно таким образом и выглядит состав группы кадров при кодировании базового слоя (левых кадров сте-
Глава14. Стандарты кодирования динамических изображений
Рис. 14.63. Схема кодирования стереоскопической видеопоследовательности
реопар). Но для кодирования уточняющего слоя типы кадров меняются: PBBBB BBBBBBBBBBB. Проведенные ранее исследования показали, что в среднем размер I-кадра превосходит размер B-кадра в 5 раз, а P-кадр больше B-кадра в 2 раза. Это означает, что размер группы кадров из шестнадцати левых изображений стереоскопического сигнала превосходит по количеству выделенных на него битов размер группы кадров из шестнадцати правых изображений в среднем в два раза.
Таким образом, при кодировании стереоскопического видео с разделением на базовый и уточняющий слои и использованием оценки различия между двумя изображениями стереопары формируется битовый поток, всего лишь в полтора раза превосходящий по размеру поток кодирования кадров от одной камеры.
Сложность и многообразие методов обработки видеоинформации, а так же большая гибкость в выборе этих методов, предоставляемая кодеру стандартом H.264/ AVC, делают непростой задачу анализа результатов обработки динамических изображений. Поэтому представляется крайне важным создание системы визуализации, которая позволяет облегчить решение задачи анализа путем предоставления детальной информации о параметрах закодированного видео в удобном, визуально легко воспринимаемом виде [5.85]. Полученная информация позволяет выявлять возможные проблемы и корректировать алгоритм кодера (рис. 14.64).
Основная идея заключается в определении параметров закодированного кадра и их визуализации путем наложения во время воспроизведения видео. Графический интерфейс приложения предоставляет пользователю возможность загружать, сохранять и анализировать видео-файлы, а также возможность навигации внутри видеопотока. Пользователь может использовать покадровое воспроизведение для отображения исходных видеоданных и дополнительной информации, которая накладывается на воспроизведение видео.
14.8. Визуализация параметров видеокодирования
Рис. 14.64. Принцип визуализации алгоритмов обработки видеоинформации
Внутрикадровое предсказание
Во всех типах кодирования I-кадров стандартом H.264/AVC поддерживаются типы внутрикадрового кодирования, обозначаемые Intra_16 ×16 или Intra_4 ×4, а также предсказание цветности и I-PCM предсказание (см.раздел 14.5).
Режим Intra_16×16 осуществляет предсказание блока яркости 16×16 целиком и более подходит для очень гладких областей изображения. Режим Intra_4 × 4 основан на предсказании каждого блока яркости 4 × 4 отдельно и подходит для кодирования частей изображения с существенными деталями. В дополнение к этим двум типам предсказания яркости вводится отдельный режим предсказания цветности. Как альтернатива режимам кодирования Intra_4 × 4 и Intra_16 × 16 режим кодирования I-PCM позволяет кодеру просто обходить процессы предсказания и кодирования с преобразованием и вместо этого прямо посылать значения кодируемых отсчетов.
При использовании режима Intra_16 × 16 предсказывается целиком яркостная компонента макроблока. Поддерживаются 4 режима предсказания. Режим 0 (вертикальное предсказание), режим 1 (горизонтальное предсказание) и режим 2 (DC-предсказание) определены аналогично соответствующим режимам предсказания Intra_4 × 4 за исключением того что вместо 4 соседей на каждой стороне для предсказания блока 4 × 4 используются 16 соседних отсчетов на каждой стороне для предсказания блока 16 × 16. Четвертый режим предсказания — так называемое плоскостное (plane) предсказание. Режимы формирования прогноза INTRA-блоков размером 16 × 16 поясняются рис. 14.30.
При использование режима Intra_4×4 каждый блок 4×4 предсказывается по пространственно соседним отсчетам. Для каждого блока 4 × 4 используется один из 9 режимов предсказания. В дополнение к DC-предсказанию (одно значение используется для предсказания всего блока 4 × 4), имеются 8 режимов «направленного» предсказания, как показано на рис. 14.29. Эти режимы полезны для предсказания направленных структур в изображении, таких как границы, расположенные под различными углами.
Режим 0 (вертикальное предсказание), режим 1 (горизонтальное предсказание) и режим 2 (DC-предсказание), в режимах 3 и 4 отсчеты интерполируются под углом в 45◦ в направлении между нижним левым и верхним правым отсчетами и под углом 45◦ вниз и направо соответственно, в режимах 5 — 8 интерполяция отсчетов производится под углом приблизительно 26,6◦ соответственно влево к вертикальному направлению, вниз по отношению к горизонтальному направлению, вправо от вертикального направления и выше горизонтального направления.
