Информация тактирования кодирования для кодирования видео

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

 

СВЯЗАННЫЕ ЗАЯВКИ

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

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

[0002] Настоящее раскрытие в целом относится к обработке данных видео и, более подробно, к картинкам произвольного доступа, используемым в данных видео.

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

[0003] Цифровые возможности видео могут быть включены в широкий диапазон устройств, включая цифровые телевизоры, цифровые системы прямого вещания, беспроводные системы вещания, персональные цифровые помощники (PDA), портативные или настольные компьютеры, планшетные компьютеры, считыватели электронных книг, цифровые камеры, цифровые камеры, цифровые медиа плееры, видео игровые устройства, пульты видеоигр, сотовые или спутниковые радиотелефоны, так называемые "смартфоны", устройства организации видео телеконференций, устройства потоковой передачи видео и т.п. Цифровые видео устройства реализуют способы сжатия видео, такие как описанные в стандартах, определенных посредством ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262, ISO/IEC MPEG-2 Visual, ITU-T H.263, ITU-T H.264/MPEG-4, Часть 10, Advanced Video Coding (AVC), стандарта высокоэффективного кодирования видео (HEVC), развивающегося в настоящее время, и расширениях таких стандартов. Видео устройства могут передавать, принимать, кодировать, декодировать и/или сохранять цифровую видео информацию более эффективно, реализуя такие способы кодирования видео.

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

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

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

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

[0007] В одном примере способ декодирования видео данных включает в себя декапсуляцию вырезки картинки точки произвольного доступа (RAP) потока битов из единицы уровня абстракции сети (NAL), в котором единица NAL включает в себя значение типа единицы NAL, которое указывает, имеет ли картинка RAP тип, который имеет ассоциированные начальные картинки, и является ли картинка RAP картинкой мгновенного обновления декодера (IDR) или картинкой чистого произвольного доступа (CRA), определение, может ли картинка RAP иметь ассоциированные начальные картинки на основании значения типа единицы NAL; и декодирование видео данных потока битов, следующих после картинки RAP, на основании определения, может ли картинка RAP иметь ассоциированные начальные картинки.

[0008] В другом примере устройство для декодирования видео данных, причем устройство содержит процессор, сконфигурированный для декапсуляции вырезки картинки точки произвольного доступа (RAP) из потока битов из единицы уровня абстракции сети (NAL), в котором единица NAL включает в себя значение типа единицы NAL, которое указывает, имеет ли картинка RAP тип, который имеет ассоциированные начальные картинки, и является ли картинка RAP картинкой мгновенного обновления декодера (IDR) или картинкой чистого произвольного доступа (CRA), определение, может ли картинка RAP иметь ассоциированные начальные картинки, на основании значения типа единицы NAL, и декодирование видео данных потока битов после картинки RAP на основании определения, может ли картинка RAP иметь ассоциированные начальные картинки.

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

[0010] В другом примере считываемый компьютером запоминающий носитель имеет сохраненные на нем инструкции, которые, когда выполняются, вынуждают процессор к декапсуляции вырезки картинки точки произвольного доступа (RAP) из потока битов из единицы уровня абстракции сети (NAL), в котором единица NAL включает в себя значение типа единицы NAL, которое указывает, имеет ли картинка RAP тип, который имеет ассоциированные начальные картинки, и является ли картинка RAP картинкой мгновенного обновления декодера (IDR) или картинкой чистого произвольного доступа (CRA), определение, может ли картинка RAP иметь ассоциированные начальные картинки на основании значения типа единицы NAL, и декодирование видео данных потока битов после картинки RAP на основании определения, может ли картинка RAP иметь ассоциированные начальные картинки.

[0011] В другом примере способ генерирования потока битов, включающего в себя видео данные, причем способ содержит определение, имеет ли картинка точки произвольного доступа (RAP) тип, который имеет ассоциированные начальные картинки, и содержит ли картинка RAP картинку мгновенного обновления декодера (IDR) или картинку чистого произвольного доступа (CRA), инкапсулирование вырезки картинки RAP в единице уровня абстракции сети (NAL), в котором единица NAL включает в себя значение типа единицы NAL, которое указывает, имеет ли картинка RAP тип, который имеет ассоциированные начальные картинки, и генерирование потока битов, включающего в себя единицу NAL.

[0012] В другом примере устройство для генерирования потока битов, включающего в себя видео данные, включает в себя процессор, сконфигурированный, чтобы определить, имеет ли картинка точки произвольного доступа (RAP) тип, который имеет ассоциированные начальные картинки, и содержит ли картинка RAP картинку мгновенного обновления декодера (IDR) или картинку чистого произвольного доступа (CRA), инкапсулирование вырезки картинки RAP в единице уровня абстракции сети (NAL), в котором единица NAL включает в себя значение типа единицы NAL, которое указывает, имеет ли картинка RAP тип, который имеет ассоциированные начальные картинки, и генерирование потока битов, включающего в себя единицу NAL.

[0013] В другом примере устройство для генерирования потока битов, включающего в себя видео данные, включает в себя средство для определения, имеет ли картинка точки произвольного доступа (RAP) тип, который имеет ассоциированные начальные картинки, и является ли картинка RAP картинкой мгновенного обновления декодера (IDR) или картинкой чистого произвольного доступа (CRA), средство для того, чтобы инкапсулировать вырезку картинки RAP в единице уровня абстракции сети (NAL), в котором единица NAL включает в себя значение типа единицы NAL, которое указывает, имеет ли картинка RAP тип, который имеет ассоциированные начальные картинки, и средство для генерирования потока битов, включающего в себя единицу NAL.

[0014] В другом примере считываемый компьютером запоминающий носитель имеет сохраненные на нем инструкции, которые, когда выполняются, вынуждают процессор определять, имеет ли картинка точки произвольного доступа (RAP) тип, который имеет ассоциированные начальные картинки, и является ли картинка RAP картинкой мгновенного обновления декодера (IDR) или картинкой чистого произвольного доступа (CRA), инкапсулировать вырезки картинки RAP в единице уровня абстракции сети (NAL), в котором единица NAL включает в себя значение типа единицы NAL, которое указывает, имеет ли картинка RAP тип, который имеет ассоциированные начальные картинки, и генерирует поток битов, включая единицу NAL.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[0030] В другом примере считываемый компьютером запоминающий носитель имеет сохраненные на нем инструкции, которые, когда выполняются, вынуждают процессор генерировать данные, указывающие, является ли разность между временем представления первой картинки и временем представления второй картинки целым числом, умноженным на значение такта системных часов; и, когда данные указывают, что разность является целым числом, умноженным на значение такта системных часов, генерирование данных, представляющих целочисленное кратное.

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

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

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

[0033] ФИГ. 2 является концептуальной диаграммой, иллюстрирующей пример закодированной видео последовательности.

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

[0035] ФИГ. 4 является блок-схемой, иллюстрирующей примерный модуль инкапсуляции, который может реализовать способы, описанные в настоящем раскрытии.

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

[0037] ФИГ. 6 является последовательностью операций, иллюстрирующей пример генерирования единицы NAL не-VCL согласно способам настоящего раскрытия.

[0038] ФИГ. 7 является последовательностью операций, иллюстрирующей пример сигнализации значения дельты времени представления.

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

[0040] ФИГ. 9 является последовательностью операций, иллюстрирующей пример определения значения дельты времени представления.

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

ДЕТАЛЬНОЕ ОПИСАНИЕ

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

[0043] Цифровые видео устройства реализуют способы сжатия видео, чтобы закодировать и декодировать цифровую видео информацию более эффективно. Способы сжатия видео могут быть определены согласно стандарту кодирования видео, такому как AVC или HEVC. Стандарт ITU-T H.264/MPEG-4 (AVC) был сформулирован Группой Экспертов по Кодированию видео ITU-T (VCEG) вместе с ISO/IEC Группой экспертов по движущимся изображениям (MPEG) как продукт коллективного товарищества, известного как Объединенная Команда работы над Видео (JVT). Стандарт H.264 описан в ITU-T Recommendation H.264, Advanced Video Coding for generic audiovisual services, Группой по изучению ITU-T, и датированной мартом 2005, который может быть упомянут здесь как стандарт H.264 или спецификация H.264, или стандарт H.264/AVC или спецификация. Объединенная Команда работы над Видео (JVT) продолжает воздействовать на расширения к H.264/MPEG-4 AVC.

[0044] Недавний рабочий проект (WD) HEVC, названный “HEVC Working Draft 7” или "WD7", описан в документе JCTVC-I1003_d5, Bross и др., “WD7: Working Draft 7 of High-Efficiency Video Coding (HEVC), Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 9th Meeting: Geneva, Switzerland, April 27, 2012 to May 7, 2012. Далее, другой недавний рабочий проект HEVC, Working Draft 9, описан в документе HCTVC-K1003_d7, Bross и др., “High Efficiency Video Coding (HEVC) Text Specification Draft 9,” Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 11th Meeting: Shanghai, CN, October, 2012. Предстоящий стандарт HEVC может также упоминаться как ISO/IEC 23008-HEVC, который предназначен, чтобы быть стандартным номером для доставленной версии HEVC. В некоторых аспектах способы, описанные в настоящем раскрытии, могут быть применены к устройствам, которые в целом соответствуют H.264 и/или предстоящему стандарту HEVC. Хотя способы настоящего раскрытия описаны относительно стандарта H.264 и предстоящего стандарта HEVC, способы настоящего раскрытия в целом применимы к любому стандарту кодирования видео.

[0045] Видео последовательность типично включает в себя ряд видео кадров, также названных картинками. Примеры видео приложений, где видео последовательность закодирована и/или декодирована, включают в себя локальное воспроизведение, потоковую передачу, вещание, многоадресное вещание и разговорные приложения. Разговорные приложения включают в себя видео телефонию и видео конференц-связь и также упоминаются как приложения с низкой задержкой. Разговорные приложения требуют относительно низкой сквозной задержки всех систем, то есть задержки между временем, когда видео кадр захвачен в первом цифровом видео устройстве, и временем, когда видео кадр показан во втором цифровом видео устройстве. Типично приемлемая сквозная задержка разговорных приложений должна составить меньше чем 400 миллисекунд, и сквозную задержку приблизительно 150 миллисекунд считают очень хорошей.

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

[0047] Группа картинок (GOP) обычно содержит последовательность одной или более картинок, размещенных согласно порядку отображения. Согласно HEVC, видео кодер может разделить видео кадр или картинку в последовательность блоков видео одинакового размера. Блок видео может иметь компонент светимости (обозначенный как Y) и два компонента насыщенности цвета (обозначенные как U и V или Cb и Cr). Эти блоки видео могут также называться как наибольшие единицы кодирования (LCU), блоки дерева, или единицы блоков дерева кодирования (CTU). Единицы LCU в HEVC могут быть в целом похожи на макроблоки предыдущих стандартов, таких как H.264/AVC. Однако LCU не обязательно ограничен конкретным размером. Согласно HEVC, данные синтаксиса в пределах потока битов могут определить LCU согласно количеству горизонтальных и/или вертикальных выборок яркости. Например, LCU может быть определена как включающая в себя 64×64 или 32×32 выборки яркости. Далее, LCU может быть разделена на множественные единицы кодирования (CU) согласно схеме разделения квадродерева. В общем, разделение квадродерева относится к рекурсивному расколу единиц CU на четыре суб-единицы CU. Данные синтаксиса, ассоциированные с закодированным потоком битов, могут определить максимальное количество раз, сколько LCU может быть разделена называемым максимальной глубиной CU, и может также определить минимальный размер CU. Соответственно, поток битов может также определить наименьшую единицу кодирования (SCU). Например, SCU может быть определена как включающая в себя 8×8 выборок яркости.

[0048] Кроме того, согласно HEVC, видео кодер может разделить картинку во множество вырезок, в котором каждая из вырезок включает в себя целочисленное количество единиц LCU. Вырезки могут быть I вырезками, P вырезками, или B вырезками, где I, P, и B определяют, как другие блоки видео используются для предсказания единиц CU. I вырезки предсказывают, используя режим внутреннего предсказания (например, от блоков видео в пределах того же самого кадра). Внутреннее кодирование полагается на пространственное предсказание, чтобы уменьшить или удалить пространственную избыточность в видео в пределах заданного видео кадра или картинки. Вырезку P предсказывают, используя однонаправленный режим внешнего предсказания (например, от блока видео в предыдущем кадре). Вырезку B предсказывают, используя двунаправленный режим внешнего предсказания (например, от блоков видео в пределах предыдущего кадра и последующего кадра). Внешнее кодирование полагается на временное предсказание, чтобы уменьшить или удалить временную избыточность в видео в пределах смежных кадров или картинок последовательности видео.

[0049] ФИГ. 1 является концептуальной диаграммой, иллюстрирующей последовательность видео, закодированную согласно способам предсказывающего кодирования видео. Как иллюстрировано на ФИГ. 1, видео последовательность 100 включает в себя картинки Pic1 - Pic10. В концептуальной диаграмме согласно ФИГ. 1 картинки Pic1 - Pic10 размещены и последовательно пронумерованы согласно порядку, в котором они должны быть показаны. Как описано более подробно ниже, порядок отображения не обязательно соответствует порядку декодирования. Как иллюстрировано на ФИГ. 1, видео последовательность 100 включает в себя GOP1 и GOP2, где картинки Pic1 - Pic5 включены в GOP1 и картинки Pic6 - Pic10, включены в GOP2. ФИГ. 1 иллюстрирует, что Pic5 разделена на slice1 и slice2, где каждый из slice1 и slice2 включает в себя последовательные единицы LCU согласно растровое сканирование слева направо сверху вниз. Хотя не показано, другие картинки, иллюстрированные на ФИГ. 1, могут быть разделены на одну или более вырезок подобным способом. ФИГ. 1 также иллюстрирует понятие I вырезки, P вырезки или B вырезки относительно GOP2. Стрелки, ассоциированные с каждой из Pic6 - Pic10 в GOP2, указывают, включает ли картинка в себя I вырезки, P вырезки или B вырезки на основании опорной картинки, обозначенной стрелками. На ФИГ. 1 картинки Pic6 и Pic9 представляют картинки, включающие в себя I картинки (то есть ссылки непосредственно на саму картинку), картинки Pic7 и Pic10 представляют картинки, включающие в себя P вырезки (то есть каждая ссылается на предыдущую картинку), и Pic8 представляет картинку, включающую в себя B вырезки (то есть ссылается на предыдущую и последующую картинки).

[0050] В HEVC каждая видео последовательность, GOP, картинка, вырезка и CU может быть ассоциирована с данными синтаксиса, которые описывают свойства кодирования видео. Например, вырезка включает в себя заголовок, который включает в себя элемент синтаксиса, который указывает, является ли вырезка I вырезкой, P вырезкой или B вырезкой. Далее, HEVC включает в себя понятие наборов параметров. Набор параметров является структурой синтаксиса, которая включает в себя элементы синтаксиса, которые позволяют видео декодеру восстанавливать видео последовательность. HEVC использует механизм иерархического набора параметров, где элементы синтаксиса включены в тип набора параметров на основании частоты, с которой элементы синтаксиса, как ожидают, будут изменяться. Механизм набора параметров в HEVC отделяет передачу нечасто изменяющейся информации от передачи закодированных данных блока. Далее, в некоторых применениях наборы параметров могут быть переданы "вне диапазона", то есть не транспортированы вместе с блоками, содержащими закодированные видео данные. Передача вне диапазона типично является надежной.

[0051] В HEVC WD7 конкретный набор параметров идентифицируют, используя ID набора параметров. В HEVC WD7 ID набора параметров является беззнаковый целочисленный элемент синтаксиса Exp-Golomb-coded с первым левым битом. HEVC WD7 определяет следующие наборы параметров:

Набор параметров Видео (VPS): VPS является синтаксической структурой, которая содержит элементы синтаксиса, которые относятся к нулю или более полностью закодированным видео последовательностям. То есть VPS включает в себя элементы синтаксиса, которые, как ожидают, останутся неизменными для последовательности кадров (например, порядок картинок, количество опорных кадров и размер картинок). VPS идентифицируют, используя ID VPS. Набор параметров последовательности включает в себя ID VPS.

Набор параметров последовательности (SPS) - SPS является синтаксической структурой, которая включает в себя элементы синтаксиса, которые относятся к нулю или более полностью закодированным видео последовательностям. То есть SPS включает в себя элементы синтаксиса, которые, как ожидают, останутся неизменными для последовательности кадров (например, порядок картинок, количество опорных кадров, и размер картинок). SPS идентифицируют используя ID SPS. Набор параметров картинки включает в себя ID SPS.

Набор параметров картинки (PPS) - PPS является синтаксической структурой, которая включает в себя элементы синтаксиса, которые относятся к одной или более картинкам. То есть PPS включает в себя элементы синтаксиса, которые могут изменяться от картинки к картинке в пределах последовательности (например, режим энтропийного кодирования, параметры квантования, и глубина в битах). Набор параметров PPS идентифицируют, используя ID PPS. Заголовок вырезки включает в себя ID PPS.

Адаптивный набор параметров (APS) - APS является синтаксической структурой, которая включает в себя элементы синтаксиса, которые относятся к одной или более картинкам. APS включает в себя элементы синтаксиса, которые, как ожидают, изменяются в пределах последовательности картинок (например, размер блока, и фильтрование удаления блочности). Набор APS идентифицируют, используя ID APS. Заголовок вырезки может включать в себя ID APS.

[0052] Согласно упомянутым определенным типам набора параметров в HEVC WD7, каждый SPS ссылается на ID VPS, каждый PPS ссылается на ID SPS, и каждый заголовок вырезки ссылается на ID PPS и возможно ID APS. Нужно отметить, что в некоторых случаях линейные соотношения ссылки, включающие в себя ID VPS в SPS и ID SPS в PPS может быть неэффективным. Например, хотя VPS поддерживается в HEVC WD7, большинство параметров информации уровня последовательности все еще присутствует только в SPS. В дополнение к понятию наборов параметров, HEVC включает в себя понятие закодированных видео последовательностей и единиц доступа. Согласно HEVC WD7, закодированная видео последовательность и блок доступа определены следующим образом:

Закодированная видео последовательность: последовательность единиц доступа, которая состоит, в порядке декодирования, из единицы доступа CRA, которая является первой единицей доступа в потоке битов, единицей доступа IDR или единицей доступа BLA, сопровождаемой нулем или более единицами доступа не-IDR и не-BLA, включающими в себя все последующие единицы доступа вплоть до, но не включающими в себя любую последующую единицу доступа IDR или BLA [единицы доступа CRA, IDR и BLA, описаны подробно ниже].

Единица доступа: набор единиц NAL, которые являются последовательными в порядке декодирования и содержат одну закодированную картинку. В дополнение к единицам NAL закодированной вырезки закодированной картинки единица доступа может также содержать другие единицы NAL, не содержащие вырезки закодированной картинки. Декодирование единицы доступа всегда приводит к декодированной картинке.

[0053] Единица NAL относится к единице уровня абстракции сети. Таким образом, согласно HEVC, поток битов закодированных видео данных включает в себя последовательность единиц NAL. Единица доступа является набором единиц NAL, которые размещены последовательно в порядке декодирования и содержат точно одну закодированную картинку, и закодированная видео последовательность включает в себя последовательность единиц доступа, размещенных в порядке декодирования. ФИГ. 2 является концептуальной диаграммой, иллюстрирующей пример закодированной видео последовательности. ФИГ. 2 представляет пример закодированной видео последовательности 200, которая может соответствовать GOP2, иллюстрированной на ФИГ. 1. Как иллюстрировано на ФИГ. 2, закодированная видео последовательность 200 включает в себя единицу доступа, соответствующую каждой из Pic6-Pic10. Единицы доступа закодированной видео последовательности 200 размещены последовательно согласно порядку декодирования. Нужно отметить, что единица доступа, соответствующая Pic9, расположена перед единицей доступа, соответствующей Pic8. Таким образом, порядок декодирования не соответствует порядку отображения, иллюстрированному на ФИГ. 1. В этом примере это вследствие того, что Pic8 ссылается на Pic9. Таким образом, Pic9 должна быть декодирована прежде, чем может быть декодирована Pic8. ФИГ. 2 иллюстрирует, где единица доступа, соответствующая Pic9, включает в себя единицы NAL: единица NAL 202 разделителя AU, единица NAL 204 PPS, единица NAL 206 slice1, и единица NAL 208 slice2. Каждая единица NAL может включать в себя заголовок, который идентифицирует тип единицы NAL.

[0054] HEVC определяет два класса типа единицы NAL: единицы NAL закодированной вырезки (VCL) и единицы NAL не-VCL. Единица NAL закодированной вырезки содержит вырезку видео данных. В примере, иллюстрированном на ФИГ. 2, единица NAL 206 slice1, и единица NAL 208 slice2 каждая содержит вырезку видео данных и является примерами единиц NAL VCL. В примере на ФИГ. 2 каждой единицей NAL 206 slice1 и единицей NAL 208 slice2 могут быть I-вырезки. не-VCL включает в себя то, что содержит информацию помимо вырезки видео данных. Например, не-VCL может содержать данные разделителя или набор параметров. В примере, иллюстрированном на ФИГ. 2 единицы NAL 202 разделителя AU включают в себя информацию, чтобы разграничить единицу доступа, соответствующую Pic9, из единицы доступа, соответствующей Pic7. Далее, единица NAL 204 PPS включает в себя набор параметров картинки. Таким образом, единица NAL 202 разделителя AU, и единица NAL 204 PPS являются примерами единиц NAL не-VCL.

[0055] Другим примером единицы NAL не-VCL в HEVC является единица NAL дополнительной информации расширения (SEI). Механизм SEI, поддерживаемый и в AVC и в HEVC, разрешает кодерам включать метаданные в поток битов, который не требуется для корректного декодирования типовых значений картинок вывода, но может использоваться в различных других целях, таких как тактирование вывода, отображение картинок, так же как обнаружение потерь и сокрытие. Например, единицы NAL SEI могут включать в себя сообщения тактирования картиной, которые используются видео декодером при декодировании потока битов. Сообщения тактирование картиной могут включать в себя информацию, которая указывает, когда видео декодер должен начать декодировать единицу NAL VCL. Кодеры могут включать в себя любое количество единиц NAL SEI в единице доступа, и каждая единица NAL SEI может содержать одно или более сообщений SEI. Проект стандарта HEVC включает в себя синтаксис и семантику для нескольких сообщений SEI, но обработка сообщений SEI не определена, так как они не влияют на нормативный процесс декодирования. Одна причина иметь сообщения SEI в проекте стандарта HEVC состоит в том, чтобы разрешить дополнительным данным интерпретироваться тождественно в различных системах, использующих HEVC. Спецификации и системы, использующие HEVC, могут требовать, чтобы кодеры генерировали некоторые сообщения SEI, или могут определять конкретную обработку конкретных типов принятых сообщений SEI. Таблица 1 перечисляет сообщения SEI, определенные в HEVC, и кратко описывает их цели.

ТАБЛИЦА 1:
Краткий обзор сообщений SEI
Сообщение SEI Цель
Период буферизации Начальные задержки для работы гипотетического эталонного декодера (HRD)
Тактирование картинок Время вывода картинок выводила и время удаления картинок /суб-картинок для работы HRD, а так же относящаяся к структуре картинки информация
Прямоугольник панорамного сканирования Отображение в другом формате изображения картинки (PAR) чем PAR картинок вывода
Полезные данные заполнителя Настройка скорости передачи в битах, чтобы удовлетворить конкретным ограничениям
Пользовательские данные зарегистрированы Пользовательские данные не зарегистрированы Сообщения SEI, которые должны быть определены внешними объектами
Точка восстановления Дополнительная информация для чистого произвольного доступа. Постепенное восстановление декодирования.
Информация сцены Информация об изменениях и переходах сцены
Снимок полного кадра Индикация маркировать ассоциированную декодированную картинку как снимок неподвижного изображения видео контента
Сегмент прогрессивной детализации Указывает, что некоторые последовательные картинки представляют прогрессивную детализацию качества картинки, а не движущуюся сцену
Характеристики зерна пленки Разрешает декодерам синтезировать зерно пленки
Предпочтения отображения фильтра удаления блочности Рекомендует, должны ли показанные картинки подвергнуться процессу фильтра удаления блочности в контуре
Подсказки постфильтра Обеспечивает предложенные коэффициенты постфильтра или информацию корреляции для структуры постфильтра
Информация отображения тона Переотображение в другое цветное пространство, чем используемое или принятое в кодировании
Компоновка упаковки кадра Упаковка стереоскопического видео в поток битов HEVC
Ориентация дисплея Задает переключение и/или вращение, которое должно быть применено к картинкам вывода, когда они показываются
Структура описания картинок Описывает временную структуру и структуру внешнего предсказания потока битов
Хэш-функция декодированной картинки Контрольная сумма декодированной картинки, которая может использоваться для обнаружения ошибок
Набор активных параметров Предоставляет информацию об активных VPS, SPS и т.д.
Информация единицы декодирования Время удаления суб-картинок для работы HRD, а так же индекс единицы декодирования
Индекс временного уровня нуль Обеспечивает значения индекса временного уровня нуль
Вложенность масштабирования Обеспечивает механизм, чтобы вложить сообщения SEI для ассоциации к различным точкам и уровням операции
Информация восстановления области Предоставляет информацию об обновленной и необновленной области для постепенного обновления декодирования

[0056] Произвольный доступ относится к декодированию потока битов видео, начинающегося с закодированной картинки, которая не является первой закодированной картинкой в потоке битов. Произвольный доступ к потоку битов необходим во многих приложениях видео, таких как вещание и потоковая передача, например, для пользователей, чтобы переключиться между различными каналами, перейти к конкретным частям видео, или к переключиться к другому потоку битов для адаптации потока (например, для частоты следования битов, скорости передачи кадров или масштабируемости пространственного разрешения). Произвольный доступ разрешен при наличии структуры кодирования, которая включает в себя картинки точки произвольного доступа (RAP) или единицы доступа, много раз с регулярными интервалами, для видео последовательности. Картинки мгновенного обновления декодера (IDR), картинки чистого произвольного доступ (CRA), и картинки доступа с разорванной ссылкой (BLA), является типами картинок RAP, определенных в HEVC WD7. Каждая из картинок IDR, картинок CRA и картинок BLA включает в себя только I картинки. Однако, каждая из картинок IDR, картинок CRA и картинок BLA отличается на основании определенных ограничений ссылки.

[0057] Картинки IDR заданы в AVC и заданы согласно HEVC WD7. В то время как картинки IDR могут использоваться для произвольного доступа, картинки IDR ограничены в том, что картинки после картинки IDR в порядке декодирования не могут использовать картинки, декодированные до картинки IDR в качестве опорных. В примере, иллюстрированном на ФИГ. 1 и 2, как описано выше, pic6 в видео последовательности 100, может быть картинкой IDR. Из-за ограничений, ассоциированных с картинками IDR, потоки битов, полагающиеся на картинки IDR для произвольного доступа, может иметь значительно более низкую эффективность кодирования.

[0058] Чтобы улучшить эффективность кодирования, концепция картинок CRA была введена в HEVC. Согласно HEVC WD7, картинка CRA, подобно картинке IDR, включает в себя только I картинки. Однако, картинкам, которые следуют за картинкой CRA в порядке декодирования, но предшествуют картинкам CRA в порядке вывода, разрешено использовать картинки, декодированные перед картинкой CRA в качестве опорных. Картинки, которые следуют за картинкой CRA в порядке декодирования, но предшествуют картинке CRA в порядке вывода, упоминаются как начальные картинки, ассоциированные с картинкой CRA (или начальные картинки для картинки CRA). Начальные картинки для картинки CRA корректно декодируются, если декодирование начинается с картинки IDR или CRA перед текущей картинкой CRA. Однако начальные картинки для картинки CRA могут не быть корректно декодируемыми, когда происходит произвольный доступ от картинки CRA. Что касается примера, иллюстрированного на ФИГ. 1 и 2, Pic9 может быть картинкой CRA, и Pic8 может быть начальной картинкой Pic9. Pic8 является корректно декодируемой, GOP2 доступна в Pic6, но может не быть корректно декодируемой, если к GOP2 получают доступ в качестве Pic9. Это имеет место потому, что Pic7 может не быть доступна, если к GOP2 получают доступ как Pic9. Чтобы предотвратить распространение ошибки от опорных картинок, которые могут не быть доступны в зависимости от того, где декодирование начинается, согласно HEVC WD7 все картинки, которые следуют за картинкой CRA и в порядке декодирования и порядке вывода, ограничены не использовать любую картинку, которая предшествует картинке CRA или в порядке декодирования или в порядке вывода (который включает в себя начальные картинки) в качестве опорных. Далее, начальные картинки обычно отбрасываются во время декодирования произвольного доступа.

[0059] Стыковка потока битов относится к конкатенации двух или более потоков битов или их частей. Например, первый поток битов может быть дополнен вторым потоком битов, возможно с некоторыми модификациями или к одному или к обоим из потоков битов, чтобы генерировать стыкованный поток битов. Первая закодированная картинка во втором потоке битов также упоминается как точка стыковки. Поэтому, картинки после точки стыковки в стыкованном потоке битов были порождены из второго потока битов, в то время как картинки, предшествующие точке стыковки в соединенном потоке битов, были порождены из первого потока битов. Стыковка потоков битов обычно выполняется модулем стыковки потоков битов. Модуль стыковки потоков битов часто являются облегченными и намного менее «интеллектуальными», чем кодеры видео. Например, модуль стыковки потоков битов может не быть оборудован способностями энтропийного кодирования и декодирования. Временная масштабируемость является применением, которое может использовать стыковку потока битов. Временная масштабируемость может относиться к декодированию последовательности видео с одной или более частотам кадров. Например, видео последовательность может быть способной к тому, чтобы быть декодированным в 30 кадров в секунду (кадр/сек) или 60 кадр/сек, на основании способностей системы. Чтобы достигнуть временной масштабируемости, видео последовательность может включать в себя множество временных уровней. При этом каждый временный уровень является закодированной последовательностью видео, ассоциированной с частотой кадров. Временный уровень с самой высокой частотой кадров может называться самый высокий временной уровень. Множество временных уровней могут быть стыкованы вместе, чтобы генерировать последовательность видео с самой высокой частотой кадров, например, закодированная последовательность видео с 30 кадр/сек стыкована с закодированной последовательностью видео, которая обеспечивает 60 кадр/сек.

[0060] Переключение потока битов может использоваться в адаптивных средах потоковой передачи. Операция переключения потока битов в некоторой картинке в переключателе к потоку битов является эффективной операцией стыковки потоков битов, в котором точка стыковки является точкой переключения потока битов, то есть первой картинкой от потока битов, к которому осуществлено переключение. Нужно отметить, что переключение потоков битов обычно выполняется в отношении двух потоков с одной и той же структурой кодирования. То есть эти два потока имеют одну и ту же структуру предсказания и одно и то же распределение картинок IDR, картинок CRA, картинок P и картинок B и т.д.

[0061] Понятие картинки доступа с разорванной ссылкой (BLA) было также введено в HEVC WD7 после введения картинок CRA и основано на концепции картинок CRA. Картинка BLA типично происходит из стыковки потоков битов в позиции картинки CRA, и в стыкованном потоке битов картинка CRA точки стыковки изменяется на картинку BLA. Самое существенное разность между картинками BLA и картинками CRA является следующим: для картинки CRA ассоциированные начальные картинки являются корректно декодируемыми, если декодирование начинается от картинки RAP перед картинкой CRA в порядке декодирования, и могут не быть корректно декодируемыми, когда произвольный доступ начинается с картинки CRA; для картинки BLA ассоциированные начальные картинки могут не являться корректно декодируемыми во всех случаях, даже когда декодирование начинается с картинки RAP перед картинкой BLA в порядке декодирования. Нужно отметить, что для конкретной картинки CRA или BLA некоторые из ассоциированных начальных картинок являются корректно декодируемыми, даже когда картинка CRA или BLA является первой картинкой в потоке битов. Эти начальные картинки упоминаются как декодируемые начальные картинки (DLPs), и другие начальные картинки упоминаются как недекодируемые начальные картинки (NLPs). NLPs также упоминаются как картинки, тегированные для отбрасывания (TFD) в HEVC WD9. Нужно отметить, что все начальные картинки, ассоциированные с картинкой IDR, являются картинками DLP. Таблица 2 является таблицей, включенной в HEVC WD7, которая определяет единицы NAL, определенные согласно HEVC WD7. Как иллюстрировано в Таблице 2, типы единиц NAL в HEVC WD7 включают в себя картинку CRA, картинку BLA, картинку IDR, VPS, SPS, PPS, и типы единиц NAL APS, которые соответствуют картинкам и наборам параметров, описанным выше.

ТАБЛИЦА 2:
Коды типов единиц NAL HEVC WD7 и классы типов единиц NAL
nal_unit_type Содержимое единицы NAL и структура синтаксиса RBSP Класс типов единиц NAL
0 Зарезервировано не-VCL
1 Кодированная вырезка не-RAP, не-TFD и не-TLA картинки slice_layer_rbsp() VCL
2 Кодированная вырезка TFD картинки
slice_layer_rbsp( )
VCL
3 Кодированная вырезка не-TFD TLA картинки
slice_layer_rbsp( )
VCL
4, 5 Кодированная вырезка CRA картинки
slice_layer_rbsp( )
VCL
6, 7 Кодированная вырезка BLA картинки
slice_layer_rbsp( )
VCL
8 Кодированная вырезка IDR картинки slice_layer_rbsp( ) VCL
9..24 Зарезервировано Н/О
25 Набор параметров видео video_parameter_set_rbsp( ) не-VCL
26 Набор параметров последовательности seq_parameter_set_rbsp( ) не-VCL
27 Набор параметров картинки pic_parameter_set_rbsp( ) не-VCL
28 Набор параметров адаптации aps_rbsp( ) не-VCL
29 Разделитель единиц доступа access_unit_delimiter_rbsp( ) не-VCL
30 Данные заполнения filler_data_rbsp() не-VCL
31 Дополнительная информация расширения (SEI) sei_rbsp( ) не-VCL
32..47 Зарезервировано n/a
48..63 Зарезервировано не-VCL

[0062] Чтобы упростить распределения единиц NAL, в документе S. Kanumuri, G. Sullivan, “Refinement of Random Access Point Support,” 10th Meeting, Stockholm, SE, July 2012, Doc. JCTVC-J0344 (в дальнейшем - “Kanumuri), который включен в описание полностью по ссылке, предлагает (1) ограничение в отношении картинок IDR таким образом, что не имеется начальных картинок, ассоциированных с какой-либо картинкой IDR (то есть никакая картинка не может следовать за картинкой IDR в порядке декодирования и предшествовать картинке IDR в порядке вывода), и (2) модифицированное распределение типов 4-7 единиц NAL, определенных согласно Таблице 2 выше, для картинок RAP следующим образом:

ТАБЛИЦА 3:
Предложенные типы единиц NAL согласно Kanumuri
Тип единицы NAL Описание Возможные типы SAP
4 Картинка CRA 1, 2, 3
5 Картинка BLA 1, 2, 3
6 Картинка BLA с не ассоциированными картинками TFD 1, 2
7 Картинка BLA без начальных картинок 1

[0063] В Таблице 3 типы SAP ссылаются на типы точки доступа потока, определенные в документе ISO/IEC 14496-12 4th Edition, “Information technology - Coding of audio-visual objects - Part 12: ISO base media file format,” w12640, 100th MPEG meeting, Geneva, April 2012, который включен полностью по ссылке. Как описано выше, картинки IDR и картинки BLA/CRA являются функционально различными для переключения потоков битов, хотя они являются функционально одинаковыми для произвольного доступа (например, приложений поиска). Для потока битов, переключающегося в картинках IDR, система кодирования видео может знать или предположить, что представление может быть непрерывным без затруднения (например, отсутствующие картинки не представлены). Это имеет место потому, что картинки после картинки IDR в порядке декодирования не могут использовать картинки, декодированные до картинки IDR в качестве опорных (то есть начальные картинки, ассоциированные с картинкой IDR, являются DLP). Однако, для потока битов, переключающегося в картинках BLA, некоторое накладывающееся декодирование одной или более картинок из обоих потоков может быть необходимо, чтобы гарантировать, что представление является непрерывным. Это накладывающееся декодирование может в настоящее время не быть возможным для совместимых с HEVC WD7 декодеров без дополнительной функциональной способности. Без дополнительной функциональной способности может не быть каких-либо картинок в ассоциированных позициях картинок TFD, которые должны быть представлены, поскольку они могут быть отброшены. Это может привести к представлению не обязательно непрерывному. Далее, даже если картинка BLA является картинкой BLA без ассоциированных картинок TFD, проблема остается той же, так как картинки TFD, которые присутствовали в первоначальном потоке битов, могут быть отброшены. Далее, если не было картинок TFD в первоначальном потоке битов, то картинка CRA (позже измененная, чтобы быть картинкой BLA из-за стыковки/переключения потока битов, и т.д.) могла быть закодирована как картинка IDR. Поэтому, не маркирование картинок IDR с начальными картинками в качестве картинок IDR (то есть не разрешение картинкам IDR иметь начальные картинки), как предложено Kanumuri, делает картинки IDR менее дружественными к системам для переключения потока битов.

[0064] С точки зрения систем потоковой передачи, например, динамической потоковой передачи по HTTP (DASH), выгодно быть в состоянии легко идентифицировать, какая картинка является картинкой RAP, и если декодирование начинается от картинки RAP, которая является самым ранним временем представления (например, самое раннее значение счета по порядку картинки (POC)). Поэтому, существующие структуры распределения типов единиц NAL различным картинкам RAP, так же как картинкам DLP и картинкам TFD, могут быть дополнительно улучшены, чтобы быть более дружественными к системам потоковой передачи. Согласно существующим структурам, для каждой картинки RAP систем должны проверить, имеются ли ассоциированные картинки DLP, чтобы знать, является ли время представления самой картинки RAP самым ранним временем представления, когда декодирование начинается с картинки RAP. Дополнительно, система должна проверить и сравнить времена представления всех картинок DLP, чтобы выяснить значение самого раннего времени представления.

[0065] Стандарты кодирования видео включают в себя спецификацию модели буферизации видео. В AVC и HEVC модель буферизации упоминается как гипотетический эталонный декодер (HRD), который включает в себя модель буферизации как буфера закодированных картинок (CPB) так и буфера декодированных картинок (DPB). Согласно HEVC WD7, HRD определен как модель гипотетического декодера, которая задает ограничения на изменчивость согласующихся потоков единиц NAL или согласующихся потоков битов, которые может сформировать процесс кодирования. Таким образом, в AVC и HEVC, соответствие потока битов и соответствие декодера заданы как части спецификации HRD. Согласно HEVC WD7, CPB является буфером «первый вошел- первый вышел», содержащим единицы доступа в порядке декодирования, и DPB является буфером, хранящим декодированные картинки для ссылки. Поведения CPB и DPB математически заданы согласно HRD. HRD непосредственно налагает ограничения на тактирование, размеры буфера и частоту следования битов, и косвенно налагает ограничения на характеристики и статистику потока битов. Полный набор параметров HRD включает в себя пять основных параметров: задержка удаления начальной CPB, размер CPB, частота следования битов, задержка вывода начальной DPB, и размер DPB. Согласно HEVC WD7, параметры HRD могут быть включены в параметры информации простоты использования видео (VUI), и параметры VUI могут быть включены в SPS. Нужно отметить, что, хотя HRD упоминается как декодер, HRD типично необходим на стороне кодера, чтобы гарантировать соответствие потока битов, и типично не является необходимым на стороне декодера. HEVC WD7 задает два типа потоков битов для соответствия HRD, а именно, Тип I и Тип II. HEVC WD7 также задает два типа соответствия декодера, а именно, соответствие декодера тактированию вывода и соответствие декодера порядку вывода.

[0066] В HRD-моделях AVC и HEVC декодирование или удаление CPB является основанным на единице доступа, и предполагается, что декодирование картинок является мгновенным. Время, необходимое для того, чтобы декодировать картинку в приложениях реального мира, не может быть равным нулю. Таким образом, в практических применениях, если согласующийся декодер строго следует сигнализированным временам декодирования, например, в сообщениях SEI тактирования картиной, чтобы начать декодировать единицы доступа, то самое раннее возможное время, когда конкретная декодированная картинка может быть выведена, равно времени декодирования этой конкретной картинки плюс время, необходимое для того, чтобы декодировать эту конкретную картинку.

[0067] Основанное на суб-картинках поведение CPB, подобное поведению CPB, описанное в Ye-Kui Wang, et al., “Sub-picture based CPB operation,” 9th Meeting: Geneva, CH, May 2012, JCTVC-I0588 (в дальнейшем “Wang”) было включено в HEVC WD7. Основанное на суб-картинках CPB согласно Wang, CPB обеспечивает удаление CPB, которое должно быть выполнено или на уровне единицы доступа (AU) или на уровне суб-картинки. Разрешая или на AU-уровне или на уровне суб-картинки, удаление CPB помогает достигнуть уменьшенной задержки кодека обеспечивающим взаимодействие способом. Когда удаление CPB происходит на уровне единицы доступа, единица доступа удаляется из CPB каждый раз, когда происходит операция удаления. Когда удаление CPB происходит на уровне суб-картинки, единица декодирования (DU), содержащая одну или более вырезок, удаляется из CPB каждый раз, когда происходит операция удаления.

[0068] Информация тактирования удаления CPB на уровне суб-картинки может быть сигнализирована в дополнение к информации тактирования удаления CPB на AU-уровне. Когда информация тактирования удаления CPB присутствует и для удаления на AU-уровне и на уровне суб-картинки, декодер может выбирать управлять CPB или на уровне AU или на уровне суб-картинки. Нужно отметить, что для того чтобы разрешить сообщению SEI тактирования текущей картинки и механизму удаления CPB HRD как на AU-уровне так и DU-уровне одновременно достигнуть задержки суб-картинки, DUs должны быть посланы прежде, чем вся AU будет закодирована, и сообщения SEI AU-уровня еще не могут быть отосланы прежде, чем вся не AU будет закодирована.

[0069] Согласно HEVC WD7 информации тактирования может включать в себя информацию, которая определяет временное расстояние между временами вывода HRD двух последовательных картинок. HEVC WD7 определяет следующие элементы синтаксиса информации тактирования:

time_scale - количество единиц времени, которые проходят в одну секунду. Например, система координат времени, которая измеряет время, используя часы на 27 МГц, имеет time_scale равное 27000000. time_scale должен быть больше чем 0.

num_units_in_tick - количество единиц времени генератора, работающего с частотой time_scale Гц, которая соответствует одному приращению (названному тактом системных часов) счетчика такта системных часов . num_units_in_tick должно быть больше чем 0.

[0070] Таким образом на основании значений time_scale и num_units_in_tick, переменная так называемого такта системных часов, tc, может быть выведена следующим образом:

tc=num_units_in_ticktime_scale (1)

[0071] Согласно HEVC WD7, переменная такта системных часов может быть использована для ограничения времен вывода HRD. Таким образом, в некоторых случаях может требоваться, чтобы разность между временами представления двух картинок, непрерывных в порядке вывода (то есть первой и второй картинок), было равно такту системных часов. HEVC WD7 включает в себя элемент синтаксиса fixed_pic_rate_flag, который указывает, равна ли разность между временами представления двух картинок, непрерывных в порядке вывода, такту системных часов. Элемент синтаксиса fixed_pic_rate_flag может быть включен в набор параметров VUI, которые могут быть включены в SPS. В HEVC WD7, когда элемент синтаксиса fixed_pic_rate_flag равен единице, временное расстояние между временами вывода HRD любых двух последовательных картинок в порядке вывода ограничено быть равным определенному такту системных часов, подчиняющемуся любому из следующих условий, являющихся истинным: (1) вторая картинка находится в той же закодированной видео последовательности, что и первая картинка; или (2) вторая картинка находится в другой закодированной видео последовательности, чем первая картинка и fixed_pic_rate_flag равен 1 в закодированной видео последовательности, содержащей вторую картинку, и значение num_units_in_ticktime_scale является одинаковым для обеих закодированных видео последовательностей. Когда элемент синтаксиса fixed_pic_rate_flag равен нулю, такие ограничения не применяются к временному расстоянию между временами вывода HRD любых двух последовательных картинок (то есть первой и второй картинок) в порядке вывода. Нужно отметить, что когда fixed_pic_rate_flag не присутствует, он логически выводится, чтобы быть равным 0. Нужно отметить, что согласно HEVC WD7, когда fixed_pic_rate_flag равен 1, адаптация потока, основанная на временной масштабируемости, может требовать изменения значения или time_scale или num_units_in_tick в случае, когда некоторые самые высокие временные уровни отклоняются. Нужно отметить, что HEVC WD7 обеспечивает следующую семантику для fixed_pic_rate_flag:

Когда fixed_pic_rate_flag будет равен 1 для закодированной видео последовательности, содержащей картинку n, значение, вычисленное для to, dpb (n) как задано в уравнении C-13 должно быть равным tc, как задано в Уравнении C-1 (использование значения tc для закодированной видео последовательности, содержащей картинку n), когда одно или более следующих условий верны для следующей картинки nn, которое задано для использования в Уравнении C-13:

- картинка nn находится в той же закодированной видео последовательности, что картинка n;

- картинка nn находится в другой закодированной видео последовательности, и fixed_pic_rate_flag равен 1 в закодированной видео последовательности, содержащей картинку nn, и значение num_units_in_ticktime_scale является одинаковым для обеих закодированных видео последовательностей.

[0072] При этом Уравнение C-1 соответствует уравнению (1) и Уравнение C-13 определен в HEVC WD7 следующим образом:

to, dpb (n)=к, dpb (nn)−к, dpb (n) (2)

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

[0074] ФИГ. 3 является блок-схемой, иллюстрирующей примерную систему 10 кодирования и декодирования видео, которая может использовать способы, описанные в настоящем описании. В частности, система кодирования и декодирования видео может использовать способы, описанные здесь, относящиеся к (1) распределению (назначению) типов единиц NAL, (2) поведению HRD на уровне суб-картинки или уровне единицы декодирования, (3) выполнению ссылки на идентификаторы набора параметров, (4) улучшенной семантике для fixed_pic_rate_flag, или любому и всем комбинациям этих способов. Система 10 кодирования и декодирования видео является примером видео системы, которая может использоваться для любого из следующих видео приложений: локальное воспроизведение, потоковая передача, вещание, многоадресное вещание и/или разговорные приложения. Исходное устройство 12 и устройство 14 назначения является примерами устройств кодирования, в которых исходное устройство 12 генерирует закодированные видео данные для передачи к устройству 14 назначения. В некоторых примерах исходные устройства 12 и устройство 14 назначения могут работать по существу симметричным способом таким образом, что каждое исходное устройство 12 и устройство 14 назначения включает в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может быть сконфигурирована, чтобы поддерживать одностороннюю или двухстороннюю передачу видео между исходным устройством 12 и устройством 14 назначения.

[0075] Хотя способы, описанные в настоящем описании, описаны в соединении с исходным устройством 12 и устройством 14 назначения, способы могут быть выполнены любым цифровым устройством кодирования и/или декодирования видео. Способы настоящего раскрытия могут также быть выполнены препроцессором видео. Дополнительно, хотя способы настоящего раскрытия в целом описаны как выполняемые устройством кодирования видео и устройством декодирования видео, эти способы могут также быть выполнены кодером/декодером видео, типично называемым "кодек". Таким образом, каждый видео кодер 20 и видео декодер 30 на ФИГ. 3 может быть включен в один или более кодеры или декодеры, любой из которых может интегрироваться как часть объединенного кодера/декодера (кодек) в соответствующем устройстве. Дополнительно, устройство, включающее в себя видео кодер 20 и/или видео декодер 30, может содержать интегральную схему, микропроцессор и/или устройство беспроводной связи, такое как сотовый телефон. Хотя не показано на ФИГ. 3, в некоторых аспектах видео кодер 20 и видео декодер 30 могут каждый интегрироваться с аудио кодером и декодером, и могут включать в себя соответствующие блоки MUX-DEMUX (мультиплексор/демультиплексор или другое аппаратное обеспечение и программное обеспечение, чтобы выполнять кодирование как аудио так и видео в общем потоке данных или отдельных потоках данных. Если применимо, блоки MUX-DEMUX могут соответствовать протоколу ITU H.223 мультиплексора, или другим протоколам, таким как протокол дейтаграмм пользователя (UDP).

[0076] Как иллюстрировано на ФИГ. 3, система 10 включает в себя исходное устройство 12, которое выдает закодированные видео данные, которые должны быть декодированы в более позднее время устройством 14 назначения. В частности, исходное устройство 12 выдает закодированные видео данные устройству 14 назначения через считываемый компьютером носитель 16. Устройство 14 назначения может принять закодированные видео данные, которые должны быть декодированы, через считываемый компьютером носитель 16. Исходное устройство 12 и устройство 14 назначения может содержать любое из широкого диапазона устройств, включающего в себя настольные компьютеры, портативный компьютер (то есть ноутбук), планшетные компьютеры, телевизионные приставки, телефонные трубки, такие как так называемые "смарт" телефоны, так называемые "смарт" клавиатуры, телевизоры, камеры, устройства отображения, цифровые медиаплееры, пульты видео игр, устройство потоковой передачи видео, или подобные. В некоторых случаях, исходное устройство 12 и устройство 14 назначения может быть оборудовано для беспроводной связи.

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

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

[0079] Устройство хранения может включать в себя любой из множества распределенных или локально доступных запоминающих носителей данных, таких как накопитель на жестких дисках, диски Blu-ray, DVD, CD-ROM, флэш-память, энергозависимая или энергонезависимая память, или любые другие подходящие цифровые запоминающие носители для того, чтобы хранить закодированные видео данные. В другом примере устройство хранения может соответствовать файловому серверу или другому промежуточному устройству хранения, которое может сохранить закодированное видео, генерируемое исходным устройством 12. Устройство 14 назначения может получить доступ к хранимым видео данным от устройства хранения через потоковую передачу или загрузку. Файловый сервер может быть любым типом сервера, способного к тому, чтобы хранить закодированные видео данные и передавать эти закодированные видео данные к устройству 14 назначения. Примерные файловые серверы включают в себя web-сервер (например, для вебсайта), сервер FTP, устройства сетевого хранения (NAS), или локальный дисковод. Устройство 14 назначения может получить доступ к закодированным видео данным через любое стандартное соединение данных, включающее в себя интернет-соединение. Оно может включать в себя беспроводный канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем, и т.д.), или комбинацию обоих, которая является подходящей для того, чтобы получить доступ к закодированным видео данным, хранящимся на файловом сервере. Передача закодированных видео данных от устройства хранения может быть потоковой передачей, передачей загрузки, или их комбинацией.

[0080] Способы настоящего раскрытия не обязательно ограничены беспроводными приложениями или параметрами настройки. Способы могут быть применены к кодированию видео в поддержку любого из множества мультимедийных приложений, таких как эфирное телевидение, передачи кабельного телевидения, передачи спутникового телевидения, Интернет, потоковой передачи видео, такие как динамическая адаптивная потоковая передача по HTTP (DASH), цифровое видео, которое закодировано на запоминающий носитель данных, декодирование цифрового видео, сохраненного на запоминающем носителе данных, или других приложений.

[0081] В примере согласно ФИГ. 3 исходное устройство 12 включает в себя видео источник 18, модуль 19 структуры кодирования, видео кодер 20, модуль 21 инкапсуляции, и интерфейс 22 вывода. Устройство 14 назначения включает в себя интерфейс 28 ввода, модуль 29 декапсуляции, видео декодер 30, и устройство 32 отображения. В других примерах исходное устройство 12 и устройство 14 назначения может включать в себя другие компоненты или компоновки. Например, исходное устройство 12 может принять видео данные из внешнего видео источника 18, такого как внешняя камера. Аналогично, устройство 14 назначения может соединяться с внешним устройством отображения, вместо включения интегрированного устройства отображения. Компоненты исходного устройства 12 и устройство 14 назначения каждое могут быть реализованы как любое из множества подходящих схем, таких как один или более микропроцессоров, цифровые сигнальные процессоры (DSPs), специализированные интегральные схемы (ASICs), программируемые пользователем вентильные матрицы (FPGAs), дискретная логика, программное обеспечение, аппаратное обеспечение, программно-аппаратные средства или любые их комбинации. Когда способы, описанные в настоящем описании, реализованы частично в программном обеспечении, устройство может сохранить инструкции для программного обеспечения в подходящем не временном считываемом компьютером носителе и выполнять инструкции в аппаратном обеспечении, использующем один или более процессоров, чтобы выполнить эти способы.

[0082] Видео источник 18 из исходного устройства 12 может включать в себя устройство захвата видео, такое как видео камера, видео архив, содержащий ранее захваченное видео, и/или интерфейс подачи видео, чтобы принять видео от поставщика контента видео. В качестве дальнейшей альтернативы, видео источник 18 может генерировать основанные на компьютерной графике данные в качестве исходного видео, или комбинацию живого видео, заархивированного видео и генерируемого компьютером видео. В некоторых случаях, если видео источник 18 является видео камерой, исходное устройство 12 и устройство 14 назначения может сформировать так называемые камерофоны или видео телефоны. Как упомянуто выше, однако, способы, описанные в настоящем раскрытии, могут быть применимыми к кодированию видео в целом, и могут быть применены к беспроводным и/или проводным приложениям. В каждом случае захваченное, предварительно захваченное или генерируемое компьютером видео может быть принято видео кодером 20. Интерфейс 22 вывода может быть сконфигурирован, чтобы вывести закодированные видео данные, такие как закодированная последовательность видео, на считываемый компьютером носитель 16. В некоторых примерах закодированная последовательность видео может быть выведена из интерфейса 22 вывода на устройство хранения. Интерфейс 28 ввода из устройства 14 назначения принимает закодированные видео данные от считываемого компьютером носителя 16. Устройство 32 отображения отображает декодированные данные видео пользователю, и могут содержать любое из множества устройств отображения, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED), или другой тип устройства отображения.

[0083] Модуль 19 структуры кодирования, видео кодер 20, модуль 21 инкапсуляции, модуль 29 декапсуляции и видео декодер 30 могут работать согласно стандарту кодирования видео, такому как разрабатываемый HEVC, описанный выше, и может в целом соответствовать Тестовой Модели HEVC (HM). Альтернативно, видео кодер 20 и видео декодер 30 могут работать согласно другим составляющим собственность стандартам или стандартам промышленности, таким как стандарт ITU-T H.264, альтернативно названный MPEG-4, Часть 10, Усовершенствованное видео кодирование (AVC), или расширениям таких стандартов. Модуль 19 структуры кодирования, видео кодер 20, модуль 21 инкапсуляции, модуль 29 декапсуляции и видео декодер 30 могут также работать согласно модифицированной версии стандарта кодирования видео, в котором модифицированная версия стандарта кодирования видео модифицирована, чтобы включать в себя любой и всех комбинаций способов, описанных в настоящем описании.

[0084] Видео кодер 20 может разделить видео кадр или картинку в последовательность одинакового размера блоков видео, таких как CU, описанных в HEVC WD7. CU включает в себя узел кодирования и единицы предсказания (PU), и единицы преобразования (TU), ассоциированные с узлом кодирования. Размер CU соответствует размеру узла кодирования и должен быть квадратным по форме. Размер CU может ранжироваться от 8x8 пикселей до размера блока дерева с максимумом 64x64 пикселей или больше. Каждая CU может содержать одну или более единиц PU и одну или более единиц TU. Данные синтаксиса, ассоциированные с CU, могут описывать, например, разделение CU в одну или более единиц PU. Режимы разделения могут отличаться между тем, является ли CU закодированной в режиме пропуска или прямом режиме, закодированной в режиме внутреннего предсказания, или закодированной в режиме внешнего предсказания. Единицы PU могут быть разделены, чтобы быть неквадратным по форме. Данные синтаксиса, ассоциированные с CU, могут также описывать, например, разделение CU в одну или более единиц TU согласно квадродереву. TU может быть квадратной или неквадратной (например, прямоугольной) по форме.

[0085] Стандарт HEVC обеспечивает преобразования согласно единицам TU, которые могут быть различными для различных единиц CU. Единицы TU типично имеют размеры на основании размера единиц PU в пределах заданной CU, определенной для разделенной LCU, хотя это может не всегда иметь место. Единицы TU типично имеют тот же размер или меньший, чем единицы PU. В некоторых примерах остаточные выборки, соответствующие CU, могут быть подразделены на меньшие единицы, используя структуру квадродерева, известную как "остаточное квадро дерево" (RQT). Листовые узлы RQT могут упоминаться как единицы преобразования (единицы TU). Значения пиксельной разности, ассоциированные с единицами TU, могут быть преобразованы, чтобы сформировать коэффициенты преобразования, которые могут быть квантованы.

[0086] Листовая CU может включать в себя одну или более единиц предсказания (единиц PU). В общем, PU представляет пространственную область, соответствующую всем или части соответствующей CU, и может включать в себя данные для того, чтобы извлечь опорную выборку для PU. Кроме того, PU включает в себя данные, относящиеся к предсказанию. Например, когда PU закодирована во внутреннем режиме, данные для PU могут быть включены в остаточное квадродерево (RQT), которое может включать в себя данные, описывающие режим внутреннего предсказания для TU, соответствующей PU. В качестве другого примера, когда PU закодирована во внешнем режиме, PU может включать в себя данные, определяющие один или более векторов движения для PU. Данные, определяющие вектор движения для PU, могут описывать, например, горизонтальный компонент вектора движения, вертикальный компонент вектора движения, разрешения для вектора движения (например, пиксельную точность в одну четверть или пиксельную точность в одну восьмую), опорную картинку, на которую вектор движения указывает, и/или список опорных картинок (например, Список 0, Список 1 или Список C) для вектора движения.

[0087] Листовая CU, имеющая одну или более единиц PU, может также включать в себя одну или более единиц преобразования (единиц TU). Единицы преобразования могут быть определены, используя RQT (также называемую структурой квадродерева TU), как описано выше. Например, флаг разделения может указывать, разделена ли листовая CU на четыре единицы преобразования. Затем, каждая единица преобразования может быть разделена далее в дополнительные суб-единицы TU. Когда TU не разделяется дополнительно, она может упоминаться как листовая TU. В общем, для внутреннего кодирования, все листовые единицы TU, принадлежащие листовой CU, совместно использует один и тот же режим внутреннего предсказания. Таким образом, один и тот же режим внутреннего предсказания в целом применяется, чтобы вычислить предсказанные значения для всех единиц TU листовой CU. Для внутреннего кодирования видео кодер может вычислить остаточное значение для каждой листовой TU, используя режим внутреннего предсказания, как разность между частью CU, соответствующей TU, и первоначальным блоком. TU не обязательно ограничена размером PU. Таким образом, единицы TU могут быть больше или меньше, чем PU. Для внутреннего кодирования PU может быть совместно расположен с соответствующей листовой TU для той же самой CU. В некоторых примерах максимальный размер листовой TU может соответствовать размеру соответствующей листовой CU.

[0088] Кроме того, единицы TU листовых единиц CU могут также быть ассоциированы с соответствующими структурами данных квадродерева, называемыми остаточными квадродеревьями(RQTs). Таким образом, листовая CU может включать в себя квадродерево, указывающее, как листовая CU разделена на единицы TU. Корневой узел квадродерева TU в целом соответствует листовой CU, в то время как корневой узел квадродерева CU в целом соответствует блоку дерева (или LCU). Единицы TU в RQT, которые не разделены, упоминается как листовые единицы TU. В общем, настоящее раскрытие использует термины CU и TU, чтобы ссылаться на листовые CU и листовые TU соответственно, если не отмечено иначе. Настоящее раскрытие использует термин "блок", чтобы ссылаться на любую из CU, PU, или TU, в контексте HEVC, или подобные структуры данных в контексте других стандартов (например, макроблоки и их суб-блоки в H.264/AVC).

[0089] В качестве примера, HM поддерживает предсказание в различных размерах PU. Предполагая, что размер конкретной CU равен 2Nx2N, HM поддерживает внутреннее предсказание в размерах PU, равных 2Nx2N или NxN, и внешнее предсказание в симметричных размерах PU, равных 2Nx2N, 2NxN, Nx2N, или NxN. HM также поддерживает асимметричное разделение для внешнего предсказания в размерах PU, равных 2NxnU, 2NxnD, nLx2N, и nRx2N. При асимметричном разделении одно направление CU не разделяется, в то время как другое направление разделяется на 25% и 75%. Часть CU, соответствующая 25%-ому разделению, обозначена “n”, сопровождаемая индикацией «верхний», «нижний», «Левый» или «Правый». Таким образом, например, “2NxnU” относится к 2Nx2N CU, которая разделена горизонтально с 2Nx0.5N PU сверху и 2Nx1.5N PU внизу.

[0090] В настоящем раскрытии “NxN” и “N на N” могут использоваться взаимозаменяемо, чтобы ссылаться на пиксельные измерения блока видео в терминах вертикального и горизонтального измерений, например, 16x16 пикселей или 16 на 16 пикселей. В общем, блок 16x16 имеет 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (x=16). Аналогично, блока NxN обычно имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет неотрицательное целочисленное значение. Пиксели в блоке могут быть размещены в рядах и колонках. Кроме того, блоки не должны обязательно иметь то же количество пикселей в горизонтальном направлении, как в вертикальном направлении. Например, блоки могут содержать NxM пикселей, где М не обязательно равно N.

[0091] После кодирования с внутренним предсказанием или с внешним предсказанием, используя единицы PU в CU, видео кодер 20 может вычислить остаточные данные для единиц TU в CU. Единицы PU могут содержать данные синтаксиса, описывающие способ, или режим генерирования предсказывающих пиксельных данных в пространственной области (также называемой пиксельной областью), и единицы TU может содержать коэффициенты в области преобразования после применения преобразования, такого как дискретное косинусное преобразование (DCT), целочисленное преобразование, вейвлет преобразование, или концептуально подобное преобразование, к остаточным видео данным. Остаточные данные могут соответствовать пиксельным разностям между пикселями незакодированной картинки и значениями предсказания, соответствующими единицам PU. Видео кодер 20 может сформировать единицы TU, включающие в себя остаточные данные для CU, и затем преобразовать единицы TU, чтобы сформировать коэффициенты преобразования для CU.

[0092] После любого преобразования, чтобы сформировать коэффициенты преобразования, видео кодер 20 может выполнить квантование коэффициентов преобразования. Квантование вообще относится к процессу, в котором коэффициенты преобразования квантуются, чтобы возможно уменьшить величину данных, использованных для представления коэффициентов, обеспечивая дальнейшее сжатие. Процесс квантования может уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Например, n-битовое значение может быть округлено в меньшую сторону к m-битовому значению во время квантования, где n больше чем m.

[0093] Вслед за квантованием видео кодер может сканировать коэффициенты преобразования, производя одномерный вектор из двумерной матрицы, включающей в себя квантованные коэффициенты преобразования. Сканирование может быть выполнено, чтобы поместить коэффициенты с более высокой энергией (и поэтому более низкой частоты) впереди массива и поместить коэффициенты с более низкой энергией (и поэтому более высокой частоты) позади массива. В некоторых примерах видео кодер 20 может использовать заранее заданный порядок сканирования, чтобы сканировать квантованные коэффициенты преобразования, чтобы сформировать преобразованный в последовательную форму вектор, который может быть энтропийно кодирован. В других примерах видео кодер 20 может выполнить адаптивное сканирование. После сканирования квантованных коэффициентов преобразования, чтобы сформировать одномерный вектор, видео кодер 20 может энтропийно кодировать одномерный вектор, например, согласно контекстно-адаптивному кодированию с переменной длиной кода (CAVLC), контекстно-адаптивному двоичному арифметическому кодированию (CABAC), основанному на синтаксисе контекстно-адаптивному двоичному арифметическому кодированию (SBAC), энтропийному кодированию с разделением интервала вероятности (PIPE) или другой методология энтропийного кодирования. Видео кодер 20 может также энтропийно кодировать элементы синтаксиса, ассоциированные с закодированными видео данными для использования видео декодером 30 при декодировании видео данных.

[0094] Чтобы выполнить CABAC, видео кодер 20 может назначить контекст в пределах контекстной модели к символу, который должен быть передан. Контекст может относиться, например, к тому являются ли соседние значения символа ненулевыми или нет. Чтобы выполнить CAVLC, видео кодер 20 может выбрать код с переменной длиной слова для символа, который должен быть передан. Кодовые слова в VLC могут быть построены таким образом, что относительно более короткие коды соответствуют более вероятным символам, в то время как более длинные коды соответствуют менее вероятным символам. Таким образом, использование VLC может достигнуть экономии битов, например, используя ключевые слова равной длины для каждого символа, который должен быть передан. Определение вероятности может быть основано на контексте, назначенном на символ.

[0095] Как описано выше, последовательность видео может быть закодирована согласно определенной структуре кодирования видео, где структура кодирования определяет распределение типов картинок (например, картинки RAP и не-RAP), использованных для кодирования последовательности видео. Например, последовательность видео может быть закодирована с картинками RAP, включенными с заранее определенными интервалами, чтобы облегчить произвольный доступ видео последовательности. Такая структура кодирования может быть полезной для приложений вещания. Дополнительно, последовательность видео может быть закодирована согласно структуре кодирования, которая минимизирует задержку приложений с низкой задержкой. Модуль 19 структуры кодирования может быть сконфигурирован, чтобы определить структуру кодирования, которая должна использоваться видео кодером 20 для того, чтобы кодировать последовательность видео, принятую из видео источника 18. В одном примере модуль 19 структуры кодирования может сохранить заранее определенные структуры кодирования, которые соответствуют соответствующим видео приложениям. Модуль 19 структуры кодирования может быть сконфигурирован для вывода информации, указывающей конкретную структуру кодирования, к каждому из видео кодера 20 и модуля 21 инкапсуляции. Видео кодер 20 принимает последовательность видео из видео источника 18 и информацию структуры кодирования от модуля 19 структуры кодирования и генерирует закодированные видео данные. Модуль 21 инкапсуляции принимает закодированные видео данные от видео кодера 20 и информацию, указывающая конкретную структуру кодирования, и генерирует закодированную последовательность видео, включающую в себя единицы доступа. Модуль 29 декапсуляции может быть сконфигурирован, чтобы принять закодированную последовательность видео и синтаксически разобрать единицы доступа и единицы NAL. Видео декодер 30 может быть сконфигурирован, чтобы принять единицы NAL и восстановить видео данные, на основании информации, включенной в принятые единицы NAL.

[0096] Нужно отметить, что модуль 19 структуры кодирования и/или видео кодер 20 может быть сконфигурирован, чтобы генерировать элементы синтаксиса, включенные в набор параметров. В некоторых примерах модуль 19 структуры кодирования может быть сконфигурирован, чтобы генерировать элементы синтаксиса, включенные в наборы параметров высокого уровня, такие как SPS, и видео кодер 20 может быть сконфигурирован, чтобы выполнить кодирование видео на основании элементов синтаксиса, принятых от структуры единицы кодирования, так же как вывести энтропийно кодированные элементы синтаксиса как часть закодированных видео данных.

[0097] В соответствии со способами настоящего раскрытия, распределение типов единиц NAL может быть выполнено таким образом, что устройство, такое как устройство 14 назначения, может легко идентифицировать картинку RAP и ассоциированную информацию тактирования. В одном примере картинки IDR без ассоциированных начальных картинок имеют отличный тип единицы NAL от картинок IDR, которые могут иметь ассоциированные начальные картинки. Например, картинки IDR без ассоциированных начальных картинок имеют тип М единицы NAL, в то время как картинки IDR, которые могут иметь ассоциированные начальные картинки, имеют тип N единицы NAL, в котором М не равно N, как иллюстрировано в Таблице 4. Нужно отметить, что в примере, иллюстрированном в Таблице 4, начальные картинки, ассоциированные с картинкой IDR, могут быть картинками DLP. В одном примере типы единиц NAL, иллюстрированные в Таблице 4, могут быть включены в коды типа единицы NAL согласно HEVC WD7 и классы типа единицы NAL, иллюстрированные в Таблице 2. Например, обратные значения типа единицы NAL в Таблице 2 могут использоваться для типов М и N единицы NAL в Таблице 4.

ТАБЛИЦА 4:
Различные типы единиц NAL IDR
M Закодированная вырезка картинки IDR без ассоциированных начальных картинок slice_layer_rbsp( ) VCL
N Закодированная вырезка картинки IDR, которая может иметь ассоциированные начальные картинки
leading pictures slice_layer_rbsp( )
VCL

[0098] В другом примере картинки CRA без ассоциированных начальных картинок имеют другой тип единицы NAL, отличающийся от картинок CRA, которые могут иметь ассоциированные начальные картинки. Кроме того, картинки CRA без ассоциированных картинок TFD имеют другую единицу NAL, отличающаяся от картинок CRA, которые могут иметь ассоциированные картинки TFD. Соответственно, три различных типа единицы NAL могут использоваться для различных типов картинок CRA, как иллюстрировано в Таблице 5. В одном примере типы единиц NAL, иллюстрированные в Таблице 5, могут быть включены в коды типа единицы NAL HEVC WD7 и классы типа единицы NAL, иллюстрированные в Таблице 2. Например, обратные значения типа единицы NAL в Таблице 1 могут использоваться для типов X, Y, и Z единицы NAL в Таблице 5.

ТАБЛИЦА 5:
Различные типы единиц NAL CRA
X Закодированная вырезка картинки CRA без ассоциированных начальных картинок slice_layer_rbsp( ) VCL
Y Закодированная вырезка картинки CRA, которая не имеет ассоциированных TFD (но может иметь ассоциированные картинки DLP) slice_layer_rbsp() VCL
Z Закодированная вырезка картинки CRA, которая может иметь ассоциированные картинки TFD slice_layer_rbsp( ) VCL

[0099] В другом примере картинки BLA без ассоциированных начальных картинок могут иметь другой тип единицы NAL, отличающийся от картинок BLA, которые могут иметь ассоциированные начальные картинки. Кроме того, картинки BLA без ассоциированных картинок TFD могут иметь отличную единицу NAL, отличающуюся от картинок BLA, которые могут иметь ассоциированные картинки TFD. Соответственно, три различных типа единицы NAL могут использоваться для различных типов BLA, как иллюстрировано в Таблице 6. В одном примере типы единиц NAL, иллюстрированные в Таблице 6, могут быть включены в коды типа единицы NAL HEVC WD7 и классы типа единицы NAL, иллюстрированные в Таблице 2. Например, обратные значения типа единицы NAL в Таблице 2 могут использоваться для типов A, B, и C единицы NAL в Таблице 6.

ТАБЛИЦА 6:
Различные типы единиц NAL BLA
A Закодированная вырезка картинки BLA без ассоциированных начальных картинок slice_layer_rbsp( ) VCL
B Закодированная вырезка картинки BLA, которая имеет не ассоциированную TFD (но может ассоциированные картинки DLP) slice_layer_rbsp() VCL
C Закодированная вырезка картинки BLA, которая может иметь ассоциированные картинки TFD slice_layer_rbsp( ) VCL

[0100] Любая и все комбинации типов единиц NAL, описанные со ссылками на Таблицы 4-6, могут использоваться для распределения типов единиц NAL. В одном примере все типы единиц NAL, описанные со ссылками на Таблицы 4-6, могут использоваться для распределения типов единиц NAL. Таблица 7 иллюстрирует пример, где все типы NAL, иллюстрированные в Таблицах 4-6, используются для распределения типов единиц NAL. Как иллюстрировано в Таблице 7, тип единицы NAL включают в себя типы единиц NAL картинки CRA, картинки BLA и картинки IDR, описанные со ссылками на Таблицы 4-6, так же как типов единиц NAL VPS, SPS, PPS, и APS, описанные выше. Таблица 7 может быть противопоставлена Таблице 2 выше в том, что распределение типов единиц NAL, предоставленных в Таблице 7, включает в себя множественные типы единиц NAL для картинок IDR, CRA и BLA, тогда как распределение типов единиц NAL, предоставленных в Таблице 1, включает в себя единственный тип единицы NAL для каждой из картинок IDR, CRA и BLA.

ТАБЛИЦА 7:
Коды типа единицы NAL и классы типа единиц NAL
nal_unit_type Содержимое единицы NAL и структура синтаксиса RBSP Класс типа единицы NAL
0 Не задано не-VCL
1 Закодированная вырезка картинки не-RAP, не-TFD, не-DLP и не-TLA slice_layer_rbsp( ) VCL
2 Закодированная вырезка картинки TLA
slice_layer_rbsp( )
VCL
3 Закодированная вырезка картинки TFD
slice_layer_rbsp( )
VCL
4 Закодированная вырезка картинки DLP
slice_layer_rbsp( )
VCL
5 Закодированная вырезка картинки CRA без ассоциированных начальных картинок slice_layer_rbsp( ) VCL
6 Закодированная вырезка картинки CRA, которая не имеет ассоциированной TFD (но может иметь ассоциированные картинки DLP) slice_layer_rbsp( ) VCL
7 Закодированная вырезка картинки CRA, которая может иметь ассоциированные картинки TFD slice_layer_rbsp( ) VCL
8 Закодированная вырезка картинки BLA без ассоциированных начальных картинок slice_layer_rbsp( ) VCL
9 Закодированная вырезка картинки BLA, которая не имеет ассоциированной TFD (но может иметь ассоциированные картинки DLP) slice_layer_rbsp( ) VCL
10 Закодированная вырезка картинки BLA, которая может иметь ассоциированные картинки TFD slice_layer_rbsp( ) VCL
11 Закодированная вырезка картинки IDR без ассоциированных начальных картинок slice_layer_rbsp( ) VCL
12 Закодированная вырезка картинки IDR которая может иметь ассоциированные начальные картинки slice_layer_rbsp( ) VCL
13..24 Зарезервировано n/a
25 Набор параметров видео
video_parameter_set_rbsp( )
не-VCL
26 Набор параметров последовательности seq_parameter_set_rbsp( ) не-VCL
27 Набор параметров картинки pic_parameter_set_rbsp( ) не-VCL
28 Набор параметров адаптации
aps_rbsp( )
не-VCL
29 Разделитель единиц доступа access_unit_delimiter_rbsp( ) не-VCL
30 Данные заполнения filler_data_rbsp() не-VCL
31 Дополнительная информация расширения (SEI) sei_rbsp( ) не-VCL
32..47 Зарезервировано Н/О
48..63 Не задано не-VCL

[0101] Модуль 21 инкапсуляции может быть сконфигурирован, чтобы принять закодированные видео данные от видео кодера 20 и информацию, указывающую конкретную структуру кодирования и генерировать закодированную последовательность видео, включающую в себя единицы доступа на основании распределения типов единиц NAL, иллюстрированных в любой и всех комбинациях распределений единицы NAL, иллюстрированных в Таблицах 2-7. Дополнительно, модуль 29 декапсуляции может быть сконфигурирован, чтобы принять закодированную последовательность видео и синтаксически разобрать единицы доступа и единицы NAL, где единицы NAL назначены на основании любой и всех комбинаций распределений единиц NAL, иллюстрированных в Таблицах 2-7.

[0102] Как описано выше, согласно HEVC WD7, для того, чтобы разрешить сообщение SEI тактирования текущей картинки и механизм, чтобы разрешить удаление CPB HRD как AU-уровню так и DU-уровню в то же самое время достигнуть задержки суб-картинки, единицы DU должны быть посланы прежде, чем вся AU будет закодирована, и сообщения SEI AU-уровня еще не могут быть отосланы прежде, чем вся AU будет закодирована. В соответствии со способами настоящего раскрытия, модуль 21 инкапсуляции и модуль 29 декапсуляции могут конфигурироваться таким образом, что поведение HRD уровня суб-картинки или уровня блока декодирования могут быть модифицированы по сравнению с HEVC WD7.

[0103] Например, модуль 21 инкапсуляции может быть сконфигурирован таким образом, что сообщения SEI AU-уровня посылают после того, как вся AU закодирована. Такое сообщение SEI AU-уровня может быть включено в единицу NAL SEI с другим типом единицы NAL. Одно различие между такой единицей NAL SEI и существующими определениями единиц NAL SEI, например, как определено в HEVC WD7, заключается в том, что этому отличному типу единицы NAL SEI может быть разрешено следовать за последней единицей NAL VCL в той же AU в порядке декодирования, и может быть ограничено таким образом, что она не должна предшествовать первой единице NAL VCL в том же самом AU в порядке декодирования. Обычные единицы NAL SEI и сообщения SEI могут соответственно упоминаться как единицы NAL SEI префикса и сообщения SEI префикса, в то время как отличная единица NAL SEI и сообщение SEI, описанные здесь, могут соответственно упоминаться как единицы NAL SEI суффикса и сообщения SEI суффикса.

[0104] В дополнение к тому, чтобы быть сконфигурированным, чтобы генерировать закодированную последовательность видео на основании любой и всех комбинаций распределений единиц NAL, иллюстрированных в Таблицах 2-7, модуль 21 инкапсуляции может быть сконфигурирован, чтобы генерировать закодированную последовательность видео, включающую в себя единицы NAL SEI префикса и суффикса. Аналогично, модуль 29 декапсуляции может быть сконфигурирован, чтобы принять закодированную последовательность видео и синтаксически разобрать единицы доступа и единицы NAL, где единицы NAL включают в себя типы единиц NAL SEI префикса и суффикса. Таким образом, модуль 29 декапсуляции может быть сконфигурирован, чтобы извлечь единицы NAL SEI суффикса из единиц доступа. Таблица 8 иллюстрирует пример, где все типы NAL, иллюстрированные в Таблицах 4-6, используются для распределения типов единиц NAL, так же как единиц NAL SEI префикса и суффикса.

ТАБЛИЦА 8:
Коды типа единиц NAL и классы типа единиц NAL
nal_unit_type Содержимое единицы NAL и стуктура синтаксиса RBSP Класс типа единицы NAL
0 Не задано не-VCL
1 Закодированная вырезка картинки не-RAP, не-TFD, не-DLP and не-TLA slice_layer_rbsp( ) VCL
2 Закодированная вырезка картинки TLA
slice_layer_rbsp( )
VCL
3 Закодированная вырезка картинки TFD slice_layer_rbsp( ) VCL
4 Закодированная вырезка картинки DLP slice_layer_rbsp( ) VCL
5 Закодированная вырезка картинки CRA без ассоциированных начальных картинок
slice_layer_rbsp( )
VCL
6 Закодированная вырезка картинки CRA, которая не имеет ассоциированной TFD (но может иметь ассоциированные картинки DLP)
slice_layer_rbsp( )
VCL
7 Закодированная вырезка картинки CRA, которая может иметь ассоциированные картинки TFD
slice_layer_rbsp( )
VCL
8 Закодированная вырезка картинки BLA без ассоциированных начальных картинок slice_layer_rbsp( ) VCL
9 Закодированная вырезка картинки BLA, которая не имеет ассоциированной TFD (но может иметь ассоциированные картинки DLP)
slice_layer_rbsp( )
VCL
10 Закодированная вырезка картинки BLA, которая может иметь ассоциированные картинки TFD
slice_layer_rbsp( )
VCL
11 Закодированная вырезка картинки IDR без ассоциированных начальных картинок slice_layer_rbsp( ) VCL
12 Закодированная вырезка картинки IDR которая может иметь ассоциированные
начальные картинки slice_layer_rbsp( )
VCL
13..24 Зарезервировано n/a
25 Набор параметров видео video_parameter_set_rbsp( ) не-VCL
26 Набор параметров последовательности seq_parameter_set_rbsp( ) не-VCL
27 Набор параметров картинки pic_parameter_set_rbsp( ) не-VCL
28 Набор параметров адаптации
aps_rbsp( )
не-VCL
29 Разделитель единиц доступа access_unit_delimiter_rbsp( ) не-VCL
30 Данные заполнения
filler_data_rbsp( )
не-VCL
31 Дополнительная информация расширения (SEI) префикса
sei_rbsp( )
не-VCL
32 Дополнительная информация расширения (SEI) суффикса
sei_rbsp( )
не-VCL
33..47 Зарезервировано n/a
48..63 Не задано не-VCL

[0105] Как описано выше, в дополнение к единицам NAL SEI не-VCL типы единиц NAL включают в себя единицы NAL VPS, SPS, PPS и APS. Согласно определенным типам набора параметров в HEVC WD7, каждый SPS ссылается на ID VPS, каждый PPS ссылается на ID SPS, и каждый заголовок вырезки ссылается на ID PPS и возможно на ID APS. Видео кодер 20 и/или модуль 19 структуры кодирования может быть сконфигурирован, чтобы генерировать наборы параметров согласно определенным наборам параметров в HEVC WD7. Кроме того, видео кодер 20 и/или модуль 19 структуры кодирования может быть сконфигурирован, чтобы генерировать наборы параметров, где ID VPS и ID SPS (например, с ID VPS, предшествующим ID SPS), могут быть необязательно сигнализированы в заголовках вырезки. В одном примере, где ID VPS и ID SPS сигнализированы в заголовке вырезки, никакой ID VPS не будет расположен в SPS и никакой ID SPS не будет расположен в PPS. Дополнительно, в одном примере, ID VPS и ID SPS могут присутствовать в заголовках вырезки каждой картинки RAP, и каждая картинка может быть ассоциирована с сообщением SEI точки восстановления. Дополнительно, в других примерах, ID VPS и ID SPS могут присутствовать в заголовке вырезки для других картинок.

[0106] ФИГ. 4 является блок-схемой, иллюстрирующей примерный модуль инкапсуляции, который может реализовать способы, описанные в настоящем раскрытии. В примере, иллюстрированном на ФИГ. 4, модуль 21 инкапсуляции включает в себя конструктор 402 единиц NAL VCL, конструктор 404 единиц NAL не-VCL, конструктор 406 единиц доступа, и интерфейс 408 вывода потока битов. Модуль 21 инкапсуляции принимает закодированные видео данные и синтаксис высокого уровня и выводит закодированный видео поток битов. Закодированные видео данные могут включать в себя остаточные видео данные, и данные синтаксиса, ассоциированные с вырезкой. Данные синтаксиса высокого уровня могут включать в себя, например, элементы синтаксиса, включенные в набор параметров, сообщения SEI, или другие элементы синтаксиса, определенные стандартом кодирования видео, таким как разрабатываемый стандарт HEVC. Закодированный видео поток битов может включать в себя одну или более закодированных видео последовательностей и может в целом соответствовать стандарту кодирования видео, такому как разрабатываемый стандарт HEVC. Как описано выше, единицы NAL VCL включают в себя вырезку данных видео. Конструктор 402 единиц NAL VCL может быть сконфигурирован, чтобы принять вырезки закодированных видео данных и генерировать единицы NAL VCL на основании типа картинки, включающей в себя вырезку. Конструктор 402 единиц NAL VCL может быть сконфигурирован, чтобы генерировать единицы NAL VCL согласно любой и всем комбинациям распределений NAL, описанных выше со ссылками на Таблицы 2-8. Конструктор 402 единиц NAL VCL может быть сконфигурирован, чтобы включать заголовок в единицу NAL VCL, где заголовок идентифицирует тип единицы NAL VCL.

[0107] Например, конструктор 402 единиц NAL VCL может быть сконфигурирован, чтобы принять вырезку видео данных, включенных в картинку IDR и (1), если картинка IDR не имеет ассоциированных начальных картинок, инкапсулировать вырезку видео данных в единицу NAL с типом, который указывает, что картинка IDR не имеет начальных картинок, или (2), если картинка IDR имеет ассоциированные начальные картинки, инкапсулировать вырезку видео данных в единицу NAL с типом, который указывает, что картинка IDR имеет начальные картинки. Конструктор 402 единиц NAL VCL может быть сконфигурирован, чтобы принять вырезку видео данных, включенных в картинку CRA и (1), если картинка CRA не имеет ассоциированных начальных картинок, инкапсулировать вырезку видео данных в единицу NAL с типом, который указывает, что картинка CRA не имеет начальных картинок, или (2), если картинка CRA имеет ассоциированные начальные картинки, инкапсулировать вырезку видео данных в единицу NAL с типом, который указывает, что картинка CRA имеет начальные картинки. Дополнительно, если начальные картинки, ассоциированные с картинкой CRA, являются картинками TFD, конструктор 402 единиц NAL VCL может быть сконфигурирован, чтобы инкапсулировать вырезку видео данных в единицу NAL с типом, который указывает, что начальная картинка, ассоциированная с картинками CRA, является TFD.

[0108] Дополнительно, если начальные картинки, ассоциированные с картинкой CRA, не являются картинками TFD, конструктор 402 единиц NAL VCL может быть сконфигурирован, чтобы инкапсулировать вырезку видео данных в единицу NAL с типом, который указывает, что начальная картинка, ассоциированная с картинками CRA, не является TFD. Дополнительно, конструктор 402 единиц NAL VCL может быть сконфигурирован, чтобы принять вырезку видео данных, включенных в картинку BLA и (1), если картинка BLA не имеет ассоциированных начальных картинок, инкапсулировать вырезку видео данных в единицу NAL с типом, который указывает, что картинка BLA не имеет начальных картинок, или (2), если картинка BLA имеет ассоциированные начальные картинки, инкапсулировать вырезку видео данных в единицу NAL с типом, который указывает, что картинка BLA имеет начальные картинки. Дополнительно, если начальные картинки, ассоциированные с картинкой BLA, являются картинками TFD, конструктор 402 единиц NAL VCL может быть сконфигурирован, чтобы инкапсулировать вырезку видео данных в единицу NAL с типом, который указывает, что начальная картинка, ассоциированная с картинками BLA, является TFD. Дополнительно, если начальные картинки, ассоциированные с картинкой BLA, не являются картинками TFD, конструктор 402 единиц NAL VCL может быть сконфигурирован, чтобы инкапсулировать вырезку видео данных в единицу NAL с типом, который указывает, что начальная картинка, ассоциированная с картинками BLA, не является TFD.

[0109] ФИГ. 5 является последовательностью операций, иллюстрирующей пример генерирования единиц NAL VCL согласно способам настоящего раскрытия. Хотя пример генерирования единиц NAL VCL, иллюстрированный на ФИГ. 5, описан как выполняемый конструктором 402 единиц NAL VCL, любая комбинация исходного устройства 12, видео кодера 20, модуля 21 инкапсуляции, и комбинаций этих компонентов могут выполнить пример генерирования единиц NAL VCL, иллюстрированный на ФИГ. 5. Как иллюстрировано на ФИГ. 5, конструктор 402 единиц NAL VCL принимает вырезку видео данных (502). Вырезка видео данных может быть закодированными данными видео, закодированными согласно любому из способов кодирования, описанных в настоящем описании. Вырезка видео данных может быть включена в один из типов картинок, описанных в настоящем описании. Конструктор 402 единиц NAL VCL определяет, включена ли вырезка видео данных в картинку IDR или CRA (504).

[0110] Если вырезка видео данных включена в картинку IDR (ветвь “IDR” 504), конструктор 402 единиц NAL VCL определяет, имеет ли картинка IDR ассоциированные начальные картинки (506). Если картинка IDR не имеет ассоциированных начальных картинок (ветвь "НЕТ" 506), конструктор 402 единиц NAL VCL генерирует единицу NAL VCL, которая указывает, что картинка IDR не имеет ассоциированных начальных картинок (508). Если картинка IDR имеет ассоциированные начальные картинки ("ДА" ветвь 506), конструктор 402 единиц NAL VCL генерирует единицу NAL VCL, которая указывает, что картинка IDR имеет ассоциированные начальные картинки (510).

[0111] Если вырезка видео данных включена в картинку CRA, конструктор 402 единиц NAL VCL определяет, имеет ли картинка CRA ассоциированные начальные картинки (512). Если картинка CRA не имеет ассоциированных начальных картинок (ветвь "НЕТ" 512), конструктор 402 единиц NAL VCL генерирует единицу NAL VCL, которая указывает, что картинка CRA не имеет ассоциированных начальных картинок (514). Если картинка CRA имеет ассоциированные начальные картинки ("ДА" ветвь 512), конструктор 402 единиц NAL VCL определяет, являются ли ассоциированные начальные картинки картинками TFD (516).

[0112] Если ассоциированные начальные картинки для картинки CRA являются картинками TFD (ветвь “YEAS” 516), конструктор 402 единиц NAL VCL генерирует единицу NAL VCL, которая указывает, что ассоциированные начальные картинки CRA являются картинками TFD (518). Если ассоциированные начальные картинки для картинки BLA не являются картинками TFD (ветвь "НЕТ" 516), конструктор 402 единиц NAL VCL генерирует единицу NAL VCL для этого, которая указывает, что ассоциированные начальные картинки не являются картинками TFD (520).

[0113] Конструктор 402 единиц NAL VCL может генерировать единицы NAL посредством инкапсулирования данных вырезки в единицу NAL и включать значение типа единицы NAL в заголовок единицы NAL. Каждое значение типа единицы NAL может соответствовать типу соответствующей единицы NAL. В одном примере значения типа единицы NAL могут быть определены согласно Таблице 7. Генерируемые единицы NAL могут быть выведены конструктором единицы NAL 402, чтобы получить доступ к конструктору 406 единицы доступа для включения в единицу доступа (522).

[0114] В этом способе модуль 21 инкапсуляции представляет пример устройства для генерирования потока битов, включающего в себя видео данные, причем устройство включает в себя процессор, сконфигурированный, чтобы определить, имеет ли картинка точки произвольного доступа (RAP), тип, который имеет ассоциированные начальные картинки, и является ли картинка RAP картинкой мгновенного обновления декодера (IDR) или картинкой чистого произвольного доступа (CRA), инкапсулировать вырезку картинки RAP в единицу уровня абстракции сети (NAL), при этом единица NAL включает в себя значение типа единицы NAL, которое указывает, имеет ли картинка RAP тип, который имеет ассоциированные начальные картинки, и генерировать поток битов, включающий в себя единицу NAL.

[0115] Аналогично, способ согласно ФИГ. 5 представляет пример способа генерирования потока битов, включающего в себя видео данные, причем способ включает в себя определение, имеет ли картинка точки произвольного доступа (RAP) тип, который имеет ассоциированные начальные картинки, и является ли картинка RAP картинкой мгновенного обновления декодера (IDR) или картинкой чистого произвольного доступа (CRA), инкапсулирование вырезки картинки RAP в единицу уровня абстракции сети (NAL), при этом единица NAL, включает в себя значение типа единицы NAL, которое указывает, имеет ли картинка RAP тип, который имеет ассоциированные начальные картинки, и генерирование потока битов, включающего в себя единицу NAL.

[0116] Обращаясь снова к ФИГ. 4, конструктор 404 единиц NAL не-VCL может быть сконфигурирован, чтобы принять элементы синтаксиса высокого уровня, такие как элементы синтаксиса, включенные в наборы параметров и сообщения SEI, как описано выше, и генерировать единицы NAL не-VCL на основании любой и всех комбинаций распределений единиц NAL, описанных выше со ссылками на Таблицы 2-8. Конструктор 404 единиц NAL не-VCL может быть сконфигурирован, чтобы генерировать единицы NAL не-VCL посредством инкапсулирования данных синтаксиса в единицу NAL и включая себя значение типа единицы NAL в заголовок единицы NAL. Например, конструктор NAL не-VCL может быть сконфигурирован, чтобы принять элементы синтаксиса, включающие в себя в набор параметров и включать значение типа единицы NAL, указывающее тип набора параметров, в заголовок единицы NAL.

[0117] Дополнительно, конструктор 404 единиц NAL не-VCL может быть сконфигурирован, чтобы принять сообщения SEI AU-уровня и генерировать единицы NAL сообщения SEI. В одном примере, конструктор 404 единиц NAL не-VCL может быть сконфигурирован, чтобы генерировать два типа единиц NAL сообщения SEI, где первый тип единицы NAL SEI указывает, что такая единица NAL SEI может следовать за последней единицей NAL VCL в единице доступа в порядке декодирования, и второй тип единиц NAL SEI указывает, что такая единица NAL SEI может не следовать за последней единицей NAL VCL в единице доступа в порядке декодирования. Дополнительно, первый тип SEI NAL может быть ограничен таким образом, что нельзя разрешать предшествовать первой единице NAL VCL в одной и той же единице доступа в порядке декодирования. Первый тип единицы NAL может упоминаться как единицы NAL SEI суффикса и второй тип единиц NAL могут упоминаться как единицы NAL SEI префикса. Конструктор 404 единиц NAL не-VCL выводит единицы NAL не-VCL на конструктор 406 единиц доступа.

[0118] Конструктор 406 единиц доступа может быть сконфигурирован, чтобы принять единицы NAL VCL и единицы NAL не-VCL и генерировать единицы доступа. Конструктор 406 единиц доступа может принять любой тип единицы NAL, определенной в Таблицах 2-8. Конструктор 406 единиц доступа VCL может быть сконфигурирован, чтобы генерировать единицы доступа на основании любой и всех комбинаций типов единиц NAL, описанных в настоящем описании. Как описано выше, согласно HEVC WD7, единица доступа является набором единиц NAL, которые являются последовательными в порядке декодирования и содержат одну закодированную картинку. Таким образом, конструктор 406 единиц доступа может быть сконфигурирован, чтобы принять множество единиц NAL и компоновать множество единиц NAL согласно порядку декодирования. Дополнительно, конструктор 406 единиц доступа может быть сконфигурирован, чтобы компоновать единицу NAL SEI суффикса, как описано выше, таким образом, что она следует за последней единицей NAL VCL в единице доступа и/или не предшествует первой единице NAL VCL в одной и той же единице доступа.

[0119] ФИГ. 6 является последовательностью операций, иллюстрирующей пример генерирования единиц NAL не-VCL согласно способам настоящего раскрытия. Хотя пример генерирования единиц NAL не-VCL, иллюстрированный на ФИГ. 6, описан как выполняемый конструктором 404 единиц NAL не-VCL и конструктором 406 единиц доступа, любая комбинация исходного устройства 12, видео кодера 20, модуля 21 инкапсуляции и комбинации этих компонентов могут выполнить пример генерирования единицы NAL не-VCL, иллюстрированный на ФИГ. 6.

[0120] Как показано на ФИГ. 6, конструктор 404 единиц NAL не-VCL принимает сообщение SEI 602). Сообщение SEI может быть любым типом сообщения SEI, описанного выше со ссылкой на Таблицу 1. Конструктор 404 единиц NAL не-VCL определяет, является ли сообщение SEI сообщением SEI префикса или сообщением SEI суффикса (604).

[0121] Если сообщение SEI является сообщением SEI суффикса (ветвь "СУФФИКС" 604), конструктор 404 единиц NAL не-VCL генерирует значение типа для единицы NAL SEI, которая указывает, что единица NAL SEI является сообщением SEI суффикса (606). Если сообщение SEI является сообщением SEI префикса (ветвь "ПРЕФИКС" 604), конструктор 404 единиц NAL не-VCL генерирует значение типа для единицы NAL SEI, которая указывает, что единица NAL SEI является обычным сообщением SEI (608).

[0122] Конструктор 406 единиц доступа принимает сгенерированные единицы NAL, которые могут включать в себя любую комбинацию типов единиц NAL, описанных выше со ссылками на Таблицы 2-8 (610). Конструктор 406 единиц доступа генерирует единицы доступа, включенные в принятые единицы NAL (612). Если сгенерированная единица доступа включает в себя единицу NAL SEI суффикса, единицы NAL единицы доступа могут быть скомпонованы таким образом, чтобы NAL SEI суффикса не предшествует первой единице NAL VCL в одной и той же единице доступа, но может следовать за последней единицей NAL VCL в единице доступа в порядке декодирования.

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

[0124] Аналогично, способ согласно ФИГ. 6 представляет пример способа генерирования потока битов, включающего в себя видео данные, причем способ включает в себя определение, является ли сообщение дополнительной информации расширения (SEI) сообщением SEI префикса или сообщением SEI суффикса, при этом сообщение SEI включает в себя данные, относящиеся к закодированным видео данным, инкапсулирование сообщения SEI в единицу NAL SEI, в котором единица NAL SEI включает в себя значение типа единицы NAL, которое указывает, является ли единица NAL SEI единицей NAL SEI префикса или единицей NAL SEI суффикса и является ли сообщение SEI сообщением SEI префикса или сообщением SEI суффикса, и генерирование потока битов, включающего в себя по меньшей мере эту единицу NAL SEI.

[0125] Обращаясь снова к ФИГ. 4, интерфейс 408 вывода потока битов может быть сконфигурирован, чтобы принять единицы доступа и генерировать закодированную последовательность видео. Интерфейс 408 вывода потока битов может быть также сконфигурирован выводить закодированную последовательность видео как часть закодированного видео потока битов, причем закодированный видео поток битов включает в себя одну или более закодированных видео последовательностей на основании любой и всех комбинаций типов единиц NAL, описанных в настоящем описании. Как описано выше, согласно HEVC WD7, закодированная последовательность видео является набором единиц доступа, которые являются последовательными в порядке декодирования. Таким образом, интерфейс 408 вывода потока битов может быть сконфигурирован, чтобы принять множество единиц доступа и компоновать множество единиц доступа согласно порядку декодирования.

[0126] Как описано выше, модуль 19 структуры кодирования и/или видео кодер 20 может быть сконфигурирован, чтобы генерировать элементы синтаксиса, включенные в набор параметров, включающий в себя элемент синтаксиса fixed_pic_rate_flag, который может быть включен в набор параметров VUI, которые могут быть включены в SPS, как предусмотрено в HEVC WD7. Кроме того, модуль 19 структуры кодирования и/или видео кодер 20 может быть сконфигурирован, чтобы генерировать элемент синтаксиса fixed_pic_rate_flag, где элемент синтаксиса fixed_pic_rate_flag включает в себя семантики, которые модифицированы по сравнению с теми, что предоставлены в HEVC WD7. Например, согласно текущей семантике fixed_pic_rate_flag в HEVC WD7, когда fixed_pic_rate_flag равен 1, требуется, чтобы разность между временами представления двух картинок, непрерывных в порядке вывода, была равна такту системных часов. Однако это потребовало бы изменения значения или time_scale или num_units_in_tick, когда некоторые самые высокие временные уровни отбрасывают для адаптации потока, на основании временной масштабируемости.

[0127] В одном примере, вместо того, чтобы требовать, чтобы дельта (то есть разность между временами представления двух картинок, непрерывных в порядке вывода) быть точно равной такту системных часов, может требовать, чтобы дельта была равна целым числом тактов системных часов. В этом способе, модуль 19 структуры кодирования и/или видео кодер 20 может быть сконфигурирован, чтобы генерировать элемент синтаксиса fixed_pic_rate_flag таким образом, что, когда fixed_pic_rate_flag равен 1, требуется, что разность между временами представления двух картинок, непрерывных в порядке вывода, была равна целому числу тактов системных часов.

[0128] В другом примере может требоваться, чтобы модуль 19 структуры кодирования и/или видео кодер 20 сигнализировал fixed_pic_rate_flag для каждого временного уровня. Дополнительно, в этом примере, если fixed_pic_rate_flag для конкретного временного уровня равен 1, то есть представление временного уровня имеет постоянную скорость передачи (частоту следования) картинок, значение N может быть сигнализировано, и дельта (между временами представления двух картинок, непрерывных в порядке вывода) для представления временного уровня, может быть равной такту системных часов N.

[0129] В другом примере модуль 19 структуры кодирования и/или видео кодер 20 может быть сконфигурирован, чтобы необязательно сигнализировать fixed_pic_rate_flag для каждого временного уровня. В этом примере, если fixed_pic_rate_flag для конкретного уровня присутствует и равен 1, то есть представление временного уровня имеет постоянную скорость передачи картинок, значение N может быть сигнализировано, и дельта (между временами представления двух картинок, непрерывных в порядке вывода) для представления временного уровня, равна N тактам системных часов. В случае, когда fixed_pic_rate_flag необязательно сигнализирован для каждого временного уровня, принимая, что fixed_pic_rate_flag сигнализирован для самого высокого временного уровня, и значение равно 1, то для каждого конкретного временного уровня, который не имеет сообщенного fixed_pic_rate_flag, значение fixed_pic_rate_flag может быть выведено, чтобы быть равным fixed_pic_rate_flag, сообщенному для самого высокого временного уровня), и значение N выведено, чтобы быть равным 2max_Tid-currTid, в котором max_Tid равно самому высокому значению temporal_id, и currTid равно temporal_id конкретного временного уровня.

[0130] ФИГ. 7 является последовательностью операций, иллюстрирующей пример сигнализации значения дельты времени представления. Хотя пример сигнализации значения дельты времени представления, иллюстрированный на ФИГ. 7, описан как выполняемый блоком инкапсуляции 21, любая комбинация исходного устройства 12, видео кодера 20, модуля 21 инкапсуляции, и комбинации этих компонентов могут выполнить пример сигнализации значения дельты времени представления, иллюстрированный на ФИГ. 7.

[0131] Как иллюстрировано в примере на ФИГ. 7, блок 21 инкапсуляции генерирует флаг, указывающий, является ли дельта между временем представления (например, значением POC) первой картинки и временем представления второй картинки целым числом значения такта системных часов (702). Другими словами, модуль 21 инкапсуляции может генерировать данные, указывающие, является ли разность (например, дельта) между временами представления первой картинки и второй картинки целым числом, умноженным на значение такта системных часов. Флаг, описанный на ФИГ. 7, представляет пример таких генерируемых данных. В некоторых случаях модуль 21 инкапсуляции может принять значение для этого флага от модуля 19 структуры кодирования или видео кодера 20. Флаг может быть любым из элементов синтаксиса fixed_pic_rate_flag, описанных выше.

[0132] В одном примере модуль 21 инкапсуляции определяет, может ли значение для флага указать, что дельта является целым числом значения такта системных часов (704). Когда флаг указывает, что дельта является целым числом значения такта системных часов ("ДА" ветвь 704), модуль 21 инкапсуляции может генерировать целочисленное значение N (706) представляющее целое число, умноженное на значение такта системных часов. Целочисленное значение N может использоваться устройством декодирования, таким как устройство 14 назначения, чтобы определить значение дельты, где дельта является целым числом, умноженным на значение такта системных часов. В одном примере целочисленное значение N может иметь быть значением от 0 до 2047 и может указывать значение на единицу меньше, чем целое число тактов системных часов, которым равна дельта. Модуль 21 инкапсуляции может затем выводить флаг и целочисленное значение N как часть потока битов (708).

[0133] С другой стороны, когда модуль 21 инкапсуляции определяет, что флаг указывает, что значение дельты не является целым числом, умноженным на значение такта системных часов (ветвь "НЕТ" 704), модуль 21 инкапсуляции может просто вывести флаг (710).

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

[0135] Аналогично, способ согласно ФИГ. 7 представляет пример способа для генерирования потока битов, включающего в себя видео данные, причем способ включает в себя генерирование данных, указывающих, является ли разность между временем представления первой картинки и временем представления второй картинки целым числом, умноженным на значение такта системных часов, и когда данные указывают, что разность является целым числом, умноженным на значение такта системных часов, генерирование данных, представляющих целочисленное кратное.

[0136] Как описано выше, модуль 21 инкапсуляции принимает закодированные видео данные. ФИГ. 8 является блок-схемой, иллюстрирующей пример видео кодера 20, который может генерировать закодированные видео данные. Как показано на ФИГ. 8, видео кодер 20 принимает видео данные и данные синтаксиса высокого уровня. Видео кодер 20 обычно оперирует над блоком видео в пределах индивидуальных видео вырезок, чтобы закодировать видео данные. Блок видео может соответствовать узлу кодирования в пределах CU. Блоки видео может иметь фиксированный или переменный размеры, и могут отличаться по размеру согласно указанному стандарту кодирования. Видео кодер 20 может далее генерировать данные синтаксиса, такие как основанные на блоке данные синтаксиса, основанные на кадре данные синтаксиса, и основанные на GOP данные синтаксиса, например, в заголовке кадра, заголовке блока, заголовке вырезки, или заголовке GOP. Данные синтаксиса GOP могут описывать ряд кадров в соответствующем GOP, и данные синтаксиса кадра могут указывать режим кодирования/предсказания, использованный для кодирования соответствующего кадра.

[0137] В примере согласно ФИГ. 8, видео кодер 20 включает в себя модуль 40 выбора режима, память 64 опорных картинок, сумматор 50, модуль 52 обработки преобразования, модуль 54 квантования, и модуль 56 энтропийного кодирования. Модуль 40 выбора режима, в свою очередь, включает в себя модуль 44 компенсации движения, модуль 42 оценки движения, модуль 46 внутреннего предсказания, и модуль 48 разделения. Для реконструкции блока видео, видео кодер 20 также включает в себя модуль 58 обратного квантования, модуль 60 обратного преобразования, и сумматор 62. Фильтр удаления блочности (не показан на ФИГ. 8) может также быть включен, чтобы фильтровать границы блока, чтобы удалить артефакты блочности из восстановленного видео. Если желательно, фильтр удаления блочности может типично фильтровать выходной сигнал сумматора 62. Дополнительные фильтры (в контуре или после контура) могут также использоваться в дополнение к фильтру удаления блочности. Такие фильтры не показаны для краткости, но если желательно, могут фильтровать выходной сигнал сумматора 50 (в качестве фильтра в контуре).

[0138] Во время процесса кодирования видео кодер 20 принимает видео кадр или вырезку, которая должна быть закодирована. Кадр или вырезка могут быть разделены на множественные блоки видео. Модуль 42 оценки движения и модуль 44 компенсации движения выполняют кодирование с внешним предсказанием принятого блока видео относительно одного или более блоков в одном или более опорных кадрах, чтобы обеспечить временное предсказание. Модуль 46 внутреннего предсказания может альтернативно выполнить кодирование с внутренним предсказанием принятого блока видео относительно одного или более соседних блоков в том же самом кадре или вырезке в качестве блока, который должен быть закодирован, чтобы обеспечить пространственное предсказание. Видео кодер 20 может выполнить множественные проходы кодирования, например, чтобы выбрать соответствующий режим кодирования для каждого блока видео данных.

[0139] Кроме того, модуль 48 разделения может разделить блоки видео данных на суб-блоки, на основании оценки предыдущих схем разделения в предыдущих проходах кодирования. Например, модуль 48 разделения может первоначально разделить кадр или вырезку на единицы LCU, и разделить каждую из единиц LCU в суб-единицы CU, на основании анализа «скорость передачи – искажение» (например, оптимизация «скорость передачи – искажение»). Модуль 40 выбора режима может далее сформировать структуру данных квадродерева, указывающую разделение LCU на суб-единицы CU. Листовые узловые единицы CU квадродерева могут включать в себя одну или более единиц PU и одну или более единиц TU.

[0140] Модуль 40 выбора режима может выбрать один из режимов кодирования, внутренний или внешний, например, на основании результатов ошибки, и выдает результирующий внутренне или внешне кодированный блок к сумматору 50, чтобы генерировать остаточные данные блока, и к сумматору 62, чтобы восстановить закодированный блок для использования в качестве опорного кадра. Модуль 40 выбора режима также выдает элементы синтаксиса, такие как вектора движения, индикаторы внутреннего режима, информацию разделения, и другую такую информацию синтаксиса, к модулю 56 энтропийного кодирования.

[0141] Модуль 42 оценки движения и модуль 44 компенсации движения могут быть высоко интегрированными, но иллюстрированы отдельно в концептуальных целях. Оценка движения, выполненная модулем 42 оценки движения, является процессом генерирования векторов движения, которые оценивают движение для блоков видео. Вектор движения, например, может указывать смещение PU блока видео в пределах текущего видео кадра или картинки относительно предсказывающего блока в пределах опорного кадра (или другого закодированного блока) относительно текущего блока, закодированного в пределах текущего кадра (или другого закодированного блока). Предсказывающий блок является блоком, который считают близко соответствующим блоку, который должен быть закодирован, в терминах пиксельной разности, которая может быть определена суммой абсолютных разностей (SAD), суммой разностей квадратов (SSD), или другими метриками разности. В некоторых примерах видео кодер 20 может вычислить значения для суб-целочисленных пиксельных позиций опорных картинок, сохраненных в памяти 64 опорных картинок. Например, видео кодер 20 может интерполировать значения пиксельных позиций с одной четвертью, пиксельных позиций с одной восьмой, или других фракционных пиксельных позиций опорной картинки. Поэтому модуль 42 оценки движения может выполнить поиск движения относительно полно-пиксельных позиций и фракционных пиксельных позиций и вывести вектор движения с фракционной пиксельной точностью.

[0142] Модуль 42 оценки движения вычисляет вектор движения для PU блока видео во внешне кодированной вырезке посредством сравнения позиции PU с позицией предсказывающего блока опорной картинки. Опорная картинка может быть выбрана из первого списка опорных картинок (Список 0) или второго списка опорных картинок (Список 1), каждый из которых идентифицируют одну или более опорных картинок, сохраненных в памяти 64 опорных картинок. Модуль 42 оценки движения посылает вычисленный вектор движения в модуль 56 энтропийного кодирования и модуль 44 компенсации движения.

[0143] Компенсация движения, выполненная модулем 44 компенсации движения, может вовлекать установку или генерирование предсказывающего блока на основании вектора движения, определенного модулем 42 оценки движения. Снова, модуль 42 оценки движения и модуль 44 компенсации движения могут быть функционально интегрированными в некоторых примерах. После приема вектора движения для PU текущего блока видео модуль 44 компенсации движения может определить местоположение предсказывающего блока, на которое вектор движения указывает в одном из списков опорных картинок. Сумматор 50 формирует остаточный блок видео, вычитая пиксельные значения предсказывающего блока из пиксельных значений текущего закодированного блока видео, формируя значения пиксельной разности, как описано ниже. В общем, модуль 42 оценки движения выполняет оценку движения относительно компонентов яркости, и модуль 44 компенсации движения использует вектора движения, вычисленные на основании компонентов яркости как для компонентов насыщенности цвета, так и для компонентов яркости. Модуль 40 выбора режима может также генерировать элементы синтаксиса, ассоциированные с блоками видео и видео вырезкой, для использования видео декодером 30 при декодировании блоков видео для видео вырезки.

[0144] Модуль 46 внутреннего предсказания может внутренне предсказывать текущий блок, как альтернатива внешнему предсказанию, выполняемому модулем 42 оценки движения и модулем 44 компенсации движения, как описано выше. В частности, модуль 46 внутреннего предсказания может определить режим внутреннего предсказания, который нужно использовать, чтобы закодировать текущий блок. В некоторых примерах модуль 46 внутреннего предсказания может закодировать текущий блок, используя различные режимы внутреннего предсказания, например, во время отдельных проходов кодирования, и модуль 46 внутреннего предсказания (или модуль 40 выбора режима, в некоторых примерах) может выбрать соответствующий режим внутреннего предсказания для использования, из проверенных режимов.

[0145] Например, модуль 46 внутреннего предсказания может вычислить значения «скорость передачи – искажение», используя анализ «скорость передачи – искажение» для различных проверенных режимов внутреннего предсказания, и выбрать режим внутреннего предсказания, имеющий лучшие характеристики «скорость передачи – искажение» среди проверенных режимов. Анализ «скорость передачи – искажение» обычно определяет величину искажения (или ошибку) между закодированным блоком и первоначальным незакодированным блоком, который был закодирован, чтобы сформировать закодированный блок, так же как скорость передачи в битах (то есть количество битов), использованную для получения закодированного блока. Модуль 46 внутреннего предсказания может вычислить соотношения из искажений и скоростей передачи для различных закодированных блоков, чтобы определить, какой режим внутреннего предсказания показывает лучшее значение «скорость передачи – искажение» для блока.

[0146] После выбора режима внутреннего предсказания для блока модуль 46 внутреннего предсказания может предоставить информацию, указывающую выбранный режим внутреннего предсказания для блока к модулю 56 энтропийного кодирования. Модуль 56 энтропийного кодирования может закодировать информацию, указывающую выбранный режим внутреннего предсказания. Видео кодер 20 может включать в переданный поток битов данные конфигурации, которые могут включать в себя множество таблиц индекса режима внутреннего предсказания, и множество модифицированных таблиц индекса режима внутреннего предсказания (также называемых таблицами отображения кодовых слов), определения контекстов кодирования для различных блоков, и индикации наиболее вероятного режима внутреннего предсказания, таблицы индекса режима внутреннего предсказания, и модифицированные таблицы индекса режима внутреннего предсказания, чтобы использовать для каждого из контекстов.

[0147] Видео кодер 20 формирует остаточный блок видео, вычитая данные предсказания из модуля 40 выбора режима из первоначального закодированного блока видео. Сумматор 50 представляет компонент или компоненты, которые выполняют эту операцию вычитания. Модуль 52 обработки преобразования применяет преобразование, такое как дискретное косинусное преобразование (DCT) или концептуально подобное преобразование к остаточному блоку, формируя блок видео, содержащий значения остаточных коэффициентов преобразования. Модуль 52 обработки преобразования может выполнить другие преобразования, которые концептуально подобны DCT. Вейвлет преобразования, целочисленные преобразования, преобразование поддиапазона частот или другие типы преобразования также могут использоваться. В любом случае модуль 52 обработки преобразования применяет преобразование к остаточному блоку, формируя блок остаточных коэффициентов преобразования. Преобразование может преобразовать остаточную информацию из области пиксельных значений в область преобразования, такую как частотная область. Модуль 52 обработки преобразования может послать результирующие коэффициенты преобразования в модуль 54 квантования. Модуль 54 квантования квантует коэффициенты преобразования, чтобы далее уменьшить частоту следования битов. Процесс квантования может уменьшить битовую глубину, ассоциированную с некоторыми или всеми коэффициентами. Степень квантования может быть модифицирована посредством регулирования параметра квантования. В некоторых примерах модуль 54 квантования может затем выполнить сканирование матрицы, включающей в себя квантованные коэффициенты преобразования. Альтернативно модуль 56 энтропийного кодирования может выполнить сканирование.

[0148] Вслед за квантованием модуль 56 энтропийного кодирования энтропийно кодируют квантованные коэффициенты преобразования. Например, модуль 56 энтропийного кодирования может выполнить контекстно-адаптивное кодирование с переменной длиной кода (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), основанное на синтаксисе контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование с разделением интервала вероятности (PIPE) или другой способ энтропийного кодирования. В случае основанного на контексте энтропийного кодирования контекст может быть основан на соседних блоках. После энтропийного кодирования блоком 56 энтропийного кодирования закодированный поток битов может быть передан на другое устройство (например, видео декодер 30) или заархивирован для более поздней передачи или поиска.

[0149] Модуль 58 обратного квантования и модуль 60 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, чтобы восстановить остаточный блок в пиксельной области, например, для более позднего использования в качестве опорного блока. Модуль 44 компенсации движения может вычислить опорный блок посредством суммирования остаточного блока с предсказывающим блоком одного из кадров из памяти 64 опорных картинок. Модуль 44 компенсации движения может также применить один или более фильтров интерполяции к восстановленному остаточному блоку, чтобы вычислить суб-целочисленные пиксельные значения для использования при оценке движения. Сумматор 62 добавляет восстановленный остаточный блок к блоку предсказания со скомпенсированным движением, сформированному модулем 44 компенсации движения, чтобы сформировать восстановленный блок видео для сохранения в памяти 64 опорных картинок. Восстановленный блок видео может использоваться модулем 42 оценки движения и модулем 44 компенсации движения в качестве опорного блока, чтобы внешне кодировать блок в последующем видео кадре.

[0150] Как описано выше, модуль 29 декапсуляции может быть сконфигурирован, чтобы принять закодированную последовательность видео и синтаксически разобрать единицы доступа и единицы NAL, где единицы NAL назначены на основании любой и всех комбинаций распределений единиц NAL, иллюстрированных в Таблицах 2-7. Дополнительно, модуль 29 декапсуляции и видео декодер 30 могут восстановить видео данные на основании распределения типов единиц NAL. В одном примере модуль 29 декапсуляции может быть сконфигурирован, чтобы принять единицу NAL, в котором единица NAL включает в себя значение типа NAL, и определить, инкапсулирует ли единица NAL закодированную вырезку видео данных, включенных в картинку RAP, ассоциированную с начальной картинкой, на основании значения типа NAL, и видео декодер 30 может быть сконфигурирован, чтобы восстанавливать видео данные на основании того, инкапсулирует ли единица NAL закодированную вырезку видео данных, включенных в картинку RAP с ассоциированной начальной картинкой. В другом примере модуль 29 декапсуляции может быть сконфигурирован, чтобы принять единицу NAL, в котором единица NAL включает в себя значение типа NAL, и определить, инкапсулирует ли единица NAL сообщение SEI AU-уровня на основании значения типа NAL, и видео декодер 30 может быть сконфигурирован, чтобы восстановить видео данные на основании, инкапсулирует ли единица NAL сообщение SEI AU-уровня. В некоторых случаях восстановление видео данных может включать в себя генерирование стыкованного потока битов, как описано выше, и видео декодер 30 может определить времена представления картинок в стыкованном видео потоке на основании определения типа единицы NAL.

[0151] Далее, как описано выше, исходное устройство, такое как исходное устройство 12, может быть сконфигурировано, чтобы сигнализировать дельту между временем представления первой картинки и временем представления второй картинки, где сигнализация использует любое из тех, которое может быть любым из элементов синтаксиса fixed_pic_rate_flag, описанных выше. Таким образом, устройство 14 назначения, модуль 29 декапсуляции и видео декодер 30 могут быть сконфигурированы, чтобы определить времена представления первой картинки и второй картинки и представить картинки соответственно.

[0152] ФИГ. 9 является последовательностью операций, иллюстрирующей примерный способ определения значения дельты времени представления. Хотя пример сигнализации значения дельты времени представления, иллюстрированный на ФИГ. 9, описан как выполняемый модулем 29 декапсуляции, любые комбинации устройства 14 назначения, видео декодера 30, модуля 29 декапсуляции и комбинации этих компонентов могут выполнить пример определения значения дельты времени представления, иллюстрированный на ФИГ. 9. Как иллюстрировано на ФИГ. 9, модуль 29 декапсуляции получает первую картинку (902). Первая картинка может быть закодированной картинкой, соответствующей единице доступа. Модуль 29 декапсуляции получает вторую картинку (904). Вторая картинка может быть закодированной картинкой, соответствующей единице доступа. Вторая картинка может включать в себя в тот же временной уровень, как первая картинка. Дополнительно, первая и вторая картинка может быть включена в самый высокий временный уровень видео данных.

[0153] Модуль 29 декапсуляции может затем получить целочисленное значение N (906). Это предполагает, что модуль 29 декапсуляции ранее получил данные, такие как значение для флага, указывающие это. Целочисленное значение N может быть включено в набор параметров VUI, которые могут быть включены в SPS. Модуль 29 декапсуляции определяет значение такта системных часов (908). Модуль 29 декапсуляции может определить значение такта системных часов на основании элементов синтаксиса time_scale и num_units_in_tick согласно уравнению (1), описанному выше.

[0154] Модуль 29 декапсуляции может затем определить дельту между временем представления первой картинки и временем представления второй картинки (910). Дельта может быть равной целому числу значения такта системных часов на основании целочисленного значения N. Например, дельта может быть равной (N+1) * такт системных часов.

[0155] Модуль 29 декапсуляции и видео декодер 30 могут затем представить первую картинку и вторую картинку согласно определенной дельте (912). В одном примере модуль 29 декапсуляции может сигнализировать значение дельты видео декодеру 30, и видео декодер 30 может выполнить процесс декодирования на основании значения дельты. В этом способе устройство 14 назначения представляет пример устройства, включающего в себя процессор, сконфигурированный, чтобы определить значение разности между временем представления первой картинки и временем представления второй картинки, в котором значение разности равно целочисленному значению, умноженному на значение такта системных часов, и представлять первую картинку и вторую картинку согласно определенному значению разности.

[0156] Аналогично, способ, согласно ФИГ. 9, представляет пример способа, включающего в себя определение значения разности между временем представления первой картинки и временем представления второй картинки, в котором значение разности равно целочисленному значению, умноженному на значение такта системных часов, и представление первой картинки и второй картинки согласно определенному значению разности.

[0157] ФИГ. 10 является блок-схемой, иллюстрирующей пример видео декодера 30, который может реализовать способы для (1) приема данных, которые включают в себя типы единиц NAL, (2) обработки принятого поведения HRD на уровне суб-картинки или уровне блока декодирования, (3) обработки данных, включающих в себя ссылку на идентификаторы набора параметров, (4) обработки принятых данных, включающих в себя улучшенную семантику для fixed_pic_rate_flag, или любую и все их комбинации. В примере согласно ФИГ. 10 видео декодер 30 включает в себя модуль 70 энтропийного декодирования, модуль 72 компенсации движения, модуль 74 внутреннего предсказания, модуль 76 обратного квантования, модуль 70 обратного преобразования, память 82 опорных картинок и сумматор 80. Видео декодер 30 в некоторых примерах может выполнить проход декодирования, в целом обратный проходу кодирования, описанному относительно видео кодера 20 (ФИГ. 2). Модуль 72 компенсации движения может генерировать данные предсказания, на основании векторов движения, принятых от модуля 70 энтропийного декодирования, в то время как модуль 74 внутреннего предсказания может генерировать данные предсказания, на основании индикаторов режима внутреннего предсказания, принятых от модуля 70 энтропийного декодирования.

[0158] Во время процесса декодирования видео декодер 30 принимает закодированный поток битов видео, который представляет блоки видео закодированной видео вырезки и ассоциированные элементы синтаксиса, от видео кодера 20. Модуль 70 энтропийного декодирования из видео декодера 30 энтропийно декодирует поток битов, чтобы генерировать квантованные коэффициенты, вектора движения или индикаторы режима внутреннего предсказания, и другие элементы синтаксиса. Модуль 70 энтропийного декодирования направляет вектора движения и другие элементы синтаксиса к модулю 72 компенсации движения. Видео декодер 30 может принять элементы синтаксиса на уровне вырезки видео и/или уровне блока видео.

[0159] Когда видео вырезка закодирована как внутренне кодированная (I) вырезка, модуль 74 внутреннего предсказания может генерировать данные предсказания для блока видео текущей видео вырезки на основании сигнализированного режима внутреннего предсказания и данных от ранее декодированных блоков текущего кадра или картинки. Когда видео кадр закодирован как внешне кодированная (то есть B, P или GPB) вырезка, модуль 72 компенсации движения формирует предсказывающие блоки для блока видео текущей видео вырезки на основании вектора движения и других элементов синтаксиса, принятых от модуля 70 энтропийного декодирования. Предсказывающие блоки могут быть сформированы из одной из опорных картинок в пределах одного из списков опорных картинок. Видео декодер 30 может построить списки опорного кадра, Список 0 и Список 1, используя способы построения по умолчанию, на основании опорных картинок, сохраненных в памяти 82 опорных картинок. Модуль 72 компенсации движения определяет информацию предсказания для блока видео текущей видео вырезки посредством синтаксического разбора вектора движения и других элементов синтаксиса, и использует информацию предсказания, чтобы сформировать предсказывающие блоки для текущего декодируемого блока видео. Например, модуль 72 компенсации движения использует некоторые из принятых элементов синтаксиса, чтобы определить режим предсказания (например, внутреннее или внешнее предсказание), использованный для кодирования блоков видео в видео вырезке, тип вырезки с внешним предсказанием (например, B вырезка, P вырезка, или вырезка GPB), информацию построения для одного или более списков опорных картинок для вырезки, векторы движения для каждого внешне кодированного блока видео вырезки, статус внешнего предсказания для каждого внешне кодированного блока видео вырезки, и другую информацию, чтобы декодировать блоки видео в текущей видео вырезке.

[0160] Модуль 72 компенсации движения может также выполнить интерполяцию, на основании фильтров интерполяции. Модуль 72 компенсации движения может использовать фильтры интерполяции, которые используются видео кодером 20 во время кодирования блоков видео, чтобы вычислить интерполированные значения для суб-целочисленных пикселей опорных блоков. В этом случае модуль 72 компенсации движения может определить фильтры интерполяции, используемые видео кодером 20, из принятых элементов синтаксиса, и использовать эти фильтры интерполяции, чтобы сформировать предсказывающие блоки.

[0161] Модуль 76 обратного квантования обратно квантует, то есть деквантует, квантованные коэффициенты преобразования, предоставленные в потоке битов и декодированные модулем 70 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования QPY, вычисленного видео декодером 30 для каждого блока видео в видео вырезке, чтобы определить степень квантования и, аналогично, степень обратного квантования, которая должна быть применена.

[0162] Модуль 78 обратного преобразования применяет обратное преобразование, например, обратное DCT, обратное целочисленное преобразование, или концептуально подобный процесс обратного преобразования, к коэффициентам преобразования, чтобы сформировать остаточные блоки в пиксельной области.

[0163] После того, как модуль 72 компенсации движения генерирует предсказывающий блок для текущего блока видео на основании вектора движения и других элементов синтаксиса, видео декодер 30 формирует декодированный блок видео, суммируя остаточные блоки от модуля 78 обратного преобразования с соответствующими предсказывающими блоками, генерируемыми модулем 72 компенсации движения. Сумматор 80 представляет компонент или компоненты, которые выполняют эту операцию суммирования. Если желательно, фильтр удаления блочности может также быть применен, чтобы фильтровать декодированные блоки, чтобы удалить артефакты блочности. Другие контурные фильтры петли (или в контуре кодирования или после контура кодирования) могут также быть использованными для сглаживания пиксельных переходов, или иначе улучшить качество видео. Декодированные блоки видео в заданном кадре или картинке затем сохраняют в памяти 82 опорных картинок, которая хранит опорные картинки, используемые для последующей компенсации движения. Память 82 опорных картинок также хранит декодированное видео для более позднего представления на устройстве отображения, таком как устройство 32 отображения на ФИГ. 3.

[0164] Должно быть понятно, что в зависимости от примера, некоторые действия или события любого из способов, описанных в настоящем описании, могут быть выполнены в различной последовательности, могут быть добавлены, слиты, или не учтены в целом (например, не все описанные действия или события необходимы для практической реализации способов). Кроме того, в некоторых примерах действия или события могут быть выполнены одновременно, например, с помощью многопоточной обработки, обработку прерываний или множественных процессоров, а не последовательно.

[0165] В одном или более примерах описанные функции могут быть реализованы в аппаратном обеспечении, программном обеспечении, программно-аппаратных средствах, или любой их комбинации. Если реализованы в программном обеспечении, функции могут быть сохранены на или переданы с помощью в качестве одной или более инструкций или кода, считываемого компьютером носителя и выполнены основанным на аппаратном обеспечении блоком обработки. Считываемый компьютером носитель может включать в себя считываемый компьютером запоминающий носитель, который соответствует материальному носителю, такому как запоминающие носители данных, или коммуникационные носители, включающие в себя любой носитель, который облегчает передачу компьютерной программы от одного места к другому, например, согласно протоколу связи. В этом способе считываемый компьютером носитель в целом может соответствовать (1) материальным считываемым компьютером запоминающим носителям, которые являются не временными, или (2) коммуникационному носителю, такому как сигнал или несущая. Запоминающие носители данных могут быть любым доступным носителем, к которому могут получить доступ один или более компьютеров или один или более процессоров, чтобы извлечь инструкции, код и/или структуры данных для реализации способов, описанных в настоящем раскрытии. Компьютерный программный продукт может включать в себя считываемый компьютером носитель.

[0166] Посредством примера, и не ограничения, такие считываемые компьютером запоминающие носители могут содержать RAM, ROM, EEPROM, CD-ROM или другое хранилище на оптических дисках, хранилище на магнитных дисках, или другие магнитные устройства хранения, флэш-память, или любой другой носитель, который может быть использованным для хранения желаемого программного кода в форме инструкций или структур данных, и к которому может получить доступ компьютер. Кроме того, любое соединение должным образом называют считываемым компьютером носителем. Например, если инструкции переданы от вебсайта, сервера, или другого удаленного источника, используя коаксиальный кабель, волоконно-оптический кабель, витую пару, цифровую абонентскую линию (DSL), или беспроводные технологии, такие как инфракрасное, радио- и микроволновое излучения, то эти коаксиальный кабель, волоконно-оптический кабель, витая пара, DSL, или беспроводные технологии, такие как инфракрасное, радио- и микроволновое излучения, включены в определение носителя. Нужно подразумевать, однако, что считываемые компьютером запоминающие носители и запоминающие носители данных не включают в себя соединения, несущие, сигналы, или другие временные носители, но вместо этого направлены на не временные, материальные запоминающие носители. Диск и диск, как используется здесь, включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), дискету и диск Blu-ray, где диски (disks) обычно воспроизводят данные магнитным образом, в то время как диски (discs) воспроизводят данные оптически с помощью лазеров. Комбинации вышеупомянутого должны также быть включены в понятие считываемого компьютером носителя.

[0167] Инструкции могут быть выполнены один или более процессорами, такими как один или более цифровых сигнальных процессоров (DSPs), микропроцессоры общего назначения, специализированные интегральные схемы (ASICs), программируемые пользователем логические матрицы (FPGAs), или другая эквивалентная интегральная или дискретная логическая схема. Соответственно, термин "процессор", как используется здесь, может относиться к любой предшествующей структуре или любой другой структуре, подходящей для реализации способов, описанных в настоящем описании. Кроме того, в некоторых аспектах, функциональные возможности, описанные в настоящем описании, могут быть предоставлены в рамках специализированного аппаратного обеспечения и/или программных модулей, конфигурируемых для кодирования и декодирования, или соединены в объединенный кодек. Кроме того, способы могли быть полностью реализованы в одной или более схемах или логических элементах.

[0168] Способы настоящего раскрытия могут быть реализованы в широком разнообразии устройств или устройств, включающих в себя беспроводную телефонную трубку, интегральную схему (IC) или набор ICs (например, микропроцессорный набор). Различные компоненты, модули, или блоки описаны в настоящем раскрытии, чтобы подчеркнуть функциональные аспекты устройств, конфигурируемых, чтобы выполнить раскрытые способы, но не обязательно требовать реализации различными блоками аппаратного обеспечения. Вместо этого, как описано выше, различные блоки могут быть объединены в блоке аппаратного обеспечения кодека или предоставлены коллекцией взаимодействующих блоков аппаратного обеспечения, включающих в себя один или более процессоров, как описано выше, в соединении с подходящим программным обеспечением и/или программно-аппаратными средствами.

[0169] Были описаны различные примеры. Эти и другие примеры находятся в рамках нижеследующей формулы изобретения.

1. Способ представления видеоданных, причем способ содержит:

на основании определения, что временной уровень, включающий в себя первую картинку и вторую картинку, имеет постоянную скорость передачи картинок, декодирование информации тактирования для видеоданных, причем информация тактирования включает в себя целочисленное значение для видеоданных;

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

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

2. Способ по п. 1, дополнительно содержащий отображение устройством отображения представляемых видеоданных.

3. Способ по п. 1, дополнительно содержащий определение, что временной уровень, включающий в себя первую картинку и вторую картинку, имеет постоянную скорость передачи картинок, при этом информация тактирования включает в себя данные, определяющие упомянутое целочисленное значение, при этом декодирование информации тактирования для видеоданных включает в себя определение упомянутого целочисленного значения и при этом определение упомянутого целочисленного значения содержит, на основе определения, что временной уровень имеет постоянную скорость передачи картинок, декодирование данных, определяющих упомянутое целочисленное значение.

4. Способ по п. 3, в котором определение, что временной уровень имеет постоянную скорость передачи картинок, содержит определение, что fixed_pic_rate_flag имеет значение, указывающее, что временной уровень имеет постоянную скорость передачи картинок.

5. Способ по п. 3, дополнительно содержащий:

определение, для каждого временного уровня, имеющего соответствующую постоянную скорость передачи картинок, соответствующего сигнализируемого целочисленного значения; и

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

6. Способ по п. 1, в котором декодирование информации тактирования для видеоданных включает в себя определение значения такта системных часов, при этом определение значения такта системных часов включает в себя определение значения такта системных часов таким образом, чтобы значение такта системных часов было основано, по меньшей мере частично, на значении масштаба времени, при этом значение масштаба времени основано на тактовой частоте.

7. Способ по п. 1, в котором временной уровень включает в себя самый высокий временной уровень, причем способ дополнительно содержит этапы, на которых:

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

представляют картинки более низкого временного уровня на основании второго значения разности.

8. Способ по п. 1, в котором время представления для первой картинки содержит первое значение счета по порядку картинки (РОС), и в котором время представления для второй картинки содержит второе значение РОС.

9. Устройство для представления видеоданных, причем устройство содержит:

средство для декодирования информации тактирования для видеоданных, при этом информация тактирования определяется на основании определения, что временной уровень, включающий в себя первую картинку и вторую картинку, имеет постоянную скорость передачи картинок, причем информация тактирования включает в себя целочисленное значение для видеоданных;

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

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

10. Устройство по п. 9, дополнительно содержащее средство для определения, что временной уровень, включающий в себя первую картинку и вторую картинку, имеет постоянную скорость передачи картинок, при этом информация тактирования включает в себя данные, определяющие упомянутое целочисленное значение, при этом средство для декодирования информации тактирования для видеоданных включает в себя средство для определения упомянутого целочисленного значения и при этом средство для определения упомянутого целочисленного значения содержит средство для декодирования, на основе упомянутого определения, что временной уровень имеет постоянную скорость передачи картинок, данных, определяющих упомянутое целочисленное значение.

11. Устройство по п. 10, в котором средство для определения, что временной уровень имеет постоянную скорость передачи картинок, содержит средство для определения, что fixed_pic_rate_flag имеет значение, указывающее, что временной уровень имеет постоянную скорость передачи картинок.

12. Устройство по п. 10, дополнительно содержащее:

средство для определения, для каждого временного уровня, имеющего соответствующую постоянную скорость передачи картинок, соответствующего сигнализируемого целочисленного значения; и

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

13. Устройство по п. 9, при этом временной уровень включает в себя самый высокий временной уровень, причем устройство дополнительно содержит:

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

средство для представления картинок более низкого временного уровня на основании второго значения разности.

14. Устройство по п. 9, в котором время представления для первой картинки содержит первое значение счета по порядку картинки (РОС) и в котором время представления для второй картинки содержит второе значение РОС.

15. Считываемый компьютером запоминающий носитель, имеющий сохраненные на нем инструкции, которые, когда выполняются, вынуждают процессор:

декодировать, на основании определения, что временной уровень, включающий в себя первую картинку и вторую картинку, имеет постоянную скорость передачи картинок, информацию тактирования для видеоданных, причем информация тактирования включает в себя целочисленное значение для видеоданных;

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

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



 

Похожие патенты:

Изобретение относится к кодированию с помощью остаточной дифференциальной импульсно-кодовой модуляции (ДИКМ). Технический результат – расширение диапазона высокоэффективного кодирования видеоизображений (HEVC).

Изобретение относится к системе передачи видеоданных, в частности к управлению доставкой и представлением медиаданных. Технический результат заключается вповышении эффективности доставки медиаданных стандарта Транспортировки медиаданных (MMT) Экспертной группы по кинематографии (MPEG).

Изобретение относится к устройствам обработки информации, которые применимы в случае, когда прикладную программу выполняют в соответствии с воспроизведением содержания, такого как телевизионная программа.

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

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

Изобретение относится к области кодирования и декодирования изображений и, в частности, кодирования/декодирования параметра квантования в изображении. Технический результат – обеспечена возможность параллельного кодирования/декодирования в качестве всей обработки, в том числе, когда блоки кодируются/декодируются параллельно по строкам с использованием метода волнового фронта.

Изобретение относится к области кодирования и декодирования изображений. Техническим результатом является ускорение обработки кодирования и декодирования изображений.

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

Изобретение относится к приемному и передающему устройству. Технический результат заключается в обеспечении передающей стороне возможности активно управлять положением отображения изображения.

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

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

Изобретение относится к вычислительной технике. Технический результат заключается в уменьшении количества разрядов, используемых для сигнализации синтаксических элементов. Способ декодирования видеоданных, в котором декодируют данные синтаксического элемента для множества изображений в порядке кодирования изображений, причем данные синтаксического элемента указывают, что каждое из множества изображений доступно для использования в качестве долгосрочного эталонного изображения; декодируют заголовок слайса для слайса видеоданных, причем заголовок слайса включает в себя синтаксический элемент, указывающий количество долгосрочных эталонных изображений, выведенных из набора параметров последовательности; определяют, является ли долгосрочное эталонное изображение из множества изображений явно сигнализируемым в заголовке слайса или выводится из набора параметров последовательности, соответствующего слайсу; когда долгосрочное эталонное изображение сигнализируется явно, декодирование заголовка слайса дополнительно содержит этап, на котором декодируют значение для идентифицирующей информации для долгосрочного эталонного изображения в заголовке слайса. 5 н. и 46 з.п. ф-лы, 5 ил., 5 табл.

Изобретение относится к вычислительной технике. Технический результат заключается в обеспечении низкой сквозной задержки. Цифровой носитель данных, хранящий поток видеоданных, имеющий видеоконтент, закодированный в нем, в единицах под-частей изображений видеоконтента, при этом каждая под-часть соответственно закодирована в один или более пакетов полезной нагрузки последовательности пакетов потока видеоданных, при этом последовательность пакетов разделена на последовательность блоков доступа, так что каждый блок доступа собирает пакеты полезной нагрузки, относящиеся к соответствующему изображению видеоконтента, причем последовательность пакетов содержит помещенные в нее пакеты управления таймингом, так что пакеты управления таймингом подразделяют блоки доступа на блоки декодирования, так что по меньшей мере некоторые блоки доступа подразделены на два или более блоков декодирования, при этом каждый пакет управления таймингом сигнализирует время извлечения буфера декодера для блока декодирования, пакеты полезной нагрузки которого следуют за соответствующим пакетом управления таймингом в последовательности пакетов. 10 н. и 7 з.п. ф-лы, 40 ил.

Изобретение относится к вычислительной технике, предназначенной для декодирования видео. Технический результат заключается в обеспечении декодирования видео с использованием анализа глубины преобразования. Технический результат достигается за счет устройства для декодирования видео, которое выполняет прием и анализ битового потока закодированного видео и декодирование закодированных данных изображения для максимальной единицы кодирования, на основании информации, относящейся к кодируемой глубине максимальной единицы кодирования, информации, относящейся к режиму кодирования, и информации о структуре единицы кодирования. 3 з.п. ф-лы, 29 ил., 1 табл.

Изобретение относится к области инкапсуляции данных мультимедиа с временной привязкой, например, согласно базовому формату мультимедийного файла организации по стандартизации (ISO BMFF), чтобы улучшать потоковую передачу по протоколу передачи гипертекстовых файлов (HTTP) выбираемых пользователем интересующих областей (ROI) в сжатых видеопотоках. Технический результат заключается в обеспечении схемы организации данных и описания дорожек, подходящей для пространственных мозаичных элементов в масштабируемых видеопотоках, которая обеспечивает, что какая бы комбинация дорожек ни выбиралась клиентским приложением, результат синтаксического разбора формата ISO BMFF всегда ведет к действительному элементарному битовому видеопотоку для видеодекодера. Предложено, что каждая выборка с временной привязкой содержит первый уровень и по меньшей мере один второй уровень и по меньшей мере один из уровней содержит множество подвыборок, представленных посредством одного или более блоков кодирования. После получения по меньшей мере одной подвыборки из множества подвыборок одной из выборок с временной привязкой создается одна дорожка, содержащая упомянутую по меньшей мере одну полученную подвыборку. Созданная дорожка независимо инкапсулируется в по меньшей мере одном файле сегмента мультимедиа, при этом упомянутый файл сегмента мультимедиа содержит метаданные отображения для обеспечения информации об упомянутой по меньшей мере одной полученной подвыборке по отношению к упомянутой одной из выборок с временной привязкой и уровню, которому она принадлежит. 12 н. и 20 з.п. ф-лы, 26 ил.

Изобретение относится к вычислительной технике, в частности к способу декодирования видео. Технический результат заключается в повышении эффективности декодирования видео. Технический результат достигается за счет способа декодирования закодированного видео, включающего определение единицы кодирования при помощи информации разбиения, извлеченной из битового потока, извлечение из битового потока информации об индексе преобразования, указывающей разбита ли единица преобразования текущего уровня, включенного в единицу кодирования из единицы кодирования, когда информация об индексе преобразования указывает разбиение единицы преобразования текущего уровня, разбиение единицы преобразования текущего уровня на единицы преобразования нижнего уровня, и когда информация об индексе преобразования указывает неразбиение единицы преобразования текущего уровня, получение информации о структуре для единицы преобразования текущего уровня, при этом информация о структуре указывает содержит ли единица преобразования текущего уровня один или более коэффициентов преобразования, отличных от 0. 3 з.п. ф-лы, 1 табл., 29 ил.

Изобретение относится к вычислительной технике. Технический результат заключается в улучшении характеристик предсказания. Устройство видеодекодирования с предсказанием содержит средство ввода, которое вводит битовый поток, включающий в себя данные сжатых изображений для множества изображений, составляющих видеопоследовательность, причем каждое изображение имеет тип блока сетевого уровня абстракции, который идентифицирует упомянутое изображение как одно из множества типов изображений, включая изображение случайного доступа, ведущее изображение с пропущенным случайным доступом (RAS) и ведущее не-RAS изображение; средство восстановления, которое декодирует данные сжатых изображений для восстановления изображений на основании типов изображений; и средство вывода, которое выводит восстановленные изображения, причем изображение случайного доступа является первым изображением в битовом потоке в порядке декодирования, когда процесс декодирования, который начинается в любом изображении случайного доступа в битовом потоке, начат от упомянутого изображения случайного доступа. 2 н. и 2 з.п. ф-лы, 10 ил.

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

Изобретение относится к технологиям кодирования/декодирования видео. Техническим результатом является повышение эффективности декодирования видео. Предложен способ декодирования видео. Способ содержит этап, на котором получают из битового потока флаг разделения единицы преобразования, указывающий, разделяется ли единица преобразования, включенная в единицу кодирования. Далее, согласно способу, определяют размер единицы преобразования на основе упомянутого флага разделения единицы преобразования, а также осуществляют определение контекстной модели на основе размера единицы преобразования и цветовой компоненты изображения, включающего в себя упомянутую единицу преобразования. Получают флаг коэффициента преобразования, указывающего, включен ли по меньшей мере один ненулевой коэффициент в блок упомянутой единицы преобразования, посредством энтропийного декодирования битового потока на основе упомянутой контекстной модели. 26 ил., 1 табл.

Изобретение относится к области кодирования и декодирования изображения. Техническим результатом является способ кодирования изображения и способ декодирования изображения, каждый из которых способен уменьшать объем обработки при одновременном подавлении ухудшения эффективности кодирования. Способ кодирования изображения с использованием арифметического кодирования содержит: выполнение арифметического кодирования над первым флагом, который указывает, является ли абсолютное значение целевого коэффициента в блоке целевых коэффициентов большим чем 1, при этом блок целевых коэффициентов получают разделением целевого блока кодирования, который получают преобразованием входного изображения в коэффициенты в частотной области; и выполнение арифметического кодирования над вторым флагом, который указывает, является ли абсолютное значение большим чем 2, при этом при выполнении арифметического кодирования над первым флагом и выполнении арифметического кодирования над вторым флагом определяют, включает ли в себя непосредственно предшествующий блок коэффициентов, который был кодирован непосредственно перед блоком целевых коэффициентов, коэффициент, имеющий абсолютное значение, большее, чем пороговое значение, и контекст, подлежащий использованию в арифметическом кодировании над первым флагом, и контекст, подлежащий использованию в арифметическом кодировании над вторым флагом, выбирают на основе результата определения. 5 н. и 6 з.п. ф-лы, 64 ил.
Наверх