Заполнение краевых пикселов неинформативными символами для внутреннего предсказания при кодировании видеосигнала
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в снижении времени обработки и потребления энергии. Способ кодирования видеоданных содержит выполнение операции заполнения неинформативными символами, которая обрабатывает множество краевых пикселов согласно порядку, который начинается с нижнего-левого краевого пиксела и проходит через краевые пикселы последовательно до верхнего-правого краевого пиксела, причем, когда операция заполнения неинформативными символами обрабатывает недоступный краевой пиксел, отличающийся от нижнего-левого краевого пиксела и отличающийся от верхнего-правого краевого пиксела, операция заполнения неинформативными символами назначает значение недоступному краевому пикселу на основе значения краевого пиксела, ранее обработанного операцией заполнения неинформативными символами, без поиска следующего доступного краевого пиксела; и генерацию, на основе краевых пикселов, видеоблока, предсказанного с помощью внутреннего предсказания. 4 н. и 25 з.п. ф-лы, 15 ил.
Реферат
Данная заявка испрашивает приоритет предварительной заявки на патент США № 61/496504, зарегистрированной 13 июня 2011 года, предварительной заявки на патент США № 61/557361, поданной 8 ноября 2011 года, и предварительной заявки на патент США № 61/557845, поданной 9 ноября 2011 года, полное содержание каждой из которых включено сюда в качестве ссылки.
ОБЛАСТЬ ТЕХНИКИ
Данное описание относится к кодированию видеосигнала и, более конкретно, к внутреннему предсказанию видеоданных.
УРОВЕНЬ ТЕХНИКИ
Возможности цифрового видео могут быть включены в широкий диапазон устройств, включающих в себя цифровые телевизоры, цифровые системы прямого вещания, беспроводные системы вещания, персональные цифровые секретари (PDA), портативные или настольные компьютеры, цифровые камеры, цифровые устройства записи, цифровые медиа-плейеры, устройства для видеоигр, консоли для видеоигр, сотовые или спутниковые радиотелефоны, видеоустройства для телеконференций и т.п. Цифровые видеоустройства реализуют способы сжатия (цифровых) видеосигналов, такие как способы, описанные в стандартах, заданных посредством MPEG-2, MPEG-4, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видеосигнала (AVC), стандарт кодирования видеосигнала высокой эффективности (HEVC), находящийся в настоящее время в разработке, и расширения таких стандартов, для более эффективной передачи, приема и хранения цифровой видеоинформации.
Способы сжатия видеосигналов осуществляют пространственное (внутри изображения) предсказание и/или временное (между изображениями) предсказание для уменьшения или устранения избыточности, свойственной видеопоследовательностям. Для кодирования видеосигнала, основанного на блоках, видеосрез может быть разделен на видеоблоки, которые могут также называться блоками древовидной структуры, блоками кодирования (CU) и/или узлами кодирования. Видеоблоки в срезе изображения, кодированном с помощью внутрикадрового кодирования (I), кодируются с использованием пространственного предсказания относительно опорных выборок в соседних блоках в том же самом изображении. Видеоблоки в срезе изображения, кодированном с помощью межкадрового кодирования (Р или В), могут использовать пространственное предсказание относительно опорных выборок в соседних блоках в том же самом изображении или временное предсказание относительно опорных выборок в других опорных изображениях. Изображения могут называться кадрами, и опорные изображения могут называться опорными кадрами.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В общем, данное описание описывает способы для заполнения неинформативными символами краевых пикселов (элементов изображения) для внутреннего предсказания при кодировании видеосигнала. В соответствии со способами данного описания, видеокодер может выполнить операцию заполнения неинформативными символами, которая назначает значения недоступным краевым пикселам. Эта операция заполнения неинформативными символами может обработать краевые пикселы согласно порядку, который начинается с нижнего-левого краевого пиксела и продолжается через краевые пикселы последовательно до верхнего-правого краевого пиксела. Когда операция заполнения неинформативными символами обрабатывает недоступный краевой пиксел, операция заполнения неинформативными символами может назначить некоторое значение недоступному краевому пикселу на основе значения краевого пиксела, ранее обработанного операцией заполнения неинформативными символами. Видеокодер может сгенерировать видеоблок, предсказанный с помощью внутреннего предсказания, основанный на краевых пикселах.
В одном аспекте, это описание описывает способ для кодирования видеоданных. Этот способ содержит выполнение операции заполнения неинформативными символами, которая обрабатывает некоторое множество краевых пикселов согласно порядку, который начинается в нижнем-левом краевом пикселе и продолжается через краевые пикселы последовательно до верхнего-правого краевого пиксела. Когда операция заполнения неинформативными символами обрабатывает недоступный краевой пиксел, операция заполнения неинформативными символами назначает значение недоступному краевому пикселу на основе значения краевого пиксела, ранее обработанного операцией заполнения неинформативными символами. Этот способ также содержит генерацию видеоблока, предсказанного с помощью внутреннего предсказания, основанного на краевых пикселах.
Данное описание также описывает устройство кодирования видеосигнала, которое содержит один или несколько процессоров, выполненных с возможностью выполнения операции заполнения неинформативными символами, которая обрабатывает некоторое множество краевых пикселов согласно порядку, который начинается в нижнем-левом краевом пикселе и продолжается через краевые пикселы последовательно до верхнего-правого краевого пиксела. Когда операция заполнения неинформативными символами обрабатывает недоступный краевой пиксел, операция заполнения неинформативными символами назначает значение недоступному краевому пикселу на основе значения краевого пиксела, ранее обработанного операцией заполнения неинформативными символами. Этот один или несколько процессоров также выполнены с возможностью генерации видеоблока, предсказанного с помощью внутреннего предсказания, основанного на краевых пикселах.
Кроме того, данное описание описывает устройство кодирования видеосигнала, содержащее средство для выполнения операции заполнения неинформативными символами, которая обрабатывает некоторое множество краевых пикселов согласно порядку, который начинается в нижнем-левом краевом пикселе и продолжается через краевые пикселы последовательно до верхнего-правого краевого пиксела. Когда операция заполнения неинформативными символами обрабатывает недоступный краевой пиксел, операция заполнения неинформативными символами назначает значение недоступному краевому пикселу на основе значения краевого пиксела, ранее обработанного операцией заполнения неинформативными символами. Это устройство кодирования видеосигнала также содержит средство для генерации видеоблока, предсказанного с помощью внутреннего предсказания, на основе краевых пикселов.
Данное описание также описывает компьютерный программный продукт, который содержит один или несколько считываемых компьютером носителей данных, которые сохраняют исполняемые компьютером команды, которые, при исполнении, вызывают выполнение одним или несколькими процессорами операции заполнения неинформативными символами, которая обрабатывает некоторое множество краевых пикселов согласно порядку, который начинается в нижнем-левом краевом пикселе и продолжается через краевые пикселы последовательно до верхнего-правого краевого пиксела. Когда операция заполнения неинформативными символами обрабатывает недоступный краевой пиксел, операция заполнения неинформативными символами назначает значение недоступному краевому пикселу на основе значения краевого пиксела, ранее обработанного операцией заполнения неинформативными символами. Эти команды также вызывают генерацию одним или несколькими процессорами видеоблока, предсказанного с помощью внутреннего предсказания, на основе краевых пикселов.
Подробности одного или нескольких примеров изложены в сопутствующих чертежах и в описании ниже. Другие особенности, объекты и преимущества явствуют из этого описания и чертежей и из формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блок-схемой, иллюстрирующей примерную систему кодирования видеосигнала, которая может реализовать способы данного описания.
Фиг. 2 является концептуальной схемой, которая иллюстрирует примерный видеоблок и множество краевых пикселов, связанных с этим видеоблоком.
Фиг. 3А является концептуальной схемой, которая иллюстрирует примерные режимы внутреннего предсказания при кодировании видеосигнала высокой эффективности.
Фиг. 3В является концептуальной схемой, которая указывает другое примерное назначение номеров различным режимам внутреннего предсказания.
Фиг. 3С является концептуальной схемой, которая иллюстрирует примерные режимы внутреннего предсказания в H.264/AVC.
Фиг. 4 является блок-схемой, иллюстрирующей примерный видеокодер, который может реализовать способы данного описания.
Фиг. 5 является блок-схемой, иллюстрирующей примерный видеодекодер, который может реализовать способы данного описания.
Фиг. 6 является блок-схемой алгоритма, которая иллюстрирует примерную операцию внутреннего предсказания.
Фиг. 7 является блок-схемой алгоритма, которая иллюстрирует примерную операцию заполнения неинформативными символами.
Фиг. 8 является концептуальной схемой, которая иллюстрирует порядок, в котором примерная операция заполнения неинформативными символами по фиг. 7 проходит через краевые пикселы.
Фиг. 9 является блок-схемой алгоритма, которая иллюстрирует другую примерную операцию заполнения неинформативными символами.
Фиг. 10 является концептуальной схемой, которая иллюстрирует примерный порядок, в котором операция заполнения неинформативными символами по фиг. 9 проходит через краевые пикселы.
Фиг. 11 является блок-схемой алгоритма, которая иллюстрирует другую примерную операцию заполнения неинформативными символами.
Фиг. 12 является концептуальной схемой, которая иллюстрирует примерный порядок, в котором операция заполнения неинформативными символами по фиг. 11 проходит через краевые пикселы.
Фиг. 13 является блок-схемой алгоритма, которая иллюстрирует примерную операцию для определения того, является ли краевой пиксел доступным.
ПОДРОБНОЕ ОПИСАНИЕ
Прилагаемые чертежи иллюстрируют примеры. Элементы, указанные посредством условных обозначений, в прилагаемых чертежах соответствуют элементам, указанным посредством подобных условных обозначений в следующем описании. В этом описании, элементы, имеющие названия, которые начинаются с порядковых числительных (например, «первый», «второй», «третий» и т.д.) необязательно подразумевают, что эти элементы имеют некоторый конкретный порядок. Скорее, такие порядковые числительные используются просто для ссылки на различные элементы одного и того же или подобного типа.
Видеокодер может сгенерировать видеоблок, предсказанный с помощью внутреннего предсказания, на основе некоторого множества пикселов, которые граничат с этим видеоблоком с верхней и с левой стороны этого видеоблока. Краевые пикселы на левой строне видеоблока могут проходить ниже нижней строки пикселов видеоблока, а краевые пикселы на верхней стороне видеоблока могут проходить вправо от крайнего правого столбца пикселов видеоблока.
В некоторых случаях, один или несколько краевых пикселов могут быть недоступными. Соответственно, видеокодер может выполнить операцию заполнения неинформативными символами, которая назначает значения недоступным краевым пикселам. Эта операция заполнения неинформативными символами может обработать краевые пикселы согласно некоторому порядку, который начинается с нижнего-левого краевого пиксела и продолжается через краевые пикселы последовательно до верхнего-правого краевого пиксела. Когда операция заполнения неинформативными символами обрабатывает недоступный краевой пиксел, операция заполнения неинформативными символами может назначить некоторое значение этому недоступному краевому пикселу на основе значения краевого пиксела, ранее обработанного операцией заполнения неинформативными символами. После выполнения операции заполнения неинформативными символами, видеокодер может сгенерировать видеоблок, предсказанный с помощью внутреннего предсказания, на основе этих краевых пикселов. Если этот видеокодер является видеокодером, то этот видеокодер может сгенерировать кодированные видеоданные на основе видеоблока, предсказанного с помощью внутреннего предсказания. Например, видеокодер может сгенерировать остаточные данные, основанные по меньшей мере частично на видеоблоке, предсказанном с помощью внутреннего предсказания. Если этот видеокодер является видеодекодером, то этот видеокодер может сгенерировать декодированные видеоданные на основе видеоблока, предсказанного с помощью внутреннего предсказания. Например, этот видеодекодер может реконструировать декодированный видеоблок, основанный по меньшей мере частично на видеоблоке, предсказанном с помощью внутреннего предсказания, и остаточном видеоблоке.
Фиг. 1 является блок-схемой, которая иллюстрирует примерную систему 10 кодирования видеосигнала, которая может использовать способы данного описания. Как использовалось описанное здесь, термин «видеокодер» обобщенно относится как к видеокодерам, видеодекодерам, так и к комбинированным кодерам-декодерам (CODEC). В этом описании, термины «кодирование видеосигнала» или «кодирование» могут обобщенно относиться к кодированию видеосигнала и декодированию видеосигнала. Все термины «кодер», «декодер» и CODEC могут относиться к конкретным машинам, предназначенным для кодирования (кодирования и/или декодирования) видеоданных, совместимого с этим описанием. Устройство, которое выполняет кодирование видеосигнала может быть названо устройством кодирования видеосигнала.
Как показано на фиг. 1, система 10 кодирования видеосигнала включает в себя исходное устройство 12 и устройство 14 назначения. Исходное устройство 12 генерирует кодированные видеоданные. Устройство 14 назначения может декодировать эти кодированные видеоданные, генерируемые исходным устройством 12. Исходное устройство 12 и устройство 14 назначения могут содержать широкий диапазон устройств, включающий в себя настольные компьютеры, портативные компьютеры (например, компактные портативные компьютеры), планшетные компьютеры, телеприставки, телефоны-трубки, такие как так называемые смартфоны, так называемые «интеллектуальные клавиатуры», телевизоры, камеры, устройства отображения, цифровые медиа-плейеры, консоли для видеоигр, автомобильные компьютеры и т.п. В некоторых примерах, исходное устройство 12 и устройство 14 назначения могут быть оборудованы для беспроводной связи.
Устройство 14 назначения может принять кодированные видеоданные от исходного устройства 12 через канал 16. Канал 16 может содержать любой тип среды или устройства, способного перемещать кодированные видеоданные от исходного устройства 12 к устройству 14 назначения. В одном примере, канал 16 может содержать среду передачи данных, которая дает возможность исходному устройству 12 передавать кодированные видеоданные непосредственно к устройству 14 назначения в реальном времени. В этом примере, исходное устройство 12 может модулировать кодированные видеоданные согласно стандарту связи, такому как протокол беспроводной связи, и может передавать модулированные видеоданные к устройству 14 назначения. Эта среда передачи данных может содержать беспроводную или проводную среду передачи данных, такую как радиочастотный (RF) спектр или одна или несколько физических линий передачи. Эта среда передачи данных может образовывать часть сети на основании пакетов, такой как локальная вычислительная сеть, широкомасштабная сеть или глобальная сеть, такая как Интернет. Эта среда передачи данных может включать в себя маршрутизаторы, переключатели, базовые станции или другое оборудование, которое облегчает связь от исходного устройства 12 к устройству 14 назначения.
В другом примере, канал 16 может соответствовать носителю данных, который хранит кодированные видеоданные, генерируемые исходным устройством 12. В этом примере, устройство 14 назначения может получить доступ к носителю данных через доступ с помощью диска или доступ с помощью карточки. Этот носитель данных может включать в себя разнообразие локально доступных носителей данных, таких как Blue-ray диски, DVD, CD-ROM, флэш-память или другие соответствующие цифровые носители данных для хранения кодированных видеоданных. В дополнительном примере, канал 16 может включать в себя файловый сервер или другое промежуточное ЗУ, которое хранит кодированное видео, сгенерированное исходным устройством 12. В этом примере, устройство 14 назначения может получить доступ к кодированным видеоданным, хранимым в этом файловом сервере или другом промежуточном ЗУ через поточную передачу или загрузку. Этот файловый сервер может быть некоторым типом сервера, способным хранить кодированные видеоданные и передавать кодированные видеоданные к устройству 14 назначения. Примерные файловые серверы включают в себя web-серверы (например, для web-сайта), FTP серверы, присоединенные к сети ЗУ (NAS) и локальные дисководы. Устройство 14 назначения может получить доступ к кодированным видеоданным через стандартное подключение данных, такое как Интернет-подключение. Примерные типы подключений данных могут включать в себя беспроводные каналы (например, Wi-Fi подключения), проводные подключения (например, DSL, кабельный модем и т.д.), или комбинации обоих типов, которые является подходящими для доступа к кодированным видеоданным, хранимым на файловом сервере. Передача кодированных видеоданных от файлового сервера может быть поточной передачей, передачей загрузки или комбинацией обеих.
Способы данного описания не ограничены беспроводными приложениями или установками. Эти способы могут применяться к кодированию видеосигнала в поддержке любого из разнообразия мультимедийных приложений, таких как телевизионное радиовещание, передачи кабельного телевидения, передачи спутникового телевидения, передачи потокового видео, например, через Интернет, кодирование цифрового видео для хранения на носителе данных, декодирование цифрового видео, хранимого на носителе данных или других приложений. В некоторых примерах, система 10 кодирования видеосигнала может быть выполнена с возможностью поддержки односторонней или двусторонней передачи видеосигнала для поддержки приложений, таких как поточная передача видеосигнала, воспроизведение видео, вещание видео и/или видеотелефония.
В примере фиг. 1, исходное устройство 12 включает в себя источник 18 видео, видеокодер 20 и интерфейс 22 вывода. В некоторых случаях, интерфейс 22 вывода может включать в себя модулятор/демодулятор (модем) и/или передатчик. Источник 18 видео может включать в себя такой источник, как устройство захвата видео, например, видеокамеру, видеоархив, содержащий ранее захваченные видеоданные, интерфейс подачи видео для приема видеоданных от провайдера видеоконтента, и/или систему компьютерной графики для генерации видеоданных, или комбинацию таких источников.
Видеокодер 20 может кодировать видеоданные. Интерфейс 22 вывода может непосредственно передать кодированные видеоданные к устройству 14 назначения. Альтернативно, интерфейс 22 вывода может сохранить кодированные видеоданные на носитель данных или файловый сервер для более позднего доступа устройством 14 назначения для декодирования и/или воспроизведения.
В примере фиг. 1, устройство 14 назначения включает в себя интерфейс 28 ввода, видеодекодер 30 и устройство 32 отображения. В некоторых случаях, интерфейс 28 ввода может включать в себя приемник и/или модем. Интерфейс 28 ввода устройства 14 назначения принимает кодированные видеоданные по каналу 16. Кодированные видеоданные могут включать в себя разнообразие синтаксических элементов, которые представляют эти видеоданные.
Устройство 32 отображения может быть интегрировано с устройством 14 назначения или может быть внешним к нему. В других примерах, устройство 14 назначения может быть устройством отображения. В общем, устройство 32 отображения отображает декодированные видеоданные для пользователя. Устройство 32 отображения может содержать любое из разнообразия устройств отображения, таких как жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.
Видеокодер 20 и видеодекодер 30 могут работать согласно стандарту сжатия видео, такому как стандарт кодирования видеосигнала высокой эффективности (HEVC), находящийся в настоящее время в разработке, и может соответствовать тестовой модели HEVC (HM). Альтернативно, видеокодер 20 и видеодекодер 30 могут работать согласно другим собственным или промышленным стандартам, таким как стандарт ITU-T H.264, альтернативно называемый MPEG-4, часть 10, усовершенствованное кодирование видеосигнала (AVC), или расширения таких стандартов. Способы данного описания, однако, не ограничены каким-либо конкретным стандартом кодирования. Другие примерные стандарты сжатия видео включают в себя MPEG-2 и ITU-T H.263.
Хотя это и не показано в примере фиг. 1, каждый из видеокодера 20 и видеодекодера 30 может быть интегрирован с аудиокодером и декодером и может включать в себя соответствующие блоки мультиплексора-демультиплексора (MUX-DEMUX), или другое аппаратное и программное обеспечение, для обработки кодирования как аудио, так и видео в общем потоке данных или отдельных потоках данных. В некоторых примерах, MUX-DEMUX блоки могут соответствовать протоколу ITU H.223 мультиплексора, или другим протоколам, таким как протокол дейтаграмм пользователя (UDP).
Опять же, фиг. 1 является примером, и способы данного описания могут применяться к настройкам кодирования видеосигнала (например, кодирования видеосигнала или декодирования видеосигнала), которые необязательно включают в себя какую-либо передачу данных между устройствами кодирования и декодирования. Во многих примерах, кодирование видеосигнала и декодирования видеосигнала выполняется устройствами, которые не связываются друг с другом, а сохраняют кодированные видеоданные в памяти и/или извлекают и декодируют видеоданные из памяти.
Каждый из видеокодера 20 и видеодекодера 30 может быть реализован с использованием различных типов схем, таких как один или несколько микропроцессоров, процессоров цифровых сигналов (DSP), интегральные схемы прикладной ориентации (ASIC), программируемые пользователем вентильные матрицы (FPGA), дискретная логика, аппаратное обеспечение или любые их комбинации. В некоторых случаях видеокодер 20 и видеодекодер 30 могут быть по меньшей мере частично реализованы в программном обеспечении. Когда видеокодер 20 и/или видеодекодер 30 реализуются частично в программном обеспечении, некоторое устройство может хранить команды для этого программного обеспечения в соответствующем, некратковременном считываемом компьютером носителе данных и может исполнять эти команды в аппаратном обеспечении с использованием одного или нескольких процессоров для выполнения способов данного описания. Каждый из видеокодера 20 и видеодекодера 30 может быть включен в один или несколько кодеров или декодеров, каждый из которых может быть интегрирован как часть комбинированного кодера/декодера (CODEC) в соответствующем устройстве.
Как кратко упоминалось выше, видеокодер 20 кодирует видеоданные. Эти видеоданные могут содержать одно или несколько изображений. Каждое из этих изображений является неподвижным изображением, образующим часть некоторого видео. В некоторых случаях, изображение может называться видеокадром. Когда видеокодер 20 кодирует видеоданные, видеокодер 20 может генерировать битовый поток. Этот битовый поток может включать в себя последовательность битов, которые образуют кодированное представление этих видеоданных.
Для генерации этого битового потока, видеокодер 20 может выполнить операции кодирования на каждом изображении в видеоданных. Когда видеокодер 20 выполняет операции кодирования на этих изображениях, видеокодер 20 может генерировать последовательность кодированных изображений и связанных данных. Кодированное изображение является кодированным представлением некоторого изображения. Эти связанные данные могут включать в себя множества параметров последовательности, множества параметров изображения, множества параметров приспособления и другие синтаксические структуры. Множество параметров последовательности (SPS) может содержать параметры, применимые к нулю или большему количеству последовательностей изображений. Множество параметров изображения (PPS) может содержать параметры, применимые к нулю или большему количеству изображений. Множество параметров приспособления (APS) может содержать параметры, применимые к нулю или большему количеству изображений. Параметры PPS могут быть фиксированными для некоторого множества изображений, тогда как параметры в различных множествах параметров приспособления могут быть применимы к различным изображениям в этом множестве изображений.
Для генерации кодированного изображения, видеокодер 20 может разделить некоторое изображение на неперекрывающиеся видеоблоки равного размера. Каждый из этих видеоблоков связан с некоторым блоком древовидной структуры. В некоторых случаях, блок древовидной структуры может также называться наибольшим блоком кодирования (LCU). Блоки древовидной структуры HEVC могут быть широко аналогичны макроблокам предыдущих стандартов, таких как H.264/AVC. Однако блок древовидной структуры необязательно ограничен конкретным размером и может включать в себя один или несколько блоков кодирования (CU). Видеокодер 20 может использовать разделение на дерево квадрантов для разделения видеоблоков блоков древовидной структуры на видеоблоки, связанные с CU, отсюда название «блоки древовидной структуры».
В некоторых примерах, видеокодер 20 может разделить некоторое изображение на множество срезов. Каждый срез может включать в себя целое число CU. В некоторых случаях, срез содержит целое число блоков древовидной структуры. В других случаях, граница среза может находиться в пределах блока древовидной структуры.
Как часть выполнения операции кодирования на изображении, видеокодер 20 может выполнить операции кодирования на каждом срезе этого изображения. Когда видеокодер 20 выполняет операцию кодирования на срезе, видеокодер 20 может генерировать кодированные данные, связанные с этим срезом. Эти кодированные данные, связанные с этим срезом, могут называться «кодированным срезом».
Для генерации кодированного среза, видеокодер 20 может выполнить операции кодирования на каждом блоке древовидной структуры в некотором срезе. Когда видеокодер 20 выполняет операцию кодирования на блоке древовидной структуры, видеокодер 20 может генерировать кодированный блок древовидной структуры. Этот кодированный блок древовидной структуры может содержать данные, представляющие кодированную версию этого блока древовидной структуры.
Для генерации кодированного блока древовидной структуры, видеокодер 20 может рекурсивно выполнить разделение дерева квадрантов на видеоблоке блока древовидной структуры для разделения этого видеоблока на все более меньшие видеоблоки. Каждый из меньших видеоблоков может быть связан с различными CU. Например, видеокодер 20 может разделить видеоблок блока древовидной структуры на четыре подблока равного размера, разделить один или несколько из этих подблоков на четыре подподблоков равного размера и т.д. Один или несколько синтаксических элементов в битовом потоке могут указывать максимальное число раз, когда видеокодер 20 может разделить видеоблок блока древовидной структуры. Видеоблок CU может быть квадратом по форме. Размер видеоблока CU (т.е. размер CU) может изменяться от 8х8 пикселов вплоть до размера видеоблока блока древовидной структуры (т.е. размера этого блока древовидной структуры) с максимумом в 64х64 пикселов или более.
Видеокодер 20 может выполнить операции кодирования на каждом неразделенном CU блока древовидной структуры. Неразделенный CU является CU, чей видеоблок не разделен на видеоблоки для других CU. Как часть выполнения операции кодирования на неразделенном CU, видеокодер 20 может сгенерировать один или несколько блоков предсказания (PU) для этого CU. Каждый из PU этого CU может быть связан с другим видеоблоком в пределах видеоблока этого CU. Видеокодер 20 может сгенерировать предсказанный видеоблок для каждого PU этого CU. Этот предсказанный видеоблок некоторого PU может быть некоторым блоком выборок. В этом описании, термин «выборка» может относиться к освещенности (яркости) или цвету (вектору цветности) некоторого пиксела. Видеокодер 20 может использовать внутреннее предсказание или внешнее предсказание для генерации предсказанного видеоблока для некоторого PU.
Когда видеокодер 20 использует внутреннее предсказание для генерации предсказанного видеоблока некоторого PU, видеокодер 20 может сгенерировать предсказанный видеоблок этого PU на основе выборок изображения, связанного с этим PU. Если видеокодер 20 использует внутреннее предсказание для генерации предсказанных видеоблоков этих PU некоторого CU, то этот CU является CU, предсказанным с помощью внутреннего предсказания.
Когда видеокодер 20 использует внешнее предсказание для генерации предсказанного видеоблока этого PU, видеокодер 20 может сгенерировать предсказанный видеоблок этого PU на основе значений изображений, отличных от изображения, связанного с этим PU. Другими словами, видеокодер 20 может сгенерировать предсказанный видеоблок этого PU на основе выборок в одном или нескольких опорных изображениях. Кроме того, когда видеокодер 20 использует внутреннее предсказание для генерации предсказанного видеоблока для некоторого PU, видеокодер 20 может сгенерировать информацию о движении для этого PU. Эта информация о движении для некоторого PU может указывать некоторую часть опорного изображения, которая соответствует видеоблоку этого PU. Другими словами, информация о движении для некоторого PU может указывать «опорную выборку» для этого PU. Видеокодер 20 может сгенерировать предсказанный видеоблок для этого PU на основе частей этих опорных изображений, которые указываются информацией о движении для этого PU. Если видеокодер 20 использует внешнее предсказание для генерации предсказанных видеоблоков для этих PU некоторого CU, то этот CU является CU, предсказанным с помощью внешнего предсказания.
После того, как видеокодер 20 генерирует предсказанные видеоблоки для одного или нескольких PU некоторого CU, видеокодер 20 может сгенерировать остаточные данные для этого CU на основе предсказанных видеоблоков для этих PU этого CU. Эти остаточные данные для этого CU могут указывать различия между выборками в предсказанных видеоблоках для этих PU этого CU и первоначальным видеоблоком этого CU.
Кроме того, как часть выполнения операции кодирования на неразделенном CU, видеокодер 20 может выполнить рекурсивное разделение дерева квадрантов на остаточные данные CU для разделения остаточных данных CU на один или несколько блоков остаточных данных (т.е. остаточных видеоблоков), связанных с блоками преобразования (TU) этого CU. Каждый TU некоторого CU может быть связан с другим остаточным видеоблоком. Видеокодер 20 может выполнить операцию преобразования на каждом TU этого CU.
Когда видеокодер 20 выполняет операцию преобразования на некотором TU, видеокодер 20 может применить один или несколько преобразований к остаточному видеоблоку, связанному с этим TU, для генерации одного или нескольких блоков коэффициентов преобразования (т.е. блоков коэффициентов преобразования), связанных с этим TU. Концептуально, блок коэффициентов преобразования может быть двумерной (2D) матрицей коэффициентов преобразования.
После генерации блока коэффициентов преобразования, видеокодер 20 может выполнить операцию квантования на этом блоке коэффициентов преобразования. Квантование обычно относится к процессу, в котором коэффициенты преобразования квантуются для возможного уменьшения величины данных, используемой для представления коэффициентов преобразования, обеспечивая дополнительное сжатие.
Квантование может уменьшать глубину цвета, связанную с некоторыми или всеми коэффициентами преобразования. Например, n-битовый коэффициент преобразования может быть округлен вниз до m-битового коэффициента преобразования во время квантования, где n является большим, чем m.
Видеокодер 20 может связать каждый CU или некоторое количество CU со значением параметра квантования (QP). Значение QP, связанное с CU, может определить то, как видеокодер 20 квантует блоки коэффициентов преобразования, связанные с этим CU или этим числом CU. Видеокодер 20 может настроить степень квантования, применяемого к блокам коэффициентов преобразования, связанным с некоторым CU посредством настройки значения QP, связанного с этим CU.
После того, как видеокодер 20 квантует блок коэффициентов преобразования видеокодер 20 может сканировать квантованные коэффициенты преобразования для создания одномерного вектора уровней коэффициентов преобразования. Видеокодер 20 может энтропийно кодировать этот одномерный вектор. Видеокодер 20 может также энтропийно кодировать другие синтаксические элементы, связанные этими видеоданными.
Битовый поток, генерируемый видеокодером 20, может включать в себя последовательность блоков абстрактного уровня сети (NAL). Каждый из NAL блоков может быть синтаксической структурой, содержащей указание типа данных в этом NAL блоке и байтов, содержащих эти данные. Например, NAL блок может содержать данные, представляющие множество параметров последовательности, множество параметров изображения, кодированный срез, информацию о дополнительном улучшении (SEI), разделитель блоков доступа, данные заполнителя или другой тип данных. Эта данные в NAL блоке могут включать в себя энтропийно кодированные синтаксические структуры, такие как энтропийно кодированные блоки коэффициентов преобразования, информацию о движении и т.д.
Видеодекодер 30 может принять битовый поток, генерируемый видеокодером 20. Этот битовый поток может включать в себя кодированное представление видеоданных, кодированных видеокодером 20. Когда видеодекодер 30 принимает этот битовый поток, видеодекодер 30 может выполнить операцию синтаксического анализа на этом битовом потоке. Когда видеодекодер 30 выполняет операцию синтаксического анализа, видеодекодер 30 может выделить синтаксические элементы из этого битового потока. Видеодекодер 30 может реконструировать изображения видеоданных на основе синтаксических элементов, выделенных из битового потока. Этот процесс реконструкции видеоданных на основе синтаксических элементов может быть обычно обратным процессу, выполняемому видеокодером 20 для генерации синтаксических элементов.
После того, как видеодекодер 30 выделяет синтаксические элементы, связанные с некоторым CU, видеодекодер 30 может генерировать видеоблоки, предсказанные с помощью внутреннего или внешнего предсказания, для этих PU этого CU на основе этих синтаксических элементов. Кроме того, видеодекодер 30 может обратно квантовать (инвертировать квантование) блоков коэффициентов преобразования, связанных с TU этого CU. Видеодекодер 30 может выполнить обратные преобразования на блоках коэффициентов преобразования для реконструкции остаточных видеоблоков, связанных с этими TU этого CU. После генерации предсказанных видеоблоков и реконструкции остаточных видеоблоков, видеодекодер 30 может реконструировать видеоблок этого CU на основе предсказанных видеоблоков и остаточных видеоблоков. Таким образом, видеодекодер 30 может определить видеоблоки CU на основе синтаксических элементов в битовом потоке.
Как кратко описано выше, видеокодер, такой как видеокодер 20 или видеодекодер 30, может использовать внутреннее предсказание для генерации предсказанного видеоблока для некоторого PU. Для легкости объяснения, это описание может относиться к предсказанному видеоблоку, сгенерированному с использованием внутреннего предсказания, как к видеоблоку, предсказанному с помощью внутреннего предсказания. Когда видеокодер генерирует видеоблок, предсказанный с помощью внутреннего предсказания, для некоторого PU, видеокодер может назначить значения различных краевых пикселов пикселам в видеоблоке, предсказанном с помощью внутреннего предсказания.
Фиг. 2 является концептуальной схемой, которая иллюстрирует примерный видеоблок 50 и множество краевых пикселов, связанных с видеоблоком 50. Видеоблок 50 может быть связан с некоторым PU некоторог