Тестирование на соответствие битового потока

Иллюстрации

Показать все

Изобретение относится к области декодирования видеоданных. Технический результат – повышение эффективности декодирования видеоданных. Способ обработки видеоданных содержит выполнение процесса декодирования видеоданных, содержащего: определение целевого наивысшего временного идентификатора, посредством определения, задан ли он внешним средством; если целевой наивысший временной идентификатор не задан и если процесс декодирования вызван в тесте соответствия битового потока, выбирают тестируемую рабочую точку и устанавливают целевой наивысший временной идентификатор равным наибольшему временному идентификатору, присутствующему в битовом подпотоке, соответствующем тестируемой рабочей точке, или устанавливают целевой наивысший временной идентификатор равным значению синтаксического элемента, задающего максимальное число временных подуровней в битовом потоке; выполнение процесса извлечения битового потока, который содержит удаление из битового потока всех единиц уровня абстракции сети (NAL) с временными идентификаторами, превышающими целевой наивысший временной идентификатор; и декодирование единиц NAL битового подпотока. 4 н. и 25 з.п. ф-лы, 6 ил., 8 табл.

Реферат

[0001] Настоящая заявка испрашивает приоритет предварительной заявки на патент США №61/705,102, поданной 24 сентября 2012, все содержимое которой включено здесь по ссылке.

ОБЛАСТЬ ТЕХНИКИ

[0002] Настоящее раскрытие относится к кодированию и декодированию видео (то есть, кодированию и/или декодированию видео данных).

УРОВЕНЬ ТЕХНИКИ

[0003] Цифровые способности видео могут быть включены в широкий диапазон устройств, включая цифровые телевизоры, цифровые системы прямого вещания, беспроводные системы вещания, персональные цифровые помощники (PDAs), ноутбуки или настольные компьютеры, планшетные компьютеры, считыватели электронных книг, цифровые камеры, устройства цифровой записи, цифровые медиаплееры, устройства видео игр, пульты видеоигр, сотовые или спутниковые радио-телефоны, так называемые «смартфоны,» устройства организации видео телеконференций, устройства потоковой передачи видео, и т.п. Цифровые видео устройства реализуют способы сжатия видео, такие как описанные в стандартах, определенных посредством MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, Часть 10, Усовершенствованное видео кодирование (AVC), стандарт высокоэффективного кодирования видео (HEVC), развиваемый в настоящее время, и расширениях таких стандартов. Видео устройства могут передавать, принимать, кодировать, декодировать, и/или хранить цифровую видео информацию более эффективно, реализовывая такие способы сжатия видео.

[0004] Способы сжатия видео выполняют пространственное (внутри картинки) предсказание и/или временное (между картинками) предсказание, чтобы уменьшить или удалить избыточность, присущую видео последовательностям. Для основанного на блоках кодирования видео, видео вырезка (то есть, видео кадр или часть видео кадра) может быть разделена на блоки видео. Блоки видео во внутренне кодированной (I) вырезке картинки кодируют, используя пространственное предсказание относительно опорных выборок в соседних блоках в той же самой картинке. Блоки видео во внешне кодированной (P или B) вырезке картинки могут использовать пространственное предсказание относительно опорных выборок в соседних блоках в той же самой картинке или временное предсказание относительно опорных выборок в других опорных картинках. Картинки могут упоминаться как кадры, и опорные картинки могут упоминаться как опорные кадры.

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

[0006] Поток битов кодирования множественных видов может быть сгенерирован посредством кодирование видов, например, с множественных перспектив. Некоторые стандарты трехмерного (3D) видео были развиты, которые используют кодирование аспектов множественных видов. Например, различные виды могут передать виды левого и правого глаз, чтобы поддерживать 3D видео. Альтернативно, некоторые процессы кодирования 3D видео могут применять так называемое кодирование множественных видов плюс глубина. В кодировании множественных видов плюс глубина поток битов 3D видео может содержать не только компоненты вида текстуры, но также и компоненты вида глубины. Например, каждый вид может содержать один компонент вида текстуры и один компонент вида глубины.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

[0007] Вообще, настоящее раскрытие описывает сигнализацию и выбор параметров гипотетического опорного декодера (HRD) при кодировании видео. Более конкретно, устройство может выполнить процесс декодирования в качестве части теста соответствия потока битов. В качестве части процесса декодирования, устройство выполняет процесс извлечения потока битов, который извлекает, из потока битов, представление рабочей точки для рабочей точки, определенной целевым набором идентификаторов уровня, и целевой наивысший временный идентификатор. Целевой набор идентификаторов уровня содержит значения элементов синтаксиса идентификатора уровня, присутствующих в представлении рабочей точки, причем целевой набор идентификаторов уровня является поднабором значений элементов синтаксиса идентификатора уровня потока битов. Целевой наивысший временный идентификатор равен наибольшему временному идентификатору, присутствующему в представлении рабочей точки, при этом целевой наивысший временный идентификатор является меньшим чем или равным наибольшему временному идентификатору, присутствующему в потоке битов. Устройство декодирует единицы уровня абстракции сети (NAL) представления рабочей точки.

[0008] В одном примере настоящее раскрытие описывает способ обработки видео данных. Способ содержит выполнение теста соответствия потока битов, который определяет, соответствует ли поток битов стандарту кодирования видео. Выполнение теста соответствия потока битов содержит выполнение процесса декодирования. Выполнение процесса декодирования содержит выполнение процесса извлечения потока битов, который извлекает, из потока битов, представление рабочей точки для рабочей точки, определенной целевым набором идентификаторов уровня, и целевой наивысший временный идентификатор. Целевой набор идентификаторов уровня содержит значения элементов синтаксиса идентификатора уровня, присутствующих в представлении рабочей точки, при этом целевой набор идентификаторов уровня является поднабором значений элементов синтаксиса идентификатора уровня потока битов. Целевой наивысший временный идентификатор равен наибольшему временному идентификатору, присутствующему в представлении рабочей точки, целевой наивысший временный идентификатор является меньшим чем или равным наибольшему временному идентификатору, присутствующему в потоке битов. Выполнение процесса декодирования также содержит декодирование единицы NAL представления рабочей точки.

[0009] В другом примере настоящее раскрытие описывает устройство, содержащее один или более процессоров, сконфигурированных, чтобы выполнить тест соответствия потока битов, который определяет, соответствует ли поток битов стандарту кодирования видео. Когда один или более процессоров выполняют тест соответствия потока битов, упомянутые один или более процессоров выполняют процесс декодирования. Когда один или более процессоров выполняют процесс декодирования, упомянутые один или более процессоров выполняют процесс извлечения потока битов, который извлекает, из потока битов, представление рабочей точки для рабочей точки, определенной целевым набором идентификаторов уровня, и целевой наивысший временный идентификатор. Целевой набор идентификаторов уровня содержит значения элементов синтаксиса идентификатора уровня, присутствующих в представлении рабочей точки, при этом целевой набор идентификаторов уровня является поднабором значений элементов синтаксиса идентификатора уровня потока битов. Целевой наивысший временный идентификатор равен наибольшему временному идентификатору, присутствующему в представлении рабочей точки, целевой наивысший временный идентификатор является меньшим чем или равным наибольшему временному идентификатору, присутствующему в потоке битов. Кроме того, когда один или более процессоров выполняют процесс декодирования, упомянутые один или более процессоров декодируют единицы уровня абстракции сети (NAL) представления рабочей точки.

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0013] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему кодирования видео, которая может использовать способы, описанные в настоящем раскрытии.

[0014] Фиг. 2 является блок-схемой, иллюстрирующей примерный кодер видео, который может реализовать способы, описанные в настоящем раскрытии.

[0015] Фиг. 3 является блок-схемой, иллюстрирующей примерный декодер видео, который может реализовать способы, описанные в настоящем раскрытии.

[0016] Фиг. 4 является последовательностью операций, иллюстрирующей примерную операцию устройства, в соответствии с одним или более способами настоящего раскрытия.

[0017] Фиг. 5 является последовательностью операций, иллюстрирующей примерную операцию устройства, в соответствии с одним или более способами настоящего раскрытия.

[0018] Фиг. 6 является последовательностью операций, иллюстрирующей примерную операцию гипотетического опорного декодера (HRD) устройства, в соответствии с одним или более способами настоящего раскрытия.

ПОДРОБНОЕ ОПИСАНИЕ

[0019] Видео кодер может генерировать поток битов, который включает в себя закодированные видео данные. Поток битов может содержать последовательность единиц уровня абстракции сети (NAL). Единицы NAL потока битов могут включать в себя уровень кодирования видео (VCL) единицы NAL и единицы NAL не-VCL. Единицы NAL VCL могут включать в себя закодированные вырезки картинок. Единица NAL не-VCL может включать в себя набор параметров видео (VPS), набор параметров последовательности (SPS), набор параметров картинки (PPS), дополнительную информацию расширения (SEI), или другие типы данных. VPS является синтаксической структурой, которая может содержать элементы синтаксиса, которые применяются к нулю или более закодированным видео последовательностям целиком. SPS является синтаксической структурой, которая может содержать элементы синтаксиса, которые применяются к нулю или более закодированным видео последовательностям целиком. Единственный VPS может быть применимым ко множественным SPS. PPS является синтаксической структурой, которая может содержать элементы синтаксиса, которые применяются к нулю или более закодированным картинкам целиком. Единственный SPS может быть применимым ко множественным PPS. Различные аспекты VPS, SPS и PPS могут быть сформированы, в целом, как определено по стандарту HEVC.

[0020] Устройство, такое как устройство сети доставки содержимого (CDN), осведомленный о медиа сетевой элемент (MANE), или видео декодер, может извлечь подпоток битов из потока битов. Устройство может выполнить процесс извлечения подпотока битов, удаляя некоторые единицы NAL из потока битов. Результирующий подпоток битов включает в себя оставшиеся неудаленные единицы NAL потока битов. В качестве примеров, видео данные, декодированные из подпотока битов, могут иметь более низкую частоту кадров и/или могут представить меньше видов, чем первоначальный поток битов.

[0021] Стандарты кодирования видео могут включать в себя различные признаки, чтобы поддерживать процесс извлечения подпотока битов. Например, видео данные потока битов могут быть разделены на набор уровней. Для каждого из уровней данные в более низком уровне могут быть декодированы независимо от данных в любом более высоком уровне. Индивидуальная единица NAL только инкапсулирует данные единственного уровня. Таким образом, единицы NAL, инкапсулирующие данные наивысшего остающегося уровня потока битов, могут быть удалены из потока битов, не затрагивая декодируемость данных в оставшихся более низких уровнях потока битов. При масштабируемом кодировании видео (SVC) более высокие уровни могут включать в себя данные расширения, которые улучшают качество картинок в более низких уровнях (масштабируемость качества), увеличивают пространственный формат картинок в более низких уровнях (пространственная масштабируемость), или увеличивают временную скорость передачи картинок в более низких уровнях (временная масштабируемость). В кодировании множественных видов (MVC) и кодировании трехмерного видео (3DV) более высокие уровни могут включать в себя дополнительные виды.

[0022] Единицы NAL могут включать в себя заголовки и полезные данные. Заголовки единиц NAL включают в себя элементы синтаксиса nuh_reserved_zero_6bits. Элемент синтаксиса nuh_reserved_zero_6bits единицы NAL равен 0, если единица NAL относится к базовому уровню при кодировании множественных видов, кодировании 3DV, или SVC. Данные в базовом уровне потока битов могут быть декодированы независимо от данных в любом другом уровне потока битов. Если единица NAL не относится к базовому уровню при кодировании множественных видов, 3DV, или SVC, элемент синтаксиса nuh_reserved_zero_6bits может иметь ненулевое значение. В частности, если единица NAL не относится к базовому уровню при кодировании множественных видов, 3DV, или SVC, элемент синтаксиса nuh_reserved_zero_6bits единицы NAL задает идентификатор уровня единицы NAL.

[0023] Кроме того, некоторые картинки в пределах уровня могут быть декодированы независимо от других картинок в пределах того же самого уровня. Таким образом, единицы NAL, инкапсулирующие данные некоторых картинок уровня, могут быть удалены из потока битов, не затрагивая декодируемость других картинок в этом уровне. Например, картинки с четным значением счета по порядку картинки (POC) могут быть декодируемыми независимо от картинок с нечетными значениями POC. Удаление единиц NAL, инкапсулирующих данные таких картинок, может уменьшить частоту кадров потока битов. Поднабор картинок в пределах уровня, который может быть декодирован независимо от других картинок в пределах этого уровня, может быть упомянут здесь как подуровень.

[0024] Единицы NAL могут включать в себя элементы синтаксиса temporal_id. Элемент синтаксиса temporal_id единицы NAL определяет временный идентификатор единицы NAL. Если временный идентификатор первой единицы NAL меньше, чем временный идентификатор второй единицы NAL, данные, инкапсулированные первой единицей NAL, могут быть декодированы независимо от данных, инкапсулированных второй единицей NAL.

[0025] Каждая рабочая точка потока битов ассоциирована с набором идентификаторов уровня (то есть, набором значений nuh_reserved_zero_6bits) и временным идентификатором. Набор идентификаторов уровня может быть обозначен как OpLayerIdSet, и временный идентификатор может быть обозначен как TemporalID. Если идентификатор уровня единицы NAL находится в наборе идентификаторов уровня рабочей точки, и временный идентификатор единицы NAL меньше чем или равен временному идентификатору рабочей точки, единица NAL ассоциирована с этой рабочей точкой. Представлением рабочей точки является поднабор потока битов, который ассоциирован с рабочей точкой. Представление рабочей точки может включать в себя каждую единицу NAL, которая ассоциирована с рабочей точкой. Представление рабочей точки не включает в себя единицы NAL VCL, которые не ассоциированы с рабочей точкой.

[0026] Внешний источник может задавать набор целевых идентификаторов уровня для рабочей точки. Например, устройство, такое как устройство CDN или MANE, может задавать набор целевых идентификаторов уровня. В этом примере устройство может использовать набор целевых идентификаторов уровня, чтобы идентифицировать рабочую точку. Устройство может затем извлечь представление рабочей точки для рабочей точки и отправить представление рабочей точки вместо первоначального потока битов к клиентскому устройству. Извлечение и отправление представления рабочей точки клиентскому устройству могут уменьшить частоту следования битов потока битов.

[0027] Кроме того, стандарты кодирования видео задают модели буферизации видео. Модель буферизации видео может также упоминаться как «гипотетический опорный декодер» или «HRD». HRD описывает, как данные должны быть буферизованы для декодирования и как декодированные данные буферизуются для вывода. Например, HRD описывает операцию буфера кодированных картинок («CPB») и буфера декодированных картинок («DPB») в видео декодере. CPB является буфером «первый вошел - первый вышел», содержащим единицы доступа в порядке декодирования, заданном посредством HRD. DPB является буфером, хранящим декодированные картинки для ссылки, переупорядочения вывода, или задержки вывода, заданных посредством HRD.

[0028] Видео кодер может сигнализировать набор параметров HRD. Параметры HRD управляют различными аспектами HRD. Параметры HRD включают в себя начальную задержку удаления из CPB, размер CPB, частоту следования битов, начальную задержку вывода из DPB, и размер DPB. Эти параметры HRD закодированы в синтаксической структуре hrd_parameters ( ), заданной в VPS и/или SPS. Параметры HRD могут также быть заданы в сообщении дополнительной информации расширения (SEI) периода буферизации или сообщении SEI тактирования картинок.

[0029] Как объяснено выше, представление рабочей точки может иметь другую частоту кадров и/или частоту следования битов, чем первоначальный поток битов. Это имеет место потому, что представление рабочей точки может не включать в себя некоторые картинки и/или некоторые из данных первоначального потока битов. Следовательно, если видео декодер должен был удалить данные из CPB и/или DPB при конкретной скорости передачи при обработке первоначального потока битов, и если видео декодер должен был удалить данные из CPB и/или DPB при одной и той же скорости передачи при обработке представления рабочей точки, видео декодер может удалить слишком много или слишком мало данных из CPB и/или DPB. Соответственно, видео кодер может сигнализировать различные наборы параметров HRD для различных рабочих точек. В развиваемом стандарте высокоэффективного кодирования видео (HEVC) видео кодер может сигнализировать наборы параметров HRD в VPS, или видео кодер может сигнализировать наборы параметров HRD в SPS. Проект развивающегося стандарта HEVC, названного «HEVC, Рабочий Проект 8» описан в Bross et al., «High Efficiency Video Coding (HEVC) text specification draft 8,» Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 10th Meeting, Stockholm, Sweden, июль 2012, который на 8 мая 2013 доступен по адресу http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zip.

[0030] В некоторых версиях HEVC только наборы параметров HRD в VPS выбирают для операций HRD. Таким образом, хотя параметры HRD могут быть предоставлены в SPS, наборы параметров HRD в SPS не выбирают видео декодерами HEVC для операций HRD. Видео декодеры всегда синтаксически разбирают и декодируют VPS потока битов. Следовательно, видео декодеры всегда синтаксически разбирают и декодируют наборы параметров HRD для VPS. Это верно независимо от того, включает ли поток битов в себя единицы NAL не базового уровня. Следовательно, если поток битов включает в себя единицы NAL не базового уровня, может быть тратой вычислительных ресурсов синтаксически разбирать и обращаться с наборами параметров HRD в SPS. Кроме того, если наборы параметров HRD присутствуют в VPS, наборы параметров HRD в SPS могут быть потраченными впустую битами.

[0031] В соответствии со способами настоящего раскрытия, видео кодер может генерировать поток битов, который включает в себя SPS, который применим к последовательности картинок. SPS включает в себя набор параметров HRD. Набор параметров HRD применим к каждой рабочей точке потока битов, который имеет набор идентификаторов уровня, которые соответствуют набору целевых идентификаторов уровня. Таким образом, наборы параметров HRD в SPS не расходуются впустую, а вместо этого могут использоваться для операций HRD. Например, устройство может выбрать, из числа набора параметров HRD в VPS и набора параметров HRD в SPS, набор параметров HRD, применимых к конкретной рабочей точке. Устройство может выполнять, на основании, по меньшей мере частично, набора параметров HRD, применимых к конкретной рабочей точке, тест соответствия потока битов, который проверяет, соответствует ли поднабор потока битов, ассоциированный с конкретной рабочей точкой, стандарту кодирования видео.

[0032] Устройство, такое как видео кодер, видео декодер, или другой тип устройства, такое как устройство CDN или MANE, может выполнить тест соответствия потока битов в отношении представления рабочей точки для рабочей точки. Тест соответствия потока битов может верифицировать, что представление рабочей точки соответствует стандарту кодирования видео, такому как HEVC. Как упомянуто выше, набор целевых идентификаторов уровня и временный идентификатор могут быть использованы для идентификации рабочей точки. Набор целевых идентификаторов уровня может быть обозначен как «TargetDecLayerIdSet». Временный идентификатор может быть обозначен как «TargetDecHighestTid». Проблематично, Working Draft 8 HEVC не задает, как TargetDecLayerIdSet или TargetDecHighestTid устанавливаются, выполняя тест соответствия потока битов.

[0033] В соответствии с одним или более способами настоящего раскрытия, устройство может выполнить процесс декодирования в качестве части выполнения теста соответствия потока битов. Выполнение процесса декодирования содержит выполнение процесса извлечения потока битов, чтобы декодировать из потока битов представление рабочей точки для рабочей точки, определенной целевым набором идентификаторов уровня, и целевой наивысший временный идентификатор. Целевой набор идентификаторов уровня (то есть, TargetDecLayerIdSet) содержит значения элементов синтаксиса идентификатора уровня (например, элементы синтаксиса nuh_reserved_zero_6bits), присутствующие в представлении рабочей точки. Целевой набор идентификаторов уровня является поднабором значений элементов синтаксиса идентификатора уровня потока битов. Целевой наивысший временный идентификатор (то есть, TargetDecHighestTid) равен наибольшему временному идентификатору, присутствующему в представлении рабочей точки. Целевой наивысший временный идентификатор меньше чем или равен наибольшему временному идентификатору, присутствующему в потоке битов. Выполнение процесса декодирования может также содержать декодирование единиц NAL представления рабочей точки.

[0034] В HEVC SPS может включать в себя массив элементов синтаксиса, обозначенных как sps_max_dec_pic_buffering [i], где i ранжируется от 0 до максимального количества временных уровней в потоке битов. sps_max_dec_pic_buffering [i] указывает максимальный требуемый размер DPB, когда наивысший временный идентификатор (HighestTid) равен i. sps_max_dec_pic_buffering [i] указывает требуемый размер в терминах единиц буферов хранения картинок.

[0035] Кроме того, в HEVC, SPS может включать в себя массив элементов синтаксиса, обозначенный как sps_max_num_reorder_pics [i], где i ранжируется от 0 до максимального количества временных уровней в потоке битов. sps_max_num_reorder_pics [i] указывает максимальное разрешенное количество картинок, предшествующих любой картинке в порядке декодирования и следующих за этой картинкой в порядке вывода, когда наивысший временный идентификатор (HighestTid) равен i.

[0036] В HEVC набор параметров HRD может включать в себя массив элементов синтаксиса, обозначенный cpb_cnt_minus1 [i], где i ранжируется от 0 до максимального количества временных уровней в потоке битов. cpb_cnt_minus1 [i] задает количество альтернативных спецификаций CPB в потоке битов закодированной видео последовательности, когда наивысший временный идентификатор (HighestTid) равен i, в котором одна альтернативная спецификация CPB относится к одной конкретной операции CPB с конкретным набором параметров CPB.

[0037] В HEVC Working Draft 8, sps_max_dec_pic_buffering [i], sps_max_num_reorder_pics [i], и cpb_cnt_minus1 [i] должным образом не выбираются в операциях HRD, операциях соответствия (согласования) потока битов, и ограничениях уровня. Это, по меньшей мере частично, является следствием того что HEVC Working Draft 8 не задает то, что подразумевается под наивысшим временным идентификатором (HighestTid).

[0038] В соответствии с одним или более способами настоящего раскрытия, устройства, такие как видео кодер, видео декодер, или другое устройство, могут определить наивысший временный идентификатор поднабора потока битов, ассоциированного с выбранной рабочей точкой потока битов. Кроме того, устройство может определить, на основании наивысшего временного идентификатора, конкретный элемент синтаксиса из числа массива элементов синтаксиса (например, sps_max_dec_pic_buffering [], sps_max_num_reorder_pics [], или cpb_cnt_minus1 []). Устройство может выполнить операцию, которая использует этот конкретный элемент синтаксиса, чтобы определить соответствие потока битов стандарту кодирования видео или определить соответствие видео декодера стандарту кодирования видео.

[0039] Фиг. 1 является блок-схемой, иллюстрирующей примерную систему 10 кодирования видео, которая может использовать способы настоящего раскрытия. Как используется в настоящем описании, термин «видео кодировщик» относится в общем и к кодерам видео и к декодерам видео. В настоящем раскрытии термины «кодирование видео» или «кодирование» могут относиться в целом к кодированию видео или декодированию видео.

[0040] Как показано на фиг. 1, система 10 кодирования видео включает в себя исходное устройство 12 и устройство 14 назначения. Исходное устройство 12 генерирует закодированные видео данные. Соответственно, исходное устройство 12 может упоминаться как устройство кодирования видео или аппарат кодирования видео. Устройство 14 назначения может декодировать закодированные видео данные, генерируемые исходным устройством 12. Соответственно, устройство 14 назначения может упоминаться как устройство декодирования видео или аппарат декодирования видео. Исходное устройство 12 и устройство 14 назначения может быть примерами устройств кодировки видео или аппаратов кодировки видео.

[0041] Исходное устройство 12 и устройство 14 назначения могут содержать широкий диапазон устройств, включая настольные компьютеры, мобильные вычислительные устройства, портативные (например, ноутбук) компьютеры, планшетные компьютеры, телевизионные приставки, телефонные трубки, такие как так называемые «смарт» телефоны, телевизоры, камеры, устройства отображения, цифровые медиаплееры, пульты видео игр, находящиеся внутри автомобиля компьютеры, или подобное.

[0042] Устройство 14 назначения может принять закодированные видео данные от исходного устройства 12 через канал 16. Канал 16 может содержать один или более носителей и устройств, способных к перемещению закодированных видео данных от исходного устройства 12 к устройству 14 назначения. В одном примере канал 16 может содержать один или более коммуникационных носителей, которые разрешают исходному устройству 12 передать закодированные видео данные непосредственно к устройству 14 назначения в реальном времени. В этом примере исходное устройство 12 может модулировать закодированные видео данные согласно стандарту связи, такому как протокол беспроводной связи, и может передать модулированные видео данные к устройству 14 назначения. Один или более коммуникационных носителей могут включать в себя беспроводные и/или проводные коммуникационные носители, такие как радиочастотный (RF) спектр или одну или более физических линий передачи. Один или более коммуникационных носителей могут являться частью основанной на пакетной передаче сети, такой как локальная сеть, региональная сеть, или глобальная сеть (например, Интернет). Один или более коммуникационных носителей могут включать в себя маршрутизаторы, коммутаторы, базовые станции, или другое оборудование, которое облегчает связь от исходного устройства 12 к устройству 14 назначения.

[0043] В другом примере канал 16 может включать в себя запоминающий носитель, который хранит закодированные видео данные, генерируемые исходным устройством 12. В этом примере устройство 14 назначения может получить доступ к запоминающему носителю, например, через доступ к диску или доступ к карте. Запоминающий носитель может включать в себя множество локально доступных запоминающих носителей данных, таких как диски Blu-ray, DVD, CD-ROM, флэш-память, или другие подходящие цифровые запоминающие носители для того, чтобы хранить закодированные видео данные.

[0044] В другом примере канал 16 может включать в себя файловый сервер или другое промежуточное устройство хранения, которое хранит закодированные видео данные, генерируемые исходным устройством 12. В этом примере устройство 14 назначения может получить доступ к закодированным видео данным, хранящимся в файловом сервере или другом промежуточном устройстве хранения, с помощью потоковой передачи или загрузки. Файловый сервер может быть типом сервера, способного к тому, чтобы хранить закодированные видео данные и передавать закодированные видео данных к устройству 14 назначения. Примерные файловые серверы включают в себя web-серверы (например, для вебсайта), серверы согласно протоколу передачи файлов (FTP), устройства соединенных с сетью устройств хранения (NAS), и локальные дисководы. В примере согласно Фиг. 1 канал 16 включает в себя дополнительное устройство 21. В некоторых примерах дополнительное устройство 21 является устройством CDN, MANE, или другим типом устройства.

[0045] Устройство 14 назначения может получить доступ к закодированным видео данным через стандартное соединение данных, такое как интернет-соединение. Примерные типы соединений данных могут включать в себя беспроводные каналы (например, соединения Wi-Fi), проводные соединения (например, цифровая абонентская линия (DSL), кабельный модем, и т.д.), или комбинацию обоих, которые являются подходящими для того, чтобы получить доступ к закодированным видео данным, хранящимся на файловом сервере. Передача закодированных видео данных от файлового сервера может быть потоковой передачей, передачей загрузки, или комбинацией обеих.

[0046] Способы настоящего раскрытия не ограничены беспроводными приложениями или параметрами настройки. Способы могут быть применены к кодировке видео в поддержку множества мультимедийных приложений, таких как эфирное телевидение, передачи кабельного телевидения, передачи спутникового телевидения, потоковые передачи видео, например, через Интернет, кодирование видео данных для хранения на запоминающем носителе данных, декодирование видео данных, хранящихся на запоминающем носителе данных, или других приложениях. В некоторых примерах система 10 кодирования видео может быть сконфигурирована, чтобы поддерживать одностороннюю или двухстороннюю передачу видео, чтобы поддерживать приложения, такие как потоковая передача видео, воспроизведение видео, вещание видео, и/или видео телефония.

[0047] Фиг. 1 является просто примером, и способы настоящего раскрытия могут относиться к параметрам настройки кодирования видео (например, кодированию видео или декодированию видео), которые не обязательно включают в себя какую-либо передачу данных между устройствами кодирования и декодирования. В других примерах данные извлекают из локальной памяти, передают в виде потока по сети, или подобному. Устройство кодирования видео может закодировать и сохранять данные в памяти, и/или устройство декодирования видео может извлечь и декодировать данные из памяти. Во многих примерах кодирование и декодирование выполняются устройствами, которые не обмениваются друг с другом, но просто кодируют данные в память и/или извлекают и декодируют данные из памяти.

[0048] В примере согласно Фиг. 1 исходное устройство 12 включает в себя видео источник 18, видео кодер 20 и интерфейс 22 вывода. В некоторых примерах интерфейс 22 вывода может включать в себя модулятор/демодулятор (модем) и/или передатчик. Видео источник 18 может включать в себя устройство захвата видео, например, видео камеру, видео архив, содержащий ранее захваченные видео данные, интерфейс подачи видео, чтобы принять видео данные от поставщика видео контента, и/или систему компьютерной графики для того, чтобы генерировать видео данные, или комбинацию таких источников видео данных.

[0049] Видео кодер 20 может закодировать видео данные из видео источника 18. В некоторых примерах исходное устройство 12 непосредственно передает закодированные видео данные к устройству 14 назначения через интерфейс 22 вывода. В других примерах закодированные видео данные могут также храниться на запоминающем носителе или файловом сервере для более позднего доступа устройством 14 назначения для декодирования и/или воспроизведения.

[0050] В примере согласно Фиг. 1 устройство 14 назначения включает в себя интерфейс 28 ввода, видео декодер 30 и устройство 32 отображения. В некоторых примерах интерфейс 28 ввода включает в себя приемник и/или модем. Интерфейс 28 ввода может принять закодированные видео данные по каналу 16. Устройство 32 отображения может быть интегрировано с или может быть внешним к устройству 14 назначения. Вообще, устройство 32 отображения отображает декодированные видео данные. Устройство 32 отображения может содержать множество устройств отображения, таких как жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих (OLED) диодах, или другой тип устройства отображения.

[0051] Видео кодер 20 и видео декодер 30 каждый может быть реализован как любое из множества подходящих схем, таких как один или более микропроцессоров, цифровые сигнальные процессоры (DSPs), специализированные интегральные схемы (ASICs), программируемые пользователем вентильные матрицы (FPGAs), дискретная логика, аппаратное обеспечение, или любые их комбинации. Если способы реализованы частично в программном обеспечении, устройство может сохранить инструкции для программного обеспеч