КОДИРОВАНИЕ ЕДИНИЦ NAL SEI ДЛЯ КОДИРОВАНИЯ ВИДЕО
NAL SEI UNITS ENCODING FOR VIDEO ENCODING

СВЯЗАННЫЕ ЗАЯВКИ
[0001] Настоящая заявка испрашивает приоритет предварительной заявки на патент США №61/670,066, поданной 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.
th
[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, 9 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), блоки дерева, или единицы блока дерева кодирования (CTUs). LCUs в HEVC могут очень походить на макроблоки предыдущих стандартов, такие как H.264/AVC. Однако, LCU не обязательно ограничен конкретным размером. Согласно HEVC, данные синтаксиса в пределах потока битов могут определить LCU согласно количеству горизонтальных и/или вертикальных выборок яркости. Например, LCU может быть определена как включающая в себя 64×64 или 32×32 выборок яркости. Далее, LCU может быть разделена во множественные единицы кодирования (CUs) согласно схеме деления квадродерева. Обычно, разделение квадродерева относится к рекурсивному разделению единиц CU на четыре суб-единицы CU. Данные синтаксиса, ассоциированные с закодированным потоком битов, могут определить максимальное количество раз, сколько LCU может быть разделена, называемой максимальной глубиной CU, и может также определить минимальный размер CU. Соответственно, поток битов может также определить наименьшую единицу кодирования (SCU). Например, SCU может быть определена как включающая в себя 8×8 выборок яркости.
[0048] Кроме того, согласно HEVC, видео кодер может разделить картинку на множество вырезок, при этом каждая из вырезок включает в себя целочисленное количество Единиц LCU. Вырезки могут быть I вырезками, P вырезками или B вырезками, где I, P и B определяют, как другие блоки видео используются для предсказания единиц CU. I вырезка предсказывается, используя режим внутреннего предсказания (например, от блоков видео в пределах того же самого кадра). Внутреннее кодирование полагается на пространственное предсказание, чтобы уменьшить или удалить пространственную избыточность в видео в пределах заданного видео кадра или картинки. P вырезка предсказывается, используя однонаправленный режим внешнего предсказания (например, от блока видео в предыдущем кадре). B вырезка предсказывается, используя двунаправленный режим внешнего предсказания (например, от блоков видео в пределах предыдущего кадра и последующего кадра). Внешнее кодирование полагается на временное предсказание, чтобы уменьшить или удалить временную избыточность в видео в пределах смежных кадров или картинок последовательности видео.
1
10
1
10
1
2
1
5
1
6
10
2
1
2
1
2
2
6
10
2
6
9
7
10
8
[0049] ФИГ. 1 является концептуальной диаграммой, иллюстрирующей последовательность видео, закодированную согласно способам предсказывающего кодирования видео. Как иллюстрировано на фиг. 1, видео последовательность 100 включает в себя картинки Pic-Pic. В концептуальной диаграмме согласно ФИГ. 1 картинки Pic-Pic скомпонованы и последовательно пронумерованы согласно порядку, в котором они должны быть показаны. Как описано более подробно ниже, порядок отображения не обязательно соответствует порядку декодирования. Как иллюстрировано на фиг. 1, видео последовательность 100 включает в себя GOP и GOP, где картинки Pic-Pic включены в GOP и картинки Pic-Pic, включены в GOP. ФИГ. 1 иллюстрирует, что Pic5 разделена на slice и slice, где каждый из slice и slice включает в себя последовательные единицы LCU согласно растровому сканированию слева направо сверху вниз. Хотя не показано, другие картинки, иллюстрированные на фиг. 1, могут быть разделены на одну или более вырезок подобным способом. ФИГ. 1 также иллюстрирует понятие I вырезки, P вырезки или B вырезки относительно GOP. Стрелки, ассоциированные с каждой из Pic-Pic в GOP, указывают, включает ли картинка в себя I вырезки, P вырезки или B вырезки на основании опорной картинки, обозначенной стрелками. На фиг. 1 картинки Pic и Pic представляют картинки, включающие в себя I картинки (то есть, ссылки непосредственно на саму картинку), картинки Pic и Pic представляют картинки, включающие в себя P вырезки (то есть, каждая ссылается на предыдущую картинку), и Pic представляет картинку, включающую в себя 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, не содержащие вырезки закодированной картинки. Декодирование единицы доступа всегда приводит к декодированной картинке.
2
6
10
9
8
8
9
9
8
9
1
2
[0053] Единица NAL относится к единице уровня абстракции сети. Таким образом, согласно HEVC, поток битов закодированных видео данных включает в себя последовательность единиц NAL. Единица доступа является набором единиц NAL, которые размещены последовательно в порядке декодирования и содержат точно одну закодированную картинку, и закодированная видео последовательность включает в себя последовательность единиц доступа, размещенных в порядке декодирования. ФИГ. 2 является концептуальной диаграммой, иллюстрирующей пример закодированной видео последовательности. ФИГ. 2 представляет пример закодированной видео последовательности 200, которая может соответствовать GOP, иллюстрированной на фиг. 1. Как иллюстрировано на фиг. 2, закодированная видео последовательность 200 включает в себя единицу доступа, соответствующую каждой из Pic-Pic. Единицы доступа закодированной видео последовательности 200 размещены последовательно согласно порядку декодирования. Нужно отметить, что единица доступа, соответствующий Pic, расположена перед единицей доступа, соответствующей Pic. Таким образом, порядок декодирования не соответствует порядку отображения, иллюстрированному на фиг. 1. В этом примере это имеет место вследствие того, что Pic ссылается на Pic. Таким образом, Pic должна быть декодирована прежде, чем может быть декодирована Pic. ФИГ. 2 иллюстрирует, что единица доступа, соответствующая Pic, включает в себя единицы NAL: единицу NAL 202 разделителя AU, единицу NAL 204 PPS, единицу NAL 206 slice, и единицу NAL 208 slice. Каждая единица NAL может включать в себя заголовок, который идентифицирует тип единицы NAL.
1
2
1
2
9
7
[0054] HEVC определяет два класса типа единицы NAL: единицы NAL закодированной вырезки (VCL) и единицы NAL не-VCL. Единица NAL закодированной вырезки содержит вырезку видео данных. В примере, иллюстрированном на фиг. 2, единица NAL 206 slice и единица NAL 208 slice каждая содержит вырезку видео данных и является примерами единиц NAL VCL. В примере на ФИГ. 2 каждой из единицы NAL 206 slice и единицы NAL 208 slice могут быть I-вырезки. Не-VCL включает в себя то, что содержит информацию помимо вырезки видео данных. Например, не-VCL может содержать данные разделителя или набор параметров. В примере, иллюстрированном на фиг. 2 единицы NAL 202 разделителя AU включают в себя информацию, чтобы разграничить единицу доступа, соответствующую Pic, от единицы доступа, соответствующей Pic. Далее, единица 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) operation
Тактирование картинок
Время вывода картинок и время удаления картинок/суб- картинок для операции HRD, а также информация, относящаяся к структуре картинки
Прямоугольник панорамного сканирования
Отображение с другим отношением сторон картинки (PAR), чем PAR картинок вывода
Полезные данные заполнителя
Регулировка частоты следования битов для удовлетворения специальным ограничениям
Данные пользователя зарегистрированыДанные пользователя не зарегистрированы
Сообщения SEI, которые должны быть заданы внешними объектами
Точка восстановления
Дополнительная информация для частого произвольного доступа. Постепенное обновление декодирования.
Информация сцены
Информация об изменениях и переходах сцены
Полнокадровый снимок
Индикация маркировать ассоциированную декодированную картинку снимок неподвижного изображения видео контента
Сегмент прогрессивной детализации
Указывает, что некоторые последовательные картинки представляют прогрессивную детализацию качества картинки, а не движущуюся сцену
Характеристики зерна пленки
Разрешает декодерам синтезировать зерно пленки
Предпочтения отображения фильтра удаления блочности
Рекомендует, должны ли показанные картинки подвергнуться процессу фильтра удаления блочности в контуре
Подсказки постфильтра
Обеспечивает коэффициенты постфильтра или информацию корреляции для структуры постфильтра
Информация отображения тона
Переотображение в другое цветное пространство, чем используемое или принятое при кодировании
Компоновка упаковки кадра
Упаковка стереоскопического видео в поток битов HEVC
Ориентация дисплея
Задает переключение и/или вращение, которое должно быть применено к картинкам вывода, когда они показываются
Структура описания картинок
Описывает временную структуру и структуру внешнего предсказания потока битов
Хэш-функция декодированной картинки
Контрольная сумма декодированной картинки, которая может использоваться для обнаружения ошибок
Наборы активных параметров
Предоставляет информацию об активных VPS, SPS, и т.д.
Информация единицы декодирования
Время удаления суб-картинок для работы HRD, а также индекс единицы декодирования
Индекс временного уровня нуль
Обеспечивает значения индекса временного уровня нуль
Вложенность масштабирования
Обеспечивает механизм, чтобы вложить сообщения SEI для ассоциации к различным точкам и уровням операции
Информация восстановления области
Предоставляет информацию об обновленной и необновленной области для постепенного обновления декодирования
[0056] Произвольный доступ относится к декодированию потока битов видео, начинающегося с закодированной картинки, которая не является первой закодированной картинкой в потоке битов. Произвольный доступ к потоку битов необходим во многих приложениях видео, таких как вещание и потоковая передача, например, для пользователей, чтобы переключиться между различными каналами, перейти к конкретным частям видео, или к переключиться к другому потоку битов для адаптации потока (например, для частоты следования битов, скорости передачи кадров или масштабируемости пространственного разрешения). Произвольный доступ разрешен при наличии структуры кодирования, которая включает в себя картинки точки произвольного доступа (RAP) или единицы доступа, много раз с регулярными интервалами, для видео последовательности. Картинки мгновенного обновления декодера (IDR), картинки чистого произвольного доступ (CRA), и картинки доступа с разорванной ссылкой (BLA) являются типами картинок RAP, определенных в HEVC WD7. Каждая из картинок IDR, картинок CRA и картинок BLA включает в себя только I картинки. Однако, каждая из картинок IDR, картинок CRA и картинок BLA отличается на основании определенных ограничений ссылки.
6
[0057] Картинки IDR заданы в AVC и определены согласно HEVC WD7. В то время как картинки IDR могут использоваться для произвольного доступа, картинки IDR ограничены в том, что картинки после картинки IDR в порядке декодирования не могут использовать картинки, декодированные до картинки IDR, в качестве опорных. В примере, иллюстрированном на фиг. 1 и 2, как описано выше, pic в видео последовательности 100 может быть картинкой IDR. Из-за ограничений, ассоциированных с картинками IDR, потоки битов, полагающиеся на картинки IDR для произвольного доступа, может иметь значительно более низкую эффективность кодирования.
9
8
9
8
2
6
2
9
7
2
9
[0058] Чтобы улучшить эффективность кодирования, концепция картинок CRA была введена в HEVC. Согласно HEVC WD7, картинка CRA, подобно картинке IDR, включает в себя только I картинки. Однако, картинкам, которые следуют за картинкой CRA в порядке декодирования, но предшествуют картинкам CRA в порядке вывода, разрешено использовать картинки, декодированные перед картинкой CRA, в качестве опорных. Картинки, которые следуют за картинкой CRA в порядке декодирования, но предшествуют картинке CRA в порядке вывода, упоминаются как начальные картинки, ассоциированные с картинкой CRA (или начальные картинки для картинки CRA). Начальные картинки для картинки CRA корректно декодируются, если декодирование начинается с картинки IDR или CRA перед текущей картинкой CRA. Однако, начальные картинки для картинки CRA могут не быть корректно декодируемыми, когда происходит произвольный доступ от картинки CRA. Со ссылками на пример, иллюстрированный на фиг. 1 и 2, Pic может быть картинкой CRA, и Pic может быть начальной картинкой Pic. Pic является корректно декодируемой, если GOP доступна в Pic, но может не быть корректно декодируемой, если к GOP получают доступ в качестве Pic. Это имеет место потому, что Pic может не быть доступна, если к GOP получают доступ как Pic. Чтобы предотвратить распространение ошибки от опорных картинок, которые могут не быть доступны в зависимости от того, где декодирование начинается, согласно 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, типы единиц NAL VPS, SPS, PPS, и 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.
c
[0070] Таким образом на основании значений time_scale и num_units_in_tick, переменная так называемого такта системных часов, t, может быть выведена следующим образом:
c
t=num_units_in_tick÷time_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:
to, dpb
c
c
n
Когда fixed_pic_rate_flag будет равен 1 для закодированной видео последовательности, содержащей картинку n, значение, вычисленное для Δ (n) как задано в уравнении C-13 должно быть равным t, как задано в Уравнении C-1 (использование значения t для закодированной видео последовательности, содержащей картинку n), когда одно или более следующих условий верны для следующей картинки n, которое задано для использования в Уравнении C-13:
n
- картинка n находится в той же закодированной видео последовательности, что картинка n.
n
n
- картинка n находится в другой закодированной видео последовательности, и fixed_pic_rate_flag равен 1 в закодированной видео последовательности, содержащей картинку n, и значение num_units_in_tick÷time_scale является одинаковым для обеих закодированных видео последовательностей.
[0072] При этом Уравнение C-1 соответствует уравнению (1) и Уравнение C-13 определен в HEVC WD7 следующим образом:
to, dpb
к, dpb (nn)
к, dpb
Δ(n)=− (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 может ранжироваться от 8×8 пикселей до размера блока дерева с максимумом 64×64 пикселей или больше. Каждая 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 равен 2N×2N, HM поддерживает внутреннее предсказание в размерах PU, равных 2N×2N или N×N, и внешнее предсказание в симметричных размерах PU, равных 2N×2N, 2N×N, N×2N, или N×N. HM также поддерживает асимметричное разделение для внешнего предсказания в размерах PU, равных 2N×nU, 2N×nD, nL×2N, и nR×2N. При асимметричном разделении одно направление CU не разделяется, в то время как другое направление разделяется на 25% и 75%. Часть CU, соответствующая 25%-ому разделению, обозначена “n”, сопровождаемая индикацией «верхний», «нижний», «левый» или «правый». Таким образом, например, “2N×nU” относится к 2N×2N CU, которая разделена горизонтально с 2N×0.5N PU сверху и 2N×1.5N PU внизу.
[0090] В настоящем раскрытии “N×N” и “N на N” могут использоваться взаимозаменяемо, чтобы ссылаться на пиксельные измерения блока видео в терминах вертикального и горизонтального измерений, например, 16×16 пикселей или 16 на 16 пикселей. В общем, блок 16×16 имеет 16 пикселей в вертикальном направлении (y=16) и 16 пикселей в горизонтальном направлении (x=16). Аналогично, блок N×N обычно имеет N пикселей в вертикальном направлении и N пикселей в горизонтальном направлении, где N представляет неотрицательное целочисленное значение. Пиксели в блоке могут быть размещены в рядах и колонках. Кроме того, блоки не должны обязательно иметь то же количество пикселей в горизонтальном направлении, как в вертикальном направлении. Например, блоки могут содержать N×M пикселей, где М не обязательно равно 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, которая может иметь ассоциированные картинки TFDslice_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
VCL
slice_layer_rbsp( )
2
Закодированная вырезка картинки TLAslice_layer_rbsp( )
VCL
3
Закодированная вырезка картинки TFDslice_layer_rbsp( )
VCL
4
Закодированная вырезка картинки DLPslice_layer_rbsp( )
VCL
5
Закодированная вырезка картинки CRA без ассоциированных начальных картинок slice_layer_rbsp( )
VCL
6
Закодированная вырезка картинки CRA, которая не имеет ассоциированной TFD (но может иметь ассоциированные картинки DLP) slice_layer_rbsp( )
VCL
7
Закодированная вырезка картинки CRA, которая может иметь ассоциированные картинки TFDslice_layer_rbsp( )
VCL
8
Закодированная вырезка картинки BLA без ассоциированных начальных картинок slice_layer_rbsp( )
VCL
9
Закодированная вырезка картинки BLA, которая не имеет ассоциированной TFD (но может иметь ассоциированные картинки DLP) slice_layer_rbsp( )
VCL
10
Закодированная вырезка картинки BLA, которая может иметь ассоциированные картинки TFDslice_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 и не-TLA slice_layer_rbsp( )
VCL
2
Закодированная вырезка картинки TLAslice_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
Зарезервировано
н/о
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
Зарезервировано
н/о
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 (ветвь “ДА” 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] Были описаны различные примеры. Эти и другие примеры находятся в рамках нижеследующей формулы изобретения.