ГИПОТЕТИЧЕСКИЙ ЭТАЛОННЫЙ ДЕКОДЕР ДЛЯ МАСШТАБИРУЕМОГО ВИДЕОКОДИРОВАНИЯ
HYPOTHETICAL REFERENCE DECODER FOR SCALABLE VIDEO CODING

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Данная заявка притязает на приоритет предварительной заявки США № 60/878729, поданной 5 января 2007 г., которая полностью включена в данный документ посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Данная заявка относится к гипотетическому эталонному декодеру для масштабируемого видеокодирования в системах сжатого видео.
УРОВЕНЬ ТЕХНИКИ
Гипотетический эталонный декодер является полезным в системах сжатого видео, потому что он служит для подтверждения соответствия стандарту кодированного потока битов. В стандарте кодирования, таком как H.264/AVC, существуют многочисленные точки возможности взаимодействия благодаря свойствам стандарта масштабируемого кодирования видео. Стандарт H.264/AVC имеет правила (также называемые требованиями, ограничениями или функциональными спецификациями), определяющие HRD. Поведение HRD является нормативным. Любой поток битов AVC должен быть совместим с HRD, созданным согласно правилам. SVC (масштабируемое видеокодирование) является расширением (Приложение G) стандарта AVC. Поток битов SVC обычно имеет несколько точек возможности взаимодействия (также называемых рабочими точками) вследствие, по меньшей мере частично, того факта, что поток битов является масштабируемым. Такой поток битов может быть масштабируемым, например, в пространстве, во времени и в SNR. Субпотоки битов, соответствующие масштабируемым особенностям, могут извлекаться из потока битов. Предшествующие HRD не обладали достаточными правилами, чтобы сделать возможным подтверждение потоков битов, как у SVC в AVC.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Данное раскрытие изобретения описывает по меньшей мере одну реализацию, которая предоставляет гипотетический эталонный декодер (HRD) для SVC. Одна такая реализация предлагает изменить HRD стандарта H.264/AVC для использования с SVC. Эта реализация определяет ограничения HRD для каждой точки взаимодействия в SVC. В частности, описывается одна реализация, но другие реализации возможны и рассматриваются данным раскрытием изобретения. Первая часть раскрытия изобретения рассматривает изменения для пространственной, временной и SNR- масштабируемости соответственно. Вторая часть раскрытия изобретения рассматривает изменения в связанных параметрах HRD с последующим текстом описания.
Стандарт H.264/AVC имеет правила (также называемые требованиями, ограничениями или функциональными спецификациями), определяющие HRD. Поведение HRD является нормативным. Любой поток битов AVC должен быть совместим с HRD, созданным согласно правилам. SVC (масштабируемое видеокодирование) является расширением (Приложение G) стандарта AVC. Данное раскрытие изобретения описывает одну или несколько реализаций, которые предоставляют правила для HRD для SVC. По меньшей мере одна реализация предлагает правила SVC-HRD в качестве модификаций к правилам AVC-HRD. Пользователь может использовать предложенные правила SVC-HRD для создания SVC-HRD и проверки потока битов на соответствие SVC.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 иллюстрирует набор параметров последовательности в последовательностях AVC (Таблица 1).
Фиг.2 иллюстрирует сообщение SEI буферного периода в AVC (Таблица 2).
Фиг.3 иллюстрирует предложенные параметры HRD (Таблица 3).
Фиг.4 иллюстрирует предложенные параметры VUI (Таблица 3).
Фиг.5 иллюстрирует предложенное сообщение SEI buffer_period (Таблица 4).
Фиг.6 иллюстрирует предложенное сообщение SEI синхронизации изображения (Таблица 5).
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Поток битов SVC обычно имеет несколько точек возможности взаимодействия (также называемых рабочими точками) вследствие, по меньшей мере частично, того факта, что поток битов является масштабируемым. Такой поток битов может быть масштабируемым, например, в пространстве, во времени и в SNR. Субпотоки битов, соответствующие масштабируемым особенностям, могут извлекаться из потока битов. В одной реализации каждая точка возможности взаимодействия проверяется с помощью HRD, чтобы гарантировать соответствие SVC. HRD может определять ограничения HRD для каждой точки проверки в отдельности. Либо несколько точек проверки могут подчиняться одному ограничению HRD. По меньшей мере в одной реализации, описываемой в этом раскрытии изобретения, предлагаются отдельные ограничения HRD для каждой точки проверки. Использование отдельных ограничений HRD может облегчить работу, а также может обеспечить некоторые сходства с подходом H.263+.
В этой части применительно к одной конкретной реализации мы будем анализировать, изменять ли и что изменять из HRD в H.264/AVC, чтобы соответствовать HRD в SVC из пространственной, SNR и временной масштабируемости соответственно. Это представляет описание с одной концептуальной точки зрения на изучение различных из многих возможных типов масштабируемости, но также возможны другие концептуальные точки зрения.
1. Пространственное SVC
1.1 HRD в сообщении VUI: Сообщение VUI включается в SPS (см. vui_parameters() в Таблице 1). Для каждого уровня пространственного SVC, поскольку размер изображения отличается от других уровней, его соответствующий SPS отличается от такового других уровней. Поэтому HRD из VUI в AVC без модификации может непосредственно применяться к HRD из VUI для пространственного SVC. Для каждой точки проверки мы можем получить правильное сообщение VUI посредством правил HRD для AVC, как показано в Таблице 1.
1.2 Сообщение SEI буферного периода: seq_parameter_set_id находится в сообщении SEI буферного периода. С помощью индексирования seq_parameter_set_id в SPS, который соответствует каждому уровню пространственного SVC, может быть получен буферный период для каждого уровня пространственного SVC. Таким образом, для пространственного SVC сообщение SEI буферного периода у HRD в AVC может непосредственно применяться для пространственного SVC. Для каждой точки проверки мы можем получить правильное сообщение SEI буферного периода без модификации текущего HRD, как показано в Таблице 2.
1.3 Сообщение SEI синхронизации изображения: cpb_removal_delay и dpb_output_delay могли бы быть одинаковыми для разных уровней в одном блоке доступа (см. Таблицу 6). Поэтому не нужно никакого изменения для пространственной масштабируемости.
2. SNR SVC
2.1 Сообщение VUI: Для SNR SVC уровень качества может указываться с помощью dependency_id или quality_level. Разные уровни/степени качества могут совместно использовать один и тот же SPS, поэтому сообщение VUI в AVC следует изменить (см. Таблицу 3), чтобы включить информацию HRD для всех уровней/степеней качества.
2.2 Сообщение SEI буферного периода: Для SNR SVC разные уровни/степени качества могут совместно использовать один и тот же SPS, поэтому он не имеет однозначного соответствия с seq_parameter_set_id, присутствующим в сообщении SEI буферного периода. Сообщение SEI буферного периода следует изменить (см. Таблицу 5), чтобы включить информацию HRD для всех уровней/степеней качества.
2.3 Сообщение SEI синхронизации изображения: cpb_removal_delay и dpb_output_delay могли бы быть одинаковыми для разных уровней/степеней качества в одном блоке доступа. Поэтому не нужно никакого изменения для пространственной масштабируемости.
3. Временное SVC
3.1 Сообщение VUI: Для временного SVC разные временные уровни могут совместно использовать один и тот же SPS, поэтому сообщение VUI в AVC следует изменить (см. Таблицу 3), чтобы включить информацию HRD для всех временных уровней.
3.2 Сообщение SEI буферного периода: Для временного SVC разные временные уровни могут совместно использовать один и тот же SPS, поэтому он не имеет однозначного соответствия с seq_parameter_set_id, присутствующим в сообщении SEI буферного периода. Сообщение SEI буферного периода следует изменить (см. Таблицу 5), чтобы включить информацию HRD для всех временных уровней.
3.3 Сообщение SEI синхронизации изображения: Для временного SVC частота кадров разная для каждого временного уровня. Поскольку нижний временной уровень может служить в качестве зависимого уровня для верхнего временного уровня, что означает, что один блок NAL с заданным temporal_level может функционировать для нескольких частот кадров. Сообщение SEI синхронизации изображения следует изменить (см. Таблицу 6), чтобы включить информацию HRD для всех временных уровней.
3.4 В сообщении VUI, когда timing_info_present_flag является истиной, мы должны рассмотреть изменение num_units_in_tick, time_scale и fixed_frame_rate_flag, чтобы отразить правильную информацию о частоте кадров (см. Таблицу 4).
курсива.
Все три концептуальных уровня масштабируемости (пространственный, временной и SNR) объединяются в следующие модификации к правилам AVC-HRD. Таблицы 3-6 взяты из стандарта AVC и относятся к AVC-HRD. Дополнения к таблицам стандарта AVC показаны с использованием Удаления из таблиц стандарта AVC отсутствуют, хотя у других реализаций могут быть удаления. Выделенные жирным шрифтом термины являются синтаксисом, который фактически отправляется в потоках битов. Как можно видеть, каждая из Таблиц 3-6 показывает, что стандарт AVC изменен с помощью введения цикла "если-то", который проверяет переменную "profile_idc". Если "profile_idc" равна "SVC", то условный цикл выполняется один или несколько раз для проверки одной или нескольких точек. Если "profile_idc" не равна "SVC", то соответствующим стандартом предполагается "AVC" и выполняется цикл "иначе", чтобы проверить одну точку на соответствие AVC (используя существующие правила AVC-HRD). В Таблице 3 переменные "dependency_id[i]", "temporal_level[i]" и "quality_level[i]" обеспечивают различные масштабируемые варианты. Поскольку эти переменные имеют объединенную длину из восьми разрядов, может быть вплоть до 2**8 точек проверки для потока битов SVC. Реализация способна двигаться в цикле от 0 до 255, используя восемь разрядов. Это сопоставимо с единственной точкой проверки для потока битов AVC.
1. В сообщении VUI параметры HRD сигнализируются для каждого уровня зависимостей, временного уровня и уровня качества, который совместно использует один и тот же SPS, как показано в Таблице 3. Когда timing_info_present_flag является истиной, num_units_in_tick, time_scale и fixed_frame_rate_flag сигнализируются для каждого временного уровня, как показано в Таблице 4.
2. В сообщении SEI буферного периода относящиеся к HRD параметры сигнализируются для каждого уровня зависимостей, временного уровня и уровня качества, который совместно использует один и тот же sequence_parameter_set_id, как показано в Таблице 5.
3. В сообщении SEI синхронизации изображения относящиеся к HRD параметры сигнализируются для каждого временного уровня, как показано в Таблице 6.
Действие Таблиц 3-6 может суммироваться. Таблица 3 определяет скорость передачи битов и размер cpb (буфер кодированного изображения) для каждой точки/уровня проверки. Таблица 4 определяет частоту кадров для каждого временного уровня. Таблица 5 определяет начальную задержку cpb и начальную задержку dpb для каждой точки/уровня проверки. Таблица 6 определяет задержку удаления cpb и задержку вывода dpb (буфер декодированного изображения) для каждой точки/уровня проверки. Для каждой точки/уровня проверки вышеупомянутые параметры используются в правилах HRD так же, как делается для AVC, чтобы проверить, является ли поток битов соответствующим.
num_layer_minus1
плюс 1 указывает количество масштабируемых уровней или точек представления, поддерживаемых потоком битов, ссылающихся на одинаковый seq_parameter_set_id в SPS, который содержит этот hrd_parameters().
dependency_id
[i] указывает уровень зависимостей (CGS) у масштабируемого уровня i. Он равен dependency_id у блоков NAL в масштабируемом уровне i.
temporal_level
[i] указывает временной уровень масштабируемого уровня i. Он равен temporal_level у блоков NAL в масштабируемом уровне i.
quality_level
[i] указывает уровень качества у масштабируемого уровня i. Он равен quality_level у блоков NAL в масштабируемом уровне i.
cpb_cnt_minus1
, bit_rate_scale
cpb_size_scale
bit_rate_value_minus1
cpb_size_value_minus1
cbr_flag
initial_cpb_removal_delay_length_minus1
, cpb_removal_delay_length_minus1
dpb_output_delay_length_minus1
time_offset_length
[i][i], [i], [i][SchedSelldx], [i][SchedSelldx], [i][SchedSelldx], [i][i], [i], [i]равны их соответствующему значению для масштабируемого уровня i соответственно (в определении скорость передачи битов включает в себя разряды для масштабируемого уровня i и его зависимых уровней).
num_temporal_layer_minus1
плюс 1 указывает количество временных уровней, поддерживаемых потоком битов. Он равен максимальному temporal_level у блоков NAL в потоке битов.
timing_info_present_flag
, num_units_in_tick
, time_scale
, fixed_frame_rate_flag
[i][i][i][i]равны их соответствующему значению для временного уровня i соответственно.
num_layer_minus1
плюс 1 указывает количество масштабируемых уровней или точек представления, поддерживаемых потоком битов, ссылающихся на одинаковый seq_parameter_set_id в сообщении SEI buffer_period.
dependency_id
[i]указывает уровень зависимостей (CGS) у масштабируемого уровня i. Он равен dependency_id у блоков NAL в масштабируемом уровне i.
temporal_level
[i]указывает временной уровень масштабируемого уровня i. Он равен temporal_level у блоков NAL в масштабируемом уровне i.
quality_level
[i] указывает уровень качества у масштабируемого уровня i. Он равен quality_level у блоков NAL в масштабируемом уровне i.
initial_cpb_removal_delay
initial_cpb_removal_delay_offset
[i][SchedSelldx], [i][SchedSelldx] равны их соответствующему значению для масштабируемого уровня i соответственно.
num_temporal_layer_minus1
плюс 1 указывает количество временных уровней, которое зависит от блока NAL, чей блок доступа ассоциирован с этим сообщением SEI синхронизации изображения.
temporal_layer
[i]указывает временной уровень у временного уровня i,
cpb_removal_delay
, dpb_output_delay
[i][i]равны их соответствующему значению для временного уровня i соответственно.
Данным раскрытием изобретения рассматриваются различные реализации, и реализации могут включать в себя одно или несколько свойств, описываемых в этом раскрытии изобретения. Такие реализации могут быть в виде, например, способа, устройства или программы команд, и могут быть реализованы с использованием, например, аппаратных средств, программного обеспечения или сочетания. Некоторые из возможных реализаций логически вытекают из следующего.