Способ сигнализации типа смещения и коэффициентов для адаптивного смещения выборок
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования за счет возможности снижения скорости передачи битов при сохранении высокого качества изображения. Способ кодирования информации об адаптивном смещении выборок в процессе кодирования видео, выполняемый устройством кодирования видео, в котором определяют информацию об адаптивном смещении выборок для текущего раздела видеоданных; сравнивают информацию об адаптивном смещении выборок текущего раздела с информацией об адаптивном смещении выборок одного или более соседних разделов видеоданных и кодируют элемент синтаксиса слияния, указывающий, что видеодекодер должен копировать информацию об адаптивном смещении выборок для текущего раздела из информации об адаптивном смещении выборок одного из упомянутых одного или более соседних разделов. 8 н. и 77 з.п. ф-лы, 13 ил.
Реферат
[0001] Данная заявка притязает на преимущество по Предварительной заявке на патент США № 61/484,624, поданной 10 мая 2011 года, и Предварительной заявке на патент США № 61/503,454, поданной 30 июня 2011 года, которые настоящим полностью включаются в этот документ по ссылке.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0002] Данное раскрытие изобретения относится к кодированию видео, а конкретнее к методикам для выполнения сигнализации и кодирования адаптивного смещения выборок в процессе кодирования видео.
УРОВЕНЬ ТЕХНИКИ
[0003] Возможности цифрового видео могут встраиваться в широкий диапазон устройств, включая цифровые телевизоры, системы цифрового прямого вещания, системы беспроводного вещания, персональные цифровые помощники (PDA), переносные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, цифровые мультимедийные проигрыватели, видеоигровые устройства, игровые приставки, сотовые или спутниковые радиотелефоны, устройства для видеоконференцсвязи и т. п. Цифровые видеоустройства реализуют методики сжатия видео, например описанные в стандартах, заданных MPEG-2, MPEG-4, H.263 ITU-T, H.264 ITU-T/MPEG-4, часть 10, Улучшенное кодирование видео (AVC), стандартом Высокоэффективного кодирования видео (HEVC), в настоящее время находящимся в разработке, и расширениях таких стандартов, чтобы эффективнее передавать, принимать и хранить цифровую видеоинформацию.
[0004] Методики сжатия видео включают в себя пространственное предсказание и/или временное предсказание для уменьшения или устранения избыточности, присущей видеопоследовательностям. Для блочного кодирования видео видеокадр или секцию можно разделить на блоки. Каждый блок можно разделить еще дальше. Блоки в кадре или секции с внутренним кодированием (I) кодируются с использованием пространственного предсказания относительно эталонных выборок в соседних блоках в одном и том же кадре или секции. Блоки в кадре или секции с внешним кодированием (P или B) могут использовать пространственное предсказание относительно эталонных выборок в соседних блоках в одном и том же кадре или секции или временное предсказание относительно эталонных выборок в других эталонных кадрах. Пространственное или временное предсказание приводит к блоку с предсказанием для блока, который подлежит кодированию. Остаточные данные представляют собой разности пикселей между исходным блоком, который подлежит кодированию, и блоком с предсказанием.
[0005] Блок с внешним кодированием кодируется в соответствии с вектором движения, который указывает на блок эталонных выборок, образующих блок с предсказанием, и остаточными данными, указывающими разность между кодированным блоком и блоком с предсказанием. Блок с внутренним кодированием кодируется в соответствии с режимом внутреннего кодирования и остаточными данными. Для дополнительного сжатия остаточные данные могут быть преобразованы из области пикселей в область преобразования, что приводит к остаточным коэффициентам преобразования, которые затем можно квантовать. Квантованные коэффициенты преобразования, первоначально упорядоченные в двумерный массив, можно сканировать в конкретном порядке для создания одномерного вектора коэффициентов преобразования для энтропийного кодирования.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0006] В общем, данное раскрытие изобретения описывает методики для кодирования видеоданных. Данное раскрытие изобретения описывает методики для выполнения сигнализации и кодирования адаптивного смещения выборок в процессе кодирования видео. Методики из раскрытия изобретения включают в себя процесс сигнализации на основе слияния и на основе предсказания для информации об адаптивном смещении выборок (то есть значений смещения и типа смещения).
[0007] В одном примере раскрытия изобретения предлагается способ кодирования значений адаптивного смещения выборок в процессе кодирования видео. Способ включает в себя определение информации о смещении для текущего раздела, сравнение информации о смещении текущего раздела с информацией о смещении одного или более соседних разделов, кодирование команды слияния в случае, когда информация о смещении одного из упомянутых одного или более соседних разделов является такой же, как информация о смещении текущего раздела, и кодирование одной из множества команд предсказания в случае, когда информация о смещении упомянутых одного или более соседних разделов не является такой же, как информация о смещении текущего раздела.
[0008] В другом примере раскрытия изобретения предлагается устройство, сконфигурированное для кодирования значений адаптивного смещения выборок в процессе кодирования видео. Устройство включает в себя видеокодер, сконфигурированный для сравнения информации о смещении текущего раздела с информацией о смещении одного или более соседних разделов, кодирования команды слияния в случае, когда информация о смещении одного из упомянутых одного или более соседних разделов является такой же, как информация о смещении текущего раздела, и кодирования одной из множества команд предсказания в случае, когда информация о смещении упомянутых одного или более соседних разделов не является такой же, как информация о смещении текущего раздела.
[0009] В другом примере раскрытия изобретения предлагается способ декодирования значений адаптивного смещения выборок в процессе декодирования видео. Способ включает в себя прием команды слияния или одной из множества команд предсказания для текущего раздела, копирование информации о смещении из соседнего раздела в текущий раздел в случае, когда принята команда слияния, и выполнение процесса предсказания смещения для текущего раздела в случае, когда принята одна из множества команд предсказания.
[0010] В другом примере раскрытия изобретения предлагается устройство, сконфигурированное для декодирования значений адаптивного смещения выборок в процессе декодирования видео. Устройство включает в себя видеодекодер, сконфигурированный для приема команды слияния или одной из множества команд предсказания для текущего раздела, копирования информации о смещении из соседнего раздела в текущий раздел в случае, когда принята команда слияния, и выполнения процесса предсказания смещения для текущего раздела в случае, когда принята одна из множества команд предсказания.
[0011] Подробности одного или более примеров излагаются в прилагаемых чертежах и описании ниже. Другие признаки, цели и преимущества станут очевидны из описания, чертежей и из формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0012] Фиг. 1 - концептуальная схема, изображающая структуру квадродерева для единиц кодирования в процессе кодирования видео.
[0013] Фиг. 2 - концептуальная схема, показывающая четыре возможных типа смещения по границе.
[0014] Фиг. 3 - концептуальная схема, показывающая примерные типы смещения по диапазону.
[0015] Фиг. 4 - блок-схема, иллюстрирующая примерную систему кодирования и декодирования видео.
[0016] Фиг. 5 - блок-схема, иллюстрирующая примерный видеокодер.
[0017] Фиг. 6 - концептуальная схема, изображающая возможные соседние разделы, используемые при сигнализации информации о смещении.
[0018] Фиг. 7A - концептуальная схема примера кодирования синтаксиса адаптивного смещения в режиме слияния.
[0019] Фиг. 7B - концептуальная схема примера кодирования синтаксиса адаптивного смещения в первом режиме предсказания.
[0020] Фиг. 7C - концептуальная схема примера кодирования синтаксиса адаптивного смещения во втором режиме предсказания.
[0021] Фиг. 7D - концептуальная схема примера кодирования синтаксиса адаптивного смещения в третьем режиме предсказания.
[0022] Фиг. 8 - блок-схема, иллюстрирующая примерный видеодекодер.
[0023] Фиг. 9 - блок-схема алгоритма, иллюстрирующая примерный способ кодирования видео с использованием адаптивного смещения выборок.
[0024] Фиг. 10 - блок-схема алгоритма, иллюстрирующая примерный способ декодирования видео с использованием адаптивного смещения выборок.
ПОДРОБНОЕ ОПИСАНИЕ
[0025] В общем, данное раскрытие изобретения описывает методики для кодирования видеоданных. Данное раскрытие изобретения описывает методики для кодирования значений адаптивного смещения выборок в процессе кодирования видео.
[0026] Цифровые видеоустройства реализуют методики сжатия видео, чтобы эффективнее кодировать и декодировать цифровую видеоинформацию. Сжатие видео может применять методики пространственного (внутрикадрового) предсказания и/или временного (межкадрового) предсказания, чтобы уменьшить или устранить избыточность, присущую видеопоследовательностям.
[0027] Для кодирования видео в соответствии, в качестве одного примера, со стандартом Высокоэффективного кодирования видео (HEVC), в настоящее время находящимся в разработке Объединенной команды по кодированию видео (JCT-VC), видеокадр можно разделить на единицы кодирования. Единица кодирования (CU) относится, как правило, к области изображения, которая служит в качестве основной единицы, к которой применяются различные инструменты кодирования для сжатия видео. CU обычно имеет яркостную компоненту, обозначенную как Y, и две компоненты цветности, обозначенные как U и V. В зависимости от формата дискретизации видео размер компонент U и V с точки зрения количества выборок может совпадать или отличаться от размера компоненты Y. CU обычно квадратная и может считаться аналогичной так называемому макроблоку, например, в других стандартах кодирования видео, таких как H.264 ITU-T. С целью иллюстрации в данной заявке будет описываться кодирование в соответствии с некоторыми предложенными в настоящее время особенностями развивающегося стандарта HEVC. Однако описанные в данном раскрытии изобретения методики могут быть полезны для других процессов кодирования видео, например процессов, заданных в соответствии с H.264 или другим стандартом, или частных процессов кодирования видео.
[0028] Работа по стандартизации HEVC основывается на модели устройства кодирования видео, называемой Экспериментальной моделью HEVC (HM). HM предполагает несколько возможностей устройств кодирования видео по сравнению с устройствами в соответствии, например, с H.264 ITU-T/AVC. Например, тогда как H.264 предоставляет девять режимов кодирования с внутренним предсказанием, HM предоставляет целых тридцать четыре режима кодирования с внутренним предсказанием.
[0029] В соответствии с HM CU может включать в себя одну или более единиц предсказания (PU) и/или одну или более единиц преобразования (TU). Синтаксические данные в потоке битов могут задавать наибольшую единицу кодирования (LCU), которая является наибольшей CU с точки зрения количества пикселей. В общем CU имеет сходную с макроблоком из H.264 цель за исключением того, что CU не имеет отличия в размере. Таким образом, CU можно разделить на суб-CU. В общем, ссылки на CU в данном раскрытии изобретения могут относиться к наибольшей единице кодирования изображения или к суб-CU в LCU. LCU можно разделить на суб-CU, и каждую суб-CU можно дополнительно разделить на суб-CU. Синтаксические данные для потока битов могут задавать максимальное количество раз, которое можно делить LCU, называемое глубиной CU. Соответственно, поток битов также может задавать наименьшую единицу кодирования (SCU). Данное раскрытие изобретения также использует термин "блок" или "часть" для ссылки на любую из CU, PU или TU. Обычно "часть" может относиться к любому поднабору видеокадра.
[0030] LCU может ассоциироваться со структурой данных квадродерева. Фиг. 1 - концептуальная схема разделения квадродерева. Обычно структура данных квадродерева включает в себя один узел на каждую CU, при этом корневой узел соответствует LCU. Если CU разделяется на четыре суб-CU, то узел, соответствующий CU, включает в себя четыре листа, каждый из которых соответствует одной из суб-CU. Каждый узел в структуре данных квадродерева может предоставлять синтаксические данные для соответствующей CU. Например, узел в квадродереве может включать в себя флаг разделения, указывающий, разделяется ли соответствующая узлу CU на суб-CU. Синтаксические элементы для CU можно задать рекурсивно, и они могут зависеть от того, разделяется ли CU на суб-CU. Если CU больше не разделяется, то она называется листовой CU. В данном раскрытии изобретения 4 суб-CU в листовой CU также будут называться листовыми CU, хотя и отсутствует явное разделение исходной листовой CU. Например, если CU с размером 16x16 больше не разделяется, то четыре суб-CU 8x8 также будут называться листовыми CU, хотя CU 16x16 никогда не разделялась.
[0031] Кроме того, TU в листовых CU также могут ассоциироваться с соответствующими структурами данных квадродерева. То есть листовая CU может включать в себя квадродерево, указывающее, как листовая CU разделяется на TU. Данное раскрытие изобретения ссылается на квадродерево как на квадродерево CU, указывая, как разделяется LCU, и на квадродерево как на квадродерево TU, указывая, как листовая CU разделяется на TU. Корневой узел квадродерева TU, как правило, соответствует листовой CU, тогда как корневой узел квадродерева CU, как правило, соответствует LCU. TU в квадродереве TU, которые не разделяются, называются листовыми TU.
[0032] Листовая CU может включать в себя одну или более единиц предсказания (PU). Обычно PU представляет всю или часть соответствующей CU и может включать в себя данные для извлечения эталонной выборки для PU. Например, когда PU кодируется во внешнем режиме, PU может включать в себя данные, задающие вектор движения для PU. Данные, задающие вектор движения, могут описывать, например, горизонтальную составляющую вектора движения, вертикальную составляющую вектора движения, разрешение для вектора движения (например, точность в одну четверть пикселя или точность в одну восьмую пикселя), эталонный кадр, на который указывает вектор движения, и/или список ссылок (например, список 0 или список 1) для вектора движения. Данные для листовой CU, задающей PU (несколько PU), также могут описывать, например, разделение CU на одну или более PU. Режимы разделения могут отличаться в зависимости от того, является ли CU некодированной, кодированной в режиме внутреннего предсказания или кодированной в режиме внешнего предсказания. Для внутреннего кодирования PU может считаться тем же, что и листовая единица преобразования, описанная ниже.
[0033] Кодирование адаптивного смещения выборок (SAO) в настоящее время рассматривается для принятия в стандарт HEVC. В общем, добавление значений смещения к пикселям в видеокадре (например, кадре с предсказанием для внешнего предсказания или внутреннего предсказания) может улучшить кодирование во время изменений освещенности между кадрами видеопоследовательности, например, во время вспышек, темнеющего неба или других типов изменений освещенности между кадрами. Например, значения смещения могут применяться к пикселям предсказанного видеоблока, чтобы сместить значения видеоблока с предсказанием, чтобы компенсировать изменения освещенности. Предшествующие стандарты кодирования видео, например H.264, применяли типы и значения смещения единообразно по всем блокам или кадрам пикселей. Методики SAO допускают применение разных значений смещения к разным пикселям (или блокам) в зависимости от показателей классификации пикселя (или блока). Возможные показатели классификации включают в себя показатели активности, например показатели границы и показатели диапазона. Описание классификаций смещения можно найти в C.-M. Fu, C.-Y. Chen, C.-Y. Tsai, Y.-W. Huang, S. Lei, "CE13: Sample Adaptive Offset with LCU-Independent Decoding", JCT-VC Contribution, E049, Женева, февраль 2011 г.
[0034] В текущей реализации SAO в рабочем варианте стандарта HEVC каждый раздел (который состоит из набора LCU) может иметь один из трех типов смещения (также называемых классификацией пикселей): без смещения, тип смещения 0/1 на основе классификации диапазона и тип 0/1/2/3 на основе классификации границы. Каждый тип смещения на основе классификации диапазона имеет 16 возможных значений смещения, тогда как каждый тип на основе классификации границы имеет 4 возможных значения смещения. Если один из этих типов смещения выбирается для использования для раздела, то декодеру отправляется информация, указывающая соответствующий тип смещения и значения смещения.
[0035] Тип смещения по границе классифицирует каждый пиксель на основе информации о границе. Фиг. 2 - концептуальная схема, показывающая четыре возможных классификации смещения по границе (также называемых типами смещения), предложенные в настоящее время для HEVC. Граница для текущего пикселя C определяется относительно двух соседних пикселей (1 и 2). Тип 0 смещения по границе (SAO_EO_0) является горизонтальной границей. Тип 1 смещения по границе (SAO_EO_1) является вертикальной границей. Типы смещения по границе 2 (SAO_EO_2) и 3 (SAO_EO_3) являются диагональными границами. Для каждого значения типа смещения по границе четыре значения смещения определяются и сигнализируются в потоке битов кодированного видео для использования декодером.
[0036] Для смещения по диапазону пиксели классифицируются на разные диапазоны на основе интенсивности. Фиг. 3 - концептуальная схема, показывающая примерные диапазоны на основе значения интенсивности. Для классификации смещения по диапазону пиксели категоризируются на 32 диапазона. 16 диапазонов в центре классифицируются в одну группу (тип 0 смещения по диапазону), а оставшиеся диапазоны классифицируются во вторую группу (тип 1 смещения диапазону). Для каждой группы диапазонов 16 значений смещения определяются и сигнализируются в потоке битов кодированного видео для использования видеодекодером.
[0037] Данное раскрытие изобретения предлагает способы и методики, чтобы эффективнее отправлять тип смещения и значения смещения для каждого раздела. В этом смысле раздел может включать в себя несколько единиц кодирования (CU) (аналогичных так называемым макроблоками в стандарте H.264) или даже несколько наибольших единиц кодирования (LCU).
[0038] В одном примере раскрытия изобретения предлагаются методики для кодирования значений адаптивного смещения выборок в процессе кодирования видео. Предложенные методики включают в себя определение информации о смещении для текущего раздела, сравнение информации о смещении текущего раздела с информацией о смещении одного или более соседних разделов, кодирование команды слияния в случае, когда информация о смещении одного из упомянутых одного или более соседних разделов является такой же, как информация о смещении текущего раздела, и кодирование одной из множества команд предсказания в случае, когда информация о смещении упомянутых одного или более соседних разделов не является такой же, как информация о смещении текущего раздела.
[0039] В другом примере раскрытия изобретения предлагаются методики для декодирования значений адаптивного смещения выборок в процессе декодирования видео. Предложенные методики включают в себя прием команды слияния или одной из множества команд предсказания для текущего раздела, копирование информации о смещении из соседнего раздела в текущий раздел в случае, когда принята команда слияния, и выполнение процесса предсказания смещения для текущего раздела в случае, когда принята одна из множества команд предсказания.
[0040] Фиг. 4 - блок-схема, иллюстрирующая примерную систему кодирования и декодирования видео 10, которая может конфигурироваться для использования методик для выполнения сигнализации и кодирования адаптивного смещения выборок в соответствии с примерами из данного раскрытия изобретения. Как показано на фиг. 4, система 10 включает в себя устройство-источник 12, которое передает кодированное видео в устройство-адресат 14 по каналу 16 связи. Кодированные видеоданные также можно сохранить на запоминающем носителе 34 или файловом сервере 36, и к ним можно осуществлять доступ с помощью устройства-адресата 14 по желанию. Когда они сохранены на запоминающем носителе или файловом сервере, видеокодер 20 может предоставлять кодированные видеоданные другому устройству, например сетевому интерфейсу, устройству с возможностью прожига или штамповки компакт-диска (CD), диска Blu-ray или цифрового видеодиска (DVD), или другим устройствам для сохранения кодированных видеоданных на запоминающем носителе. Также устройство, обособленное от видеодекодера 30, например сетевой интерфейс, устройство считывания CD или DVD или т.п., может извлекать кодированные видеоданные из запоминающего носителя и предоставлять извлеченные данные видеодекодеру 30.
[0041] Устройство-источник 12 и устройство-адресат 14 могут содержать любое из широкого спектра устройств, включая настольные компьютеры, ноутбуки (то есть переносные компьютеры), планшетные компьютеры, телевизионные приставки, телефонные трубки, например так называемые смартфоны, телевизоры, камеры, устройства отображения, цифровые мультимедийные проигрыватели, игровые приставки или т.п. Во многих случаях такие устройства могут оборудоваться для осуществления беспроводной связи. Поэтому канал 16 связи может содержать беспроводной канал, проводной канал или сочетания беспроводного канала и проводного каналов, подходящего для передачи кодированных видеоданных. Аналогичным образом к файловому серверу 36 можно осуществлять доступ с помощью устройства-адресата 14 посредством любого стандартного соединения передачи данных, включая Интернет-соединение. Это соединение может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем и т.п.) или сочетание их обоих, которое подходит для обращения к кодированным видеоданным, сохраненным на файловом сервере.
[0042] Методики для выполнения сигнализации и кодирования адаптивного смещения выборок в соответствии с примерами из данного раскрытия изобретения могут применяться к кодированию видео в поддержку любого из множества мультимедийных приложений, таких как эфирные телевизионные передачи, кабельные телевизионные передачи, спутниковые телевизионные передачи, передачи потокового видео, например через Интернет, кодирование цифрового видео для сохранения на запоминающем носителе, декодирование цифрового видео, сохраненного на запоминающем носителе, или других приложений. В некоторых примерах система 10 может конфигурироваться для поддержки однонаправленной или двунаправленной передачи видео для поддержки таких приложений, как потоковая передача видео, воспроизведение видео, телевизионное вещание и/или видеотелефония.
[0043] В примере из фиг. 4 устройство-источник 12 включает в себя источник 18 видео, видеокодер 20, модулятор/демодулятор 22 и передатчик 24. В устройстве-источнике 12 источник 18 видео может включать в себя такой источник, как устройство видеозахвата, например видеокамера, видеоархив, содержащий ранее захваченное видео, интерфейс источника видеосигнала для приема видео от поставщика видеоконтента, и/или система компьютерной графики для формирования данных компьютерной графики в качестве исходного видео, либо сочетание таких источников. В качестве одного примера, если источником 18 видео является видеокамера, то устройство-источник 12 и устройство-адресат 14 могут образовывать так называемые камерофоны или видеотелефоны. Однако описанные в данном раскрытии изобретения методики могут быть применимы к кодированию видео в целом и могут применяться к беспроводным и/или проводным приложениям, или к приложению, в котором кодированные видеоданные хранятся на локальном диске.
[0044] Захваченное, предварительно захваченное или сформированное компьютером видео может кодироваться видеокодером 20. Кодированная видеоинформация может модулироваться модемом 22 в соответствии с неким стандартом связи, например протоколом беспроводной связи, и передаваться устройству-адресату 14 посредством передатчика 24. Модем 22 может включать в себя различные смесители, фильтры, усилители или другие компоненты, предназначенные для модуляции сигнала. Передатчик 24 может включать в себя схемы, предназначенные для передачи данных, включающие в себя усилители, фильтры, и одну или более антенн.
[0045] Захваченное, предварительно захваченное или сформированное компьютером видео, которое кодируется видеокодером 20, также можно сохранить на запоминающем носителе 34 или файловом сервере 36 для последующего потребления. Запоминающий носитель 34 может включать в себя диски Blu-ray, DVD, CD-ROM, флэш-память или любые другие подходящие цифровые запоминающие носители для хранения кодированного видео. К кодированному видео, сохраненному на запоминающем носителе 34, можно потом осуществлять доступ с помощью устройства-адресата 14 для декодирования и воспроизведения.
[0046] Файловый сервер 36 может быть любым типом сервера, способным к хранению кодированного видео и передаче кодированного видео устройству-адресату 14. Примерные файловые серверы включают в себя веб-сервер (например, для веб-сайта), FTP-сервер, сетевые устройства хранения (NAS), локальный диск или любой другой тип устройства, способный к хранению кодированных видеоданных и их передачу устройству-адресату. Передача кодированных видеоданных от файлового сервера 36 может быть потоковой передачей, загрузкой или их сочетанием. К файловому серверу 36 можно осуществлять доступ с помощью устройства-адресата 14 посредством любого стандартного соединения передачи данных, включая Интернет-соединение. Это соединение может включать в себя беспроводной канал (например, соединение Wi-Fi), проводное соединение (например, DSL, кабельный модем, Ethernet, USB и т.п.) или сочетание их обоих, которое подходит для обращения к кодированным видеоданным, сохраненным на файловом сервере.
[0047] Устройство-адресат 14 в примере из фиг. 4 включает в себя приемник 26, модем 28, видеодекодер 30 и устройство 32 отображения. Приемник 26 в устройстве-адресате 14 принимает информацию по каналу 16, и модем 28 демодулирует информацию для создания демодулированного потока битов для видеодекодера 30. Информация, переданная по каналу 16, может включать в себя различную синтаксическую информацию, сформированную видеокодером 20 для использования видеодекодером 30 при декодировании видеоданных. Такой синтаксис также может включаться в кодированные видеоданные, сохраненные на запоминающем носителе 34 или файловом сервере 36. Каждый из видеокодера 20 и видеодекодера 30 может образовывать часть соответствующего кодера-декодера (кодека), который способен к кодированию или декодированию видеоданных. В данном раскрытии изобретения термин "кодировщик" относится к кодеру, декодеру или кодеку, и все термины "кодировщик", "кодер", "декодер" и "кодек" относятся к специальным машинам, предназначенным для кодирования (кодирования и/или декодирования) видеоданных в соответствии с данным раскрытием изобретения.
[0048] Устройство 32 отображения может объединяться с устройством-адресатом 14 или быть внешним по отношению к нему. В некоторых примерах устройство-адресат 14 может включать в себя встроенное устройство отображения, а также конфигурироваться для сопряжения с внешним устройством отображения. В других примерах устройство-адресат 14 может быть устройством отображения. В общем, устройство 32 отображения отображает пользователю декодированные видеоданные и может содержать любое из множества устройств отображения, таких как жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на органических светоизлучающих диодах (OLED) или другой тип устройства отображения.
[0049] В примере из фиг. 4 канал 16 связи может содержать любое беспроводное или проводное средство связи, например радиочастотный (RF) спектр или одну или более физических линий передачи, или любое сочетание беспроводных и проводных средств. Канал 16 связи может образовывать часть пакетной сети, например локальной сети, региональной сети или глобальной сети, такой как Интернет. Канал 16 связи в целом представляет любое подходящее средство связи или совокупность разных средств связи для передачи видеоданных от устройства-источника 12 к устройству-адресату 14, включая любое подходящее сочетание проводных или беспроводных средств. Канал 16 связи может включать в себя маршрутизаторы, коммутаторы, базовые станции или любое другое оборудование, которое может быть полезно для упрощения связи от устройства-источника 12 к устройству-адресату 14.
[0050] Видеокодер 20 и видеодекодер 30 могут работать в соответствии с неким стандартом сжатия видео, например стандартом Высокоэффективного кодирования видео (HEVC), в настоящее время находящимся в разработке, и могут соответствовать Экспериментальной модели HEVC (HM). В качестве альтернативы видеокодер 20 и видеодекодер 30 могут работать в соответствии с другими собственными или промышленными стандартами, например стандартом H.264 ITU-T, в качестве альтернативы называемым MPEG-4, часть 10, Улучшенное кодирование видео (AVC), или расширениями таких стандартов. Однако методики в данном раскрытии изобретения не ограничиваются никаким конкретным стандартом кодирования. Другие примеры включают в себя MPEG-2 и H.263 ITU-T.
[0051] Хотя и не показано на фиг. 4, в некоторых аспектах видеокодер 20 и видеодекодер 30 могут быть объединены с аудио кодером и декодером и могут включать в себя подходящие модули мультиплексирования-демультиплексирования или другие аппаратные средства и программное обеспечение, чтобы справляться с кодированием аудио и видео в общем потоке данных или в отдельных потоках данных. Если применимо, то в некоторых примерах модули мультиплексирования-демультиплексирования могут соответствовать протоколу мультиплексора H.223 ITU или другим протоколам, например протоколу дейтаграмм пользователя (UDP).
[0052] Видеокодер 20 и видеодекодер 30 могут быть реализованы в виде любой из множества подходящих схем кодера, например одного или более микропроцессоров, цифровых процессоров сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретной логики, программного обеспечения, аппаратных средств, микропрограммного обеспечения или любых их сочетаний. Когда методики реализуются частично в программном обеспечении, устройство может хранить команды для программного обеспечения на подходящем, не временном компьютерно-читаемом носителе и исполнять команды на аппаратных средствах, использующих один или более процессоров, для выполнения методик из данного раскрытия изобретения. Каждый из видеокодера 20 и видеодекодера 30 может включаться в один или более кодеров или декодеров, любой из которых может встраиваться как часть объединенного кодера/декодера (кодека) в соответствующем устройстве.
[0053] Видеокодер 20 может реализовывать любую или все методики из данного раскрытия изобретения для выполнения сигнализации и кодирования адаптивного смещения выборок в процессе кодирования видео. Также видеодекодер 30 может реализовывать любую или все эти методики для выполнения кодирования адаптивного смещения выборок в процессе кодирования видео. Кодировщик видео, описанный в данном раскрытии изобретения, может относиться к видеокодеру или видеодекодеру. Аналогичным образом модуль кодирования видео может относиться к видеокодеру или видеодекодеру. Также кодирование видео может относиться к кодированию видео или декодированию видео.
[0054] В одном примере из раскрытия изобретения видеокодер 20 в устройстве-источнике 12 может конфигурироваться для сравнения информации о смещении текущего раздела с информацией о смещении одного или более соседних разделов, кодирования команды слияния в случае, когда информация о смещении одного из упомянутых одного или более соседних разделов является такой же, как информация о смещении текущего раздела, и кодирования одной из множества команд предсказания в случае, когда информация о смещении упомянутых одного или более соседних разделов не является такой же, как информация о смещении текущего раздела.
[0055] В другом примере из раскрытия изобретения видеодекодер 30 в устройстве-адресате 14 может конфигурироваться для приема команды слияния или одной из множества команд предсказания для текущего раздела, копирования информации о смещении из соседнего раздела в текущий раздел в случае, когда принята команда слияния, выполнения процесса предсказания смещения для текущего раздела в случае, когда принята одна из множества команд предсказания.
[0056] Фиг. 5 - блок-схема, иллюстрирующая пример видеокодера 20, который может использовать методики для кодирования и сигнализации значений адаптивного смещения выборок, которые описаны в данном раскрытии изобретения. Видеокодер 20 с целью иллюстрации будет описываться применительно к кодированию HEVC, но без ограничения данного раскрытия изобретения в отношении других стандартов или способов кодирования, которые могут требовать сканирования коэффициентов преобразования. Видеокодер 20 может выполнять внутреннее и внешнее кодирование CU в видеокадрах. Внутреннее кодирование опирается на пространственное предсказание, чтобы уменьшить или устранить пространственную избыточность в видеоданных в данном видеокадре. Внешнее кодирование опирается на временное предсказание, чтобы уменьшить или устранить временную избыточность между текущим кадром и ранее кодированными кадрами видеопоследовательности. Внутренний режим (I-режим) может относиться к любому из нескольких режимов пространственного сжатия видео. Внешние режимы, например однонаправленное предсказание (P-режим) или двунаправленное предсказание (B-режим), могут относиться к любому из нескольких режимов временного сжатия видео.
[0057] Как показано на фиг. 5, видеокодер 20 принимает текущий видеоблок в видеокадре, который подлежит кодированию. В примере из фиг. 5 видеокодер 20 включает в себя модуль 44 компенсации движения, модуль 42 оценки движения, модуль 46 внутреннего предсказания, буфер 64 эталонных кадров, сумматор 50, модуль 52 преобразования, модуль 54 квантования и модуль 56 энтропийного кодирования. Модуль 52 преобразования, проиллюстрированный на фиг. 5, является модулем, который применяет фактическое преобразование или сочетания преобразований к блоку остаточных данных, и его не нужно путать с блоком коэффициентов преобразования, который также может называться единицей преобразования (TU) в CU. Для восстановления видеоблока видеокодер 20 также включает в себя модуль 58 обратного квантования, модуль 60 обратного преобразования, сумматор 62 и модуль 43 SAO. Также может включаться фильтр уменьшения блочности для фильтрации границ блока, чтобы удалить артефакты блочности из восстановленного видео. При желании фильтр уменьшения блочности обычно фильтровал бы выходной сигнал сумматора 62.
[0058] Во время процесса кодирования видеокодер 20 принимает видеокадр или секцию, которые будут кодироваться. Кадр или секцию можно разделить на несколько видеоблоков, например, наибольших единиц кодирования (LCU). Модуль 42 оценки движения и модуль 44 компенсации движения выполняют кодирование с внешним предсказанием принятого видеоблока относительно одного или более блоков в одном или более эталонных кадрах, чтобы обеспечить временное сжатие. Модуль 46 внутреннего предсказания может выполнять кодирование с внутренним предсказанием принятого видеоблока относительно одного или более соседних блоков в том же кадре или секции в качестве блока, который подлежит кодированию, чтобы обеспечить пространственное сжатие.
[0059] Модуль 40 выбора режима может выбрать один из режимов кодирования, внутренний или внешний, например, на основе результатов искажения от скорости передачи для каждого режима, и предоставляет результирующий блок, предсказанный внутренне или внешне (например, единицу предсказания (PU)) сумматору 50, чтобы сформировать данные остаточного блока, и сумматору 62, чтобы восстановить кодированный блок для использования в эталонном кадре. Сумматор 62 объединяет предсказанный блок с обратно квантованными, обратно преобразованными данными от модуля 60 обратного преобразования для блока, чтобы восстановить кодированный блок, как подробнее описано ниже. Некоторые видеокадры можно обозначить как I-кадры, где все блоки в I-кадре кодируются в режиме внутреннего предсказания. В некоторых случаях модуль 46 внутреннего предсказания может выполнять кодирование с внутренним предсказанием блока в P- или B-кадре, например, когда поиск движени