Инициализация вероятностей и состояний контекстов для контекстно-адаптивного энтропийного кодирования

Изобретение относится к области контекстно-адаптивного энтропийного кодирования видеоданных. Технический результат - обеспечение инициализации контекстов процесса кодирования посредством определения значений индексов параметров инициализации. Способ инициализации контекста, используемого для того, чтобы кодировать видеоданные в процессе контекстно-адаптивного энтропийного кодирования, содержит этапы, на которых: определяют первое значение индекса параметра инициализации в качестве x>>4, где x является 8-битовым параметром; определяют второе значение индекса параметра инициализации в качестве x&15, где x является идентичным 8-битовым параметром; определяют один или более параметров инициализации для процесса контекстно-адаптивного энтропийного кодирования на основе первого и второго значений индексов параметров инициализации и инициализируют на основе одного или более параметров инициализации состояние контекста, используемого для того, чтобы кодировать видеоданные в процессе контекстно-адаптивного энтропийного кодирования. 4 н. и 41 з.п. ф-лы, 8 ил.

 

[0001] Данная заявка испрашивает приоритет предварительной заявки на патент (США) № 61/555469, поданной 3 ноября 2011 года, предварительной заявки на патент (США) № 61/556808, поданной 7 ноября 2011 года, предварительной заявки на патент (США) № 61/557785, поданной 9 ноября 2011 года, и предварительной заявки на патент (США) № 61/560107, поданной 15 ноября 2011 года, содержимое каждой из которых полностью содержится в данном документе по ссылке.

Область техники, к которой относится изобретение

[0002] Данное раскрытие сущности относится к энтропийному кодированию видеоданных и т. п., а более конкретно - к контекстно-адаптивному энтропийному кодированию.

Уровень техники

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

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

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

Сущность изобретения

[0006] Это раскрытие сущности описывает технологии для кодирования данных, таких как видеоданные. Например, технологии могут быть использованы для того, чтобы кодировать видеоданные, такие как остаточные коэффициенты преобразования и/или другие элементы синтаксиса, сформированные посредством процессов кодирования видео. В частности, раскрытие сущности описывает технологии, которые могут способствовать эффективному кодированию видеоданных с использованием процессов контекстно-адаптивного энтропийного кодирования. Раскрытие сущности описывает кодирование видео только в целях иллюстрации. В связи с этим технологии, описанные в этом раскрытии сущности, могут быть применимыми к кодированию других типов данных.

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

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

[0009] В одном примере способ контекстно-адаптивного энтропийного кодирования может включать в себя определение одного или более параметров инициализации для процесса контекстно-адаптивного энтропийного кодирования на основе одного или более значений индексов параметров инициализации. Способ также может включать в себя определение одного или более состояний начальных контекстов для инициализации одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более параметров инициализации. Помимо этого способ может включать в себя инициализацию одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более начальных состояний контекстов.

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

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

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

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

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

Краткое описание чертежей

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

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

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

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

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

Подробное описание изобретения

[0020] Это раскрытие сущности описывает технологии для кодирования данных, таких как видеоданные. Например, технологии могут быть использованы для того, чтобы кодировать видеоданные, такие как остаточные коэффициенты преобразования и/или другие элементы синтаксиса, сформированные посредством процессов кодирования видео. В частности, раскрытие сущности описывает технологии, которые могут способствовать эффективному кодированию видеоданных с использованием процессов контекстно-адаптивного энтропийного кодирования. Раскрытие сущности описывает кодирование видео только в целях иллюстрации. В связи с этим технологии, описанные в этом раскрытии сущности, могут быть применимыми к кодированию других типов данных.

[0021] В этом раскрытии сущности термин "кодирование" (coding) означает кодирование (encoding), которое осуществляется в кодере, или декодирование, которое осуществляется в декодере. Аналогично термин "кодер" (coder) означает кодер (encoder), декодер или комбинированный кодер/декодер (к примеру, "кодек"). Термины «кодер» (coder), «кодер» (encoder), «декодер» и «кодек» означают конкретные машины, спроектированные с возможностью кодирования (coding) (т. е. кодирования (encoding) и/или декодирования) данных, таких как видеоданные, в соответствии с этим раскрытием сущности.

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

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

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

[0025] Технологии этого раскрытия сущности в некоторых примерах могут быть использованы с любой технологией контекстно-адаптивного энтропийного кодирования, включающей в себя контекстно-адаптивное кодирование переменной длины (CAVLC), CABAC, синтаксическое контекстно-адаптивное двоичное арифметическое кодирование (SBAC), энтропийное кодирование на основе сегментирования на интервалы вероятности (PIPE) или другую технологию контекстно-адаптивного энтропийного кодирования. CABAC описано в данном документе только в целях иллюстрации и без ограничения в отношении технологий, описанных в широком смысле в этом раскрытии сущности. Кроме того, технологии, описанные в данном документе, могут, в общем, применяться к кодированию других типов данных, например, в дополнение к видеоданным.

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

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

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

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

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

[0031] Захваченное, предварительно захваченное или генерируемое компьютером видео может быть кодировано посредством видеокодера 20. Кодированные видеоданные могут быть переданы непосредственно в устройство-адресат 14 через интерфейс 22 вывода устройства-источника 12. Кодированные видеоданные также (или альтернативно) могут сохраняться на устройство 24 хранения для последующего доступа посредством устройства-адресата 14 или других устройств для декодирования и/или воспроизведения.

[0032] Устройство-адресат 14 включает в себя интерфейс 26 ввода, видеодекодер 30 и устройство 28 отображения. В некоторых случаях интерфейс 26 ввода может включать в себя приемное устройство и/или модем. Интерфейс 26 ввода устройства-адресата 14 принимает кодированные видеоданные по линии 16 связи или из устройства 24 хранения. Кодированные видеоданные, передаваемые по линии 16 связи или предоставленные на устройстве 24 хранения, могут включать в себя множество элементов синтаксиса, сформированных посредством видеокодера 20 для использования посредством видеодекодера, такого как видеодекодер 30, при декодировании видеоданных. Такие элементы синтаксиса могут быть включены с кодированными видеоданными, передаваемыми на среде связи, сохраненными на носителе хранения данных или сохраненными на файловом сервере.

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

[0034] Видеокодер 20 и видеодекодер 30 могут работать согласно стандарту сжатия видео, такому как стандарт высокоэффективного кодирования видео (HEVC), разрабатываемый в данный момент посредством объединенной группы для совместной работы над видеостандартами (JCT-VC) экспертной группы в области кодирования видео (VCEG) ITU-T и экспертной группы по киноизображению (MPEG) ISO/IEC, и могут соответствовать тестовой модели HEVC (HM). Альтернативно видеокодер 20 и видеодекодер 30 могут работать согласно другим собственным или отраслевым стандартам, таким как стандарт ITU-T H.264, альтернативно называемый "MPEG-4, часть 10, усовершенствованное кодирование видео (AVC) (далее H.264/AVC)", или расширениям таких стандартов. Тем не менее, технологии этого раскрытия сущности не ограничены каким-либо конкретным стандартом кодирования. Другие примеры стандартов сжатия видео включают в себя MPEG-2 и ITU-T H.263. Последний проект HEVC-стандарта, называемый "рабочим проектом HEVC 8" или "WD8", описывается в документе JCTVC-J1003_d7, Bross и др., "High efficiency video coding (HEVC) text specification draft 8", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 10th Meeting: Стокгольм, SE, 11-20 июля 2012 года.

[0035] Хотя не показано на фиг. 1, в некоторых аспектах, видеокодер 20 и видеодекодер 30 могут быть интегрированы с аудио-кодером и декодером, соответственно, и могут включать в себя соответствующие модули мультиплексора-демультиплексора либо другие аппаратные средства и программное обеспечение, чтобы обрабатывать кодирование как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, в некоторых примерах блоки мультиплексора-демультиплексора могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).

[0036] Видеокодер 20 и видеодекодер 30 могут быть реализованы как любая из множества надлежащих схем кодера или декодера, к примеру, один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение либо любые комбинации вышеозначенного. Когда технологии реализуются частично в программном обеспечении, устройство может сохранять инструкции для программного обеспечения на подходящем энергонезависимом считываемом компьютером носителе данных и выполнять инструкции в аппаратных средствах с использованием одного или более процессоров, чтобы осуществлять технологии этого раскрытия сущности. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (к примеру, кодека) в соответствующем устройстве.

[0037] Работа по стандартизации HEVC основана на усовершенствованной модели устройства кодирования видео, называемой "тестовой моделью HEVC (HM)". HM предполагает несколько дополнительных возможностей устройств кодирования видео относительно существующих устройств согласно, например, ITU-T H.264/AVC. Например, тогда как H.264 предоставляет девять режимов внутреннего прогнозирующего кодирования, HM может предоставлять всего тридцать пять режимов внутреннего прогнозирующего кодирования.

[0038] В общем, рабочая модель HM описывает, что видеокадр или изображение может быть разделено на последовательность древовидных блоков или наибольших единиц кодирования (LCU), которые включают в себя выборки как сигнала яркости, так и сигнала цветности. Древовидный блок имеет назначение, аналогичное назначению макроблока по стандарту H.264. Слайс включает в себя определенное число последовательных древовидных блоков в порядке кодирования. Видеокадр или изображение может быть сегментировано на один или более слайсов. Каждый древовидный блок может разбиваться на единицы кодирования (CU) согласно дереву квадрантов. Например, древовидный блок, в качестве корневого узла дерева квадрантов, может разбиваться на четыре дочерних узла, и каждый дочерний узел, в свою очередь, может быть родительским узлом и разбиваться еще на четыре дочерних узла. Конечный, неразбитый дочерний узел, в качестве концевого узла дерева квадрантов, содержит узел кодирования, т. е. кодированный видеоблок. Синтаксические данные, ассоциированные с кодированным потоком битов, могут задавать максимальное число раз, которое может разбиваться древовидный блок и также может задавать минимальный размер узлов кодирования.

[0039] CU включает в себя узел кодирования и единицы прогнозирования (PU) и единицы преобразования (TU), ассоциированные с узлом кодирования. Размер CU соответствует размеру узла кодирования и может иметь квадратную форму. Размер CU может колебаться от 8×8 пикселов вплоть до размера древовидного блока максимум в 64×64 пикселов или более. Каждая CU может содержать одну или более PU и одну или более TU. Синтаксические данные, ассоциированные с CU, могут описывать, например, сегментирование CU на одну или более PU. Режимы сегментирования могут отличаться между тем, является CU кодированной в режиме пропуска или прямом режиме, кодированной в режиме внутреннего прогнозирования или кодированной в режиме внешнего прогнозирования. PU могут быть сегментированы таким образом, что они имеют неквадратную форму. Синтаксические данные, ассоциированные с CU, также могут описывать, например, сегментирование CU на одну или более TU согласно дереву квадрантов. TU может иметь квадратную или неквадратную форму.

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

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

[0042] В общем, TU используется для процессов преобразования и квантования. Данная CU, имеющая одну или более PU, также может включать в себя одну или более TU. После прогнозирования видеокодер 20 может вычислять остаточные значения, соответствующие PU. Остаточные значения содержат значения пиксельных разностей, которые могут быть преобразованы в коэффициенты преобразования, квантованы и сканированы с использованием TU, чтобы формировать преобразованные в последовательную форму коэффициенты преобразования для энтропийного кодирования. Это раскрытие сущности типично использует термин "видеоблок" для того, чтобы означать узел кодирования CU. В некоторых конкретных случаях это раскрытие сущности также может использовать термин "видеоблок" для того, чтобы означать древовидный блок, т. е. LCU или CU, которая включает в себя узел кодирования и PU и TU.

[0043] Видеопоследовательность типично включает в себя серии видеокадров или изображений. Группа изображений (GOP), в общем, содержит последовательность из одного или более видеоизображений. GOP может включать в себя в заголовке GOP, в заголовке одного или более изображений или в другом месте синтаксические данные, которые описывают число изображений, включенных в GOP. Каждый слайс изображения может включать в себя синтаксические данные слайса, которые описывают режим кодирования для соответствующего слайса. Видеокодер 20 типично оперирует с видеоблоками в пределах отдельных видеослайсов, чтобы кодировать видеоданные. Видеоблок может соответствовать узлу кодирования в CU. Видеоблоки могут иметь фиксированные или варьирующиеся размеры и могут отличаться по размеру согласно указанному стандарту кодирования.

[0044] В качестве примера 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", после чего идет индикатор относительно "вверх (Up)", "вниз (Down)", "влево (Left)" или "вправо (Right)". Таким образом, например, "2NxnU" ссылается на CU 2N×2N, которая сегментируется горизонтально с PU 2N×0,5N вверху и PU 2N×1,5N внизу.

[0045] В этом раскрытии сущности "N×N" и "N×N" могут быть использованы взаимозаменяемо для того, чтобы ссылаться на размеры пиксела видеоблока с точки зрения размеров по вертикали и горизонтали, например, 16×16 пикселов или 16 на 16 пикселов. В общем, блок 16×16 должен иметь 16 пикселов в вертикальном направлении (y=16) и 16 пикселов в горизонтальном направлении (x=16). Аналогично блок N×N, в общем, имеет N пикселов в вертикальном направлении и N пикселов в горизонтальном направлении, при этом N представляет неотрицательное целочисленное значение. Пикселы в блоке могут размещаться в строках и столбцах. Кроме того, блок не обязательно должен иметь совпадающее число пикселов в горизонтальном направлении и в вертикальном направлении. Например, блоки могут содержать N×M пикселов, причем M не обязательно равно N.

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

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

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

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

[0050] В общем, согласно технологиям H.264/AVC и определенным предварительным версиям HEVC, описанным выше, кодирование символа данных (например, элемента синтаксиса или части элемента синтаксиса для кодированного блока видеоданных) с использованием CABAC может заключать в себе следующие этапы:

(1) Преобразование в двоичную форму: если символ, который должен быть кодирован, имеет недвоичное значение, он преобразуется в последовательность так называемых "элементов выборки". Каждый элемент выборки может иметь значение 0 или 1.

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

(3) Кодирование элементов выборки: элементы выборки кодируются с помощью арифметического кодера. Чтобы кодировать данный элемент выборки, арифметический кодер требует в качестве ввода вероятность (например, оцененную вероятность) значения элемента выборки, т. е. вероятность того, что значение элемента выборки равно 0, и вероятность того, что значение элемента выборки равно 1. Например, контекст, назначаемый элементу выборки, как описано выше на этапе (2), может указывать эту вероятность значения элемента выборки. В качестве одного примера вероятность каждого контекста (например, оцененная вероятность, указываемая посредством каждого контекста) может быть представлена посредством целочисленного значения, ассоциированного с контекстом, называемого "состоянием" контекста. Каждый контекст имеет состояние контекста (например, конкретное состояние контекста в любой момент времени). В связи с этим состояние контекста (т. е. оцененная вероятность) является идентичным для элементов выборки, назначаемых одному контексту, и отличается между контекстами (например, варьируется между различными контекстами и в некоторых случаях для данного контекста во времени). Дополнительно для того чтобы кодировать элемент выборки, арифметический кодер дополнительно требует в качестве ввода значение элемента выборки, как описано выше.

(4) Обновление состояния: вероятность (например, состояние контекста) для выбранного контекста обновляется на основе фактического кодированного значения элемента выборки. Например, если значение элемента выборки равно 1, вероятность "единиц" увеличивается, а если значение элемента выборки равно 0, вероятность "нулей" увеличивается для выбранного контекста.

[0051] Множество аспектов этого раскрытия сущности подробно описаны в контексте CABAC. Дополнительно PIPE, CAVLC, SBAC или другие технологии контекстно-адаптивного энтропийного кодирования могут использовать принципы, аналогичные принципам, описанным в данном документе в отношении CABAC. В частности, эти или другие технологии контекстно-адаптивного энтропийного кодирования могут использовать инициализацию состояний контекстов и, следовательно, также могут извлекать выгоду из технологий этого раскрытия сущности.

[0052] Кроме того, как описано выше, CABAC-технологии H.264/AVC включают в себя состояния контекстов использования, при этом каждое состояние контекста неявно связано с вероятностью. Предусмотрены разновидности CABAC, в которых вероятность (например, 0 или 1) данного кодируемого символа используется непосредственно, т. е. вероятность (или целочисленная версия вероятности) представляет собой само состояние контекста, как подробнее описано ниже.

[0053] До инициирования процесса CABAC-кодирования или декодирования начальное состояние контекста, возможно, должно назначаться каждому контексту CABAC-процесса. В H.264/AVC и определенных предварительных версиях HEVC, линейное соотношение или "модель" используется для того, чтобы назначать начальные состояния контекстов для каждого контекста. В частности, для каждого контекста предварительно заданные параметры инициализации, наклон (m) и пересечение (n), используются для того, чтобы определять начальное состояние контекста для контекста. Например, согласно H.264/AVC и определенным предварительным версиям HEVC, начальное состояние контекста для данного контекста может извлекаться с использованием следующих соотношений:

Int iInitState=((m*iQp)/16)+n; уравнение (1)

iInitState=min(max(1, iInitState), 126), уравнение (2)

[0054] В уравнении EQ (1) m и n соответствуют параметрам инициализации для инициализируемого контекста (т. е. для определения начального состояния iInitState контекста для контекста). Кроме того, iQP, который может упоминаться в качестве параметра квантования (QP) при инициализации, может соответствовать QP для кодируемых данных (например, блока видеоданных). Значение QP для данных и в силу этого значение iQP может задаваться, например, на покадровой основе, на основе слайсов или на поблочной основе. Дополнительно значения параметров m и n инициализации могут варьироваться для различных контекстов. Кроме того, уравнение EQ (2) может упоминаться как функция "отсечения", которая может быть использована для того, чтобы гарантировать, что значение iInitState располагается между 1 и 126, в силу этого давая возможность представления значения с использованием 7 битов данных.

[0055] В некоторых примерах iInitState может быть дополнительно преобразован в фактическое состояние контекста для контекста в CABAC, плюс символ "наиболее вероятный символ (MPS)/наименее вероятный символ (LPS)", с использованием следующих выражений:

if (iInitState>=64)

{

m_ucState=min(62, iInitState-64);

m_ucState+=m_ucState+1;

}

Else

{

m_ucState=min(62, 63-iInitState);

m_ucState+=m_ucState;

}

где m_ucState соответствует фактическому состоянию контекста для контекста в CABAC плюс MPS/LPS-символ.

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

Int c=asCtxInit[0]+asCtxInit[1]*(iQp-iQPreper); уравнение (3)

iP0=min(max(1, c), 32767). уравнение (4)

[0057] Значение iP0 может указывать вероятность кодируемого символа, непосредственно указываемую посредством состояния c контекста для данного контекста. Соответственно в этом примере нет необходимости преобразовывать вероятность символа iP0 в MPS- и LPS-символы и фактическое состояние контекста, как описано выше. Кроме того, как показано, соотношение, или "модель", уравнения EQ (3) также является линейным и основывается на двух параметрах инициализации, а именно, asCtxInit[0] и asCtxInit[1]. Например, iQP снова может соответствовать QP для кодируемых данных. Дополнительно в некоторых примерах iQPreper может соответствовать константе, к примеру, offset, используемой для того, чтобы модифицировать iQp.

[0058] В вышеописанном примере вероятность символа iP0 выражается как целое число с использованием 15 битов данных, при этом минимальная ненулевая вероятность равна 1, а максимальная вероятность равна 32767. В этом примере "фактическая" вероятность извлекается с использованием выражения iP0/32768. Дополнительно уравнение EQ (4) также может упоминаться как функция "отсечения" и может быть использовано для того, чтобы гарантировать, что значение iP0 располагается между 1 и 32767, в силу этого давая возможность представления значения с использованием 15 битов данных.

[0059] Подход, описанный выше, имеет несколько недостатков. В качестве одного примера, поскольку CABAC-процесс, описанный выше в отношении H.264/AVC и определенных предварительных версий HEVC, включает в себя значительное число контекстов (например, всего 369 контекстов), каждый контекст может быть инициализирован с использованием конкретного набора или "пары" параметров m и n инициализации. Как результат, значительное число параметров m и n инициализации (например, всего 369 различных пар параметров m и n инициализации) может быть использовано для того, чтобы определять начальные состояния контекстов для контекстов. Кроме того, поскольку каждый из параметров m и n инициализации может быть представлен с использованием всего 8 битов данных, значительный объем информации (например, число битов данных) может требоваться для того, чтобы сохранять и/или передавать параметры m и n инициализации в целях определения начальных состояний контекстов для контекстов. Например, всего 5904 бита данных могут требоваться для того, чтобы сохранять и/или передавать 369 различных пар параметров m и n инициализации, каждая из которых содержит 16 битов данных (т. е. каждый из параметров m и n инициализации конкретной пары содержит 8 битов данных).

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

[0061] Это раскрытие сущности описывает несколько технологий, которые могут в некоторых случаях уменьшать или исключать некоторые недостатки, описанные выше в отношении инициализации состояний контекстов (т. е. определения начальных состояний контекстов для контекстов, при этом начальные состояния контекстов указывают начальные вероятности контекстов), и инициализации вероятностей (т. е. непосредственного определения начальных вероятностей контекстов) процесса контекстно-адаптивного энтропийного кодирования. В частности, технологии, описанные в данном документе, могут обеспечивать возможность системам или устройствам контекстно-адаптивного энтропийного кодирования (например, CABAC, CAVLC, SBAC, PIPE и т. д.), используемым для того, чтобы кодировать данные, такие как, например, видеоданные, иметь меньшую сложность относительно других систем или устройств. В качестве одного примера технологии этого раскрытия сущности могут обеспечивать возможность системе или устройству сохранять и/или передавать значения индексов параметров инициализации, которые указывают параметры инициализации m и m, описанные выше, которые используются для того, чтобы определять начальные состояния контекстов для контекстов процесса контекстно-адаптивного энтропийного кодирования, вместо сохранения и/или передачи непосредственно параметров инициализации. В этом примере значения индексов параметров инициализации могут быть представлены с использованием меньшего объема информации (например, меньшего числа битов данных) по сравнению с параметрами инициализации, возможно приводя к уменьшенному объему информации, сохраненной в системах или устройствах и в некоторых случаях передаваемой из систем в другие системы или устройства.

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

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

[0064] Например, разработка технологий этого раскрытия сущности демонстрирует, что в некоторых случаях использование линейного соотношения между начальными состояниями контекстов и QP кодируемых данных (например, видеоданных), как описано выше в отношении H.264/AVC и HEVC, может приводить к относительно менее точным начальным вероятностям контекстов по сравнению с использованием других технологий. Как результат, начальные вероятности, указываемые посредством начальных состояний контекстов, могут существенно отличаться от фактических вероятностей кодируемых данных. Соответственно, как подробнее описано ниже, это раскрытие сущности предлагает несколько способов формирования или определения значений инициализации (т. е. начальных состояний контекстов или начальных вероятностей непосредственно) для контекстов, чтобы повышать точность так называемых начальных "оценок состояний/вероятностей" (т. е. вероятностей) контекстов. Дополнительно это раскрытие сущности также предлагает технологии для уменьшения битовой ширины параметров инициализации на основе линейной модели (т. е. m и n), описанной выше, так что может уменьшаться пространство хранения для таблицы инициализации (например, размер таблицы), которая включает в себя информацию инициализации для контекстов (например, параметры m и n инициализации).

[0065] Например, в HM параметры m и n инициализации, описанные выше, сохраняются с использованием 16-битовых целых чисел со знаком. В связи с этим 16 битов данных используются для сохранения каждого параметра инициализации m и n. Поскольку технологии H.264/AVC и определенные предварительные версии HEVC могут включать в себя всего 369 контекстов, всего 369 наборов или "пар" параметров m и n инициализации (например, 369" (m, n)" пары) могут быть сохранены в конкретном кодере, в силу этого потребляя достаточно большой объем запоминающего устройства или устройства хранения.

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

Наклон=SlopeTable[m]

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

Пересечение=IntersectionTable[n]

[0068] Другими словами, согласно раскрытым технологиям, параметры m и n инициализации, описанные выше в отношении H.264/AVC и HEVC, могут переопределяться в качестве значений m и n индексов параметров инициализации, которые, в свою очередь, указывают параметры инициализации (которые могут упоминаться в качестве просто параметров slope и intersection инициализации). Тем не менее, в других примерах параметры m и n инициализации H.264/AVC и HEVC могут сохранять свой исходный смысл, в то время как значения индексов параметров инициализации технологий, раскрытых в данном документе, могут упоминаться в качестве значений idx_m и idx_n индексов параметров инициализации. В следующих примерах значения индексов параметров инициализации упоминаются в качестве значений m и n индексов параметров инициализации.

[0069] Пример таблицы наклонов и таблицы пересечений, которая включает в себя значения наклона и пересечения, соответственно, определенные с использованием значений m и n индексов параметров инициализации, показывается ниже:

SlopeTable[16]={-46, -39, -33, -28, -21, -14, -11, -6, 0, 7, 12, 17, 21, 26, 34, 40}

IntersectionTable[16]={-42, -25, -11, 0, 9, 20, 32, 43, 54, 63, 71, 79, 92, 104, 114, 132}

[0070] В некоторых примерах 4-битовое значение m и 4-битовое значение n индексов параметров инициализации могут быть комбинированы с использованием 8-битового параметра x, при этом "m=x>>4 и n=x&15", либо наоборот, "n=x>>4 и m=x&15" может быть использовано для того, чтобы извлекать m и n с использованием x. В этом примере ">>" указывает операцию сдвига вправо, и "and" указывает логическую операцию "И".

[0071] В других примерах также можно использовать неравные числа битов, чтобы представлять значения m и n индексов параметров инициализации. Например, 5 битов данных могут быть использованы для того, чтобы представлять m, и 3 бита данных могут быть использованы для того, чтобы представлять n или наоборот.

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

Наклон=functionA(m), и/или Пересечение=functionB(n)

[0073] С использованием наклона (slope) в качестве примера функция наклона может быть линейной функцией, такой как, например, следующее выражение:

наклон=c0*m+c1,

где c0 и c1 являются параметрами линейной функции.

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

наклон=m<<k+c1,

где k является параметром сдвига, и c1 является константой.

[0075] В качестве дополнительного примера для следующих таблиц:

SlopeTable[16]={-45 -40 -35 -30 -25 -20 -15 -10 -5 0 5 10 15 20 25 30}

IntersectionTable[16]={-16 -8 0 8 16 24 32 40 48 56 64 72 80 88 96 104},

следующие соотношения, включающие в себя x, могут быть использованы для того, чтобы определять значения m и n индексов параметров инициализации, которые, в свою очередь, могут быть использованы для того, чтобы определять соответствующие значения наклона и пересечения с использованием таблиц:

m=x>>4, n=x&15 (или наоборот, n=x>>4 и m=x&15).

Также в этом примере ">>" указывает операцию сдвига вправо, и "and" указывает логическую операцию "И".

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

Наклон=m*5-45

Пересечение=n*8-16

(или эквивалентно Пересечение=(n<<3)-16)

[0077] В других примерах 4 бита параметра m и 4 бита параметра n могут быть комбинированы в 8-битовый параметр idx, в котором вместо использования двух отдельных значений индекса для того, чтобы определять значения наклона и пересечения, может быть использовано одно значение индекса (т. е. "idx"), как показано в нижеприведенных выражениях:

Наклон=SlopeTable[idx]

Пересечение=IntersectionTable[idx]

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

[0079] В качестве одного примера, как проиллюстрировано на фиг. 4 и как подробнее описано ниже, кадр видеоданных может быть кодирован в иерархической структуре. Например, как проиллюстрировано на фиг. 4, кадры 0, 4 и 8 кодируются во временном слое 0, кадры 2 и 6 кодируются во временном слое 1, и оставшиеся кадры (т. е. кадры 1, 3, 5 и 7) кодируются во временном слое 2. Разработка технологий этого раскрытия сущности демонстрирует, что зависимость между различными кадрами видеоданных может быть асимметричной. Например, кадры видеоданных, расположенных в более низких временных слоях, могут быть опорными кадрами кадров видеоданных, расположенных в более высоких временных слоях (например, как показано посредством стрелок, проиллюстрированных на фиг. 4). Как также показано на фиг. 4, такие зависимости в направлениях, которые являются обратными относительно направлений, проиллюстрированных на фиг. 4, могут не разрешаться. Как результат, начальные вероятности контекстов процесса контекстно-адаптивного энтропийного кодирования, используемого для того, чтобы кодировать один или более кадров видеоданных, могут варьироваться в зависимости от временного слоя, ассоциированного с кадрами видеоданных.

[0080] Соответственно это раскрытие сущности описывает технологии для добавления смещения в начальное состояние контекста, извлекаемое с использованием линейного соотношения, описанного выше в отношении H.264/AVC и HEVC, например, с использованием следующих соотношений:

Int iInitState=((m*iQp)/16)+n+offset;

iInitState=min(max(1, iInitState), 126)

[0081] В одном примере значение offset может быть фиксированным и зависимым от временного слоя текущего слайса, ассоциированного с кодируемыми данными (например, кадром видеоданных). Например, значение offset может задаваться равным -2 для временного слоя 0, задаваться равным 2 для временного слоя 1, задаваться равным 3 для временного слоя 2 и задаваться равным 4 для временного слоя 3. В другом примере offset может быть функцией от временного слоя, например, как показано в нижеприведенном выражении:

offset=offset_base*(temporal_layer-c0)+c1,

где offset_base соответствует базовому значению смещения, temporal_layer соответствует временному слою, ассоциированному с кодированными данными, c0 и c1 соответствуют константам, и offset соответствует результирующему смещению, используемому в линейном соотношении для инициализации контекстов, описанном выше.

[0082] В другом примере offset может быть использован способом, показанным в следующих соотношениях:

Int iInitState=(((m*iQp)/16)+n)*(1+offset);

iInitState=min(max(1, iInitState), 126)

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

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

[0085] В вышеприведенных примерах может быть одно значение offset для всех контекстов или может быть несколько значений offset, при этом каждое значение применяется к конкретному поднабору контекстов. В одном примере контексты могут быть разделены на три группы (т. е. G1, G2 и G3) и использовать одно значение offset, к примеру, как показано в нижеприведенных выражениях:

[0086] For G1,

Int iInitState=((m*iQp)/16)+n+offset;

iInitState=min(max(1, iInitState), 126).

[0087] For G2,

Int iInitState=((m*iQp)/16)+n-offset;

iInitState=min(max(1, iInitState), 126).

[0088] For G3,

Int iInitState=((m*iQp)/16)+n;

iInitState=min(max(1, iInitState), 126).

[0089] В качестве другого примера регулирование начального состояния контекста также может достигаться посредством регулирования QP, например, iQP, в линейном соотношении, описанном выше в отношении H.264/AVC и HEVC. Например, новый параметр iQp_new может быть использован для того, чтобы вычислять начальное состояние контекста, при этом iQp_new может отличаться от QP, используемого для того, чтобы кодировать видеоданные конкретного кадра (например, кадра, для которого определяется начальное состояние контекста), как показано в нижеприведенных соотношениях:

Int iInitState=((m*iQp_new)/16)+n;

iInitState=min(max(1, iInitState), 126).

[0090] В другом примере новый параметр QP_offset может быть использован для того, чтобы модифицировать QP, например, iQP, в линейном соотношении, описанном выше в отношении H.264/AVC и HEVC, как показано в нижеприведенных соотношениях:

Int iInitState=((m*(QP+QP_offset)/16)+n;

iInitState=min(max(1, iInitState), 126),

или альтернативно:

Int iInitState=((m*QP*(1+QP_offset)/16)+n;

iInitState=min(max(1, iInitState), 126).

[0091] В еще одном другом примере значение iQp_new или QP_offset может быть передано в служебных сигналах в высокоуровневом синтаксисе, таком как, например, PPS, SPS, APS либо другой набор параметров или местоположение высокоуровневого синтаксиса.

[0092] В примере, описанном выше, может быть одно значение iQp_new или QP_offset для всех контекстов или несколько значений iQp_new или QP_offset, при этом каждое значение применяется к конкретному поднабору контекстов.

[0093] В одном примере значение QP_offset и/или iQp_new может быть фиксированным и зависимым от временного слоя текущего слайса, ассоциированного с кодированными данными. Например, QP_offset может задаваться равным -3 для временного слоя 0, задаваться равным 0 для временного слоя 1, задаваться равным 3 для временного слоя 2 и задаваться равным 6 для временного слоя 3. В другом примере QP_offset может быть функцией от временного слоя, например, как показано в нижеприведенном соотношении:

QP_offset=QP_offset_base*(temporal_layer-c0)+c1,

где QP_offset_base, c0 и c1 являются константами, служащими в качестве параметров соотношения. Аналогично значение QP_offset и/или iQp_new также может извлекаться из другой "вспомогательной" информации, такой как, например, тип слайса, кадровое разрешение, размер списка опорных кадров и т. д.

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

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

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

iP0=min(max(1+offset, c), 32767-offset),

где offset является целочисленным значением. В качестве одного примера значение offset, равное 256, может предоставлять возможность начальных вероятностей без сильно перекошенных значений.

[0097] В качестве другого примера значение offset может "сопоставляться" с процессом обновления вероятностей. Другими словами, в некоторых примерах идентичное или аналогичное offset может использоваться для целей последующего обновления инициализированных вероятностей для контекстов. Соответственно этот процесс обновления также может приводить к недопущению "экстремальных" (например, близкого к 0% или 100%) вероятностей контекстов (т. е. сильно перекошенных вероятностей). Как результат, как инициализация, так и последующее обновление вероятностей (т. е. процесс инициализации вероятностей и процесс обновления вероятностей, описанные выше) могут налагать идентичные пределы на экстремальные вероятности контекстов, в силу этого возможно не допуская сильно перекошенных вероятностей контекстов. В качестве примера процесс обновления вероятностей может быть выполнен с использованием следующих соотношений:

iP0-=((iP0-offset)>>ALPHA0);

iP0+=(((32767-offset)-iP0)>>ALPHA0),

где ALPHA0 является константой.

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

[0099] В качестве другого примера вышеописанное соотношение:

Int c=asCtxInit[0]+asCtxInit[1]*(iQp-iQPreper)

может предоставлять вероятность равенства значения символа (например, элемента выборки) 0, без предоставления вероятности равенства значения символа 1.

[0100] Следующая функция или соотношение инициализации может быть использовано для того, чтобы получать вероятность равенства значения символа 1, в качестве одного примера:

iP0=32768-min(max(1+offset, c), 32767-offset)

при этом смысл вероятности меняется на противоположный. Другими словами, вышеприведенное соотношение предоставляет значение 1 (т. е. вероятность 1 или 100%) минус вероятность, извлекаемую с использованием вышеописанного соотношения:

iP0=min(max(1+offset, c), 32767-offset)

[0101] Кроме того, в этом примере 32768 может представлять собой максимальную вероятность, которая может быть эквивалентной вероятности 1 (т. е. вероятности 100%).

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

[0103] Например, как пояснено выше, в H.264/AVC и определенных предварительных версиях HEVC, начальное состояние контекста для контекста определяется на основе линейного способа или соотношения извлечения. Способ использует два параметра инициализации (т. е. m и n), каждый из которых представляется с использованием, по меньшей мере, 8 битов данных. Линейное соотношение или уравнение использует эти два параметра инициализации для того, чтобы извлекать, например, одно из 126 состояний контекстов, разрешенных в H.264/AVC, в качестве начального состояния контекста для контекста.

[0104] Разработка технологий этого раскрытия сущности демонстрирует, что нелинейные модели или соотношения могут быть более эффективными, чем линейные соотношения, такие как линейное соотношение, описанное выше в отношении H.264/AVC и HEVC, для инициализации контекстов. В частности, нелинейные соотношения могут приводить к относительно более точным начальным вероятностям контекстов по сравнению с начальными вероятностями, определенными с использованием линейных соотношений. Соответственно это раскрытие сущности предлагает использование нелинейного или частично нелинейного способа либо соотношения для того, чтобы определять начальное состояние контекста для контекста, например, с использованием ограниченного числа битов данных. В некоторых примерах технологии предлагают использование идентичного числа битов данных или меньшего числа битов данных по сравнению с числом битов данных, используемых в технологиях H.264/AVC и HEVC, описанных выше, т. е. 16 битов данных или меньше.

[0105] В качестве одного примера 16 битов данных могут быть использованы для того, чтобы определять начальное состояние контекста для контекста. Использование 16 битов может быть разделено на три части. Первая часть может включать в себя 6 битов, предоставляющих состояние контекста при данном QP-значении (например, QP=26). Следует отметить, что это значение состояния контекста квантуется таким образом, что 2 смежных состояния контекстов совместно используют идентичное квантованное состояние контекста (например, поскольку битовая глубина 6 битов предоставляет 64 индекса, которые должны передавать в служебных сигналах одно из 126 состояний контекстов). Вторая часть может включать в себя 5 битов, предоставляющих состояние контекста при втором QP-значении (например, предыдущем QP минус 8). Также это может быть квантованным состоянием контекста, поскольку битовая глубина 5 битов предоставляет 32 индекса, которые должны передавать в служебных сигналах одно из 126 состояний контекстов. В этом примере 4 состояний контекстов совместно используют идентичное квантованное состояние контекста. В завершение третья часть 16 битов может включать в себя 5 оставшихся битов, которые указывают состояние контекста при третьем QP-значении (например, при первом QP плюс 8).

[0106] Как результат, параметр инициализации этого примера может включать в себя 16 битов данных, например, InitParam=[x1 x2 x3]. В этом примере x3 может быть получено с использованием операции "x3=(InitParamand31)". Аналогично x2 может быть получено с использованием операции "x2=((InitParam>>5) and31)", и x1 может быть получено с использованием операции "x1=(InitParam>>10)". Таким образом, параметр InitParam содержит параметры, требуемые для извлечения начального состояния контекста. Также в этом примере ">>" указывает операцию сдвига вправо, и "and" указывает логическую операцию "И".

[0107] Три значения (т. е. x1, x2 и x3), с использованием всего 16 битов данных квантованных состояний контекстов предоставляют три точки (например, "пары" значений, причем каждая пара включает в себя одно из x1, x2 и x3 и соответствующее QP-значение), которые могут использоваться для интерполяции состояния контекста для контекста в остальные QP-значения. Другими словами, опорные значения x1, x2 и x3 состояний контекста и соответствующие опорные QP-значения могут быть использованы для того, чтобы определять начальное состояние контекста для контекста посредством интерполяции между опорными значениями и использования фактического QP, ассоциированного с кодируемыми данными, с тем чтобы определять начальное состояние контекста для контекста.

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

if QP<26

iInitState=(QP-26)*(x1-x2)/8+x1;

else

iInitState=(QP-26)*(x3-x1)/8+x1;

end

[0109] В этом примере x1, x2 и x3 содержат значения состояния контекста в трех различных QP (т. е. 26, 18 и 34, соответственно). Кроме того, если переменные x (т. е. x1, x2 и x3) не содержат значения с корректными битовыми глубинами, как пояснено выше, выполнение некоторых операций побитового сдвига влево может быть необходимым.

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

if QP<26

iInitState=(QP-26)*((x1<<1)-(x2<<2))>>3+(x1<<1);

else

iInitState=(QP-26)*((x3<<2)-(x1<<1))>>3+(x1<<1);

end

[0111] Вышеприведенные выражения могут основываться на такой предпосылке, что x1 имеет точность в 6 битов, а x2 и x3 имеют точность 5 в битов. В некоторых примерах прибавление 4 также может быть включено перед операцией сдвига вправо в выражениях в целях округления до ближайшего целого числа при делении на 8 (например, вместо просто округления до меньшего целого числа). Соответственно могут использоваться незначительные модификации этих выражений, если значения задаются таким образом, чтобы поддерживать другие битовые глубины.

[0112] С использованием технологий, описанных выше, двойная линейная интерполяция для определения состояния начального контекста может быть выполнена без умножений или делений. Эта прямая реализация является возможной, поскольку разность между используемыми QP-значениями является степенью 2.

[0113] В других примерах могут использоваться другие QP-значения также. Дополнительно также может быть использовано другое распределение битовых глубин для каждого из трех значений квантованных состояний контекстов. Дополнительно могут использоваться более 3 точек (например, 4 или более точек), в таком случае представляя собой полилинейную функцию (т. е. несколько объединенных линейных частей).

[0114] В еще одних других примерах три точки могут быть использованы для того, чтобы описывать параболу (например, полином второго порядка) для того, чтобы определять состояние контекста в других QP. Аналогично в других примерах четыре точки могут быть использованы для того, чтобы описывать полином третьего порядка.

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

iInitState=min(max(1, iInitState), 126)

[0116] Соответственно в некоторых примерах в соответствии с технологиями этого раскрытия сущности видеокодер 20 устройства-источника 12 может быть сконфигурирован с возможностью кодировать данные, такие как один или более блоков видеоданных (например, одну или более TU CU), и видеодекодер 30 устройства-адресата 14 может быть сконфигурирован с возможностью принимать кодированные данные, например, кодированные один или более блоков видеоданных, из видеокодера 20. В других примерах, как описано выше, технологии этого раскрытия сущности могут быть применимыми к использованию контекстно-адаптивного энтропийного кодирования для того, чтобы кодировать любые из широкого спектра данных, например, отличных от видеоданных. В связи с этим в некоторых примерах в соответствии с раскрытыми технологиями, видеокодер 20 и/или видеодекодер 30 могут быть другими устройствами кодирования и декодирования, отличными от устройств кодирования и декодирования видео, проиллюстрированных в этом примере.

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

[0118] Видеокодер 20 и/или видеодекодер 30 могут быть дополнительно сконфигурированы с возможностью определять одно или более начальных состояний контекстов для инициализации одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более параметров инициализации. Например, видеокодер 20 и/или видеодекодер 30 могут быть сконфигурированы с возможностью определять одно или более начальных состояний контекстов с использованием одного или более параметров инициализации и соотношения, такого как линейное соотношение, описанное выше в отношении H.264/AVC и определенных предварительных версий HEVC. Дополнительно видеокодер 20 и/или видеодекодер 30 могут быть дополнительно сконфигурированы с возможностью инициализировать один или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более начальных состояний контекстов. Например, видеокодер 20 и/или видеодекодер 30 могут быть сконфигурированы с возможностью инициализировать каждый один или более контекстов посредством назначения соответствующего одного из одного или более начальных состояний контекстов в качестве текущего состояния контекста для соответствующего контекста.

[0119] Соответственно технологии этого раскрытия сущности могут обеспечивать возможность видеокодеру 20 и/или видеодекодеру 30 иметь относительно меньшую сложность при использовании для того, чтобы кодировать данные, такие как, например, видеоданные, описанные выше, по сравнению с другими системами, используемыми для того, чтобы кодировать аналогичные данные. В частности, технологии могут уменьшать объем информации, который сохранен и/или передан в/из видеокодера 20 и/или видеодекодера 30. Дополнительно, как подробнее описано ниже со ссылкой на фиг. 6-8, технологии этого раскрытия сущности также могут обеспечивать возможность видеокодеру 20 и/или видеодекодеру 30 кодировать данные более эффективно относительно других технологий. Таким образом, может обеспечиваться относительное уменьшение сложности для видеокодера 20 и/или видеодекодера 30, используемого для того, чтобы кодировать данные, и относительная экономия битов для кодированного потока битов, который включает в себя кодированные данные, при использовании технологий этого раскрытия сущности.

[0120] Видеокодер 20 и видеодекодер 30 могут быть реализованы как любая из широкого спектра надлежащих схем кодера или декодера при соответствующих условиях, к примеру, как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логическая схема, программное обеспечение, аппаратные средства, микропрограммное обеспечение либо любые комбинации вышеозначенного. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного видеокодера/декодера (к примеру, видеокодека). Аппарат, включающий в себя видеокодер 20 и/или видеодекодер 30, может содержать интегральную схему (IC), микропроцессор и/или устройство беспроводной связи, такое как сотовый телефон.

[0121] Фиг. 2 является блок-схемой, иллюстрирующей пример видеокодера, который может реализовывать технологии для инициализации состояний и вероятностей контекстов для контекстно-адаптивного энтропийного кодирования в соответствии с технологиями этого раскрытия сущности. Видеокодер 20 может выполнять внутреннее и внешнее кодирование видеоблоков в видеослайсах. Внутреннее кодирование основано на пространственном прогнозировании, чтобы уменьшать или удалять пространственную избыточность видео в данном видеокадре или изображении. Внешнее кодирование основано на временном прогнозировании, чтобы уменьшать или удалять временную избыточность видео в смежных кадрах или изображениях видеопоследовательности. Внутренний режим (I-режим) может означать любой из нескольких режимов пространственного сжатия. Внешние режимы, к примеру, однонаправленное прогнозирование (P-режим) или бипрогнозирование (B-режим), могут означать любой из нескольких режимов временного сжатия.

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

[0123] Как показано на фиг. 2, видеокодер 20 принимает видеоданные, и блок 35 сегментирования сегментирует данные на видеоблоки. Это сегментирование также может включать в себя сегментирование на слайсы, плитки или другие большие единицы, а также сегментирование видеоблока, например, согласно структуре в виде дерева квадрантов LCU и CU. Видеокодер 20, в общем, иллюстрирует компоненты, которые кодируют видеоблоки в видеослайсе, который должен быть кодирован. Слайс может быть разделен на несколько видеоблоков (и возможно на наборы видеоблоков, называемых "плитками"). Модуль 41 прогнозирования может выбирать один из множества возможных режимов кодирования, к примеру, один из множества режимов внутреннего кодирования или один из множества режимов внешнего кодирования, для текущего видеоблока на основе результатов ошибки (например, скорости кодирования и уровня искажения). Модуль 41 прогнозирования может предоставлять результирующий внутренне или внешне кодированный блок в сумматор 50, чтобы формировать остаточные блочные данные, и в сумматор 62, чтобы восстанавливать кодированный блок для использования в качестве опорного изображения.

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

[0125] Блок 42 оценки движения может быть сконфигурирован с возможностью определять режим внешнего прогнозирования для видеослайса согласно предварительно определенному шаблону для видеопоследовательности. Предварительно определенный шаблон может обозначать видеослайсы в последовательности в качестве P-слайсов, B-слайсов или GPB-слайсов. Блок 42 оценки движения и блок 44 компенсации движения могут иметь высокую степень интеграции, но проиллюстрированы отдельно в концептуальных целях. Оценка движения, выполняемая посредством блока 42 оценки движения, является процессом формирования векторов движения, которые оценивают движение для видеоблоков. Вектор движения, например, может указывать смещение PU видеоблока в текущем видеокадре или изображении относительно прогнозного блока в опорном изображении.

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

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

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

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

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

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

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

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

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

[0135] В качестве одного примера аппарат, который включает в себя блок 56 энтропийного кодирования (например, видеокодер 20 устройства-источника 12 по фиг. 1), может быть сконфигурирован с возможностью контекстно-адаптивного энтропийного кодирования. Например, аппарат может быть сконфигурирован с возможностью осуществлять любой из CABAC-, SBAC- или PIPE-процессов, описанных выше, а также любые другие процессы контекстно-адаптивного энтропийного кодирования. В этом примере блок 56 энтропийного кодирования может быть сконфигурирован с возможностью определять один или более параметров инициализации (например, один или более параметров m и n, описанных выше со ссылкой на фиг. 1 и 2) для процесса контекстно-адаптивного энтропийного кодирования (например, CABAC-процесса) на основе одного или более значений индексов параметров инициализации (например, одного или более значений idx_m и idx_n, также описанных выше со ссылкой на фиг. 1). Дополнительно блок 56 энтропийного кодирования может быть дополнительно сконфигурирован с возможностью определять одно или более начальных состояний контекстов для инициализации одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более параметров инициализации. Блок 56 энтропийного кодирования может быть дополнительно сконфигурирован с возможностью инициализировать один или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более начальных состояний контекстов.

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

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

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

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

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

[0141] Кроме того, в этих примерах, для того чтобы определять по меньшей мере одно из одного или более значений наклона на основе одного или более компонентов значений индексов наклона и определять по меньшей мере одно из одного или более значений пересечения на основе одного или более компонентов значений индексов пересечения, блок 56 энтропийного кодирования может быть сконфигурирован с возможностью определять один из одного или более компонентов значений индексов наклона и одного или более компонентов значений индексов пересечения одного из одного или более значений индексов параметров инициализации с использованием одной или более операций побитового сдвига и определять другой из одного или более компонентов значений индексов наклона и одного или более компонентов значений индексов пересечения одного из одного или более значений индексов параметров инициализации с использованием одной или более операций логического "И".

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

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

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

[0145] Как подробнее описано ниже со ссылкой на фиг. 5-8, в других примерах видеокодер 20 или различные его компоненты (например, блок 56 энтропийного кодирования) могут быть сконфигурированы с возможностью осуществлять другие технологии, которые относятся к инициализации состояний и вероятностей контекстов для контекстно-адаптивного энтропийного кодирования. Например, технологии, описанные ниже со ссылкой на фиг. 5, которые являются аналогичными технологиям этого примера, и дополнительные технологии, описанные ниже со ссылкой на фиг. 6-8, могут быть выполнены посредством видеокодера 20 или любых его компонентов, по отдельности или в любой комбинации. В качестве одного примера одна или более дополнительных технологий могут быть выполнены в комбинации с технологиями этого примера (и примера по фиг. 5), которые относятся к инициализации контекстов процесса контекстно-адаптивного энтропийного кодирования, используемого для того, чтобы кодировать данные на основе одного или более значений индексов параметров инициализации. В частности, технологии, описанные ниже со ссылкой на фиг. 6-8, относятся к инициализации одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования, включающей в себя определение начальных состояний контекстов для контекстов, которые указывают начальные вероятности контекстов, или непосредственное определение начальных вероятностей контекстов таким образом, что начальные вероятности являются более точными относительно начальных вероятностей, определенных с использованием других технологий.

[0146] Соответственно, как проиллюстрировано посредством вышеприведенных примеров и как показано посредством примеров фиг. 5-8, технологии этого раскрытия сущности могут обеспечивать возможность видеокодеру 20 или любым его компонентам кодировать различные типы данных, такие как, например, видеоданные, описанные выше, более эффективно по сравнению с использованием других способов. В качестве одного примера, как проиллюстрировано посредством вышеприведенных примеров (и, как показано посредством примера по фиг. 5), технологии могут обеспечивать возможность видеокодеру 20 иметь меньшую сложность относительно других систем при кодировании данных с использованием процесса контекстно-адаптивного энтропийного кодирования. Например, технологии могут уменьшать объем информации (например, число битов данных), сохраненной в видеокодере 20 и/или передаваемой из видеокодера 20 в видеодекодер (например, видеодекодер 30) в целях инициализации одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования. В частности, объем сохраненной информации может быть сокращен посредством сохранения и/или передачи значений индексов параметров инициализации, которые указывают параметры инициализации, используемые для того, чтобы инициализировать контексты, вместо сохранения и/или передачи непосредственно параметров инициализации.

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

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

[0149] В качестве другого примера, как показано посредством примеров фиг. 6-8, технологии этого раскрытия сущности могут улучшать сжатие данных, когда видеокодер 20 сконфигурирован с возможностью кодировать данные с использованием процесса контекстно-адаптивного энтропийного кодирования. Например, технологии могут улучшать сжатие данных посредством обеспечения возможности видеокодеру 20 или любым его компонентам инициализировать один или более контекстов процесса контекстно-адаптивного энтропийного кодирования таким образом, что один или более контекстов включают в себя относительно более точные начальные вероятности по сравнению с начальными вероятностями, определенными с использованием других технологий инициализации контекстов. Дополнительно в некоторых примерах технологии дополнительно могут улучшать сжатие данных посредством обеспечения возможности видеокодеру 20 или любым его компонентам впоследствии обновлять вероятности контекстов таким образом, что обновленные вероятности являются более точными по сравнению с вероятностями, обновленными с использованием других технологий обновления вероятностей контекстов.

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

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

[0152] Фиг. 3 является блок-схемой, иллюстрирующей пример видеодекодера, который может реализовывать технологии для инициализации состояний и вероятностей контекстов для контекстно-адаптивного энтропийного кодирования в соответствии с технологиями этого раскрытия сущности. В примере по фиг. 3 видеодекодер 30 включает в себя блок 80 энтропийного декодирования, модуль 81 прогнозирования, блок 86 обратного квантования, модуль 88 обратного преобразования, сумматор 90 и запоминающее устройство 92 опорных изображений. Модуль 81 прогнозирования включает в себя блок 82 компенсации движения и модуль 84 внутреннего прогнозирования. Видеодекодер 30 может в некоторых примерах выполнять проход декодирования, в общем, взаимно-обратный относительно прохода кодирования, описанного относительно видеокодера 20 от фиг. 2.

[0153] В ходе процесса декодирования видеодекодер 30 принимает кодированный битовый видеопоток, который представляет видеоблоки кодированного видеослайса, и ассоциированные элементы синтаксиса из видеокодера 20. Блок 80 энтропийного декодирования видеодекодера 30 энтропийно декодирует поток битов, чтобы формировать квантованные коэффициенты, векторы движения и другие элементы синтаксиса. Блок 80 энтропийного декодирования перенаправляет векторы движения и другие элементы синтаксиса в модуль 81 прогнозирования. Видеодекодер 30 может принимать элементы синтаксиса на уровне видеослайса и/или на уровне видеоблока.

[0154] Когда видеослайс кодируется в качестве внутренне кодированного (I-)слайса, модуль 84 внутреннего прогнозирования модуля 81 прогнозирования может формировать прогнозирующие данные для видеоблока текущего видеослайса на основе передаваемого в служебных сигналах режима внутреннего прогнозирования и данных из ранее декодированных блоков текущего кадра или изображения. Когда видеокадр кодируется в качестве внешнее кодируемого (т. е. B-, P- или GPB-) слайса, блок 82 компенсации движения модуля 81 прогнозирования формирует прогнозные блоки для видеоблока текущего видеослайса на основе векторов движения и других элементов синтаксиса, принимаемых из блока 80 энтропийного декодирования. Прогнозные блоки могут формироваться из одного из опорных изображений в одном из списков опорных изображений. Видеодекодер 30 может составлять списки опорных кадров, список 0 и список 1, с использованием технологий составления по умолчанию на основе опорных изображений, сохраненных в запоминающем устройстве 92 опорных изображений.

[0155] Блок 82 компенсации движения определяет информацию прогнозирования для видеоблока текущего видеослайса посредством синтаксического анализа векторов движения и других элементов синтаксиса и использует информацию прогнозирования, чтобы формировать прогнозные блоки для текущего декодируемого видеоблока. Например, блок 82 компенсации движения использует некоторые из принимаемых элементов синтаксиса для того, чтобы определять режим прогнозирования (например, внутреннее или внешнее прогнозирование), используемый для того, чтобы кодировать видеоблоки видеослайса, тип внешне прогнозируемого слайса (например, B-слайс, P-слайс или GPB-слайс), информацию составления для одного или более списков опорных изображений для слайса, векторы движения для каждого внешне кодированного видеоблока слайса, состояние внешнего прогнозирования для каждого внешне кодированного видеоблока слайса и другую информацию для того, чтобы декодировать видеоблоки в текущем видеослайсе.

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

[0157] Блок 86 обратного квантования обратно квантует, т. е. деквантует, квантованные коэффициенты преобразования, предоставленные в потоке битов и декодированные посредством блока 80 энтропийного декодирования. Процесс обратного квантования может включать в себя использование параметра квантования, вычисленного посредством видеокодера 20 для каждого видеоблока в видеослайсе, чтобы определять степень квантования и аналогично степень обратного квантования, которое должно применяться. Модуль 88 обратного преобразования применяет обратное преобразование, например, обратное DCT, обратное целочисленное преобразование или концептуально аналогичный процесс обратного преобразования, к коэффициентам преобразования, чтобы формировать остаточные блоки в пиксельной области.

[0158] После того, как блок 82 компенсации движения формирует прогнозный блок для текущего видеоблока на основе векторов движения и других элементов синтаксиса, видеодекодер 30 формирует декодированный видеоблок посредством суммирования остаточных блоков из модуля 88 обратного преобразования с соответствующими прогнозными блоками, сформированными посредством блока 82 компенсации движения. Сумматор 90 представляет компонент или компоненты, которые выполняют эту операцию суммирования. Если требуется, фильтр удаления блочности также может быть применен для того, чтобы фильтровать декодированные блоки, чтобы удалять артефакты блочности. Другие контурные фильтры (в контуре кодирования или после контура кодирования) также могут быть использованы для того, чтобы сглаживать пиксельные переходы или иным образом повышать качество видео. Декодированные видеоблоки в данном кадре или изображении затем сохраняются в запоминающем устройстве 92 опорных изображений, которое сохраняет опорные изображения, используемые для последующей компенсации движения. Запоминающее устройство 92 опорных изображений также сохраняет декодированное видео для последующего представления на устройстве отображения, таком как устройство 28 отображения по фиг. 1.

[0159] В качестве одного примера аппарат, который включает в себя блок 80 энтропийного декодирования (например, видеодекодер 30 устройства-адресата 14 по фиг. 1), может быть сконфигурирован с возможностью контекстно-адаптивного энтропийного кодирования. Например, аппарат может быть сконфигурирован с возможностью осуществлять любой из CABAC-, SBAC- или PIPE-процессов, описанных выше. В этом примере блок 80 энтропийного декодирования может быть сконфигурирован с возможностью определять один или более параметров инициализации (например, один или более параметров m и n, описанных выше со ссылкой на фиг. 1 и 2) для процесса контекстно-адаптивного энтропийного кодирования (например, CABAC-процесса) на основе одного или более значений индексов параметров инициализации (например, одного или более значений idx_m и idx_n, также описанных выше со ссылкой на фиг. 1). Дополнительно блок 80 энтропийного декодирования может быть дополнительно сконфигурирован с возможностью определять одно или более начальных состояний контекстов для инициализации одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более параметров инициализации. Блок 80 энтропийного декодирования может быть дополнительно сконфигурирован с возможностью инициализировать один или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более начальных состояний контекстов.

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

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

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

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

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

[0165] Кроме того, в этих примерах, для того чтобы определять по меньшей мере одно из одного или более значений наклона на основе одного или более компонентов значений индексов наклона и определять по меньшей мере одно из одного или более значений пересечения на основе одного или более компонентов значений индексов пересечения, блок 80 энтропийного декодирования может быть сконфигурирован с возможностью определять один из одного или более компонентов значений индексов наклона и одного или более компонентов значений индексов пересечения одного из одного или более значений индексов параметров инициализации с использованием одной или более операций побитового сдвига и определять другой из одного или более компонентов значений индексов наклона и одного или более компонентов значений индексов пересечения одного из одного или более значений индексов параметров инициализации с использованием одной или более операций логического "И".

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

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

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

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

[0170] Аналогично описанному выше со ссылкой на фиг. 2, и как описано ниже со ссылкой на фиг. 5-8, в других примерах видеодекодер 30 или различные его компоненты (например, блок 80 энтропийного декодирования) могут быть сконфигурированы с возможностью осуществлять другие технологии, которые относятся к инициализации состояний и вероятностей контекстов для контекстно-адаптивного энтропийного кодирования. Например, технологии, описанные ниже со ссылкой на фиг. 5, которые являются аналогичными технологиям этого примера, и дополнительные технологии, описанные ниже со ссылкой на фиг. 6-8, могут быть выполнены посредством видеодекодера 30 или любых его компонентов, по отдельности или в любой комбинации. В качестве одного примера одна или более дополнительных технологий могут быть выполнены в комбинации с технологиями этого примера (и примера по фиг. 5), которые относятся к инициализации контекстов процесса контекстно-адаптивного энтропийного кодирования, используемого для того, чтобы кодировать данные на основе одного или более значений индексов параметров инициализации. В частности, технологии, описанные ниже со ссылкой на фиг. 6-8, относятся к инициализации одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования, включающей в себя определение начальных состояний контекстов для контекстов, которые указывают начальные вероятности контекстов, или непосредственное определение начальных вероятностей контекстов таким образом, что начальные вероятности являются более точными относительно начальных вероятностей, определенных с использованием других технологий.

[0171] Соответственно, как проиллюстрировано посредством вышеприведенных примеров и как показано посредством примеров фиг. 5-8, технологии этого раскрытия сущности могут обеспечивать возможность видеодекодеру 30 или любым его компонентам декодировать различные типы кодированных данных, такие как, например, кодированные видеоданные, описанные выше, более эффективно по сравнению с использованием других способов. В качестве одного примера, как проиллюстрировано посредством вышеприведенных примеров (и как показано посредством примера по фиг. 5), технологии могут обеспечивать возможность видеодекодеру 30 иметь меньшую сложность относительно других систем при декодировании кодированных данных с использованием процесса контекстно-адаптивного энтропийного кодирования. Например, технологии могут уменьшать объем информации, сохраненной в видеодекодере 30 и/или передаваемой из видеокодера (например, видеокодера 20) в видеодекодер 30 в целях инициализации одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования. В частности, объем информации может быть сокращен посредством сохранения и/или передачи значений индексов параметров инициализации, которые указывают параметры инициализации, используемые для того, чтобы инициализировать контексты, вместо сохранения и/или передачи непосредственно параметров инициализации.

[0172] Аналогично описанному выше со ссылкой на фиг. 2, в некоторых примерах объем информации может быть сокращен посредством задания значений индексов параметров инициализации таким образом, что значения индексов параметров инициализации представляются с использованием меньшего объема информации по сравнению с параметрами инициализации. Как результат, значения индексов параметров инициализации могут соответствовать только поднабору параметров инициализации. Таким образом, не все параметры инициализации, как указано посредством значений индексов параметров инициализации, могут быть использованы для того, чтобы инициализировать контексты. Например, некоторые контексты могут быть инициализированы с использованием общих параметров инициализации. Тем не менее, все отрицательные эффекты, ассоциированные с использованием поднабора параметров инициализации, а не всех параметров инициализации (например, меньшая относительная точность начальных вероятностей контекстов по сравнению с начальными вероятностями, определенными с использованием всех параметров инициализации, при этом каждый контекст инициализируется с использованием уникальных одного или более параметров инициализации), могут перевешиваться посредством уменьшенного объема информации, сохраненной в видеодекодере 30 и в некоторых случаях передаваемой из видеокодера в видеодекодер 30, как описано выше.

[0173] Таким образом, в некоторых примерах значения индексов параметров инициализации, указывающие поднабор параметров инициализации, и сам поднабор параметров инициализации могут быть сохранены в видеодекодере 30, в силу этого возможно уменьшая объем информации, сохраненной в видеодекодере 30. Например, в некоторых случаях, поскольку значения индексов параметров инициализации могут быть представлены с использованием меньшего объема информации по сравнению с параметрами инициализации, и поскольку значения индексов параметров инициализации могут соответствовать только поднабору параметров инициализации, общий объем информации, используемой для того, чтобы сохранять значения индексов параметров инициализации и поднабор параметров инициализации в видеодекодере 30, может быть уменьшен относительно объема информации, который требуется для того, чтобы сохранять все параметры инициализации в видеодекодере 30. Кроме того, в других случаях значения индексов параметров инициализации, а не параметры инициализации, могут быть переданы из видеокодера в видеодекодер 30, за счет этого уменьшая общий объем информации, передаваемой из видеокодера в видеодекодер 30.

[0174] В качестве другого примера, как показано посредством примеров фиг. 6-8, технологии этого раскрытия сущности могут улучшать сжатие данных, когда видеокодер (например, видеокодер 20) сконфигурирован с возможностью кодировать данные, а видеодекодер 30 сконфигурирован с возможностью декодировать кодированные данные, с использованием процесса контекстно-адаптивного энтропийного кодирования. Например, технологии могут улучшать сжатие данных посредством обеспечения возможности видеодекодеру 30 или любым его компонентам инициализировать один или более контекстов процесса контекстно-адаптивного энтропийного кодирования таким образом, что один или более контекстов включают в себя относительно более точные начальные вероятности по сравнению с начальными вероятностями, определенными с использованием других технологий инициализации контекстов. Дополнительно в некоторых примерах технологии дополнительно могут улучшать сжатие данных посредством обеспечения возможности видеодекодеру 30 или любым его компонентам впоследствии обновлять вероятности одного или более контекстов таким образом, что обновленные вероятности являются более точными по сравнению с вероятностями, обновленными с использованием других технологий обновления вероятностей контекстов.

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

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

[0177] Фиг. 4 является концептуальной схемой, иллюстрирующей пример временной иерархии кодированной видеопоследовательности (CVS), кодированной с использованием масштабируемого кодирования видео (SVC), в соответствии с технологиями этого раскрытия сущности. Как показано на фиг. 4, CVS может включать в себя множество видеокадров, т. е. кадров 1-8, размещаемых во временном порядке, который может упоминаться в качестве порядка вывода или "отображения". Когда CVS кодирована с использованием SVC, как проиллюстрировано на фиг. 4, некоторые кадры CVS, т. е. кадры 0, 4 и 8, могут быть кодированы в поднаборе кадров, который может упоминаться в качестве "базового слоя" CVS, в то время как другие кадры, т. е. кадры 1-3 и 5-7, могут быть кодированы в одном или более дополнительных поднаборах кадров CVS, каждый из которых может упоминаться в качестве "улучшающего слоя" CVS. Например, базовый слой CVS может быть передан и отображен на устройстве отображения. Дополнительно один или более улучшающих слоев CVS может быть избирательно передан и отображен на идентичном устройстве отображения, в сочетании с базовым слоем. Таким образом, CVS по фиг. 4 содержащая базовый слой и один или более улучшающих слоев, описанных выше, может упоминаться в качестве CVS, кодированной с использованием SVC.

[0178] Как проиллюстрировано посредством примера по фиг. 4, конкретный видеокадр CVS, которая кодирована с использованием SVC, может быть кодирован в иерархической структуре. Как показано на фиг. 4, кадры 0, 4 и 8 могут быть кодированы в конкретном временном слое (например, в "слое 0"), кадры 2 и 6 могут быть кодированы в другом временном слое (например, в "слое 1"), и оставшиеся кадры, т. е. кадры 1, 3, 5 и 7, могут быть кодированы в еще одном другом временном слое (например, в "слое 2"). В примере по фиг. 4 слой 0 может упоминаться в качестве базового слоя, и каждый из слоев 1 и 2 может упоминаться в качестве улучшающего слоя. Кроме того, зависимость между кадрами по фиг. 4 может не быть симметричной. Другими словами, кадры, кодированные в более низких временных слоях (например, в слое 0), могут служить в качестве опорных кадров для кадров, кодированных в более высоких временных слоях (например, в слоях 1 и 2), как указано посредством стрелок, показанных на фиг. 4. Наоборот, кадры, кодированные в более высоких временных слоях, могут не служить в качестве опорных кадров для кадров, кодированных в более низких временных слоях.

[0179] Согласно технологиям этого раскрытия сущности, временной слой, ассоциированный с видеоданными, такими как, например, видеокадр CVS, кодированной с использованием SVC, может быть использован для того, чтобы инициализировать один или более контекстов процесса контекстно-адаптивного энтропийного кодирования (например, CABAC-процесса)), используемого для того, чтобы кодировать видеоданные. Например, временной слой, ассоциированный с видеоданными, которые могут быть представлены с использованием параметра временного слоя, может быть использован в качестве части определения начальных состояний контекстов для одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования, как описано выше со ссылкой на фиг. 1-3 и как подробнее описано ниже в отношении примерных способов по фиг. 5-8. Таким образом, технологии этого раскрытия сущности могут в некоторых случаях обеспечивать инициализацию одного или более контекстов таким образом, что начальные вероятности, указываемые посредством начальных состояний контекстов для одного или более контекстов, являются относительно более точными по сравнению с начальными вероятностями, определенными с использованием других технологий (например, технологий, которые не учитывают временной слой, ассоциированный с видеоданными, при кодировании видеоданных с использованием процесса контекстно-адаптивного энтропийного кодирования).

[0180] Фиг. 5-8 являются блок-схемами последовательности операций способа, иллюстрирующими примерные способы инициализации одного или более контекстов и вероятностей процесса контекстно-адаптивного энтропийного кодирования в соответствии с технологиями этого раскрытия сущности. В частности, технологии примерных способов по фиг. 5, 6 и 8 включают в себя определение начальных состояний контекстов для одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования (например, CABAC-процесса), используемого для того, чтобы кодировать данные (например, видеоданные). Дополнительно технологии примерного способа по фиг. 7 включают в себя определение значений начальных вероятностей одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования, используемого для того, чтобы кодировать данные, а также обновление значений начальных вероятностей на основе данных.

[0181] Технологии по фиг. 5-8, в общем, могут выполняться посредством любого процессора, будь то реализованный в аппаратных средствах, программном обеспечении, микропрограммном обеспечении или комбинации вышеозначенного, и при реализации в программном обеспечении или микропрограммном обеспечении, соответствующие аппаратные средства могут предоставляться для того, чтобы выполнять инструкции для программного обеспечения или микропрограммного обеспечения. Для целей примера технологии по фиг. 5-8 описаны относительно блока 56 энтропийного кодирования видеокодера 20 (фиг. 2) и/или блока 80 энтропийного декодирования видеодекодера 30 (фиг. 3), хотя следует понимать, что другие устройства могут быть сконфигурированы с возможностью осуществлять аналогичные технологии. Кроме того, этапы, проиллюстрированные на фиг. 5-8, могут быть выполнены в другом порядке или параллельно, и дополнительные этапы могут добавляться, а определенные этапы опускаться, без отступления от технологий этого раскрытия сущности. Дополнительно, в соответствии с технологиями этого раскрытия сущности, технологии примерных способов по фиг. 5-8 могут быть выполнены по отдельности или в комбинации друг с другом, что включает в себя выполнение одной или более технологий примерных способов по фиг. 5-8 последовательно или параллельно с одной или более других технологий из технологий примерных способов по фиг. 5-8.

[0182] В примере каждой из фиг. 5-8 первоначально блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может принимать блок видеоданных. Например, блок может содержать макроблок или TU для CU, как описано выше. В некоторых примерах блок 56 энтропийного кодирования может кодировать блок видеоданных с использованием процесса контекстно-адаптивного энтропийного кодирования (например, CABAC-процесса). Аналогично в других примерах в случаях, когда блок является кодированным блоком видеоданных, блок 80 энтропийного декодирования может декодировать блок с использованием идентичного или аналогичного процесса контекстно-адаптивного энтропийного кодирования, как описано выше в отношении блока 56 энтропийного кодирования. В еще одних других примерах блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может кодировать или декодировать другие типы данных, например, данных, отличных от видеоданных, с использованием процесса контекстно-адаптивного энтропийного кодирования. Таким образом, примерные способы по фиг. 5-8 могут быть применимыми к любой системе кодирования, которая включает в себя видеокодер, видеодекодер или любую комбинацию вышеозначенного, сконфигурированную с возможностью кодировать видеоданные с использованием процесса контекстно-адаптивного энтропийного кодирования. Дополнительно примерные способы по фиг. 5-8 могут быть применимыми к технологиям для кодирования любых из широкого спектра данных, включающих в себя данные, отличные от видеоданных, с использованием процесса контекстно-адаптивного энтропийного кодирования.

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

[0184] В качестве одного примера, для того чтобы кодировать блок видеоданных или другие типы данных, с использованием процесса контекстно-адаптивного энтропийного кодирования (например, CABAC-процесса), как описано выше, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может определять один или более параметров инициализации для процесса контекстно-адаптивного энтропийного кодирования на основе одного или более значений индексов параметров инициализации (500). Например, один или более параметров инициализации могут соответствовать одному или более параметров m и n, описанным выше. Как также описано выше, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может использовать значения одного или более параметров m и n, чтобы определять начальные состояния контекстов для контекстов процесса контекстно-адаптивного энтропийного кодирования, например, с использованием линейного соотношения, описанного выше в отношении H.264/AVC и определенных предварительных версий HEVC. Кроме того, согласно технологиям этого раскрытия сущности, одно или более значений индексов параметров инициализации могут быть представлены с использованием меньшего объема информации (например, меньшего числа битов данных) по сравнению с объемом информации, используемой для того, чтобы представлять значения одного или более параметров инициализации.

[0185] В одном примере в случаях, если один или более параметров инициализации соответствуют одному или более параметров m и n, значения каждого из одного или более параметров m и n могут быть представлены с использованием 8 битов данных. Как результат, в этом примере 16 битов данных используются для того, чтобы представлять каждую "пару" значений параметров m и n, используемую для того, чтобы инициализировать конкретный контекст. В качестве одного примера в случаях, если каждое значение индекса параметра инициализации используется для того, чтобы определять значение конкретного одного из одного или более параметров m и n, каждое значение индекса параметра инициализации может быть представлено с использованием 4 битов данных, приводя к использованию 8 битов данных для того, чтобы определять каждую пару значений параметров m и n. В качестве другого примера в случаях, если каждое значение индекса параметра инициализации используется для того, чтобы определять конкретную пару значений параметров m и n, каждое значение индекса параметра инициализации может быть представлено с использованием 8 битов данных, снова приводя к использованию 8 битов данных для того, чтобы определять каждую пару значений параметров m и n.

[0186] Таким образом, вместо сохранения и/или передачи 16 битов данных для того, чтобы инициализировать конкретный контекст, только 8 битов данных сохраняются и/или передаются. Кроме того, поскольку одно или более значений индексов параметров инициализации могут соответствовать только поднабору всех возможных параметров инициализации, не все возможные параметры инициализации могут быть использованы для того, чтобы инициализировать контексты. Например, некоторые контексты могут быть инициализированы с использованием общих параметров инициализации. Тем не менее, все отрицательные эффекты, ассоциированные с использованием поднабора параметров инициализации, а не всех возможных параметров инициализации, могут перевешиваться посредством уменьшенного объема информации, сохраненной и/или передаваться, как описано выше.

[0187] Блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования дополнительно может определять одно или более начальных состояний контекстов для инициализации одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более параметров инициализации (502). Например, как описано выше, блок 56 кодирования и/или блок 80 энтропийного декодирования может определять одно или более начальных состояний контекстов на основе одного или более параметров инициализации с использованием одного или более соотношений, таких как, например, линейное соотношение, описанное выше в отношении H.264/AVC и определенных предварительных версий HEVC.

[0188] Блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования дополнительно может инициализировать один или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более начальных состояний контекстов (504). Например, как также описано выше, блок 56 кодирования и/или блок 80 энтропийного декодирования может задавать состояние контекста конкретного одного из одного или более контекстов в качестве соответствующего одного из одного или более начальных состояний контекстов. Как также описано выше, инициализированное состояние контекста конкретного одного из одного или более контекстов может, в свою очередь, указывать начальную вероятность контекста.

[0189] В некоторых примерах блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования дополнительно может энтропийно кодировать данные (например, блок видеоданных или другие типы данных) на основе инициализированных одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования (506). Например, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может кодировать данные посредством выполнения процесса контекстно-адаптивного энтропийного кодирования на основе инициализированных одного или более контекстов, описанных выше. Как описано выше, данные могут включать в себя видеоданные, такие как, например, блок видеоданных и/или любой другой тип данных. Дополнительно в других примерах блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования дополнительно может обновлять состояния контекстов инициализированных одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе данных (508). Например, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может обновлять начальные вероятности инициализированных одного или более контекстов, как указано посредством одного или более начальных состояний контекстов, описанных выше, на основе данных (например, на основе одного или более значений данных).

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

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

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

[0193] В некоторых примерах один или более параметров инициализации также могут включать в себя одно или более значений наклона и одно или более значений пересечения. В этих примерах, для того чтобы определять один или более параметров инициализации на основе одного или более значений индексов параметров инициализации, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может определять по меньшей мере одно из одного или более значений наклона и по меньшей мере одно из одного или более значений пересечения на основе одного из одного или более значений индексов параметров инициализации. Другими словами, в некоторых примерах каждое значение индекса параметра инициализации может быть использовано для того, чтобы определять одно или более значений наклона и одно или более значений пересечения. В качестве одного примера каждое значение индекса параметра инициализации может преобразовываться в одно или более значений наклона и одно или более значений пересечения в одной или более таблиц. В качестве другого примера каждое значение индекса параметра инициализации может быть использовано для того, чтобы вычислять одно или более значений наклона и одно или более значений пересечения на основе одной или более формул. Тем не менее, в других примерах каждое значение индекса параметра инициализации может включать в себя один или более компонентов или "поднаборов", которые могут быть использованы для того, чтобы определять одно или более значений наклона и одно или более значений пересечения, как подробнее описано ниже.

[0194] Например, в некоторых примерах одно из одного или более значений индексов параметров инициализации может включать в себя один или более компонентов значений индексов наклона и один или более компонентов значений индексов пересечения. В этих примерах, для того чтобы определять по меньшей мере одно из одного или более значений наклона и по меньшей мере одно из одного или более значений пересечения на основе одного из одного или более значений индексов параметров инициализации, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может определять по меньшей мере одно из одного или более значений наклона на основе одного или более компонентов значений индексов наклона, и определять по меньшей мере одно из одного или более значений пересечения на основе одного или более компонентов значений индексов пересечения.

[0195] Кроме того, в других примерах, для того чтобы определять по меньшей мере одно из одного или более значений наклона на основе одного или более компонентов значений индексов наклона и определять по меньшей мере одно из одного или более значений пересечения на основе одного или более компонентов значений индексов пересечения, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может определять один из одного или более компонентов значений индексов наклона и одного или более компонентов значений индексов пересечения одного из одного или более значений индексов параметров инициализации с использованием одной или более операций побитового сдвига и определять другой из одного или более компонентов значений индексов наклона и одного или более компонентов значений индексов пересечения одного из одного или более значений индексов параметров инициализации с использованием одной или более операций логического "И".

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

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

[0198] Таким образом, способ по фиг. 5 представляет пример способа контекстно-адаптивного энтропийного кодирования, при этом способ содержит определение одного или более параметров инициализации для процесса контекстно-адаптивного энтропийного кодирования на основе одного или более значений индексов параметров инициализации, определение одного или более состояний начальных контекстов для инициализации одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более параметров инициализации и инициализацию одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более начальных состояний контекстов.

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

[0200] В качестве одного примера, для того чтобы кодировать блок видеоданных или другие типы данных, с использованием процесса контекстно-адаптивного энтропийного кодирования (например, CABAC-процесса), как описано выше, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может определять одно или более начальных состояний контекстов для инициализации одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования, используемого для того, чтобы кодировать видеоданные, на основе одного или более параметров инициализации и параметра временного слоя, ассоциированного с видеоданными (600). Например, параметр временного слоя может соответствовать элементу синтаксиса для видеоданных, при этом значение элемента синтаксиса служит признаком временного слоя, ассоциированного с видеоданными. Как описано выше со ссылкой на фиг. 4, временной слой, ассоциированный с видеоданными, может соответствовать местоположению видеоданных (например, конкретного видеокадра видеоданных) во временной иерархии, ассоциированной с видеоданными.

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

[0202] Затем блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования дополнительно может инициализировать один или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе одного или более начальных состояний контекстов (602), как описано выше со ссылкой на фиг. 5. Дополнительно в некоторых примерах блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования дополнительно может энтропийно кодировать видеоданные на основе инициализированных одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования (604) и в некоторых случаях обновлять состояния контекстов инициализированных одного или более контекстов процесса контекстно-адаптивного энтропийного кодирования на основе видеоданных (606), аналогично описанному выше со ссылкой на фиг. 5.

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

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

[0205] В некоторых примерах, для того чтобы определять одно или более начальных состояний контекстов на основе одного или более параметров инициализации и параметра смещения, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может модифицировать значение параметра квантования, ассоциированное с видеоданными с использованием параметра смещения. В других примерах каждое из одного или более из параметра смещения и значения параметра квантования при инициализации дополнительно может варьироваться на основе одного или более из типа слайса, кадрового разрешения и размера списка опорных кадров, ассоциированного с видеоданными. Кроме того, в некоторых примерах блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования дополнительно может кодировать одно или более из параметра смещения и значения параметра квантования при инициализации, которое должно быть включено, по меньшей мере, в один из набора параметров изображения (PPS), набора параметров последовательности (SPS) и набора параметров адаптации (APS), ассоциированного с видеоданными, например, либо другого набора параметров или местоположения высокоуровневого синтаксиса.

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

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

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

[0209] В качестве одного примера, для того чтобы кодировать блок видеоданных или другие типы данных, с использованием процесса контекстно-адаптивного энтропийного кодирования (например, CABAC-процесса), как описано выше, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может определять первое значение (700). Например, первое значение может соответствовать начальной вероятности конкретного контекста процесса контекстно-адаптивного энтропийного кодирования, который извлекается с использованием данной технологии инициализации вероятностей контекстов. В этом примере начальная вероятность контекста может соответствовать начальной вероятности "по умолчанию", например, извлекаемой с использованием технологии инициализации вероятностей контекстов, описанной выше в отношении H.264/AVC и HEVC. Тем не менее, в отличие от других технологий, технологии примерного способа по фиг. 7 включают в себя определение того, может или нет второе значение, отличающееся от первого значения, приводить к относительно более точной (например, менее перекошенной) начальной вероятности контекста, и на основе определения выбор первого значения или второго значения в качестве начальной вероятности контекста.

[0210] Например, в случае, если первое значение находится в пределах диапазона значений, заданного посредством нижней границы, верхней границы и одного или более смещений относительно одного или более из нижней границы и верхней границы (702, "Да"), блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования дополнительно может выбирать первое значение (704). Тем не менее, в случае, если первое значение находится за пределами диапазона значений (702, "Нет"), блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования вместо этого может выбирать второе значение, при этом второе значение отличается от первого значения (706). Как пояснено выше, второе значение может соответствовать другой вероятности контекста, которая является более точной относительно вероятности, соответствующей первому значению, и наоборот.

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

[0212] Затем блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может инициализировать вероятность контекста процесса контекстно-адаптивного энтропийного кодирования на основе выбранного первого или второго значения (708). Например, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может инициализировать вероятность контекста посредством задания вероятности контекста в качестве выбранного первого или второго значения.

[0213] В некоторых примерах блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования дополнительно может энтропийно кодировать данные (например, блок видеоданных или другие типы данных) на основе инициализированной вероятности контекста процесса контекстно-адаптивного энтропийного кодирования (710). Например, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может кодировать данные посредством выполнения процесса контекстно-адаптивного энтропийного кодирования на основе инициализированной вероятности, описанной выше, а также на основе одной или более других вероятностей контекстов, инициализированных идентичным или аналогичным образом, как описано выше.

[0214] Дополнительно в других примерах блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования дополнительно может обновлять инициализированную вероятность контекста процесса контекстно-адаптивного энтропийного кодирования на основе данных и одного или более смещений (712). Например, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может обновлять инициализированную вероятность контекста на основе данных (например, на основе одного или более значений данных), аналогично описанному выше со ссылкой на фиг. 5 и 6. Дополнительно блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования также может обновлять инициализированную вероятность контекста на основе одного или более смещений таким образом, что обновленная вероятность также находится в вышеописанном поднаборе полного диапазона значений вероятностей, заданного посредством нижней границы и верхней границы. Другими словами, в некоторых примерах технологии примерного способа по фиг. 7 могут быть применимыми к определению начальной вероятности конкретного контекста, а также к непрерывному обновлению вероятности контекста. Тем не менее, в других примерах блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может обновлять инициализированную вероятность контекста на основе только данных, аналогично описанному выше со ссылкой на фиг. 5 и 6.

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

[0216] В еще одних других примерах блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования дополнительно может обновлять вероятность контекста процесса контекстно-адаптивного энтропийного кодирования на основе одного или более смещений, как уже описано выше.

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

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

[0219] В качестве одного примера, для того чтобы кодировать блок видеоданных или другие типы данных, с использованием процесса контекстно-адаптивного энтропийного кодирования (например, CABAC-процесса), как описано выше, блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может определять начальное состояние контекста для инициализации контекста процесса контекстно-адаптивного энтропийного кодирования, используемого для того, чтобы кодировать видеоданные, на основе параметра инициализации, который задает три или более опорных состояний контекстов, каждое из которых соответствует соответствующему одному из трех или более опорных значений параметров квантования и значению параметра квантования, ассоциированному с видеоданными (800). Например, три или более опорных состояний контекстов и соответствующие три или более опорных значений параметров квантования могут представлять собой предварительно определенные три или более наборов или "пар" значений, каждая из которых включает в себя опорное значение состояния контекста и соответствующее опорное значение параметра квантования. В качестве одного примера опорное значение состояния контекста каждой пары может извлекаться до выполнения этапа (800) с использованием соответствующего опорного значения параметра квантования соответствующей пары и одного или более соотношений. В некоторых примерах одно или более соотношений могут включать в себя, например, линейное соотношение, описанное выше в отношении H.264/AVC и определенных предварительных версий HEVC, соотношение, используемое в примерном способе по фиг. 6, которое учитывает временной слой, ассоциированный с видеоданными, или любое другое соотношение, используемое для того, чтобы определять состояние контекста для контекста на основе значения параметра квантования. Дополнительно значение параметра квантования, ассоциированное с видеоданными, может быть значением параметра квантования, ассоциированным с одним или более кадрами, слайсами, блоками или другими частями видеоданных.

[0220] Таким образом, начальная вероятность контекста, как указано посредством начального состояния контекста, может быть относительно более точной по сравнению с начальной вероятностью контекста, определенной с использованием других технологий, например, технологий, которые определяют начальные состояния контекстов для контекстов процесса контекстно-адаптивного энтропийного кодирования, используемого для того, чтобы кодировать видеоданные, с использованием линейного соотношения, заданного посредством значений наклона и пересечения и посредством параметра квантования, ассоциированного с видеоданными. Один пример такой линейного соотношения описан выше в отношении H.264/AVC и определенных предварительных версий HEVC. Согласно технологиям примерного способа по фиг. 8, начальная вероятность контекста может извлекаться с использованием параметра инициализации и значения параметра квантования, ассоциированного с видеоданными, наряду с различными (например, линейными и нелинейными) технологиями интерполяции, что может приводить к начальной относительно большей точности вероятности контекста.

[0221] Затем блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования может инициализировать контекст процесса контекстно-адаптивного энтропийного кодирования на основе начального состояния контекста (802), аналогично описанному выше со ссылкой на фиг. 5 и 6. Дополнительно в некоторых примерах блок 56 энтропийного кодирования и/или блок 80 энтропийного декодирования дополнительно может энтропийно кодировать видеоданные на основе инициализированного контекста процесса контекстно-адаптивного энтропийного кодирования (804) и в некоторых случаях обновлять состояние контекста для инициализированных контекстов процесса контекстно-адаптивного энтропийного кодирования на основе видеоданных (806), также аналогично описанному выше со ссылкой на фиг. 5 и 6.

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

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

[0224] Дополнительно в еще одних других примерах каждое из трех или более опорных значений параметров квантования может смещаться относительно другого из трех или более опорных значений параметров квантования на значение, которое является целым кратным 2. Например, как описано выше, первое опорное значение параметра квантования, например, QP1, может быть равным 26, второе опорное значение параметра квантования, например, QP2, может быть равным QP1-8 или 18, и третье опорное значение параметра квантования, QP3, может быть равным QP1+8 или 34. В этом примере каждое из опорных значений параметров квантования, QP1, QP2 и QP3, смещается относительно друг друга на значение, которое является целым кратным 2, в этом случае 8. В других примерах каждое из трех или более опорных значений параметров квантования может смещаться относительно друг друга на любое другое значение, включающее в себя любое другое значение, которое является целым кратным 2.

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

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

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

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

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

[0230] Описаны различные примеры. Эти и другие примеры находятся в пределах объема прилагаемой формулы изобретения.

1. Способ инициализации контекста, используемого для того, чтобы кодировать видеоданные в процессе контекстно-адаптивного энтропийного кодирования, при этом способ содержит этапы, на которых:
- определяют первое значение индекса параметра инициализации в качестве x>>4, где x является 8-битовым параметром;
- определяют второе значение индекса параметра инициализации в качестве x&15, где x является идентичным 8-битовым параметром;
- определяют один или более параметров инициализации для процесса контекстно-адаптивного энтропийного кодирования на основе первого и второго значений индексов параметров инициализации и
- инициализируют на основе одного или более параметров инициализации состояние контекста, используемого для того, чтобы кодировать видеоданные в процессе контекстно-адаптивного энтропийного кодирования.

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

3. Способ по п. 2, в котором вычисление одного или более параметров инициализации с использованием первого и второго значений индексов параметров инициализации и одной или более формул содержит этап, на котором вычисляют один или более параметров инициализации согласно следующим уравнениям:
наклон=m*5-45 и
пересечение=n*8-16,
- при этом члены наклона и пересечения являются параметрами инициализации, а члены m и n являются первым и вторым значениями индексов параметров инициализации соответственно.

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

5. Способ по п. 1, в котором один или более параметров инициализации включают в себя значение наклона и значение пересечения, первое значение индекса параметра инициализации является значением индекса наклона и второе значение индекса параметра инициализации является значением индекса пересечения, и при этом определение одного или более параметров инициализации на основе первого и второго значений индексов параметров инициализации содержит этапы, на которых:
- определяют значение наклона на основе значения индекса наклона и
- определяют значение пересечения на основе значения индекса пересечения.

6. Способ по п. 1, в котором один или более параметров инициализации включают в себя значение наклона и значение пересечения, и при этом определение одного или более параметров инициализации на основе первого и второго значений индексов параметров инициализации содержит этап, на котором определяют значение наклона и значение пересечения на основе одного значения индекса.

7. Способ по п. 6, в котором одно значение индекса содержит компонент значения индекса наклона и компонент значения индекса пересечения, и при этом определение значения наклона и значения пересечения на основе одного значения индекса содержит этапы, на которых:
- определяют значение наклона на основе компонента значения индекса наклона и
- определяют значение пересечения на основе компонента значения индекса пересечения.

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

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

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

11. Аппарат для контекстно-адаптивного энтропийного кодирования, причем аппарат содержит кодер, сконфигурированный с возможностью:
- определять первое значение индекса параметра инициализации в качестве x>>4, где x является 8-битовым параметром;
- определять второе значение индекса параметра инициализации в качестве x&15, где x является идентичным 8-битовым параметром;
- определять один или более параметров инициализации для процесса контекстно-адаптивного энтропийного кодирования на основе первого и второго значений индексов параметров инициализации; и
- инициализировать на основе одного или более параметров инициализации состояние контекста, используемого для того, чтобы кодировать видеоданные в процессе контекстно-адаптивного энтропийного кодирования.

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

13. Аппарат по п. 12, в котором для того, чтобы вычислять один или более параметров инициализации с использованием первого и второго значений индексов параметров инициализации и одной или более формул, кодер сконфигурирован с возможностью вычислять один или более параметров инициализации согласно следующим уравнениям:
наклон=m*5-45; и
пересечение=n*8-16,
- при этом члены наклона и пересечения являются параметрами инициализации, а члены m и n являются первым и вторым значениями индексов параметров инициализации соответственно.

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

15. Аппарат по п. 11, в котором один или более параметров инициализации включают в себя значение наклона и значение пересечения, первое значение индекса параметра инициализации является значением индекса наклона и второе значение индекса параметра инициализации является значением индекса пересечения, и при этом для того, чтобы определять один или более параметров инициализации на основе первого и второго значений индексов параметров инициализации, кодер сконфигурирован с возможностью:
- определять значение наклона на основе значения индекса наклона и
- определять значение пересечения на основе значения индекса пересечения.

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

17. Аппарат по п. 16, в котором одно значение индекса содержит компонент значения индекса наклона и компонент значения индекса пересечения, и при этом для того, чтобы определять значение наклона и значение пересечения на основе одного значения индекса, кодер сконфигурирован с возможностью:
- определять значение наклона на основе компонента значения индекса наклона и
- определять значение пересечения на основе компонента значения индекса пересечения.

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

19. Аппарат по п. 11, в котором кодер содержит видеокодер, и при этом видеокодер дополнительно сконфигурирован с возможностью:
- кодировать, на основе инициализированного контекста процесса контекстно-адаптивного энтропийного кодирования, один или более элементов синтаксиса, ассоциированных с блоком видеоданных; и
- выводить кодированные один или более элементов синтаксиса в потоке битов.

20. Аппарат по п. 11, в котором кодер содержит видеодекодер, и при этом видеодекодер дополнительно сконфигурирован с возможностью:
- принимать один или более кодированных элементов синтаксиса, ассоциированных с блоком видеоданных, в потоке битов; и
- декодировать один или более кодированных элементов синтаксиса на основе инициализированного контекста процесса контекстно-адаптивного энтропийного кодирования.

21. Аппарат по п. 11, при этом устройство содержит по меньшей мере одно из следующего:
- интегральная схема;
- микропроцессор и
- устройство беспроводной связи, которое включает в себя кодер.

22. Устройство для контекстно-адаптивного энтропийного кодирования, причем устройство содержит:
- средство для определения первого значения индекса параметра инициализации в качестве x>>4, где x является 8-битовым параметром;
- средство для определения второго значения индекса параметра инициализации в качестве x&15, где x является идентичным 8-битовым параметром;
- средство для определения одного или более параметров инициализации для процесса контекстно-адаптивного энтропийного кодирования на основе первого и второго значений индексов параметров инициализации;
- средство для инициализации на основе одного или более параметров инициализации состояния контекста, используемого для того, чтобы кодировать видеоданные в процессе контекстно-адаптивного энтропийного кодирования.

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

24. Устройство по п. 23, в котором вычисление одного или более параметров инициализации с использованием первого и второго значений индексов параметров инициализации и одной или более формул содержит вычисление одного или более параметров инициализации согласно следующим уравнениям:
наклон=m*5-45 и
пересечение=n*8-16,
- при этом члены наклона и пересечения являются параметрами инициализации, а члены m и n являются первым и вторым значениями индексов параметров инициализации соответственно.

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

26. Устройство по п. 22, в котором один или более параметров инициализации включают в себя значение наклона и значение пересечения, первое значение индекса параметра инициализации является значением индекса наклона и второе значение индекса параметра инициализации является значением индекса пересечения, и при этом средство для определения одного или более параметров инициализации на основе первого и второго значений индексов параметров инициализации содержит:
- средство для определения значения наклона на основе значения индекса наклона и
- средство для определения значения пересечения на основе значения индекса пересечения.

27. Устройство по п. 22, в котором один или более параметров инициализации включают в себя значение наклона и значение пересечения, и при этом средство для определения одного или более параметров инициализации на основе первого и второго значений индексов параметров инициализации содержит средство для определения значения наклона и значения пересечения на основе одного значения индекса.

28. Устройство по п. 27, в котором одно значение индекса содержит компонент значения индекса наклона и компонент значения индекса пересечения, и при этом средство для определения значения наклона и значения пересечения на основе одного значения индекса содержит:
- средство для определения значения наклона на основе компонента значения индекса наклона и
- средство для определения значения пересечения на основе компонента значения индекса пересечения.

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

30. Устройство по п. 22, дополнительно содержащее:
- средство для кодирования, на основе инициализированного контекста процесса контекстно-адаптивного энтропийного кодирования, одного или более элементов синтаксиса, ассоциированных с блоком видеоданных; и
- средство для вывода кодированных одного или более элементов синтаксиса в потоке битов.

31. Устройство по п. 22, дополнительно содержащее:
- средство для приема одного или более кодированных элементов синтаксиса, ассоциированных с блоком видеоданных, в потоке битов и
- средство для декодирования одного или более кодированных элементов синтаксиса на основе инициализированного контекста процесса контекстно-адаптивного энтропийного кодирования.

32. Невременный считываемый компьютером носитель данных, имеющий сохраненные инструкции, которые при выполнении инструктируют один или более процессоров выполнять контекстно-адаптивное энтропийное кодирование, при этом инструкции инструктируют один или более процессоров:
- определять первое значение индекса параметра инициализации в качестве x>>4, где x является 8-битовым параметром;
- определять второе значение индекса параметра инициализации в качестве x&15, где x является идентичным 8-битовым параметром;
- определять один или более параметров инициализации для процесса контекстно-адаптивного энтропийного кодирования на основе первого и второго значений индексов параметров инициализации; и
- инициализировать на основе одного или более параметров инициализации состояние контекста, используемого для того, чтобы кодировать видеоданные в процессе контекстно-адаптивного энтропийного кодирования.

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

34. Невременный считываемый компьютером носитель данных по п. 33, в котором для того, чтобы вычислять один или более параметров инициализации с использованием первого и второго значений индексов параметров инициализации и одной или более формул, инструкции инструктируют один или более процессоров вычислять один или более параметров инициализации согласно следующим уравнениям:
наклон=m*5-45 и
пересечение=n*8-16,
- при этом члены наклона и пересечения являются параметрами инициализации, а члены m и n являются первым и вторым значениями индексов параметров инициализации соответственно.

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

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

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

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

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

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

41. Невременный считываемый компьютером носитель данных по п. 32, дополнительно содержащий инструкции, которые инструктируют один или более процессоров:
- принимать один или более кодированных элементов синтаксиса, ассоциированных с блоком видеоданных, в потоке битов и
- декодировать один или более кодированных элементов синтаксиса на основе инициализированного контекста процесса контекстно-адаптивного энтропийного кодирования.

42. Способ по п. 1, в котором один или более параметров инициализации включают в себя одно или более значений наклона, первое значение индекса параметра инициализации включает в себя значение индекса наклона.

43. Аппарат по п. 11, в котором один или более параметров инициализации включают в себя одно или более значений наклона, первое значение индекса параметра инициализации включает в себя значение индекса наклона.

44. Устройство по п. 22, в котором один или более параметров инициализации включают в себя одно или более значений наклона, первое значение индекса параметра инициализации включает в себя значение индекса наклона.

45. Невременный считываемый компьютером носитель данных по п. 32, в котором один или более параметров инициализации включают в себя одно или более значений наклона, первый индекс параметра инициализации включает в себя значение индекса наклона.



 

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

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

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

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

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

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

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

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

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

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

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

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

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

Изобретение относится к средствам сокращения и восстановления передаваемой информации без потерь цифровых данных, сформированных согласно формату Deflate, в информационных системах и системах электросвязи.

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

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

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

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

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

Изобретение относится к технике передачи и хранения информации и может быть использовано в банках данных и в системах электросвязи. .

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