Заполнение незначащей информацией сегментов в блоках уровня абстракции сети кодированного слайса
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования за счёт обеспечения параллельной обработки. Способ кодирования видеоданных, содержащий разделение изображения на множество разделов изображения, при этом изображение содержит множество древовидных блоков, причем разделы изображения связаны с неперекрывающимися поднаборами древовидных блоков указанного изображения; и создание блока уровня абстракции сети (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 использует внутрикадровое предсказани