Фильтр с внутренним сглаживанием для кодирования видео

Иллюстрации

Показать все

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

Реферат

ОБЛАСТЬ ТЕХНИКИ

[0001] Настоящее раскрытие относится к кодированию видео и, более конкретно, к кодированию видео c внутренним предсказанием.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ПОДРОБНОЕ ОПИСАНИЕ

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

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

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

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

[0026] Другой способ выполнения AIS заключается в том, чтобы использовать таблицу индикатора фильтров в кодере и декодере, где значение индикатора зависит от размера блока и режима с внутренним предсказанием, которое указывает направление предсказания. Таблица может быть сгенерирована во время стадии конструирования, таким образом, избегая повышения вычислительной сложности кодера, так как решение относительно того, фильтрованы ли пиксели, не выполняется во время процесса кодирования. Однако некоторые изменения в видеокодере/декодере могут потребовать генерирования новой таблицы, чтобы заменить текущую таблицу.

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

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

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

[0030] В примере на Фиг. 1 исходное устройство 12 включает в себя источник 18 видео, видеокодер 20, модулятор/демодулятор (модем) 22 и передатчик 24. Приемное устройство 14 включает в себя приемник 26, модем 28, видеодекодер 30 и устройство 32 отображения. В других примерах исходное устройство и приемное устройство могут включать в себя другие компоненты или компоновки. Например, исходное устройство 12 может принимать видеоданные от внешнего источника 18 видео, такого как внешняя камера, архив хранения видео, источник компьютерной графики или подобное. Аналогично, приемное устройство 14 может связываться с внешним устройством отображения вместо включения интегрированного устройства отображения.

[0031] Иллюстрированная система 10 на Фиг. 1 является просто одним примером. Способы для применения фильтра сглаживания в кодировании с внутренним предсказанием могут быть выполнены любым цифровым устройством кодирования и/или декодирования видео. Хотя в целом способы настоящего раскрытия выполняются устройством кодирования видео, способы также могут быть выполнены видеокодером/декодером, обычно называемым "кодеком". Кроме того, способы настоящего раскрытия также могут быть выполнены процессором предварительной обработки видео. Исходное устройство 12 и приемное устройство 14 являются просто примерами таких устройств кодирования, в которых исходное устройство 12 генерирует закодированные видеоданные для передачи на приемное устройство 14. В некоторых примерах устройства 12, 14 могут работать по существу симметрическим способом таким образом, чтобы каждое из устройств 12, 14 включало в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одно- или двухстороннюю передачу видео между видеоустройствами 12, 14, например, для потоковой передачи видео, воспроизведения видео, вещания видео или видеотелефонии.

[0032] Источник 18 видеоисходного устройства 12 может включать в себя устройство захвата видео, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, и/или внешний видеосигнал от поставщика видеоконтента. В качестве дополнительной альтернативы, источник 18 видео может генерировать основанные на компьютерных графических устройствах данные, такие как исходное видео или комбинация “живого” видео, архивированного видео и сгенерированного машиной видео. В некоторых случаях, если источник 18 видео является видеокамерой, исходное устройство 12 и приемное устройство 14 могут формировать так называемые камерофоны или видеофоны. Однако, как упомянуто выше, способы, описанные в настоящем раскрытии, могут применяться к кодированию видео в целом и могут применяться к беспроводным и/или проводным приложениям. В каждом случае захваченное, предварительно захваченное или сгенерированное машиной видео может быть закодировано видеокодером 20. Закодированная видеоинформация затем может модулироваться модемом 22 согласно стандарту связи и передаваться на приемное устройство 14 с помощью передатчика 24. Модем 22 может включать в себя различные смесители, фильтры, усилители или другие компоненты, сконструированные для модуляции сигнала. Передатчик 24 может включать в себя схемы, сконструированные для передачи данных, включающие в себя усилители, фильтры и одну или более антенн.

[0033] Приемник 26 приемного устройства 14 принимает информацию по каналу 16, и модем 28 демодулирует эту информацию. Снова, процесс кодирования видео может реализовать один или более способов, описанных в настоящем описании, чтобы применить фильтр сглаживания во время кодирования с внутренним предсказанием текущего блока. Информация, переданная по каналу 16, может включать в себя информацию синтаксиса, определенную видеокодером 20, которая также используется видеодекодером 30, который включает в себя элементы синтаксиса, которые описывают характеристики и/или обработку блоков предсказания (блоков PU), блоков кодирования (блоков CU) или других блоков закодированного видео, например, видеовырезок, видеокадров и видеопоследовательностей или групп картинок (картинок GOP). Устройство 32 отображения отображает декодированные видеоданные пользователю и может содержать любое множество устройств отображения, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.

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

[0035] Видеокодер 20 и видеодекодер 30 могут работать согласно стандарту сжатия видео, такому как появляющийся стандарт кодирования видео с высокой эффективностью (HEVC) или стандарт 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).

[0036] Стандарт ITU-T H.264/MPEG-4 (AVC) был сформулирован группой экспертов по кодированию видео ITU-T (VCEG) вместе с группой экспертов по движущимся изображениям ISO/IEC (MPEG) как продукт коллективного товарищества, известного как объединенная команда видео (JVT). В некоторых аспектах способы, описанные в настоящем раскрытии, могут применяться к устройствам, которые в целом соответствуют стандарту H.264. Стандарт H.264 описан в рекомендации H.264 ITU-T, Усовершенствованное Кодирование Видео для обычных аудиовизуальных услуг, посредством группы по изучению ITU-T от марта 2005, которая в настоящем описании может называться стандартом H.264 или спецификацией H.264, или стандартом H.264/AVC или спецификацией.

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

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

[0039] LCU может быть ассоциирован со структурой данных квадродерева. В целом, структура данных квадродерева включает в себя один узел для каждого CU, где корневой узел соответствует LCU. Если CU разбит на четыре подблока CU, узел, соответствующий CU, включает в себя четыре концевых узла, каждый из которых соответствует одному из подблоков CU. Каждый узел структуры данных квадродерева может выдать данные синтаксиса для соответствующего CU. Например, узел в квадродереве может включать в себя флаг разбиения, указывающий, разбит ли CU, соответствующий узлу, на подблоки CU. Элементы синтаксиса для CU могут быть определены рекурсивно и могут зависеть от того, разбит ли CU на подблоки CU.

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

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

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

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

[0044] В качестве примера испытательная модель HEVC (HM) поддерживает предсказание в CU различных размеров. Размер LCU может быть определен информацией синтаксиса. Предположим, что размер конкретного CU составляет 2N×2N, HM поддерживает внутреннее предсказание в размерах 2N×2N или N×N и внешнее предсказание в симметричных размерах 2N×2N, 2N×N, N×2N или N×N. HM также поддерживает асимметричное разбиение для внешнего предсказания 2N×nU, 2N×nD, nL×2N и nR×2N. При асимметричном разбиении одно направление CU не разделено, в то время как другое направление разделено на 25% и 75%. Фрагмент CU, соответствующий 25%-ому разбиению, указан посредством "n", сопровождаемым индикацией "Верхний", "Нижний", "Левый" или "Правый". Таким образом, например, "2N×nU" относится к CU 2N×2N, который разделен горизонтально с PU 2N×0.5N сверху и PU 2N×1.5N снизу.

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

[0046] Как отмечено выше, CU может быть закодирован, используя кодирование с внешним предсказанием или кодирование с внутренним предсказанием. При внутреннем предсказании текущий блок может быть предсказан относительно блока в том же кадре, который был уже закодирован. Обычно блоки кадра кодируются слева направо и сверху вниз или в некоторых примерах в порядке сканирования в виде буквы "z". Поэтому текущий блок может быть предсказан относительно блоков где-то выше его или налево от текущего блока. Размеры блока при кодировании с внутренним предсказанием могут изменяться от относительно небольшого размера, например, 2×2, до относительно большого размера, например, 128×128. Направление предсказания или направление от уже закодированного блока до текущего блока может определить режим с внутренним предсказанием. HМ предусматривает до 34 режимов, которые включают в себя 33 различных режимов направления с внутренним предсказанием, соответствующих направлению экстраполяции и одному режиму DC. Каждый из 33 режимов направления с внутренним предсказанием соответствует углу между 0 и 180 (или между 45 и -135 градусами от горизонтальной линии, двигаясь по часовой стрелке, в примере на Фиг. 2A), с угловым разрешением около 5,625°, указывающим направление экстраполяции пикселей от блока, используемого для предсказания пикселей текущего блока. Ненаправленный режим (обозначенный режимом 2) соответствует DC, где формирование выборок соседних пикселей используется для предсказания пикселей текущего блока. В некоторых примерах HМ может обеспечить 35-ый режим (режим 34), соответствующий плоскому режиму, где значения пикселей могут быть приспособлены, используя функцию градиента, рассмотренную более подробно ниже.

[0047] Во время кодирования с внутренним предсказанием на качество точности предсказания может быть оказано влияние и ухудшено. Например, когда размер PU увеличивается, может быть ухудшена точность предсказания пикселей дальше от пикселей предсказателя. Ухудшение точности предсказания может привести к большему количеству остаточных данных, что может привести к большему количеству данных, которые должны быть закодированы, переданы или сохранены. Фильтр сглаживания может быть применен к пикселям предсказателя, используемым для предсказания блока, чтобы повысить точность предсказания. В некоторых случаях, однако, лучшие результаты достигаются без использования фильтра сглаживания. Как отмечено выше, современные стандарты используют способы адаптивного внутреннего сглаживания (AIS).

[0048] Способы настоящего раскрытия предлагают упрощенную схему AIS, которая основана на правиле, где правила относительно того, применить ли фильтр сглаживания, главным образом основаны на размере текущего блока и режиме предсказания или направлении. В HМ размеры блока изменяются от небольшого размера, например, 2×2, к такому большому размеру, как 128×128, например. Режимы с внутренним предсказанием, доступные для каждого блока, могут изменяться на основании размера, который объяснен более подробно ниже. Для каждого размера блока может быть необходим фильтр сглаживания, когда предсказание применяется в некоторых направлениях, но не других направлениях, где направления соответствуют различным режимам с внутренним предсказанием. В одном примере комбинации размеров и режимов с внутренним предсказанием, для которых применен фильтр сглаживания, могут быть предварительно определены в таблице поиска (LUT). Поэтому определение, применить ли фильтр сглаживания, может быть общим и остается одним и тем же независимо от изменений в кодере и/или декодере, и сигнализация определения фильтрования может не быть необходима. Дополнительно, выполнение определения, применить ли фильтр сглаживания, не предполагает существенную сложность кодера.

[0049] В некоторых примерах определение, применить ли фильтр сглаживания, может дополнительно отличаться для больших блоков и меньших блоков, где способ определения, применить ли фильтр сглаживания, может изменяться на основании размера блока. Например, для некоторых размеров блока кодер может выполнить предсказание, используя как фильтрованные, так и нефильтрованны