УТОЧНЕНИЕ ВНУТРЕННИХ ПОДБЛОКОВ ЕДИНИЦЫ КОДИРОВАНИЯ
SPECIFICATION OF INTERNAL SUB-BLOCKS OF ENCODING UNIT

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящие принципы относятся к области сжатия видео.
УРОВЕНЬ ТЕХНИКИ
Согласно стандарту сжатия видео HEVC (High Efficiency Video Coding of International Telecommunication Union, ITU-T H.265), изображение делится на так называемые единицы дерева кодирования (CTU), размер которых обычно составляет 64×64, 128×128 или 256×256 пикселей.
Каждая CTU представлена деревом кодирования в сжатой области. Это является делением квадродерева упомянутой CTU, где каждый лист называется единицей кодирования, Coding Unit (CU), как показано на фиг. 1.
Каждая CTU представлена деревом кодирования, Coding Tree, в сжатой области. Это является делением квадродерева упомянутой CTU, где каждый лист является единицей кодирования (CU), как показано на фиг. 1.
Временное предсказание с компенсацией движения используется для применения избыточности, которая существует между последовательными изображениями видео. Для этого, вектор движения ассоциируется с каждой единицей предсказания (PU). Затем каждой CU задаются некоторые параметры внутреннего или внешнего предсказания (информация предсказания) и она пространственно делится на одну или более единиц предсказания (PU), и каждой PU назначается некоторая информация предсказания. Режим внутреннего или внешнего кодирования назначается на уровне CU, как показано на фиг. 2.
В HEVC единицы кодирования также делятся на так называемые единицы преобразования рекурсивным методом согласно “дереву преобразования”. Таким образом, дерево преобразования является делением квадродерева единицы кодирования, и единицы преобразования являются листьями дерева преобразования. Единица преобразования инкапсулирует квадратные блоки преобразования каждого компонента изображения, соответствующего рассматриваемой квадратной пространственной области. Блок преобразования представляет собой квадратный блок выборок в единичном компоненте, где применяется одно и то же преобразование.
В HEVC каждой PU назначается в точности один вектор движения. Этот вектор движения используется для временного предсказания с компенсацией движения рассматриваемой PU.
В объединенной исследовательской модели, Joint Exploration Model (JEM), разработанной группой JVET (Joint Video Exploration Team, объединенной командой исследователей видео), CU больше не делится на PU или TU, и некоторые данные движения непосредственно назначаются каждой CU. В этой новой конструкции кодека CU может делиться на под-CU, и вектор движения может вычисляться для каждой под-CU.
Несколько новых инструментов могут дополнительно делить CU на подблоки и выводить по одному вектору движения для каждого из этих подблоков. FRUC и аффинные инструменты используют такой вывод движения подблока, и OBMC (Overlapped Block Motion Compensation, компенсация движения с перекрывающимися блоками) и BIO (Bi-directional Optical Flow, двусторонний оптический поток) осуществляются совершенно одинаково.
Некоторые из этих инструментов, или в некоторых точных конфигурациях, используют соседние закодированные и реконструированные части изображения. В этом случае эти инструменты не позволяют выводить вектор движения для внутренних подблоков т.е. подблоков не в первой строке и/или столбце.
Новые перспективные инструменты сжатия видео включают в себя представление единицы дерева кодирования в сжатой области для более гибкого представления данных изображения в сжатой области. Преимущество этого гибкого представления дерева кодирования состоит в обеспечении повышенной эффективности сжатия по сравнению с компоновкой CU/PU/TU стандарта HEVC.
Благодаря этим новым инструментам сжатия видео, CU больше не делится на единицы предсказания или единицы преобразования. Другими словами, каждая единица кодирования всегда состоит из одной единицы предсказания (раньше делилась на 2N×2N единиц предсказания) и одной единицы преобразования (деление на дерево преобразования отсутствует).
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Эти и другие недостатки и проблемы уровня техники решаются по меньшей мере одним из описанных вариантов осуществления, которые относятся к способу и устройству для вывода векторов движения внутренних подблоков единицы кодирования, кодированных с помощью инструмента с использованием уровня подблоков и реконструированной информации о соседстве.
В по меньшей мере одном варианте осуществления, предлагается улучшать вывод движения для внутренних подблоков , используя преимущество ранее уточненных подблоков.
Согласно по меньшей мере одному описанному здесь общему варианту осуществления, предусмотрен способ кодирования блока видеоданных. Способ содержит этапы вывода информации для блока видеоданных из ранее закодированных соседних блоков; уточнения информации для подблоков вдоль левого или верхнего края блока видеоданных посредством использования выведенной информации и ранее закодированных соседних подблоков; уточнения информации для внутренних подблоков блока видеоданных посредством использованием уточненной информации из подблоков вдоль левого или верхнего края блока видеоданных; и кодирования блока видеоданных с использованием упомянутых уточненных подблоков.
Согласно другому описанному здесь аспекту, предусмотрен способ декодирования блока данных. Способ содержит вывод информации для блока видеоданных из ранее закодированных соседних блоков; уточнение информации для подблоков вдоль левого или верхнего края блока видеоданных посредством использования информации и ранее закодированных соседних подблоков; уточнение информации для внутренних подблоков блока видеоданных посредством использования уточненной информации из подблоков вдоль левого или верхнего края блока видеоданных; и декодирование блока видеоданных с использованием упомянутых уточненных подблоков.
Согласно другому описанному здесь аспекту, предусмотрено устройство для кодирования или декодирования блока видеоданных, содержащее: память и процессор, выполненный с возможностью осуществления: вывода информации для блока видеоданных из ранее закодированных соседних блоков; уточнения информации для подблоков вдоль левого или верхнего края блока видеоданных посредством использования информации и ранее закодированных соседних подблоков; уточнения информации для внутренних подблоков блока видеоданных посредством использования уточненной информации из подблоков вдоль левого или верхнего края блока видеоданных; и кодирования или декодирования блока видеоданных. Устройство может выполнять любой из вышеупомянутых вариантов осуществления способа с вариациями.
Согласно другому описанному здесь аспекту, предусмотрен невременный компьютерно-считываемый носитель данных, содержащий содержимое данных, генерируемых согласно способу по любому из вышеупомянутых вариантов осуществления способа, или устройством по любому из вышеупомянутых вариантов осуществления устройства для воспроизведения с использованием процессора.
Согласно другому описанному здесь аспекту, предусмотрен сигнал, содержащий видеоданные, генерируемые согласно способу по любому из вышеупомянутых вариантов осуществления способа для кодирования блока видеоданных, или устройством по любому из вышеупомянутых вариантов осуществления устройства для кодирования блока видеоданных, для воспроизведения с использованием процессора.
Согласно другому описанному здесь аспекту, предусмотрено компьютерный программный продукт, содержащий инструкции, которые, при выполнении программы компьютером, предписывают компьютеру осуществлять способ по любому из вышеупомянутых вариантов осуществления способа.
Эти и другие аспекты, признаки и преимущества настоящих принципов явствуют из нижеследующего подробного описания иллюстративных вариантов осуществления, представленных в связи с прилагаемыми чертежами.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 демонстрирует пример единицы дерева кодирования и принципов дерева кодирования для представления сжатого изображения HEVC.
Фиг. 2 демонстрирует пример деления единицы дерева кодирования на единицы кодирования, единицы предсказания и единицы преобразования.
Фиг. 3 демонстрирует один пример общей схемы сжатия видео, к которым могут применяться настоящие варианты осуществления.
Фиг. 4 демонстрирует один пример общей схеме снятия сжатия видео, к которым могут применяться настоящие варианты осуществления.
Фиг. 5 демонстрирует пример традиционного процесса согласования с шаблоном FRUC внутренней единицы кодирования.
Фиг. 6 демонстрирует другой пример традиционного процесса согласования с шаблоном FRUC подблоков внутренней единицы кодирования.
Фиг. 7 демонстрирует пример распространения OBMC по второй строке и второму столбцу большой единицы кодирования.
Фиг. 8 демонстрирует пример улучшенных строк и столбцов внутренних подблоков с использованием среднего уточненных соседей (пунктирных) или всей уточненной единицы кодирования (пустой) с использованием настоящих вариантов осуществления.
Фиг. 9 демонстрирует примеры двух конкретных случаев на a) левой или b) верхней границе кадра.
Фиг. 10 демонстрирует один вариант осуществления способа кодирования с использованием описанных аспектов.
Фиг. 11 демонстрирует один вариант осуществления способа декодирования с использованием описанных аспектов.
Фиг. 12 демонстрирует один вариант осуществления устройства для кодирования или декодирования с использованием описанных аспектов.
ПОДРОБНОЕ ОПИСАНИЕ
Согласно стандарту HEVC сжатия видео, изображение делится на так называемые единицы дерева кодирования (CTU), с типичными размерами 64×64, 128×128 или 256×256 пикселей.
Каждая CTU представлена деревом кодирования в сжатой области. Это является делением квадродерева CTU, где каждый лист называется единицей кодирования (CU), см. фиг. 1.
Затем каждой CU сообщаются некоторые параметры внутреннего или внешнего предсказания (информация предсказания). Для этого она пространственно делится на одну или более единиц предсказания (PU), и каждой PU назначается некоторая информация предсказания. Режим внутреннего или внешнего кодирования назначается на уровне CU, см. фиг. 2.
Согласно стандарту HEVC, единицы кодирования также делятся на так называемые единицы преобразования, рекурсивным методом, согласно “дереву преобразования”. Таким образом, дерево преобразования является делением квадродерева единицы кодирования, и единицы преобразования являются листьями дерева преобразования. Единица преобразования инкапсулирует квадратные блоки преобразования каждого компонента изображения, соответствующего рассматриваемой квадратной пространственной области. Блок преобразования представляет собой квадратный блок выборок в единичном компоненте, где применяется одно и то же преобразование.
Новые перспективные инструменты сжатия видео включают в себя представление единицы дерева кодирования в сжатой области для более гибкого представления данных изображения в сжатой области. Преимущество этого гибкого представления дерева кодирования состоит в обеспечении повышенной эффективности сжатия по сравнению с компоновкой CU/PU/TU стандарта HEVC.
Проблема, решаемая описанными вариантами осуществления, состоит в том, как выводить векторы движения для внутренних подблоков для повышения общей производительности сжатия рассматриваемого видеокодека.
В подходе уровня техники единицы кодирования, кодированные с помощью инструмента с использованием вывода движения подблока из соседней реконструированной части изображения, не могут адресовать внутренние подблоки. Основная предложенная здесь идея состоит в выводе вектора движения внутреннего подблока в кодере/декодере.
Инструмент преобразования повышения частоты кадров (Frame Rate Up Conversion, FRUC) уровня техники выводит векторы движения некоторым методом согласования с шаблоном. Такие методы позволяют извлекать наилучший вектор движения в наборе кандидатов, и затем уточнять его к наилучшему согласованию с шаблоном. FRUC сначала осуществляется на всем уровне CU. Затем полученный уточненный вектор движения используется как исходный для уровня подблоков, где он повторяет процесс независимо для каждого подблока.
Первый этап состоит в выводе уточненного вектора движения для всей CU. FRUC собирает кандидатные векторы движения, собранные из некоторых пространственных и временных соседей. Для каждого из этих кандидатов, соответствующий(е) шаблон(ы) в качестве пространственных соседних сверху и/или слева блоков изображения собираются в ассоциированном опорном кадре, как показано на фиг. 5. Ассоциированная стоимость согласования с шаблоном является SAD (суммой абсолютных значений разности) между шаблонами-кандидатами и текущими шаблонами. Кандидат, достигающий минимальной стоимости согласования с шаблоном, задается как наилучший представитель. Затем этот наилучший кандидат уточняется в отношении минимальной стоимости согласования с шаблоном путем прибавления малых дельт к этому вектору движения (с использованием, например, ромбических, квадратных, крестообразных рисунков или какого-либо другого рисунка).
Затем этот процесс FRUC повторяется на уровне подблоков (размера 4×4 или 8×8 в зависимости от размера всей CU). Уточненный вектор движения всей CU используется в качестве кандидата для подблоков, а также каких-либо других потенциальных кандидатов. Для каждого подблока, когда доступен текущий шаблон (в качестве пространственных соседних сверху и/или слева блоков изображения), наилучший кандидат извлекается согласно стоимости согласования с шаблоном, и затем уточняется в отношении минимальной стоимости согласования с шаблоном. В отсутствие текущего шаблона, вектор движения подблока влияет на всю уточненную CU. Для CU, которые не находятся на границе кадра, первый верхний левый подблок может использовать верхний и левый шаблоны (с перекрестной штриховкой подблок на фиг. 6), хотя оставшиеся в первой строке (соответственно, столбце) могут использовать только верхний (соответственно, левый) шаблон (с вертикальной (соответственно, горизонтальной) штриховкой подблок на фиг. 6). Другие внутренние подблоки (белый подблок на фиг. 6) не могут пользоваться уточнением шаблона и непосредственно использовать уточненный вектор движения всей CU.
Аналогично FRUC, улучшение компенсации движения AMVP (предложенные в “компенсация движения с более высокой точностью, чем дифференциал вектора движения”) позволяет уточнять на уровне подблоков входящий целопиксельный или ¼-пиксельный вектор движения AMVP до 1/16-пиксельной точности с использованием информация о соседстве.
Первые строка и столбец подблоков могут использовать непосредственно информацию о пространственном и/или временном соседстве, или с помощью процесса FRUC, для повышения точности их векторов движения. Для всех остальных внутренних подблоков такие соседи недоступны, поскольку они еще не кодировались и не декодировались. Таким образом невозможно использовать тот же процесс, что и для граничных подблоков.
Основное ограничение обработки подблоков уровня техники состоит в том, что информация обо всех внутренних подблоках не может быть улучшена, как для других (т.е. граничных) подблоков, они могут быть только приспособлены для входящего или уточненного вектора движения всей CU.
Опишем предложенный способ вывода информации для внутренних подблоков CU.
Описанные варианты осуществления позволяют улучшить вывод движения для внутренних подблоков CU, используя преимущество уже выведенной информации движения.
В инструменте FRUC первая строка и первый столбец подблоков могут быть выведены посредством согласования с шаблоном как описано в уровне техники. Остальные внутренние подблоки не выводятся, как другие, они просто используют уточненное значение всей CU.
В первом варианте осуществления, можно улучшать вывод движения для этих подблоков, используя преимущество первых уточненных подблоков.
Для этого можно использовать соседние уточненные векторы движения, пространственные и/или временные.
Только один сосед может рассматриваться как: (i) такой же, как наилучший кандидат, (ii) заранее заданный сосед (например, всегда левый пространственный сосед), (iii) первый встретившийся, имеющий другое значение, чем входящий уточненный MV, (iv) имеющий MV, ближайший к уточненному входящему или какому-либо другому кандидату. В этом случае MV внутреннего подблока принимает значение выбранного соседнего вектора движения.
В некотором варианте можно также рассматривать несколько соседей: (i) набор (или поднабор) (классических) пространственных соседей, (ii) первые 2, 3, … встретившиеся, имеющие другое значение, чем входящий уточненный вектор движения, (iii) 2, 3, …, имеющие вектор движения, ближайший к входящему уточненному, или какие-либо другие. В этом случае внутренний вектор движения подблока заполняется средним, медианой или любой другой комбинацией рассматриваемых соседних векторов движения.
В другом варианте можно также рассматривать входящий уточненный вектор движения как часть комбинации с одним или несколькими соседними векторами движения.
В другом варианте можно также рассматривать более сложную модель движения, включающую в себя все уточненные векторы движения подблока первой строки и первого столбца и один вектор движения всей CU. Такая модель может быть аффинной моделью, параметрической моделью, моделью на некоторой другой основе.
В некотором варианте можно также использовать разные способы вывода движения для разных подблоков. Например, первая строка и первый столбец внутренних подблоков (вторые для CU) могут использовать несколько соседних векторов движения и уточненный MV всей CU, меньше соседних MV и уточненный MV всей CU для второго столбца и второй строки, и, наконец, использовать ближайший соседний вектор движения для уточненного вектора движения всей CU для всех последующих подблоков.
Такой вывод движения может применяться не только к FRUC, но также может применяться к компенсации движения AMVP.
Вышеупомянутый первый вариант осуществления предназначен для вектора движения (как в случае FRUC), но во втором варианте осуществления, он может применяться к другому виду информации, используемой инструментом другого подблока.
Например, OBMC осуществляется наподобие сглаживания движения по границам CU. Это влияет только на первую строку и первый столбец подблоков и не оказывает никакого влияния на внутренние подблоки. Это может быть полезно для распространения большего сглаживания внутри CU, в частности, для очень больших CU, в по меньшей мере одной строке и столбце внутренних подблоков, как представлено на фиг. 7.
В предпочтительном варианте осуществления один и тот же процесс используется для улучшения вывода движения для внутренних подблоков инструмента FRUC и повышенной компенсации движения AMVP.
Первые две строки и два столбца внутренних подблоков (вторые и третьи в CU) выводятся с использованием среднего вплоть до 4 пространственно соседствующих MV (от левого, верхнего, верхнего левого и верхнего правого соседей) и уточненного вектора движения всей CU. Оставшиеся подблоки используют уточненный вектор движения всей CU, как показано на фиг. 8.
Фиг. 9 описывает конкретные случаи, когда FRUC не полностью применимо на левой и верхней границах кадра. На левой границе (соотв., верхней) FRUC может применяться только в первой строке (соотв., столбце) подблоков, благодаря чему вторая и третья строки (соотв., столбцы) используют среднее соседних и уточненные векторы движения всей CU, и оставшиеся строки (соотв., столбцы) используют уточненный вектор движения всей CU.
Фиг. 10 демонстрирует один вариант осуществления способа 1000 согласно описанным аспектам. Способ начинается с этапа 1001 Начало и управление переходит к этапу 1010 для вывода информации для блока видеоданных из ранее закодированных соседних блоков. Управление переходит от этапа 1010 к этапу 1020 для уточнения информации для подблоков вдоль левого или верхнего края блока видеоданных с использованием выведенной информации и ранее закодированных соседних подблоков. Затем управление переходит от этапа 1020 к этапу 1030 для уточнения информации для внутренних подблоков блока видеоданных с использованием уточненной информации из подблоков вдоль левого или верхнего края блока видеоданных. Затем управление переходит от этапа 1030 к этапу 1040 для кодирования блока видеоданных с использованием упомянутых уточненных подблоков.
Фиг. 11 демонстрирует один вариант осуществления способа 1100 согласно описанным аспектам. Способ начинается с этапа 1101 Начало и управление переходит к этапу 1110 для вывода информации для блока видеоданных из ранее закодированных соседних блоков. Управление переходит от этапа 1110 к этапу 1120 для уточнения информации для подблоков вдоль левого или верхнего края блока видеоданных с использованием выведенной информации и ранее закодированных соседних подблоков. Затем управление переходит от этапа 1120 к этапу 1130 для уточнения информации для внутренних подблоков блока видеоданных с использованием уточненной информации из подблоков вдоль левого или верхнего края блока видеоданных. Затем управление переходит от этапа 1130 к этапу 1140 для декодирования блока видеоданных с использованием упомянутых уточненных подблоков.
Фиг. 12 демонстрирует один вариант осуществления устройства 1200 для кодирования или декодирования блока видеоданных. Устройство содержит процессор 1210, который имеет порты ввода и вывода и имеет возможность сигнального подключения к памяти 1220, также имеющей порты ввода и вывода. Устройство может выполнять любой из вышеупомянутых вариантов осуществления способа, или вариации.
Функции различных элементов, показанных в чертежах, могут обеспечиваться с использованием специализированного оборудования, а также оборудования, способного выполнять программное обеспечение совместно с надлежащим программным обеспечением. В случае обеспечения процессором, функции могут обеспечиваться единым специализированным процессором, единым совместно используемым процессором или несколькими отдельными процессорами, некоторые из которых могут быть совместно используемыми. Кроме того, явное использование термина “процессор” или “контроллер” не следует рассматривать исключительно в отношении оборудования, способного выполнять программное обеспечение, и он может неявно включать в себя, без ограничения, оборудование цифрового сигнального процессора (“DSP”), постоянной памяти (“ROM”) для хранения программного обеспечения, оперативной памяти (“RAM”) и энергонезависимое хранилище.
Также может быть включено другое оборудование, традиционное и/или специальное. Аналогично, любые переключатели, показанные в чертежах, являются только концептуальными. Их функция может осуществляться с использованием программой логики, специализированной логики, путем взаимодействия программного управления и специализированной логики, или даже вручную, по выбору конструктора, что, в частности, следует из контекста.
Настоящее описание иллюстрирует настоящие принципы. Таким образом, очевидно, что специалисты в данной области техники могут предложить различные конфигурации, которые, хотя в явном виде не описаны и не показаны здесь, воплощают настоящие принципы и включены в их сущность и объем.
Все приведенные здесь примеры и условные обозначения предназначены для пояснения, чтобы читатель мог понять настоящие принципы и понятия, введенные авторами изобретения для развития техники, и их не следует рассматривать в рамках ограничения такими конкретно приведенными примерами и условиями.
Кроме того, все упомянутые здесь принципы, аспекты и варианты осуществления настоящих принципов, а также их конкретные примеры, призваны охватывать их структурные и функциональные эквиваленты. Дополнительно, предполагается, что такие эквиваленты включают в себя как известные в настоящее время эквиваленты, так и эквиваленты, которые еще предстоит разработать, т.е. любые разработанные элементы, которые осуществляют одну и ту же функцию, независимо от конструкции.
Таким образом, например, специалистам в данной области техники будет очевидно, что представленные здесь блок-схемы представляют концептуальные виды иллюстративной схемы, воплощающие настоящие принципы. Аналогично, очевидно, что любые блок-схемы операций, схемы переходов между состояниями, псевдокод и пр. представляют различные процессы, которые по существу могут быть представлены на компьютерно-считываемых носителях и таким образом, выполняться компьютером или процессором, независимо от того, показан ли такой компьютер или процессор в явном виде.
В формуле изобретения любой элемент, выраженный как средство для осуществления заданной функции, призван охватывать любой способ осуществления этой функции, в том числе, например, a) комбинацию схемных элементов, которая осуществляет эту функцию или b) программное обеспечение в любой форме, включающее в себя, следовательно, программно-аппаратное обеспечение, микрокод и т.п., совместно с надлежащей схемой для выполнения этого программного обеспечения для осуществления функции. Настоящие принципы заданные в формуле изобретения состоят в том, что функциональные возможности, обеспеченные различными упомянутыми средствами, объединяются и интегрируются в соответствии с формулой изобретения. Таким образом, в отношении того, что любые средства, которые могут обеспечивать эти функциональные возможности, эквивалентны показанным здесь.
Упоминание в описании изобретения “одного варианта осуществления” или “варианта осуществления” настоящих принципов, а также других вариаций, означает, что конкретный признак, конструкция, характеристика и т.д., описанные в связи с вариантом осуществления, включены в по меньшей мере один вариант осуществления настоящих принципов. Таким образом, употребление выражения “в одном варианте осуществления” или “согласно варианту осуществления”, также любых других вариаций в различных местах описания изобретения не обязательно относятся к одному и тому же варианту осуществления.
В заключение, обеспечивается улучшенный способ уточнения внутренних подблоков для кодирования или декодирования. При уточнении, внутренние подблоки уточняются с использованием участков подблока, которые ранее уточнялись. Это уточнение может быть информацией движения, выведенной, например, из информации движения ранее уточненных участков подблока. Другие варианты осуществления предусматривают другие выводы внутренних подблоков с использованием другой информации. Кроме того, вариант осуществления использует другую информацию для вывода внутренних подблоков на основании информации внешних подблоков.