×
20.02.2016
216.014.e8fe

ЗАПОЛНЕНИЕ НЕЗНАЧАЩЕЙ ИНФОРМАЦИЕЙ СЕГМЕНТОВ В БЛОКАХ УРОВНЯ АБСТРАКЦИИ СЕТИ КОДИРОВАННОГО СЛАЙСА

Вид РИД

Изобретение

Юридическая информация Свернуть Развернуть
№ охранного документа
0002575397
Дата охранного документа
20.02.2016
Краткое описание РИД Свернуть Развернуть
Аннотация: Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования за счёт обеспечения параллельной обработки. Способ кодирования видеоданных, содержащий разделение изображения на множество разделов изображения, при этом изображение содержит множество древовидных блоков, причем разделы изображения связаны с неперекрывающимися поднаборами древовидных блоков указанного изображения; и создание блока уровня абстракции сети (NAL) кодированного слайса, который включает в себя кодированные представления древовидных блоков, связанные со слайсом указанного изображения, причем кодированные представления древовидных блоков сгруппированы в блоке NAL кодированного слайса в сегменты, связанные с разными разделами изображения, причем один или более из указанных сегментов заполнены незначащей информацией, так что каждый из сегментов начинается на границе байта, указанные сегменты включают в себя заданный сегмент, и создание блока NAL кодированного слайса содержит выполнение операции заполнения незначащей информацией, которая присоединяет биты к заданному сегменту, если следующий древовидный блок находится внутри указанного слайса и связан с другим разделом изображения, отличным от заданного сегмента. 8 н. и 23 з.п. ф-лы, 8 ил.
Реферат Свернуть Развернуть

ПЕРЕКРЕСТНЫЕ ССЫЛКИ НА РОДСТВЕННЫЕ ЗАЯВКИ

Данная заявка претендует на приоритет предварительной заявки США № 61/557259, поданной 8 ноября 2011 года, содержание которой целиком включено сюда посредством ссылки. Данная заявка также претендует на приоритет предварительной заявки США № 61/555932, поданной 4 ноября 2011 года.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

Настоящее изобретение относится к видеокодированию (то есть кодированию или декодированию видеоданных).

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

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

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

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

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

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

Согласно другому аспекту описывается способ декодирования видеоданных. Способ содержит запоминание блока NAL кодированного слайса, который включает в себя кодированные представления древовидных блоков, связанных со слайсом изображения. Указанное изображение разбивают на множество разделов изображения. Кодированные представления указанных древовидных блоков группируют в сегменты, связанные с разными разделами изображения. Один или более из указанных сегментов заполняют незначащей информацией, так что каждый из указанных сегментов начинается с границы байта. Способ также содержит декодирование кодированных представлений древовидных блоков.

Согласно еще одному аспекту описывается устройство видеокодирования. Устройство видеокодирования содержит один или более процессоров, сконфигурированных для разделения изображения на множество разделов изображения. Изображение содержит множество древовидных блоков. Разделы изображения связаны с неперекрывающимися поднаборами древовидных блоков данного изображения. Указанные один или более процессоров также сконфигурированы для создания блока NAL кодированного слайса, который включает в себя кодированные представления древовидных блоков, которые связаны со слайсом данного изображения. Кодированные представления древовидных блоков, сгруппированы в блоке NAL кодированного слайса в сегменты, связанные с разными разделами изображения. Один или более из указанных сегментов заполняют незначащей информацией, так что каждый из сегментов начинается на границе байта.

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

Согласно еще одному аспекту описывается компьютерный программный продукт, который содержит один или более машиночитаемых носителей информации, хранящих команды, которые при их выполнении одним или более процессорами конфигурируют устройство видеокодирования для разделения изображения на множество разделов изображения. Изображение содержит множество древовидных блоков. Разделы изображения связаны с неперекрывающимися поднаборами древовидных блоков данного изображения. Указанные команды также конфигурируют устройство видеокодирования для создания блока NAL кодированного слайса, который включает в себя кодированные представления древовидных блоков, которые связаны со слайсом данного изображения. Кодированные представления древовидных блоков, сгруппированы в блоке NAL кодированного слайса в сегменты, связанные с разными разделами изображения. Один или более из указанных сегментов заполняют незначащей информацией, так что каждый из сегментов начинается на границе байта.

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

Согласно еще одному аспекту описывается устройство видеокодирования, которое выполняет кодирование видеоданных. Устройство видеокодирования содержит средство для разделения изображения на множество разделов изображения. Изображение содержит множество древовидных блоков. Разделы изображения связаны с неперекрывающимися поднаборами древовидных блоков данного изображения. Устройство видеокодирования также содержит средство для создания блока NAL кодированного слайса, который включает в себя кодированные представления древовидных блоков, связанных со слайсом данного изображения. Кодированные представления древовидных блоков, сгруппированы в блоке NAL кодированного слайса в сегменты, связанные с разными разделами изображения. Один или более из указанных сегментов заполняют незначащей информацией, так что каждый из сегментов начинается на границе байта.

Согласно следующему аспекту описывается устройство видеодекодирования, которое декодирует видеоданные. Устройство видеодекодирования содержит средство для хранения блока NAL кодированного слайса, который включает в себя кодированные представления древовидных блоков, связанных со слайсом изображения. Указанное изображение разделяют на множество разделов изображения. Кодированные представления указанных древовидных блоков группируют в сегменты, связанные с разными разделами изображения. Один или более из указанных сегментов заполняют незначащей информацией, так что каждый из указанных сегментов начинается с границы байта. Устройство видеодекодирования также содержит средство для декодирования кодированных представлений древовидных блоков.

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

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

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

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

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

Фиг. 4 - блок-схема, иллюстрирующая примерную операцию для создания данных для слайса изображения;

Фиг. 5 - блок-схема, иллюстрирующая примерную операцию для декодирования блока NAL кодированного слайса;

Фиг. 6 - концептуальная схема, иллюстрирующая волновую параллельную обработку;

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

Фиг. 8 - концептуальная схема, иллюстрирующая приведенный в качестве примера блок NAL кодированного слайса.

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

Изображение включает в себя множество древовидных блоков. Древовидные блоки связаны с двумерными видеоблоками в данном изображении. Видеокодер разделяет изображение на множество разделов изображения. Например, видеокодер может разделить изображение на тайлы или волны волновой параллельной обработки (WPP). Другими словами, в этом изобретении термин «раздел изображения» может использоваться для ссылок в общем случае на тайлы или волны WPP. Разделы изображения связаны с неперекрывающимися поднаборами древовидных блоков изображения. Например, каждый древовидный блок данного изображения может быть связан ровно с одним из упомянутых разделов изображения.

Видеокодер может создать блок уровня абстракции сети (NAL) кодированного слайса. Блок NAL кодированного слайса может включать в себя кодированные представления каждого древовидного блока, связанного со слайсом данного изображения. В данном описании изобретения возможны ссылки на кодированное представление древовидного блока в качестве кодированного древовидного блока. Кодированный древовидный блок может включать в себя последовательность бит, которая представляет видеоблок, связанный с древовидным блоком. Эта последовательность бит в кодированном древовидном блоке может представлять последовательность синтаксических элементов.

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

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

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

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

На приложенных чертежах показан ряд примеров. Элементы на приложенных чертежах, обозначенные определенными ссылочными позициями, соответствуют элементам, указанным под теми же ссылочными позициями в нижеследующем описании. Здесь элементы с названиями, начинающимися с порядковых числительных (например, «первый», «второй», «третий» и т.д.) не обязательно предполагают, что эти элементы имеют определенный порядок. Скорее наоборот, указанные порядковые числительные используются здесь просто для ссылок на разные элементы одного и того же или подобного типа. Кроме того, в последующем описании термин «текущее изображение» может относиться к изображению, которое в данный момент подвергается кодированию или декодированию.

На Фиг. 1 представлена блок-схема, где показан пример системы 10 видеокодирования, в которой могут быть использованы раскрытые здесь методики. Используемый здесь термин «видеокодер» относится собственно как к видеокодерам, так и к видеодекодерам. В этом описании термины «видеокодирование» или «кодирование» могут относиться в общем к видеокодированию и видеодекодированию.

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

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

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

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

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

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

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

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

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

Видеокодер 20 и видеодекодер 30 могут функционировать согласно стандарту сжатия видео, такому как стандарт высокоэффективного видеокодирования (HEVC), разрабатываемый в настоящее время, и может соответствовать тестовой модели HEVC (HM). Последний проект стандарта HEVC, называемый «HEVC Working Draft 6» или «WD6» описан в документе JCTVC-H1003, Bross и др., «High efficiency video coding (HEVC) text specification draft 6» Объединенной команды разработчиков систем видеокодирования (JCT-VC) стандартов ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11, 8th Meeting: SanJose, California USA, February, 2012, который по состоянию на 1 мая 2012 года можно скачать из:http://phenix.int-evry.fr/jct/doc_end_user/documents/8_San%20Jose/wg11/JCTVC-H1003-v22.zip., и содержание которого целиком включено сюда по ссылке. В качестве альтернативы видеокодер 20 и видеодекодер 30 могут работать согласно другим коммерческим или промышленным стандартам, таким как стандарт ITU-T H.264, также называемый MPEG-4, часть 10, AVC (усовершенствованное видеокодирование) или расширениям указанных стандартов, когда в них включены методики разделения изображения на тайлы или волны волновой параллельной обработки. Однако методики, раскрытые в этом изобретении, не ограничиваются каким-либо конкретным стандартом или методикой кодирования. Другие примеры стандартов и методик сжатия видео включают в себя MPEG-2 и ITU-T H.263 и патентованные форматы сжатия или форматы сжатия из открытых источников, такие как VP8 и родственные форматы при использовании методик разделения изображения на тайлы или волны волновой параллельной обработки.

Хотя это на Фиг. 1 не показано, согласно некоторым аспектам видеокодер 20 и видеодекодер 30 могут быть интегрированы каждый с аудиокодером и аудиодекодером и могут включать в себя соответствующие блоки MUX-DMUX (мультиплексор-демультиплексор) или другие аппаратные и программные средства для кодирования как аудио, так и видео в общем потоке данных или в отдельных потоках данных. В некоторых примерах, если это имеет место, блоки MUX-DMUX могут соответствовать Протоколу мультиплексора ITU H.223 или другим протоколам, таким как Протокол дэйтаграмм пользователя (UDP).

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

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

Как кратко упоминалось выше, видеокодер 20 кодирует видеоданные. Эти видеоданные могут содержать одно или более изображений. Каждое из этих изображений представляет собой неподвижное изображение, образующее часть видео. В некоторых случаях изображение может называться «кадром» видео или «полем» видео. Когда видеокодер 20 кодирует видеоданные, он может создать битовый поток. Этот битовый поток может включать в себя последовательность бит, которые образуют кодированное представление видеоданных. Битовый поток может включать в себя кодированные изображения и связанные с ними данные. Кодированное изображение является кодированным представлением изображения.

Для создания битового потока видеокодер 20 может выполнить операции кодирования для каждого изображения в видеоданных. Когда видеокодер 20 выполняет операции кодирования для изображений, он может создать ряд кодированных изображений и связанных с ними данных. Эти связанные с изображениями данные могут включать в себя наборы параметров последовательности, наборы параметров изображения, наборы параметров адаптации и другие синтаксические структуры. Набор параметров последовательности (SPS) может содержать параметры, применяемые к нулю или более последовательностям изображений. Последовательности изображений также могут называться кодированными видеопоследовательностями, как в стандартах H.264/AVC и HEVC. Набор параметров изображения (PPS) может содержать параметры, применяемые к нулю или более изображениям. Набор параметров адаптации (APS) может содержать параметры, применяемые к нулю или более изображениям. Параметрами в наборе APS могут быть параметры, вероятность изменения которых выше, чем у параметров в наборе PPS.

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

В некоторых примерах видеокодер 20 может разбить изображение на множество слайсов. Каждый из слайсов может включать в себя целое число последовательно закодированных древовидных блоков. В некоторых случаях каждый из слайсов может включать в себя целое число последовательно закодированных блоков CU. В качестве части выполнения операции кодирования изображения, видеокодер 20 может выполнять операции кодирования на каждом слайсе данного изображения. При выполнении видеокодером 20 операции кодирования на слайсе видеокодер 20 может создать кодированные данные, связанные с данным слайсом. Кодированные данные, связанные с данным слайсом, могут называться «кодированным слайсом».

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

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

В результате кодирования согласно порядку растрового сканирования будут кодированы древовидные блоки, находящиеся над и слева от данного древовидного блока, а древовидные блоки, находящиеся ниже и правее данного древовидного блока, пока останутся не кодированными. Затем видеокодер 20 может получить доступ к информации, созданной в результате кодирования древовидных блоков, находящихся выше и слева от данного древовидного блока при кодировании данного древовидного блока. Однако видеокодер 20 не может получить доступ к информации, созданной в результате кодирования древовидных блоков, находящихся ниже и справа от данного древовидного блока при кодировании данного древовидно блока.

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

Один или более синтаксических элементов в битовом потоке могут указывать максимальное количество возможных разбиений указанного видеоблока древовидного блока, которые выполняются видеокодером 20. Видеоблок блока CU может иметь форму квадрата. Размер видеоблока блока CU может находиться в диапазоне от 8×8 пикселей до размера видеоблока древовидного блока (то есть, размера древовидного блока), составляющего максимум 64×64 пикселя или больше.

Видеокодер 20 может выполнять операции кодирования каждого блока CU древовидного блока согласно порядку z-сканирования. Другими словами, видеокодер 20 может кодировать левый верхний блок CU, правый верхний блок CU, левый нижний блок CU, а затем правый нижний блок CU в указанном порядке. При выполнении операции кодирования на выделенном блоке CU видеокодер 20 может кодировать блоки CU, связанные с подблоками видеоблока выделенного блока CU, согласно порядку z-сканирования. Другими словами, видеокодер 20 может кодировать блок CU, связанный с левым нижним подблоком, а затем блок CU, связанный с правым нижним подблоком в указанном порядке.

В результате кодирования блоков CU древовидного блока согласно порядку z-сканирования могут оказаться кодированными блоки CU выше, выше и левее, выше и правее, левее и ниже и левее от данного блока CU. Не кодированными останутся блоки CU ниже справа от данного блока CU. Затем видеокодер 20 получает возможность доступа к информации, созданной посредством кодирования некоторых блоков CU, являющихся соседними по отношению к данному блоку CU, при кодировании данного блока CU. Однако видеокодер 20 может оказаться неспособным обращаться к информации, созданной путем кодирования других блоков CU, являющихся соседними по отношению к данному блоку CU, при кодировании данного блока CU.

Когда видеокодер 20 выполняет кодирование неразделенного блока CU, видеокодер 20 может создать один или более блоков предсказания (PU) для этого блока CU. Каждый из блоков PU блока CU может быть связан с другим видеоблоком в видеоблоке блока CU. Видеокодер 20 может создать предсказанный видеоблок для каждого блока PU блока CU. Предсказанный видеоблок блока PU может представлять собой блок отсчетов. Видеокодер 20 может использовать внутрикадровое предсказание или межкадровое предсказание для создания предсказанного видеоблока для PU.

Когда видеокодер 20 использует внутрикадровое предсказание для создания предсказанного видеоблока блока PU, видеокодер 20 может создать предсказанный видеоблок блока PU на основе декодированных отсчетов изображения, связанных с данным блоком PU. Если видеокодер 20 использует внутрикадровое предсказание для создания предсказанных видеоблоков блока PU блока CU, блок CU является блоком CU с внутрикадровым предсказанием. Когда видеокодер использует межкадровое предсказание для создания предсказанного видеоблока блока PU, видеокодер 20 может создать предсказанный видеоблок блока PU на основе декодированных отсчетов одного или более изображений, отличных от изображения, связанного с данным PU. Если видеокодер 20 использует межкадровое предсказание для создания предсказанных видеоблоков блоков PU блока CU, то блок CU представляет собой блок CU с межкадровым предсказанием.

Кроме того, когда видеокодер 20 использует межкадровое предсказание для создания предсказанного видеоблока для блока PU, видеокодер 20 может создать информацию о движении для данного блока PU. Информация о движении для блока PU может указывать один или более опорных блоков блока PU. Каждый опорный блок блока PU может представлять собой видеоблок в опорном изображении. Опорным изображением может быть изображение, отличное от изображения, связанного с блоком PU. В некоторых случаях опорный блок блока PU также может называться «опорным образцом» блока PU. Видеокодер 20 может создать предсказанный видеоблок для блока PU на основе опорных блоков данного PU.

После создания видеокодером 20 предсказанных видеоблоков для одного или более PU блока CU видеокодер 20 может создать остаточные данные для блока CU на основе предсказанных видеоблоков для блоков PU блока CU. Остаточные данные для блока CU могут указывать разность между отсчетами в предсказанных видеоблоках для блоков PU блока CU и исходном видеоблоке блока CU.

Кроме того, в качестве части процесса выполнения операции кодирования на неразделенном блоке CU, видеокодер 20 может выполнить рекурсивное разбиение по квадродереву на остаточных данных блока CU для разделения остаточных данных блока CU на один или более блоков остаточных данных (то есть, остаточных видеоблоков), связанных с блоками преобразования (TU) блока CU. Каждый блок TU блока CU может быть связан с другим остаточным видеоблоком.

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

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

Видеокодер 20 может связать каждый блок CU со значением параметра квантования (QP). Значение QP, связанное с блоком CU, может определить, каким образом видеокодер 20 выполняет квантование блоков коэффициентов преобразования, связанных с данным блоком CU. Видеокодер 20 может отрегулировать степень квантования, применяемого к блокам коэффициентов преобразования, связанным с блоком CU, путем регулировки значения QP, связанного с данным блоком CU.

После квантования блока коэффициентов преобразования видеокодером 20 он создает наборы синтаксических элементов, которые представляют коэффициенты трансформации в квантованном блоке коэффициентов трансформации. Видеокодер 20 может применить операции энтропийного кодирования, такие как операции контекстно-адаптивного бинарного арифметического кодирования (CABAC) к некоторым из этих синтаксических элементов.

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

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

После извлечения видеодекодером 30 синтаксических элементов, связанных с блоком CU, видеодекодер 30 может создать предсказанные видеоблоки для блоков PU блока CU на основе этих синтаксических элементов. Вдобавок, видеодекодер 30 может выполнить обратное квантование блоков коэффициентов преобразования, связанных с блоками TU данного блока CU. Видеодекодер 30 может выполнить обратное преобразование блоков коэффициентов преобразования для восстановления остаточных видеоблоков, связанных с блоками TU данного блока CU. После создания предсказанных видеоблоков и восстановления остаточных видеоблоков видеодекодер 30 может восстановить видеоблок блока CU на основе предсказанных видеоблоков и остаточных видеоблоков. Видеодекодер 30 может таким путем восстановить видеоблоки блоков CU на основе указанных синтаксических элементов в битовом потоке.

Видеокодер 20 может разделить текущее изображение на множество разделов изображения. Разделы изображения могут быть связаны с неперекрывающимися поднаборами древовидных блоков текущего изображения. Видеокодер 20 может разделить текущее изображение на множество разделов изображений различными путями. Как описано ниже, видеокодер 20 может разделить текущее изображение на множество тайлов или множество волн волновой параллельной обработки (WPP). Используемый в настоящем изобретении термин «раздел изображения» относится в общем как к тайлам, так и к волнам WPP. Процесс разделения текущего изображения на разделы изображения может называться «разбиением» текущего изображения на разделы изображения.

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

Видеокодер, такой как видеокодер 20 или видеодекодер 30, может кодировать тайлы текущего изображения согласно порядку растрового сканирования. Кроме того, при кодировании тайла видеокодером видеокодер может закодировать каждый древовидный блок в данном тайле согласно порядку растрового сканирования. Видеокодер может таким путем закодировать каждый древовидный блок данного тайла текущего изображения, прежде чем кодировать какой-либо древовидный блок другого тайла этого изображения. Следовательно, порядок кодирования видеокодером древовидных блоков текущего изображения, может отличаться, когда видеокодер разделяет текущее изображение на множество тайлов, от случая, когда видеокодер не разделяет текущее изображение на множество тайлов.

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

В других примерах видеокодер может закодировать текущее изображение, используя волновую параллельную обработку (WPP). При кодировании текущего изображения с использованием WPP видеокодер может разделить древовидные блоки текущего изображения на множество «волн» WPP. Каждая волна WPP может соответствовать своей строке древовидных блоков в текущем изображении. При кодировании текущего изображения с использованием WPP видеокодер может начать кодирование с верхней строки древовидных блоков. Закодировав два или более древовидных блоков верхней строки, видеокодер может начать кодировать вторую (сверху) строку древовидных блоков параллельно с кодированием верхней строки древовидных блоков. Закодировав два или более древовидных блока из второй строки сверху, видеокодер может начать кодировать третью сверху строку древовидных блоков параллельно с кодированием вышележащих строк древовидных блоков. Такой порядок кодирования может продолжаться до нижних строк древовидных блоков в текущем изображении.

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

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

Как упоминалось выше, видеокодер 20 может создать блок NAL кодированного слайса, который включает в себя кодированное представление слайса. Слайс может быть связан с целым числом последовательно закодированных древовидных блоков. Блок NAL кодированного слайса может включать в себя заголовок слайса и данные слайса. Данные слайса могут включать в себя кодированные представления каждого древовидного блока, связанного с этим слайсом. Видеокодер 20 может создать блок NAL кодированного слайса, так чтобы указанные кодированные представления древовидных блоков группировались в данных слайса в сегментах согласно разделам изображения, к которым относятся данные древовидные блоки. Например, каждый блок NAL кодированного слайса может включать в себя кодированный древовидный блок, связанный с первым разделом изображения, за которым следует древовидный блок, связанный со вторым разделом изображения, за которым следует кодированный древовидный блок, связанный с третьим разделом изображения, и т.д.

Согласно раскрытым здесь методикам видеокодер 20 может заполнить один или более сегментов незначащей информацией, так чтобы каждый сегмент начинался на границе байта. Блок NAL кодированного слайса может быть разделен на ряд байтов. Сегмент может начинаться на границе байта, когда его первый бит является первым битом одного из байтов блока NAL кодированного слайса. Кроме того, сегмент может быть выровнен по байтам, если первый бит сегмента является первым битом одного из байтов блока NAL кодированного слайса. При заполнении видеокодером сегмента видеокодер 20 может приложить к этому сегменту заполняющие биты. Например, видеокодер 20 может добавить один или более бит заполнения к сегменту таким образом, чтобы количество бит в сегменте делилось на восемь без остатка. Биты заполнения не обязаны иметь семантическое значение; они служат для того, чтобы обеспечить начало следующего сегмента с границы байта.

Получив блок NAL кодированного слайса, видеодекодер 30 может запомнить этот блок NAL кодированного слайса в памяти. Для параллельного декодирования разделов изображения видеодекодер 30 может распределить сегменты по разным потокам декодирования, которые выполняются параллельно. Чтобы распределить сегменты по разным потокам декодирования, видеодекодеру 30 потребуется указать адреса памяти, связанные с началом каждого из сегментов. Видеодекодер 30 может использовать побайтовую адресацию памяти. Соответственно, видеодекодер 30 возможно не сможет указать адрес памяти, связанный с началом сегмента, если начало сегмента оказалось внутри байта. Следовательно, видеодекодер 30 не сможет в этом случае выполнить параллельное декодирование кодированных древовидных блоков в сегменте, если один или более сегментов начинаются внутри байта. В качестве альтернативы, видеодекодер 30 может использовать побитовую адресацию памяти или побайтовую плюс побитовую адресацию, чтобы иметь возможность параллельного декодирования древовидных блоков в указанных сегментах, но при этом усложняется техническая реализация и вычисления.

Видеокодер 20 может указанным образом разделить изображение на множество разделов изображения. Изображение содержит множество древовидных блоков. Разделы изображения связаны с неперекрывающимися поднаборами древовидных блоков изображения. Видеокодер 20 может создать блок NAL кодированного слайса, который включает в себя кодированные представления древовидных блоков, которые связаны со слайсом изображения. Кодированные представления древовидных блоков в блоке NAL кодированного слайса группируются в сегменты, связанные со своими разделами изображения. Один или более сегментов заполняют незначащей информацией, так чтобы каждый сегмент начинался на границе байта.

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

На Фиг. 2 представлена блок-схема, иллюстрирующая примерный видеокодер 20, сконфигурированный для реализации раскрытых здесь методик. Фиг. 2 приведена в разъяснительных целях, и ее не следует рассматривать как ограничение указанных методик, широко представленных и описанных здесь в качестве примеров. В целях разъяснения изобретения видеокодер 20 описан здесь в контексте кодирования согласно стандарту HEVC. Однако раскрытые здесь методики можно применить к другим стандартам или методам кодирования.

В примере по Фиг. 2 видеокодер 20 включает в себя множество функциональных компонент. Функциональные компоненты видеокодера 20 включают в себя модуль 100 предсказания, модуль 102 создания данных остатка, модуль 104 преобразования, модуль 106 квантования, модуль 108 обратного квантования, модуль 110 обратного преобразования, модуль 112 восстановления, модуль 113 фильтров, буфер 114 декодированных изображений и модуль 116 энтропийного кодирования. Модуль 100 предсказания включает в себя модуль 121 межкадрового предсказания, модуль 122 оценки движения, модуль 124 компенсации движения и модуль 126 внутрикадрового предсказания. В других примерах видеокодер 20 может включать в себя меньшее или большее количество функциональных компонент или другие функциональные компоненты. Кроме того, модуль 122 оценки движения и модуль 124 компенсации движения могут быть выполнены как единый модуль с высокой степенью интеграции, но они представлены в примере на Фиг. 2 отдельно в целях объяснения их функционирования.

Видеокодер 20 может принимать видеоданные. Прием видеоданных видеокодером 20 может осуществляться от различных источников. Например, видеокодер 20 может принимать видеоданные от источника 18 видео (Фиг. 1) или другого источника. Видеоданные могут представлять ряд изображений. Для кодирования видеоданных видеокодер 20 может выполнить операцию кодирования для каждого изображения. В качестве части процесса выполнения операции кодирования изображения видеокодер 20 может выполнить операции кодирования на каждом слайсе данного изображения. В качестве части выполнения операции кодирования на слайсе видеокодер 20 может выполнить операции кодирования на древовидных блоках в слайсе.

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

Размеры видеоблоков, связанных с блоками CU, могут находиться в диапазоне от 8×8 отсчетов до размера древовидного блока, имеющего максимум 64×64 отсчетов или более. В данном описании выражения «N×N» и «N на N» могут использоваться как взаимозаменяемые для ссылки на размерности отсчетов видеоблока по вертикали и горизонтали, например, «16×16» отсчетов или «16 на 16» отсчетов. В общем случае видеоблок 16×16 имеет шестнадцать отсчетов в вертикальном направлении (y=16) и шестнадцать отсчетов в горизонтальном направлении (х=16). Аналогичным образом, блок N×N обычно имеет N отсчетов в вертикальном направлении и N отсчетов в горизонтальном направлении, где N представляет неотрицательное целое число.

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

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

Видеокодер 20 может выполнить операции кодирования на каждом неразделенном блоке CU древовидного блока. При выполнении видеокодером 20 операции кодирования на неразделенном блоке CU видеокодер 20 создает данные, представляющие кодированное представление неразделенного блока CU.

В качестве части выполнения операции кодирования на блоке CU модуль 100 предсказания может разбить видеоблок блока CU по нескольким (в предельном случае по одному) блокам PU блока CU. Видеокодер 20 и видеодекодер 30 могут поддерживать разные размеры блока PU. Если предположить, что размер конкретного блока CU составляет 2N×2N, то видеокодер 20 и видеодекодер 30 могут поддерживать размеры PU, составляющие 2N×2N или N×N, и межкадровое предсказание для симметричных размеров PU, составляющих 2N×2N, 2N×N, N×2N, N×N, 2N×nU, nL×2N, nR×2N или т.п. Видеокодер 20 и видеодекодер 30 также могут поддерживать асимметричное разбиение для PU с размерами, составляющими 2N×nU, 2N×nD, nL×2N и nR×2N. В некоторых примерах модуль 100 предсказания может выполнять геометрическое разбиение с целью разбиения видеоблока блока CU между блоками PU данного блока CU вдоль границы, не пересекающейся со сторонами видеоблока блока CU под прямыми углами.

Модуль 121 межкадрового предсказания может выполнить межкадровое предсказание на каждом блоке PU блока CU. Межкадровое предсказание может обеспечить временное сжатие. Для выполнения межкадрового предсказания на блоке PU модуль 122 оценки движения может создать информацию о движении для блока PU. Модуль 124 компенсации движения может создать предсказанный видеоблок для блока PU на основе информации о движении и декодированных отсчетов изображений, отличных от изображения, связанного с данным блоком CU (то есть, опорные изображения). В данном описании предсказанный видеоблок, созданный модулем 124 компенсации движения, может называться видеоблоком с межкадровым предсказанием.

Слайсы могут быть I слайсами, P слайсами или B слайсами. Модуль 122 оценки движения и модуль 124 компенсации движения могут выполнить разные операции для блока PU блока CU в зависимости от того, в слайсе какого типа (I, P или B) находится данный блок PU. В I слайсе все блоки PU получены с использованием внутрикадрового предсказания. Следовательно, если блок PU находится в I слайсе, то модуль 122 оценки движения и модуль 124 компенсации движения не выполняют межкадровое предсказание на данном блоке PU.

Если блок PU находится в P слайсе, то изображение, содержащее этот бок PU, связано со списком опорных изображений, называемом «список 0». Каждое из опорных изображений в списке 0 содержит отсчеты, которые можно использовать для межкадрового предсказания других изображений. При выполнении модулем 122 оценки движения операции оценки движения в отношении блока PU в P слайсе, модуль 122 оценки движения может осуществлять поиск опорных изображений в списке 0 для опорного блока для данного блока PU. Опорный блок блока PU может представлять собой набор отсчетов, например, блок отсчетов, который ближе всех соответствует отсчетам в видеоблоке блока PU. Модуль 122 оценки движения может использовать самые разные метрики для определения того, насколько близко набор отсчетов в опорном изображении, соответствует отсчетам в видеоблоке блока PU. Например, модуль 122 оценки движения может определить, насколько близко набор отсчетов в опорном изображении соответствует отсчетам в видеоблоке блока PU, используя подход на основе суммы абсолютных разностей (SAD), суммы квадратов отклонений (SSD) или других показателей отклонений.

После идентификации опорного блока для блока PU в P слайсе модуль 122 оценки движения может создать опорный индекс, указывающий опорное изображение в списке 0, содержащем данный опорный блок, и вектор движения, который указывает пространственное смещение между блоком PU и опорным блоком. В различных примерах модуль 122 оценки движения может создавать векторы движения с переменной точностью. Например, модуль 122 оценки движения может создать векторы движения с точностью в четверть отсчета, с точностью одна восьмая отсчета или с другой дробной точностью. В случае дробной точности значения опорного блока можно интерполировать, исходя из целочисленных значений отсчетов позиций в опорном изображении. Модуль 122 оценки движения может выдать опорный индекс и вектор движения в качестве информации о движении блока PU. Модуль 124 компенсации движения может создать предсказанный видеоблок блока PU на основе опорного блока, идентифицированного информацией о движении блока PU.

Если блок PU находится в B слайсе, то изображение, содержащее этот блок PU, может быть связано с двумя списками опорных изображений, называемых «список 0» и «список 1». В некоторых примерах изображение, содержащее B слайс, может быть связано с комбинацией списков, являющейся комбинацией списка 0 и списка 1.

Кроме того, если блок PU находится в В слайсе, то модуль 122 оценки движения может выполнить однонаправленное предсказание или двунаправленное предсказание для данного блока PU. При выполнении модулем 122 оценки движения однонаправленного предсказания для блока PU этот модуль может выполнить поиск опорных изображений из списка 0 или из списка 1 для опорного блока для блока PU. Затем модуль 122 может создать опорный индекс, который указывает опорное изображение в списке 0 или списке 1, содержащем опорный блок, и вектор движения, который указывает пространственное смещение между блоком PU и опорным блоком. Модуль 122 оценки движения может выдать опорный индекс, индикатор направления предсказания и вектор движения в качестве информации о движении, касающейся блока PU. Индикатор направления предсказания может указать, указывает ли опорный индекс на опорное изображение в списке 0 или в списке 1. Модуль 124 компенсации движения может создать предсказанный видеоблок блока PU на основе опорного блока, указанного в информации о движении, касающейся блока PU.

Когда модуль 122 оценки движения выполняет двунаправленное предсказание для PU, модуль 122 оценки движения может осуществлять поиск опорных изображений в списке 0 для опорного блока для данного PU, а также может осуществлять поиск опорных изображений в списке 1 для другого опорного блока для блока PU. Затем модуль 122 оценки движения создает опорные индексы, которые указывают опорные изображения в списке 0 и в списке 1, содержащие опорные блоки и векторы движения, указывающие пространственные смещения между опорными блоками и блоком PU. Модуль 122 оценки движения может выдавать опорные индексы и векторы движения блока PU в качестве информации о движении блока PU. Модуль 124 компенсации движения может создать предсказанный видеоблок блока PU на основе опорных блоков, указанных в информации о движении блока PU. В некоторых случаях модуль 122 оценки движения не выдает полный набор информации о движении для блока PU в модуль 116 энтропийного кодирования. Наоборот, модуль 122 оценки движения может сообщить информацию о движении, относящуюся к блоку PU, со ссылкой на информацию о движении, относящуюся к другому блоку PU. Например, модуль 122 оценки движения может определить, что информация о движении для данного PU подобна информации о движении для соседнего блока PU. В этом примере модуль 122 оценки движения может указать (в синтаксической структуре, связанной с данным PU) значение, указывающее видеодекодеру 30, что данный блок PU имеет такую же информацию о движении, как соседний блок PU. В другом примере, модуль 122 оценки движении может идентифицировать (в синтаксической структуре, связанной с данным блоком PU) соседний блок PU и разность их векторов движения (MVD). Разность векторов движения указывает разность между вектором движения блока PU и вектором движения указанного соседнего блока PU. Видеодекодер 30 может использовать вектор движения указанного соседнего PU и разность векторов движения для определения вектора движения данного PU. Обратившись к информации о движении первого блока PU при сигнализации об информации о движении второго блока PU, видеокодер 20 имеет возможность сообщать информацию о движении для второго блока PU, используя меньшее количество бит.

В качестве части выполнения операции кодирования на блоке CU модуль 126 внутрикадрового предсказания может выполнить внутрикадровое предсказание на блоках PU блока CU. Внутрикадровое предсказание может обеспечить пространственное сжатие. При выполнении внутрикадрового предсказания на блоке PU модуль 126 внутрикадрового предсказания может создать данные предсказания для блока PU на основе декодированных отсчетов других блоков PU в том же изображении. Данные предсказания для блока PU могут включать в себя предсказанный видеоблок и различные синтаксические элементы. Модуль 126 внутрикадрового предсказания может выполнить внутрикадровое предсказание на блоках PU в I слайсах, P слайсах и B слайсах.

Для выполнения внутрикадрового предсказания на PU модуль 126 внутрикадрового предсказания может использовать множество режимов внутрикадрового предсказания для создания множества наборов данных предсказания для блока PU. При использовании режима внутрикадрового предсказания для создания набора данных предсказания для данного блока PU модуль 126 внутрикадрового предсказания может распространить отсчеты из видеоблоков соседних блоков PU через видеоблок данного блока PU в направлении и/или по градиенту, связанному с режимом внутрикадрового предсказания. Соседние блоки PU могут находиться выше, выше и правее, выше и левее или левее данного блока PU, если предположить, что кодирование для блоков PU, CU и древовидных блоков выполняется в порядке слева направо, сверху вниз. Модуль 126 внутрикадрового предсказания может использовать разное количество режимов внутрикадрового предсказания, например, 33 режима направленного внутрикадрового предсказания в зависимости от размера данного блока PU.

Модуль 100 предсказания может выбрать данные предсказания для PU из числа данных предсказания, созданных модулем 124 компенсации движения для данного блока PU, или данные предсказания, созданные модулем 126 внутрикадрового предсказания для данного блока PU. В некоторых примерах модуль 100 предсказания выбирает данные предсказания для данного блока PU на основе показателя «расход бит/искажение» наборов данных предсказания.

Если модуль 100 предсказания выбирает данные предсказания, созданные модулем 126 внутрикадрового предсказания, он может просигнализировать о режиме внутрикадрового предсказания, использованном им для создания данных предсказания для блоков PU, то есть, о выбранном режиме внутрикадрового предсказания. Модуль 100 предсказания может выполнить сигнализацию о выбранном режиме внутрикадрового предсказания различными путями. Например, весьма вероятно, что выбранный режим внутрикадрового предсказания совпадает с режимом внутрикадрового предсказания соседнего блока PU. Другими словами, режим внутрикадрового предсказания соседнего блока PU может быть наиболее вероятным режимом для текущего блока PU. Таким образом, модуль 100 предсказания может создать синтаксический элемент для указания о том, что выбранный режим внутрикадрового предсказания совпадает с режимом внутрикадрового предсказания соседнего блока PU.

После выбора модулем 100 предсказания данных предсказания для блоков PU блока CU модуль 102 создания остаточных данных может создать остаточные данные для блока CU путем вычитания предсказанных видеоблоков блоков PU блока CU из видеоблока блока CU. Остаточные данные блока CU могут включать в себя остаточные видеоблоки в формате 2D, которые соответствуют разным компонентам отсчетов в видеоблоке блока CU. Например, остаточные данные могут включать в себя остаточный видеоблок, который соответствует разностям между компонентами яркости отсчетов в предсказанных видеоблоках блоков PU блока CU и компонентами яркости отсчетов в исходном видеоблоке блока CU. Вдобавок, остаточные данные блока CU могут включать в себя остаточные видеоблоки, которые соответствуют разностям между компонентами цветности отсчетов в предсказанных видеоблоках блоков PU блока CU и компонентами цветности отсчетов в исходном видеоблоке блока CU.

Модуль 100 предсказания может выполнить разбиение по квадродереву для разбиения остаточных видеоблоков блока CU на подблоки. Каждый неразделенный остаточный видеоблок может быть связан с другим блоком TU блока CU. Размеры и позиции остаточных видеоблоков, связанных с блоками TU блока CU, могут зависеть, а могут и не зависеть от размеров и позиций видеоблоков, связанных с блоками PU блока CU. Древовидная структура, известная как «остаточное квадродерево» (RQT), может включать в себя режимы, связанные с каждым из остаточных видеоблоков. Блоки TU блока CU могут соответствовать концевым узлам дерева RQT.

Модуль 104 преобразования может создать один или более блоков коэффициентов преобразования для каждого блока TU блока CU путем применения одного или более преобразований к остаточному видеоблоку, связанному с указанному блоком TU. Каждый блок коэффициентов преобразования может представлять собой 2D матрицу коэффициентов преобразования. Модуль 104 преобразования может применить разные преобразования к остаточному видеоблоку, связанному с блоком TU. Например, модуль 104 преобразования может применить дискретное косинусное преобразование (DCT), направленное преобразование или концептуально подобное преобразование к остаточному видеоблоку, связанному с TU.

После создания модулем 104 преобразования блока коэффициентов преобразования, связанного с TU, модуль 106 квантования может выполнить квантование коэффициентов преобразования в блоке коэффициентов преобразования. Модуль 106 квантования может выполнить квантование блока коэффициентов преобразования, связанного с TU блока CU, на основе значения QP, связанного с данным блоком CU.

Видеокодер 20 может связать значение QP с блоком CU различными путями. Например, видеокодер 20 может выполнить анализ «расход бит-искажение» на древовидном блоке, связанном с CU. При анализе «расход бит-искажение» видеокодер 20 может создать множество кодированных представлений древовидного блока путем многократного выполнения операции кодирования на древовидном блоке. Видеокодер 20 может связать разные значения QP с блоком CU при создании разных кодированных представлений данного древовидного блока. Видеокодер 20 может просигнализировать о том, что данное значение QP связано с CU, когда данное значение QP связано с CU в кодированном представлении древовидного блока, имеющего минимальный показатель «расход бит-искажение».

Модуль 108 обратного квантования и модуль 110 обратного преобразования могут применить обратное квантование и обратное преобразование к блоку коэффициентов преобразования соответственно для восстановления остаточного видеоблока из блока коэффициентов преобразования. Модуль 112 восстановления может добавить восстановленный остаточный видеоблок к соответствующим отсчетам из одного или более предсказанных видеоблоков, созданных модулем 100 предсказания, для создания восстановленного видеоблока, связанного с TU. Восстановив таким путем видеоблоки для каждого TU блока CU, видеокодер 20 может восстановить видеоблок блока CU.

После того, как модуль 112 восстановления восстановит видеоблок блока CU, модуль 13 фильтров может выполнить операцию деблокирования для подавления артефактов блокирования в видеоблоке, связанном с данным блоком CU. После выполнения одной или более операций деблокирования модуль 113 фильтров может запомнить восстановленный видеоблок блока CU в буфере 114 декодированных изображений. Модуль 122 оценки движения и модуль 124 компенсации движения могут использовать опорное изображение, содержащее восстановленный видеоблок, для выполнения межкадрового предсказания на блоках PU последующих изображений. Вдобавок, модуль 126 внутрикадрового предсказания может использовать восстановленные видеоблоки в буфере 114 декодированных изображений для выполнения внутрикадрового предсказания на других блоках PU в том же изображении, что и CU.

Модуль 116 энтропийного кодирования может принимать данные от других функциональных компонент видеокодера 20. Например, модуль 116 энтропийного кодирования может принимать блоки коэффициентов преобразования от модуля 106 квантования и может принимать синтаксические элементы от модуля 100 предсказания. Получив указанные данные, модуль 116 энтропийного кодирования может выполнить одну или более операций энтропийного кодирования для создания кодированных данных. Например, видеокодер 20 может выполнить операцию контекстно-зависимого адаптивного кодирования с переменной длиной слова (CAVLC), операцию контекстно-адаптивного бинарного арифметического кодирования (CABAC), операцию кодирования с преобразованием слов переменной длины (V2V), операцию синтаксически ориентированного адаптивного бинарного арифметического кодирования (SBAC), операцию вероятностного энтропийного кодирования с интервальным разбиением (PIPE), или операцию энтропийного кодирования другого типа на этих данных. Модуль 116 энтропийного кодирования может вывести битовый поток, который включает в себя данные, закодированные с использованием энтропийного кодирования.

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

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

В некоторых примерах видеокодер 20 может создать заголовок слайса блока NAL кодированного слайса, с тем чтобы заголовок слайса указывал точки ввода для сегментов в данных слайса блока NAL кодированного слайса. Эти точки ввода могут указывать позиции в данных слайса указанных сегментов. Например, эти точки ввода могут указывать байтовые смещения сегментов. В этом примере байтовые смещения могут относиться к первому биту блока NAL кодированного слайса, первому биту данных слайса или другому биту в блоке NAL кодированного слайса. В другом примере указанные точки ввода могут указывать количество бит или байт в каждом из сегментов. В некоторых примерах заголовок слайса не указывает точку ввода для первого сегмента в данных слайса.

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

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

На Фиг. 3 представлена блок-схема, иллюстрирующая примерный видеодекодер 30, сконфигурированный для реализации раскрытых здесь методик. Фиг. 3 приведена только для разъяснения и не ограничивает указанные методики, широко представленные в качестве примеров и подробно описанные в настоящем изобретении. Для удобства разъяснения видеодекодер 30 описывается здесь в контексте кодирования согласно стандарту HEVC. Однако раскрытые здесь методики можно применить к другим стандартам или способам кодирования.

В примере по Фиг. 3 видеодекодер 30 включает в себя множество функциональных компонент. Эти функциональные компоненты видеодекодера 30 включают в себя модуль 150 энтропийного декодирования, модуль 152 предсказания, модуль 154 обратного квантования, модуль 156 обратного преобразования, модуль 158 восстановления, модуль 159 фильтров и буфер 160 декодированных изображений. Модуль 152 предсказания включает в себя модуль 162 компенсации движения и модуль 164 внутрикадрового предсказания. В некоторых примерах видеодекодер 30 может выполнить прогон декодирования, который в общем случае является обратным прогону кодирования, описанному применительно к видеокодеру 20 по Фиг. 2. В других примерах видеодекодер 30 может включать в себя больше или меньше функциональных компонент либо другие функциональные компоненты.

Видеодекодер 30 может принимать битовый поток, содержащий кодированные видеоданные. Этот битовый поток может включать в себя множество синтаксических элементов. При приеме видеодекодером 30 битового потока модуль 150 энтропийного декодирования может выполнить операцию синтаксического анализа на этом потоке. В результате выполнения операции синтаксического анализа на битовом потоке модуль 150 энтропийного декодирования может извлечь синтаксические элементы из битового потока. В качестве части выполнения операции синтаксического анализа модуль 150 энтропийного декодирования может выполнить энтропийное декодирование синтаксических элементов, кодированных с использованием энтропийного кодирования. Модуль 152 предсказания, модуль 154 обратного квантования, модуль 156 обратного преобразования, модуль 158 восстановления и модуль 159 фильтров могут выполнить операцию восстановления, которая создает декодированные видеоданные на основе синтаксических элементов, извлеченных из битового потока.

Как обсуждалось выше, битовый поток может содержать ряд блоков NAL. Блоки NAL битового потока могут включать в себя блоки NAL набора параметров последовательности, блоки NAL набора параметров изображения, блоки SEI NAL и т.д. В качестве части выполнения операции синтаксического анализа на битовом потоке, модуль 150 энтропийного декодирования может выполнить операции синтаксического анализа, которые обеспечивают извлечение и энтропийное декодирование наборов параметров последовательности из блоков NAL параметров последовательности, наборов параметров изображения из блоков NAL набора параметров изображения, данных SEI из блоков SEI NAL и т.д.

Вдобавок, блоки NAL битового потока могут включать в себя блоки NAL кодированного слайса. В качестве части выполнения операции синтаксического анализа на битовом потоке видеодекодер 30 может выполнить операции синтаксического анализа, обеспечивающие извлечение и энтропийное декодирование кодированных слайсов из блоков NAL кодированного слайса. Каждый из этих кодированных слайсов может включать в себя заголовок слайса и данные слайса. Заголовок слайса может содержать синтаксические элементы, принадлежащие слайсу. Эти синтаксические элементы в заголовке слайса могут включать в себя синтаксический элемент, идентифицирующий набор параметров изображения, связанный с изображением, которое содержит данный слайс.

Данные блока NAL кодированного слайса могут включать в себя множество сегментов. Каждый из этих сегментов может включать в себя кодированные древовидные блоки, связанные с другим разделом изображения (например, тайл или волна WPP). Один или более из этих сегментов в данных слайса могут быть заполнены незначащей информацией таким образом, что каждый сегмент будет начинаться с границы байта. Заголовок слайса блока NAL кодированного слайса может указывать точки ввода для сегментов. В этом случае, поскольку сегменты всегда начинаются с границ байтов, видеодекодер 30 способен распределить простым образом разные сегменты по разным потокам декодирования путем использования байтовой адресации памяти. Разные потока декодирования могут обеспечить синтаксический анализ кодированных древовидных блоков сегментов и восстановить параллельно видеоданные, связанные с соответствующими древовидными блоками.

В качестве части извлечения данных слайса из блоков NAL кодированного слайса модуль 150 энтропийного декодирования может выполнить операции синтаксического анализа, которые обеспечивают извлечение синтаксических элементов из кодированных блоков CU. Извлеченные синтаксические элементы могут включать в себя синтаксические элементы, связанные с блоками коэффициентов преобразования. Затем модуль 150 энтропийного декодирования может выполнить операции декодирования CABAC на некоторых синтаксических элементах.

После выполнения модулем 150 энтропийного декодирования операции синтаксического анализа на неразделенном блоке CU видеодекодер 30 может выполнить операцию восстановления на неразделенном блоке CU. Для выполнения операции восстановления на неразделенном блоке CU видеодекодер 30 может выполнить операцию восстановления на каждом блоке TU блока CU. Выполнив операцию восстановления для каждого TU блока CU, видеодекодер 30 может восстановить остаточный видеоблок, связанный с данным CU.

В качестве части выполнения операции восстановления на блоке TU модуль 154 обратного квантования может выполнить обратное квантование, то есть «деквантование», блока коэффициентов преобразования, связанно с данным TU. Модуль 154 обратного квантования может выполнить обратное квантование блока коэффициентов преобразования, используя процессы, аналогичные процессам обратного квантования, предложенным для стандарта HEVC или определенным стандартом декодирования H.264. Модуль 154 обратного квантования может использовать параметр QP квантования, вычисленный видеокодером 20, для CU блока коэффициентов преобразования, чтобы определить степень квантования и аналогичным образом степень обратного квантования для модуля 154 обратного квантования.

После выполнения модулем 154 обратного квантования операции обратного квантования для блока коэффициентов преобразования модуль 156 обратного преобразования может создать остаточный видеоблок для TU, связанного с блоком коэффициентов преобразования. Модуль 156 обратного преобразования может применить обратное преобразование к указанному блоку коэффициентов преобразования, чтобы создать остаточный видеоблок для TU. Например, модуль 156 обратного преобразования может применить обратное преобразование DCT, обратное целочисленное преобразование, обратное преобразование Кархунена-Леве (KLT), обратное поворотное преобразование, обратное направленное преобразование или другое обратное преобразование к блоку коэффициентов преобразования.

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

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

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

В некоторых случаях указанные синтаксические элементы могут указывать, что модуль 164 внутрикадрового предсказания должен использовать режим внутрикадрового предсказания другого PU, чтобы определить режим внутрикадрового предсказания текущего PU. Например, существует вероятность того, что режим внутрикадрового предсказания для текущего PU совпадает с режимом внутрикадрового предсказания для соседнего PU. Другими словами, режим внутрикадрового предсказания соседнего PU может являться наиболее вероятным для текущего PU. Следовательно, в этом примере битовый поток может включать в себя небольшой синтаксический элемент, который указывает, что режим внутрикадрового предсказания для данного PU совпадает с режимом внутрикадрового предсказания соседнего PU. Тогда модуль 164 внутрикадрового предсказания может использовать данный режим внутрикадрового предсказания для создания данных предсказания (например, предсказанных отсчетов) для данного PU на основе видеоблоков для соседних в пространстве блоков PU.

Модуль 158 восстановления может использовать остаточные видеоблоки, связанные с блоками TU блока CU, и предсказанные видеоблоки блоков PU блока CU, то есть, либо данные внутрикадрового предсказания, либо данные межкадрового предсказания (в зависимости от того, что применяется), для восстановления видеоблока для CU. Таким образом, видеодекодер 30 может создать предсказанный видеоблок и остаточный видеоблок на основе синтаксических элементов в битовом потоке и может создать видеоблок на основе предсказанного видеоблока и остаточного видеоблока.

После восстановления модулем 158 восстановления видеоблока блока CU модуль 159 фильтров может выполнить операцию деблокирования для подавления артефактов блокирования, связанных с данным CU. После выполнения модулем 159 операции деблокирования для подавления артефактов блокирования, связанных с блоком CU, видеодекодер 30 может запомнить этот видеоблок блока CU в буфере 160 декодированных изображений. Буфер 160 декодированных изображений может обеспечить опорные изображения для последующей компенсации движения, внутрикадрового предсказания и представления на устройстве отображения, таком как устройство 32 отображения на Фиг. 1. Например, видеодекодер 30 может выполнять операции внутрикадрового предсказания или межкадрового предсказания на блоках PU других блоков CU на основе видеоблоков в буфере 160 декодированных изображений.

На Фиг. 4 представлена блок-схема, иллюстрирующая примерную операцию 200 для создания данных для слайса. Операция 200 может быть выполнена видеокодером, таким как видеокодер 20 (фигуры 1 и 2). Блок-схема на Фиг. 4 является просто одним примером. В других примерах этой операции возможно создание данных слайса другими путями.

В начале операции 200 видеокодер может инициализировать адрес древовидного блока, который идентифицирует начальный древовидный блок текущего слайса (202). Текущим слайсом может быть слайс, который в настоящее время кодируется видеокодером. Начальным древовидным блоком текущего слайса может быть первый древовидный блок, связанный с текущим слайсом, согласно порядку кодирования древовидных блоков в текущем изображении. Для упрощения объяснения здесь речь идет о древовидном блоке, идентифицированном по адресу древовидного блока в качестве текущего древовидного блока.

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

Кроме того, видеокодер может определить, есть ли еще данные в текущем слайсе (206). В текущем слайсе могут еще быть данные, если древовидный блок, указанный адресом древовидного блока, находится в текущем слайсе. В соответствии с определением того, имеются ли еще данные в текущем слайсе («НЕТ») на шаге (206), видеокодер может закончить операцию 200, поскольку он добавил в данные слайса все необходимые синтаксические элементы.

Видеокодер может определить, имеются ли еще данные в текущем слайсе, различными путями. Например, видеокодер может активировать функцию «coding_tree( )» для вывода синтаксических элементов для древовидного блока. В этом примере функция «coding_tree( )» может вернуть флаг «moreDataFlag», который указывает, имеются ли еще данные в текущем слайсе.

В соответствии с определением того, имеются ли еще данные, связанные с текущим слайсом («ДА» на шаге 206), видеокодер может определить, являются ли тайлы текущего изображения независимыми, и определить, находится ли следующий древовидный блок текущего слайса в тайле, отличном от тайла текущего древовидного блока текущего слайса (208). Как было описано выше, тайлы изображения могут быть независимыми, если запрещено предсказание в рамках изображения (например, внутрикадровое предсказание, межкадровое предсказание с использованием данных в текущем изображении, и выбор контекста CABAC на основе данных из других тайлов текущего изображения). Видеокодер может определить, независимы ли тайлы текущего изображения, различными путями. Например, набор параметров последовательности, связанный с текущим изображением, может включать в себя синтаксический элемент «tile_boundary_independence_idc». В этом примере, если «tile_boundary_independence_idc» равен 0, то тайлы текущего изображения не являются независимыми, и предсказание через границы тайла разрешено. Если «tile_boundary_independence_idc» равен 0, то предсказание через границы слайса все еще запрещено. Если «tile_boundary_independence_idc» равен 1, то тайлы текущего изображения являются независимыми, и предсказание через границы тайла не разрешено.

Видеокодер может определить различными путями, находится ли следующий древовидный блок текущего слайса в другом тайле, отличном от тайла текущего древовидного блока текущего слайса. Например, видеокодер может определить адрес следующего древовидного блока текущего слайса. В этом примере видеокодер может активировать функцию «NewТile(…)», которая использует адрес следующего древовидного блока в качестве параметра и возвращает значение «newTileflag», которое указывает, находится ли следующий древовидный блок в тайле, отличном от тайла текущего древовидного блока.

Если тайлы текущего изображения не являются независимыми, или следующий древовидный блок находится в том же тайле, что и текущий древовидный блок («НЕТ» в блоке 208), то видеокодер может определить, выполняется ли кодирование текущего изображения с использованием WPP, и находится ли следующий древовидный блок текущего слайса в волне WPP, отличной от волны текущего древовидного блока текущего слайса (210). Видеокодер может различными путями определить, находится ли следующий древовидный блок текущего слайса не в той волне WPP, в которой находится текущий древовидный блок текущего слайса. Например, видеокодер может определить адрес следующего древовидного блока текущего слайса. В данном примере видеокодер может активировать функцию «NewWave(…)», которая использует адрес следующего древовидного блока в качестве параметра и возвращает значение «newWaveFlag», которое указывает, находится ли следующий древовидный блок в волне WPP, отличной от волны WPP текущего древовидного блока.

В соответствии с определением того, что кодирование текущего изображения выполняется с использованием WPP, и что следующий древовидный блок находится в волне WPP, отличной от волны WPP текущего древовидного блока («ДА» в блоке 210), или в соответствии с определением того, что тайлы текущего изображения являются независимыми, и что следующий древовидный блок находится в тайле, отличном от тайла текущего древовидного блока («ДА» в блоке 208), видеокодер может определить, выровнен ли текущий сегмент по байтам. Другими словами, видеокодер может определить, заканчивается ли текущий сегмент на границе байта. Текущим сегментом является сегмент, связанный с разделом изображения (например, тайл или волна WPP), с которым связан текущий древовидный блок. В соответствии с определением того, что текущий сегмент не выровнен по байтам («НЕТ» на шаге 212), видеокодер может подсоединить бит заполнения к концу текущего сегмента (214). Этот бит заполнения может иметь разные значения. Например, бит заполнения всегда может иметь значение, равное 1. В других примерах бит заполнения может всегда иметь значение, равное 0.

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

В соответствии с определением того, что данные слайса выровнены по байтам («ДА» на шаге 212), видеокодер может обновить адрес древовидного блока (216). Видеокодер может обновить адрес древовидного блока таким образом, чтобы он указывал следующий древовидный блок согласно порядку кодирования древовидных блоков текущего изображения. Например, при обновлении видеокодером адреса древовидного блока этот адрес может идентифицировать древовидный блок справа от древовидного блока, на который указывал адрес древовидного блока. На Фиг. 7, подробно описанной ниже, представлена концептуальная схема, иллюстрирующая примерный порядок кодирования древовидных блоков для одного изображения, которое разбито на множество тайлов.

После обновления адреса древовидного блока видеокодер может определить, имеются ли еще данные в текущем слайсе (218). В соответствии с определением того, имеются ли еще данные в текущем слайсе («ДА» на шаге 218), или в соответствии с определением того, что кодирование текущего изображения с использованием WPP не выполняется, и следующий древовидный блок находится в том же тайле, что и текущий древовидный блок («НЕТ» на шаге 210), видеокодер может присоединить синтаксические элементы для текущего древовидного блока к данным слайса (204). Таким образом, видеокодер может присоединить синтаксические элементы для каждого древовидного блока текущего слайса к данным слайса и может обеспечить такое заполнение сегментов незначащей информацией, связанных с другими разделами изображения, при котором эти сегменты будут начинаться с границ байтов.

В соответствии с определением того, есть ли еще данные в текущем слайсе («НЕТ» на шаге 218), видеокодер может завершить операцию 200, поскольку он может присоединить все синтаксические элементы текущего слайса к данным слайса.

На Фиг. 5 представлена блок-схема, иллюстрирующая примерную операцию 250 для декодирования блока NAL кодированного слайса. Видеодекодер, такой как видеодекодер 30 (фиг. 1 и 3) может выполнять операцию 250. Показанное на Фиг. 5, является просто одним из примеров. В других примерах для декодирования блоков NAL кодированного слайса могут использоваться другие операции.

В примере по Фиг. 5 видеодекодер может запомнить блок NAL кодированного слайса в памяти с байтовой адресацией (252). Блок NAL кодированного слайса может включать в себя заголовок слайса и данные слайса. Данные слайса могут включать в себя множество сегментов. Один или более сегментов могут быть заполнены незначащей информацией с тем, чтобы каждый сегмент начинался с границы байта.

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

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

На Фиг. 6 представлена концептуальная схема, иллюстрирующая волновую параллельную обработку. Как было описано выше, изображение может быть разбито на видеоблоки, каждый из которых связан с древовидным блоком. На Фиг. 6 показаны видеоблоки, связанные с древовидными блоками в виде сетки из белых квадратов. Изображение включает в себя строки древовидных блоков 300А-300Е (обозначенных вместе как «строки древовидных блоков 300»).

В первом потоке выполняется кодирование древовидных блоков в строке 300А древовидных блоков. Параллельно может выполняться кодирование древовидных блоков других потоков в строках 300В, 300С и 300D древовидных блоков. В примере по Фиг. 6 в первом потоке выполняется кодирование древовидного блока 302А, во втором потоке выполняется кодирование древовидного блока 302В, в третьем потоке выполняется кодирование древовидного блока 302С и в четвертом потоке выполняется кодирование древовидного блока 302D. Это описание можно отнести к древовидным блокам 302А, 302В, 302С и 302D, обозначенным вместе как «текущие древовидные блоки 302». Поскольку видеокодер может начать кодирование строки древовидных блоков после того, как будет выполнено кодирование более двух древовидных блоков строки, находящейся непосредственно над данной строкой, текущие древовидные блоки 302 размещаются по горизонтали друг от друга на ширину двух древовидных блоков.

В примере по Фиг. 6 указанные потоки могут использовать данные из древовидных блоков, указанных жирными серыми стрелками, при выполнении внутрикадрового предсказания или межкадрового предсказания для блоков CU в текущих древовидных блоках 302 (Когда потоки выполняют межкадровое предсказание для блоков CU, они также могут использовать данные из одного или более опорных кадров). Когда поток кодирует данный древовидный блок, он может отобрать один или более контекстов CABAC на основе информации, связанной с ранее закодированными древовидными блоками. В данном потоке может использоваться один или более контекстов CABAC для выполнения CABAC кодирования на синтаксических элементах, связанных с первым CU данного древовидного блока. Если данный древовидный блок не является крайним левым древовидным блоком строки, то данный поток может выбрать один или более контекстов CABAC на основе информации, связанной с последним CU древовидного блока слева от данного древовидного блока. Если данный древовидный блок является крайним левым древовидным блоком строки, то поток может выбрать один или более контекстов CABAC на основе информации, связанной с последним CU древовидного блока, находящегося выше, и двумя древовидными блоками справа от данного древовидного блока. В указанных потоках могут использоваться данные из последних блоков CU древовидных блоков, указанных тонкими черными стрелками, для выбора контекстов CABAC для первых блоков CU текущих древовидных блоков 302.

На Фиг. 7 представлена концептуальная схема, иллюстрирующая примерный порядок кодирования древовидных блоков для изображения 350, которое разбито на множество тайлов 352А, 352В и 352С. Каждый квадратный белый блок в изображении 350 представляет видеоблок, связанный с древовидным блоком. Жирные вертикальные пунктирные линии указывают примерные вертикальные границы тайлов. Жирные серые линии указывают примерную границу слайса.

Числа в видеоблоках указывают позиции соответствующих древовидных блоков (блоков LCU) в порядке кодирования древовидных блоков для изображения 350. Как показано в примере по Фиг. 7, каждый из древовидных блоков в крайнем левом тайле 352А появляется в порядке кодирования древовидных блоков перед любым древовидным блоком в среднем тайле 352В. Каждый из древовидных блоков в среднем тайле 352В появляется в порядке кодирования древовидных блоков перед любым древовидным блоком в крайнем правом тайле 352С. Внутри каждого тайла 352А, 352В и 352С древовидные блоки кодируются согласно порядку растрового сканирования.

Видеокодер может создать два блока NAL кодированного слайса для изображения 350. Первый блок NAL кодированного слайса может быть связан с левым слайсом изображения 350. Первый блок NAL кодированного слайса может включать в себя кодированные представления древовидных блоков 1-23. Данные слайса первого блока NAL кодированного слайса могут включать в себя два сегмента. Первый сегмент может включать в себя кодированные представления древовидных блоков 1-15. Второй сегмент может включать в себя кодированные представления древовидных блоков 16-30. Согласно раскрытым здесь методикам первый сегмент может быть заполнен незначащей информацией, обеспечивающей начало второго сегмента с границы байта.

Второй блок NAL кодированного слайса может быть связан с правым слайсом изображения 350. Второй блок NAL кодированного слайса может включать в себя кодированные представления древовидных блоков 24-45. Данные слайса второго блока NAL кодированного слайса могут включать в себя два сегмента. Первый сегмент может включать в себя кодированные представления древовидных блоков 24-30. Второй сегмент может включать в себя кодированные представления древовидных блоков 31-45. Первый сегмент может быть заполнен незначащей информацией таким образом, чтобы второй сегмент начинался с границы байта.

На Фиг. 8 представлена концептуальная схема, иллюстрирующая примерный блок 400 NAL кодированного слайса. Как показано в примере на Фиг. 8, блок 400 NAL кодированного слайса включает в себя заголовок 402 слайса и данные 404 слайса. Данные 404 слайса включают в себя первый сегмент 406 и второй сегмент 408. Сегмент 406 включает в себя кодированные древовидные блоки 410А-410N и данные 412 заполнения. Сегмент 408 включает в себя кодированные древовидные блоки 414А-414N.

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

В качестве примера, но не как ограничение, указанный машиночитаемый носитель информации может содержать ОЗУ (RAM), ПЗУ (ROM), электрически стираемое программируемое ПЗУ (EEPROM), ПЗУ на компакт-диске (CD-ROM) или другое запоминающее устройство на оптических дисках, запоминающее устройство на магнитных дисках или другие магнитные запоминающее устройства, флэш-память, или любой другой носитель, который можно использовать для запоминания требуемого программного кода в виде команд или структур данных, и к которым может иметь доступ компьютер. Также машиночитаемым носителем информации будет правильно назвать любое соединение. Например, если команды передаются с Web-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, скрученной пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная связь, радиосвязь и микроволновая связь, то тогда коаксиальный кабель, оптоволоконный кабель, скрученная пара, линии DSL или такие беспроводные технологии, как инфракрасная связь, радиосвязь и микроволновая связь, входят в определение носителя. Однако следует понимать, что термины: «машиночитаемый носитель информации» и «носитель для хранения данных» не включают в себя соединения, несущие волны, сигналы или другие временные носители, а относятся к материальному носителю долговременного хранения. Используемый здесь термин «disc» (диск) относится к компакт-диску (CD), лазерному диску, оптическому диску, цифровому универсальному диску (DVD), флоппи-диску и диску Blu-ray, воспроизводящих данные оптическим путем с использованием лазеров, в то время как термин «disk» (диск) обычно относится к дискам, воспроизводящим данные магнитным путем. В понятие машиночитаемого носителя информации также следует отнести комбинации из вышеперечисленного.

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

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

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


ЗАПОЛНЕНИЕ НЕЗНАЧАЩЕЙ ИНФОРМАЦИЕЙ СЕГМЕНТОВ В БЛОКАХ УРОВНЯ АБСТРАКЦИИ СЕТИ КОДИРОВАННОГО СЛАЙСА
ЗАПОЛНЕНИЕ НЕЗНАЧАЩЕЙ ИНФОРМАЦИЕЙ СЕГМЕНТОВ В БЛОКАХ УРОВНЯ АБСТРАКЦИИ СЕТИ КОДИРОВАННОГО СЛАЙСА
ЗАПОЛНЕНИЕ НЕЗНАЧАЩЕЙ ИНФОРМАЦИЕЙ СЕГМЕНТОВ В БЛОКАХ УРОВНЯ АБСТРАКЦИИ СЕТИ КОДИРОВАННОГО СЛАЙСА
ЗАПОЛНЕНИЕ НЕЗНАЧАЩЕЙ ИНФОРМАЦИЕЙ СЕГМЕНТОВ В БЛОКАХ УРОВНЯ АБСТРАКЦИИ СЕТИ КОДИРОВАННОГО СЛАЙСА
ЗАПОЛНЕНИЕ НЕЗНАЧАЩЕЙ ИНФОРМАЦИЕЙ СЕГМЕНТОВ В БЛОКАХ УРОВНЯ АБСТРАКЦИИ СЕТИ КОДИРОВАННОГО СЛАЙСА
ЗАПОЛНЕНИЕ НЕЗНАЧАЩЕЙ ИНФОРМАЦИЕЙ СЕГМЕНТОВ В БЛОКАХ УРОВНЯ АБСТРАКЦИИ СЕТИ КОДИРОВАННОГО СЛАЙСА
ЗАПОЛНЕНИЕ НЕЗНАЧАЩЕЙ ИНФОРМАЦИЕЙ СЕГМЕНТОВ В БЛОКАХ УРОВНЯ АБСТРАКЦИИ СЕТИ КОДИРОВАННОГО СЛАЙСА
ЗАПОЛНЕНИЕ НЕЗНАЧАЩЕЙ ИНФОРМАЦИЕЙ СЕГМЕНТОВ В БЛОКАХ УРОВНЯ АБСТРАКЦИИ СЕТИ КОДИРОВАННОГО СЛАЙСА
Источник поступления информации: Роспатент

Показаны записи 1-10 из 1 151.
10.01.2013
№216.012.1a18

Обнаружение многолучевого распространения для принимаемого sps-сигнала

Изобретение относится к спутниковой системе определения местоположения (SPS), предназначено для обнаружения и/или оценки многолучевых сигналов и позволяет повысить точность измерения псевдодальности и координат местоположения приемного устройства. Изобретение раскрывает, в частности, способ...
Тип: Изобретение
Номер охранного документа: 0002472172
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a3c

Способ для указания местоположения и направления элемента графического пользовательского интерфейса

Изобретение относится к указанию направления и местоположения элементов графического пользовательского интерфейса. Техническим результатом является повышение удобства и простоты использования многопанельных электронных устройств. Способ включает в себя прием пользовательского ввода на первой...
Тип: Изобретение
Номер охранного документа: 0002472208
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a8c

Виртуальное планирование в неоднородных сетях

Заявленное изобретение относится к обеспечению виртуального управления беспроводными ресурсами в среде мобильной связи. Техническим результатом является значительное снижение помех для макрозоны охвата или близлежащих зон охвата. В качестве примера, терминалы доступа в среде связи могут...
Тип: Изобретение
Номер охранного документа: 0002472288
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a8f

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

Изобретение относится к связи, в частности к технологиям отправки управляющей информации в системе беспроводной связи. Техническим результатом является повышение эффективности передачи управляющей информации, в частности ACK- и CQI-информации. Указанный результат достигается тем, что в способе...
Тип: Изобретение
Номер охранного документа: 0002472291
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a94

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

Изобретение относится к системам связи. Технический результат заключается в том, чтобы снизить отрицательное воздействие разброса задержек. Для этого сначала определяются ожидаемые зоны покрытия для множества передач, которые должны передаваться в нескольких временных интервалах. Длина...
Тип: Изобретение
Номер охранного документа: 0002472296
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a96

Способ и устройство для осуществления информационного запроса сеанса для определения местоположения плоскости пользователя

Изобретение относится к системам определения местоположения. Технический результат заключается в улучшении качества услуги определения местоположения. Описаны методики для запроса информации о сеансах определения местоположения в архитектуре определения местоположения плоскости пользователя. В...
Тип: Изобретение
Номер охранного документа: 0002472298
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a9c

Универсальная корректировка блочности изображения

Изобретение относится к области обработки изображения и, более конкретно, к способам универсальной корректировки блочности изображения при низком быстродействии (малом количестве миллионов команд в секунду) (MIP). Техническим результатом является создание способа универсальной корректировки...
Тип: Изобретение
Номер охранного документа: 0002472304
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a9f

Основанная на местоположении и времени фильтрация информации широковещания

187 Изобретение относится к связи, в частности к способам посылки и приема информации широковещания. Техническим результатом является обеспечение автоматической идентификации информации широковещания, представляющей потенциальный интерес для пользователя. Указанный технический результат...
Тип: Изобретение
Номер охранного документа: 0002472307
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1aa1

Способ и устройство для поддержки экстренных вызовов (ecall)

Изобретение относится к области услуг или возможностей, предназначенных для беспроводных сетей связи, а именно к технологиям для поддержки неотложных вызовов (еСаll). Техническим результатом является эффективный обмен сигнализацией между терминалом и беспроводной сетью неотложного вызова при...
Тип: Изобретение
Номер охранного документа: 0002472309
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1aa2

Виртуальная sim-карта для мобильных телефонов

Изобретение относится к области управления сетевыми данными, такими как данные пользователя или абонента, а именно к предоставлению возможности резервировать информацию о подготовке к работе сотового телефона и личные данные с мобильного телефона на сервер. Технический результат заключается в...
Тип: Изобретение
Номер охранного документа: 0002472310
Дата охранного документа: 10.01.2013
Показаны записи 1-10 из 686.
10.01.2013
№216.012.1a18

Обнаружение многолучевого распространения для принимаемого sps-сигнала

Изобретение относится к спутниковой системе определения местоположения (SPS), предназначено для обнаружения и/или оценки многолучевых сигналов и позволяет повысить точность измерения псевдодальности и координат местоположения приемного устройства. Изобретение раскрывает, в частности, способ...
Тип: Изобретение
Номер охранного документа: 0002472172
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a3c

Способ для указания местоположения и направления элемента графического пользовательского интерфейса

Изобретение относится к указанию направления и местоположения элементов графического пользовательского интерфейса. Техническим результатом является повышение удобства и простоты использования многопанельных электронных устройств. Способ включает в себя прием пользовательского ввода на первой...
Тип: Изобретение
Номер охранного документа: 0002472208
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a8c

Виртуальное планирование в неоднородных сетях

Заявленное изобретение относится к обеспечению виртуального управления беспроводными ресурсами в среде мобильной связи. Техническим результатом является значительное снижение помех для макрозоны охвата или близлежащих зон охвата. В качестве примера, терминалы доступа в среде связи могут...
Тип: Изобретение
Номер охранного документа: 0002472288
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a8f

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

Изобретение относится к связи, в частности к технологиям отправки управляющей информации в системе беспроводной связи. Техническим результатом является повышение эффективности передачи управляющей информации, в частности ACK- и CQI-информации. Указанный результат достигается тем, что в способе...
Тип: Изобретение
Номер охранного документа: 0002472291
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a94

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

Изобретение относится к системам связи. Технический результат заключается в том, чтобы снизить отрицательное воздействие разброса задержек. Для этого сначала определяются ожидаемые зоны покрытия для множества передач, которые должны передаваться в нескольких временных интервалах. Длина...
Тип: Изобретение
Номер охранного документа: 0002472296
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a96

Способ и устройство для осуществления информационного запроса сеанса для определения местоположения плоскости пользователя

Изобретение относится к системам определения местоположения. Технический результат заключается в улучшении качества услуги определения местоположения. Описаны методики для запроса информации о сеансах определения местоположения в архитектуре определения местоположения плоскости пользователя. В...
Тип: Изобретение
Номер охранного документа: 0002472298
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a9c

Универсальная корректировка блочности изображения

Изобретение относится к области обработки изображения и, более конкретно, к способам универсальной корректировки блочности изображения при низком быстродействии (малом количестве миллионов команд в секунду) (MIP). Техническим результатом является создание способа универсальной корректировки...
Тип: Изобретение
Номер охранного документа: 0002472304
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1a9f

Основанная на местоположении и времени фильтрация информации широковещания

187 Изобретение относится к связи, в частности к способам посылки и приема информации широковещания. Техническим результатом является обеспечение автоматической идентификации информации широковещания, представляющей потенциальный интерес для пользователя. Указанный технический результат...
Тип: Изобретение
Номер охранного документа: 0002472307
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1aa1

Способ и устройство для поддержки экстренных вызовов (ecall)

Изобретение относится к области услуг или возможностей, предназначенных для беспроводных сетей связи, а именно к технологиям для поддержки неотложных вызовов (еСаll). Техническим результатом является эффективный обмен сигнализацией между терминалом и беспроводной сетью неотложного вызова при...
Тип: Изобретение
Номер охранного документа: 0002472309
Дата охранного документа: 10.01.2013
10.01.2013
№216.012.1aa2

Виртуальная sim-карта для мобильных телефонов

Изобретение относится к области управления сетевыми данными, такими как данные пользователя или абонента, а именно к предоставлению возможности резервировать информацию о подготовке к работе сотового телефона и личные данные с мобильного телефона на сервер. Технический результат заключается в...
Тип: Изобретение
Номер охранного документа: 0002472310
Дата охранного документа: 10.01.2013
+ добавить свой РИД