СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО ПОСРЕДСТВОМ ВЫПОЛНЕНИЯ ВНУТРИКОНТУРНОЙ ФИЛЬТРАЦИИ НА ОСНОВЕ БЛОКА ДАННЫХ ДРЕВОВИДНОЙ СТРУКТУРЫ, И СПОСОБ И УСТРОЙСТВО ДЛЯ ДЕКОДИРОВАНИЯ ВИДЕО ПОСРЕДСТВОМ ВЫПОЛНЕНИЯ ТОГО ЖЕ
METHOD AND APPARATUS FOR ENCODING VIDEO BY PERFORMING IN-LOOP FILTERING BASED ON TREE-STRUCTURED DATA UNIT, AND METHOD AND APPARATUS FOR DECODING VIDEO BY PERFORMING SAME

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Устройства и способы, связанные с иллюстративными вариантами осуществления, относятся к кодированию и декодированию видео.
УРОВЕНЬ ТЕХНИКИ
По мере того, как разрабатывается и предоставляется аппаратное обеспечение для воспроизведения и хранения видеоконтента высокого разрешения или высокого качества, имеется возрастающая необходимость в видеокодеке для эффективного кодирования или декодирования видеоконтента высокого разрешения или высокого качества. В видеокодеке предшествующего уровня техники видео кодируется согласно ограниченному способу кодирования на основе макроблока, имеющего предварительно определенный размер.
Изображение, восстановленное в течение кодирования или декодирования видео, локально может иметь дефектные пиксели. Операция фильтрации по отношению к локально дефектным пикселям может ухудшаться, и скорость сжатия видео вследствие дефектных пикселей может уменьшаться. Таким образом, видеокодек выполняет контурную фильтрацию так, чтобы увеличивать скорость сжатия видео и чтобы улучшать качество восстановленного изображения посредством уменьшения ошибки между исходным изображением и восстановленным изображением.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Техническая проблема
Устройства и способы, связанные с иллюстративными вариантами осуществления, относятся к кодированию и декодированию видео посредством выполнения внутриконтурной фильтрации.
Решение проблемы
Согласно одному аспекту одного иллюстративного варианта осуществления, обеспечивается способ кодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, при этом способ включает в себя: разделение снимка на максимальный блок кодирования, который является блоком данных, при этом максимальный блок кодирования имеет максимальный размер; отдельное определение блоков кодирования для вывода результатов кодирования согласно кодированной глубине для более глубоких блоков кодирования, которые иерархически структурированы согласно глубинам, указывающим количество того, сколько раз блоки кодирования пространственно разделяют из максимального блока кодирования, при этом блоки кодирования находятся в соответствии с древовидной структурой, при этом блоки кодирования являются иерархическими согласно глубинам в одной и той же области в максимальном блоке кодирования и являются независимыми согласно кодированной глубине в других областях; определение блока фильтрации для выполнения внутриконтурной фильтрации так, чтобы минимизировать ошибку между максимальным блоком кодирования и исходным снимком (картинкой), на основе блоков кодирования, соответствующих древовидной структуре максимального блока кодирования; и выполнение внутриконтурной фильтрации на основе определенного блока фильтрации.
ПРЕДПОЧТИТЕЛЬНЫЕ ЭФФЕКТЫ ИЗОБРЕТЕНИЯ
В кодировании и декодировании видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре, согласно другому иллюстративному варианту осуществления, используется опорный снимок, подвергнутый внутриконтурной фильтрации, так что может выполняться кодирование с предсказанием при уменьшении ошибки между предсказанным снимком и исходным снимком. Также, определяется блок фильтрации для внутриконтурной фильтрации, на основе определенных блоков кодирования, так что количество бит, используемое, чтобы передавать дополнительную информацию для внутриконтурной фильтрации, может уменьшаться.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 является блок-схемой устройства для кодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре, согласно одному иллюстративному варианту осуществления;
Фиг.2 является блок-схемой устройства для декодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре, согласно другому иллюстративному варианту осуществления;
Фиг.3 является диаграммой для описания концепции блоков кодирования, соответствующих древовидной структуре, согласно одному иллюстративному варианту осуществления;
Фиг.4 является блок-схемой кодера изображений на основе блоков кодирования, соответствующих древовидной структуре, согласно одному иллюстративному варианту осуществления;
Фиг.5 является блок-схемой декодера изображений на основе блоков кодирования, согласно древовидной структуре согласно одному иллюстративному варианту осуществления;
Фиг.6 является диаграммой, иллюстрирующей более глубокие блоки кодирования, соответствующие глубинам, и фрагменты, согласно одному иллюстративному варианту осуществления;
Фиг.7 является диаграммой для описания отношения между блоком кодирования и блоками преобразования, согласно одному иллюстративному варианту осуществления;
Фиг.8 является диаграммой для описания информации кодирования блоков кодирования, соответствующих кодированной глубине, согласно одному иллюстративному варианту осуществления;
Фиг.9 является диаграммой более глубоких блоков кодирования, соответствующих глубинам, согласно одному иллюстративному варианту осуществления;
Фиг.10-12 являются диаграммами для описания отношения между блоками кодирования, блоками предсказания, и блоками преобразования, согласно одному иллюстративному варианту осуществления;
Фиг.13 является диаграммой для описания отношения между блоком кодирования, блоком предсказания или фрагментом, и блоком преобразования, согласно информации режима кодирования из Таблицы 1;
Фиг.14 является блок-схемой системы кодирования и декодирования видео, выполняющей внутриконтурную фильтрацию согласно одному иллюстративному варианту осуществления;
Фиг.15 и 16 иллюстрируют пример блоков фильтрации, соответствующих древовидной структуре, которые содержатся в максимальном блоке кодирования, информации разделения блока фильтрации и информации выполнения фильтрации, согласно одному иллюстративному варианту осуществления;
Фиг.17 иллюстрирует максимальные блоки кодирования и блоки данных, включающие в себя фрагменты и включающие в себя блоки кодирования, соответствующие древовидной структуре, которые содержатся в каждом из максимальных блоков кодирования, согласно одному иллюстративному варианту осуществления;
Фиг.18-21 соответственно иллюстрируют блоки фильтрации слоев фильтрации по отношению к блокам данных из фиг.17;
Фиг.22 иллюстрирует блоки фильтрации слоя фильтрации и информацию выполнения внутриконтурной фильтрации по отношению к блокам данных из фиг.17;
Фиг.23 является блок-схемой последовательности операций способа кодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре, согласно одному иллюстративному варианту осуществления; и
Фиг.24 является блок-схемой последовательности операций способа декодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре, согласно другому иллюстративному варианту осуществления.
НАИЛУЧШИЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ ДЛЯ ВЫПОЛНЕНИЯ ИЗОБРЕТЕНИЯ
Согласно одному аспекту одного иллюстративного варианта осуществления обеспечивается способ кодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, при этом способ включает в себя: разделение снимка на максимальный блок кодирования, который является блоком данных, при этом максимальный блок кодирования имеет максимальный размер; отдельное определение блоков кодирования для вывода результатов кодирования согласно кодированной глубине для более глубоких блоков кодирования, которые иерархически структурированы согласно глубинам, указывающим количество того, сколько раз блоки кодирования пространственно разделяют из максимального блока кодирования, при этом блоки кодирования находятся в соответствии с древовидной структурой, при этом блоки кодирования являются иерархическими согласно глубинам в одной и той же области в максимальном блоке кодирования и являются независимыми согласно кодированной глубине в других областях; определение блока фильтрации для выполнения внутриконтурной фильтрации так, чтобы минимизировать ошибку между максимальным блоком кодирования и исходным снимком, на основе блоков кодирования, соответствующих древовидной структуре максимального блока кодирования; и выполнение внутриконтурной фильтрации на основе определенного блока фильтрации.
Определение блока фильтрации может включать в себя определение блока фильтрации на основе блоков кодирования, соответствующих древовидной структуре максимального блока кодирования.
Определение блока фильтрации может включать в себя определение блока фильтрации на основе блоков кодирования, соответствующих древовидной структуре максимального блока кодирования, и на основе фрагментов, которые являются блоками данных для кодирования с предсказанием каждого блока кодирования, соответствующего кодированной глубине.
Определение блока фильтрации может включать в себя определение блока данных как блока фильтрации, при этом блок данных получается посредством разделения или слияния одного или более из блоков кодирования, соответствующих древовидной структуре.
Определение блока фильтрации может включать в себя использование блоков кодирования, соответствующих древовидной структуре, в качестве значений предсказания блока фильтрации.
Определение блока фильтрации может включать в себя определение слоя фильтрации из слоев, соответствующих глубинам блоков кодирования, соответствующих древовидной структуре, и определение иерархических блоков данных вплоть до слоя фильтрации в качестве блока фильтрации.
Слой (уровень) фильтрации может определяться как один из слоев от начального слоя каждого максимального блока кодирования до конечного слоя, указывающего самую нижнюю глубину из блоков кодирования, соответствующих древовидной структуре максимального блока кодирования.
По отношению к слою фильтрации, слой верхнего предела и слой нижнего предела могут устанавливаться между начальным слоем и конечным слоем.
Способ может дополнительно включать в себя кодирование информации о внутриконтурной фильтрации и передачу закодированной информации о внутриконтурной фильтрации, закодированных данных снимка и закодированной информации режима о блоках кодирования, соответствующих древовидной структуре каждого максимального блока кодирования, согласно блоку фильтрации.
Информация о внутриконтурной фильтрации может включать в себя, по меньшей мере, одно из информации слоя фильтрации о слое фильтрации, определенном как один из слоев более глубоких блоков кодирования так, чтобы определять блоки фильтрации по отношению к блокам кодирования, соответствующим древовидной структуре, информации выполнения внутриконтурной фильтрации, указывающей выполнение внутриконтурной фильтрации для блоков фильтрации, информации коэффициентов фильтра для внутриконтурной фильтрации и информации о слое верхнего предела и слое нижнего предела слоя фильтрации.
Выполнение внутриконтурной фильтрации может включать в себя установку информации выполнения внутриконтурной фильтрации, указывающей выполнение внутриконтурной фильтрации для блока фильтрации.
Определение блока фильтрации может включать в себя отдельное определение блока фильтрации для компонента яркости цветового компонента и блока фильтрации для компонента хроматичности цветового компонента.
Определение блока фильтрации может включать в себя предсказывание блока фильтрации для компонента хроматичности посредством ссылки на блок фильтрации для компонента яркости цветового компонента.
Определение блока фильтрации может включать в себя применение одного и того же блока фильтрации для всех максимальных блоков кодирования в текущем снимке.
Блоки фильтрации могут отдельно определяться согласно одному из блоков данных, включающих в себя снимок, последовательность снимка, кадр, поле, и максимальный блок кодирования.
Выполнение внутриконтурной фильтрации может включать в себя выполнение внутриконтурной фильтрации посредством выбора типа фильтра из множества типов фильтра.
Выполнение внутриконтурной фильтрации может дополнительно включать в себя установку информации выполнения внутриконтурной фильтрации для каждого из блоков фильтрации, при этом информация выполнения внутриконтурной фильтрации указывает выполнение внутриконтурной фильтрации и указывает тип фильтра, выбранный из множества типов фильтра.
Информация выполнения внутриконтурной фильтрации может включать в себя флаг для различения случая, в котором выполняется внутриконтурная фильтрация с использованием предварительно определенного типа фильтра, от случая, в котором внутриконтурная фильтрация с использованием предварительно определенного типа фильтра не выполняется.
Информация выполнения внутриконтурной фильтрации может устанавливаться так, чтобы различать типы фильтра, классифицированные согласно предварительно определенным характеристикам изображения блоков фильтрации или согласно символам кодирования блоков фильтрации.
Выполнение внутриконтурной фильтрации может дополнительно включать в себя генерирование коэффициента фильтра так, чтобы выполнять внутриконтурную фильтрацию над блоками фильтрации.
Передача может включать в себя вставку информации внутриконтурной фильтрации в набор параметров последовательности (SPS) или набор параметров снимка (PPS) снимка и передачу вставленной информации внутриконтурной фильтрации.
Согласно одному аспекту другого иллюстративного варианта осуществления, обеспечивается способ декодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, при этом способ включает в себя: синтаксический разбор принятого битового потока и извлечение данных изображения, закодированных для каждого из блоков кодирования, на основе блоков кодирования, соответствующих древовидной структуре, которые содержатся в максимальном блоке кодирования, полученном посредством разделения текущего снимка, извлечение закодированной информации режима о блоках кодирования, соответствующих древовидной структуре, и извлечение информации о внутриконтурной фильтрации максимального блока кодирования; декодирование извлеченных данных изображения, на основе извлеченной закодированной информации режима, которая извлекается для максимального блока кодирования; определение, с использованием информации о внутриконтурном фильтре, блока фильтрации для внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре максимального блока кодирования; и выполнение внутриконтурной фильтрации над декодированными данными изображения максимального блока кодирования согласно блокам фильтрации.
Определение блока фильтрации может включать в себя определение блока фильтрации на основе блоков кодирования, соответствующих древовидной структуре максимального блока кодирования, посредством ссылки на извлеченную информацию о внутриконтурной фильтрации.
Определение блока фильтрации может включать в себя определение блока фильтрации на основе блоков кодирования, соответствующих древовидной структуре максимального блока кодирования, и на основе фрагментов, которые являются блоками данных для кодирования с предсказанием каждого блока кодирования, соответствующего кодированной глубине, посредством ссылки на информацию о внутриконтурной фильтрации.
Определение блока фильтрации может включать в себя определение блока данных как блока фильтрации, при этом блок данных получается посредством разделения или слияния одного или более из блоков кодирования, соответствующих древовидной структуре, посредством ссылки на информацию о внутриконтурной фильтрации.
Определение блока фильтрации может включать в себя использование блоков кодирования, соответствующих древовидной структуре, в качестве значений предсказания блока фильтрации, посредством ссылки на информацию о внутриконтурной фильтрации.
Определение блока фильтрации может включать в себя определение иерархических блоков данных вплоть до слоя фильтрации в качестве блока фильтрации, согласно информации слоя фильтрации.
Выполнение внутриконтурной фильтрации может включать в себя определение выполнения внутриконтурной фильтрации для каждого из блоков кодирования, соответствующих древовидной структуре максимального блока кодирования, на основе информации выполнения внутриконтурной фильтрации.
Выполнение внутриконтурной фильтрации может включать в себя выполнение внутриконтурной фильтрации посредством выбора типа фильтра из множества типов фильтра, на основе информации выполнения внутриконтурной фильтрации.
Способ может дополнительно включать в себя выполнение декодирования с предсказанием над следующим снимком посредством ссылки на текущий снимок, для которого выполняется внутриконтурная фильтрация.
Согласно одному аспекту другого иллюстративного варианта осуществления, обеспечивается устройство кодирования видео для кодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, при этом устройство кодирования видео включает в себя: блок определения блоков кодирования, который разделяет снимок на максимальный блок кодирования, который является блоком данных, при этом максимальный блок кодирования имеет максимальный размер, отдельно определяет блоки кодирования для вывода результатов кодирования согласно кодированной глубине для более глубоких блоков кодирования, которые иерархически структурированы согласно глубинам, указывающим количество того, сколько раз блоки кодирования пространственно разделяются из максимального блока кодирования, и определяет блоки кодирования, соответствующие древовидной структуре, при этом блоки кодирования являются иерархическими согласно глубинам в одной и той же области в максимальном блоке кодирования и являются независимыми согласно кодированной глубине в других областях; блок внутриконтурной фильтрации, который определяет блок фильтрации для выполнения внутриконтурной фильтрации так, чтобы минимизировать ошибку между максимальным блоком кодирования и исходным снимком, на основе блоков кодирования, соответствующих древовидной структуре максимального блока кодирования, и выполняет внутриконтурную фильтрацию на основе блока фильтрации; и блок передачи, который кодирует информацию о внутриконтурной фильтрации и передает закодированную информацию о внутриконтурной фильтрации, закодированные данные снимка и закодированную информацию режима о блоках кодирования, соответствующих древовидной структуре максимального блока кодирования, в блоках блоков фильтрации.
Согласно одному аспекту другого иллюстративного варианта осуществления, обеспечивается устройство декодирования видео для декодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, при этом устройство декодирования видео включает в себя: блок приема и извлечения, который осуществляют синтаксический разбор принятого битового потока и извлекает данные изображения, закодированные для каждого из блоков кодирования на основе блоков кодирования, соответствующих древовидной структуре, которые содержатся в максимальном блоке кодирования, полученном посредством разделения текущего снимка, извлекает закодированную информацию режима о блоках кодирования, соответствующих древовидной структуре, и извлекает информацию о внутриконтурной фильтрации максимального блока кодирования; блок декодирования, который декодирует данные изображения, закодированные для каждого блока кодирования, на основе закодированной информации режима о блоках кодирования, соответствующих древовидной структуре, которая извлекается для максимального блока кодирования; и блок выполнения внутриконтурной фильтрации, который определяет, посредством использования информации о внутриконтурной фильтрации, блок фильтрации для внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре максимального блока кодирования, и выполняет внутриконтурную фильтрацию над декодированными данными изображения максимального блока кодирования согласно блоку фильтрации.
Согласно одному аспекту другого иллюстративного варианта осуществления, обеспечивается машиночитаемый носитель записи, имеющий записанную на нем программу для выполнения способа кодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования.
Согласно одному аспекту другого иллюстративного варианта осуществления, обеспечивается машиночитаемый носитель записи, имеющий записанную на нем программу для выполнения способа декодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования.
Вариант осуществления изобретения
Ниже иллюстративные варианты осуществления будут описываться подробно со ссылкой на прилагаемые чертежи.
Фиг.1 является блок-схемой устройства для кодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре 100, согласно одному иллюстративному варианту осуществления.
Устройство для кодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре 100 (в дальнейшем, указываемое как 'устройство 100 кодирования видео') включает в себя блок 110 определения блока кодирования, блок 120 внутриконтурной фильтрации и блок 130 передачи.
Блок 110 определения блока кодирования принимает данные изображения одного снимка видео и разделяет данные изображения посредством использования максимального блока кодирования, который является блоком данных, имеющим максимальный размер. Максимальный блок кодирования согласно одному иллюстративному варианту осуществления может быть блоком данных, имеющим размер 32×32, 64×64, 128×128, 256×256 и т.д., при этом форма блока данных является квадратом, имеющим ширину и длину, каждая из которых кратна 2 и больше, чем 8.
Для каждого максимального блока кодирования, блок 110 определения блока кодирования определяет блоки кодирования, соответствующие древовидной структуре, для каждой из областей, которые пространственно разделены.
Блоки кодирования максимального блока кодирования выражаются на основе глубины, указывающей количество того, сколько раз блок кодирования пространственно разделяется из максимального блока кодирования. Блоки кодирования, соответствующие древовидной структуре, включают в себя блоки кодирования, соответствующие глубине, определенной как кодированная глубина, из всех более глубоких блоков кодирования, соответствующих глубинам, которые содержатся в максимальном блоке кодирования. Блоки кодирования, соответствующие кодированной глубине, могут иерархически определяться согласно глубине в одной и той же области в максимальном блоке кодирования и могут независимо определяться в других областях.
Блок 110 определения блока кодирования может кодировать более глубокие блоки кодирования, соответствующие глубинам, включенным в текущий максимальный блок кодирования, может сравнивать результаты кодирования по отношению к блокам кодирования, соответствующим более высокой глубине и более низкой глубине, для каждой области, и может определять блок кодирования и кодированную глубину, соответствующую блоку кодирования, который выводит оптимальный результат кодирования. Также кодированная глубина текущей области может определяться отдельно от кодированной глубины другой области.
Соответственно, блок 110 определения блоков кодирования может определять блоки кодирования, соответствующие древовидной структуре, сформированной из блоков кодирования, соответствующих кодированным глубинам, которые отдельно определяются для каждой области и для каждого максимального блока кодирования. Также блок 110 определения блоков кодирования выполняет кодирование предсказания, когда определяется блок кодирования, соответствующий кодированной глубине. Блок 110 определения блоков кодирования может определять блок предсказания или фрагмент, который является блоком данных, посредством которого блок кодирования, соответствующий кодированной глубине, выполняет кодирование предсказания так, чтобы выводить оптимальный результат кодирования. Например, фрагментный тип по отношению к блоку кодирования, имеющему размер 2N×2N, может включать в себя фрагменты, имеющие размер 2N×2N, 2N×N, N×2N и N×N. Фрагментный тип согласно одному иллюстративному варианту осуществления может включать в себя не только симметричные фрагменты, полученные посредством разделения высоты или ширины блока кодирования согласно симметричному соотношению, но также избирательно включать в себя фрагменты, разделенные согласно асимметричному соотношению 1:n или n:1, фрагменты, которые разделены геометрически, фрагменты, имеющие случайные формы, или подобное. Режим предсказания фрагментного типа может включать в себя внешний режим, внутренний режим, режим пропуска и подобное.
Блок кодирования согласно одному иллюстративному варианту осуществления может характеризоваться максимальным размером и глубиной. Глубина обозначает количество того, сколько раз блок кодирования иерархическим образом разделяется из максимального блока кодирования, и, по мере того, как глубина становится глубже, более глубокие блоки кодирования, соответствующие глубинам, могут разделяться из максимального блока кодирования до минимального блока кодирования. Глубина максимального блока кодирования является самой верхней глубиной и глубина минимального блока кодирования является самой нижней глубиной. Так как размер блока кодирования, соответствующего каждой глубине, уменьшается по мере того, как глубина максимального блока кодирования становится глубже, блок кодирования, соответствующий более высокой глубине, может включать в себя множество блоков кодирования, соответствующих более низким глубинам.
Самая верхняя глубина обозначает количество того, сколько раз блок кодирования данных изображения разделяется из максимального блока кодирования в минимальный блок кодирования. Также самая верхняя глубина может обозначать полное количество раз разделений от максимального блока кодирования к минимальному блоку кодирования. Например, когда глубина максимального блока кодирования равняется 0, глубина блоков кодирования, полученных посредством разделения максимального блока кодирования однократно, может устанавливаться как 1, и глубина блоков кодирования, полученных посредством разделения максимального блока кодирования дважды, может устанавливаться как 2. В этом случае, если минимальный блок кодирования обозначает блоки кодирования, полученные посредством разделения максимального блока кодирования четыре раза, уровень глубины включает в себя глубину 0, 1, 2, 3, и 4, и максимальная глубина может устанавливаться как 4.
Способ определения блоков кодирования и фрагментов, соответствующих древовидной структуре максимального блока кодирования, согласно иллюстративным вариантам осуществления, будет описываться подробно со ссылкой на фиг.3-13.
Блок 120 внутриконтурной фильтрации определяет блок фильтрации для выполнения внутриконтурной фильтрации, на основе блоков кодирования, соответствующих древовидной структуре максимального блока кодирования, которые определяются посредством блока 110 определения блоков кодирования, и выполняет внутриконтурную фильтрацию согласно блоку фильтрации.
Блок 120 внутриконтурной фильтрации может определять блок фильтрации на основе блоков кодирования и фрагментов, соответствующих древовидной структуре максимального блока кодирования. Например, блок фильтрации может определяться посредством разделения или слияния одного или более блоков данных блоков кодирования и фрагментов, соответствующих древовидной структуре. Также блок фильтрации может предсказываться таким образом, что блоки кодирования и фрагменты, соответствующие древовидной структуре, используются как значения предсказания для блока фильтрации.
Блок 120 внутриконтурной фильтрации согласно одному иллюстративному варианту осуществления может определять слой фильтрации из слоев, соответствующих глубинам блока кодирования среди блоков кодирования, соответствующих древовидной структуре максимального блока кодирования, и может определять иерархические блоки кодирования и фрагменты, соответствующие слою фильтрации, как блок фильтрации.
Блок 120 внутриконтурной фильтрации согласно другому иллюстративному варианту осуществления может определять слой фильтрации посредством включения в себя фрагментных слоев и слоев, соответствующих глубинам блока кодирования, и может определять иерархические блоки кодирования и фрагменты вплоть до слоя фильтрации как блок фильтрации. Таким образом, слой фильтрации согласно одному иллюстративному варианту осуществления может быть одним из слоев от начального слоя максимального блока кодирования до конечного слоя, указывающего минимальный блок кодирования или блок предсказания из блоков кодирования, соответствующих древовидной структуре максимального блока кодирования.
Также, слой верхнего предела и слой нижнего предела могут устанавливаться между начальным слоем и конечным слоем, так что слой фильтрации может определяться между слоем верхнего предела и слоем нижнего предела.
По отношению к каждому блоку фильтрации блок 120 внутриконтурной фильтрации может устанавливать информацию выполнения внутриконтурной фильтрации, указывающую выполнение внутриконтурной фильтрации, информацию о начальном слое и конечном слое слоя фильтрации и информацию о слое верхнего предела и слое нижнего предела.
Блок 120 внутриконтурной фильтрации может отдельно выполнять внутриконтурную фильтрацию над компонентом яркости цветового компонента и внутриконтурную фильтрацию над компонентом хроматичности. Таким образом, блок 120 внутриконтурной фильтрации может отдельно определять блок фильтрации для компонента яркости и блок фильтрации для компонента хроматичности. Также блок 120 внутриконтурной фильтрации может предсказывать блок фильтрации для компонента хроматичности посредством ссылки на блок фильтрации для компонента яркости.
Блок 120 внутриконтурной фильтрации может применять один и тот же блок фильтрации ко всем максимальным блокам кодирования в снимке. Блок 120 внутриконтурной фильтрации может применять один и тот же блок фильтрации к текущему кадру.
Однако блок 120 внутриконтурной фильтрации может применять разные блоки фильтрации к максимальным блокам кодирования в снимке. Например, блок фильтрации может определяться согласно одному из блоков данных, включающих в себя последовательность, снимок, кадр, поле, и максимальный блок кодирования, так что один и тот же блок фильтрации может применяться к одному и тому же блоку данных.
Блок 120 внутриконтурной фильтрации может устанавливать информацию выполнения внутриконтурной фильтрации, указывающую выполнение внутриконтурной фильтрации, по отношению к каждому блоку фильтрации. Также блок 120 внутриконтурной фильтрации может выполнять внутриконтурную фильтрацию посредством выбора одного из множества типов фильтра. Соответственно, для каждого определенного блока фильтрации, блок 120 внутриконтурной фильтрации может устанавливать информацию выполнения внутриконтурной фильтрации, указывающую как выполнение внутриконтурной фильтрации, так и тип фильтра, выбранный из множества типов фильтра.
Информация выполнения внутриконтурной фильтрации может быть флагом для различения случая, в котором выполняется внутриконтурная фильтрация с использованием предварительно определенного типа фильтра, от случая, в котором внутриконтурная фильтрация с использованием предварительно определенного типа фильтра не выполняется. Также информация выполнения внутриконтурной фильтрации может устанавливаться так, чтобы различать типы фильтра, которые используются во внутриконтурной фильтрации и классифицируются согласно предварительно определенной характеристике. В дополнение, информация выполнения внутриконтурной фильтрации может устанавливаться так, чтобы различать типы фильтра, которые классифицируются согласно символам кодирования.
Внутриконтурная фильтрация выполняется, чтобы минимизировать ошибку между предсказанным снимком и исходным снимком. Таким образом, блок 120 внутриконтурной фильтрации может использовать адаптивный фильтр так, чтобы минимизировать ошибку между максимальным блоком кодирования предсказанного снимка и соответствующей областью исходного снимка. Соответственно, блок 120 внутриконтурной фильтрации может генерировать коэффициент фильтра в блоке фильтрации так, чтобы выполнять внутриконтурную фильтрацию, и может устанавливать информацию коэффициентов фильтра.
Блок 130 передачи может кодировать информацию внутриконтурной фильтрации, определенную посредством блока 120 внутриконтурной фильтрации, и может передавать информацию внутриконтурной фильтрации вместе с закодированными данными снимка и информацию режима кодирования о блоках кодирования, соответствующих древовидной структуре максимального блока кодирования. Блок 130 передачи передает информацию внутриконтурной фильтрации, закодированные данные и информацию режима кодирования о блоках кодирования посредством блока блока фильтрации.
Информация внутриконтурной фильтрации может включать в себя информацию слоя фильтрации о блоках кодирования, соответствующих древовидной структуре, информацию выполнения внутриконтурной фильтрации, указывающую выполнение внутриконтурной фильтрации для каждого блока фильтрации, информацию коэффициентов фильтра для внутриконтурной фильтрации и информацию о слое верхнего предела и слое нижнего предела слоя фильтрации.
Блок 130 передачи может вставлять информацию внутриконтурной фильтрации в набор параметров последовательности (SPS) или набор параметров снимка (PPS) снимка и затем может передавать информацию внутриконтурной фильтрации.
Определение блока фильтрации для внутриконтурной фильтрации и кодирование информации выполнения внутриконтурной фильтрации согласно иллюстративным вариантам осуществления будут описываться подробно со ссылкой на фиг.14-24.
Блок 110 определения блоков кодирования может определять блоки кодирования, имеющие оптимальную форму и оптимальный размер для каждого из максимальных блоков кодирования, на основе размера максимального блока кодирования и максимальной глубины, определенной при рассмотрении характеристик текущего снимка. Также, так как кодирование может выполняться над каждым максимальным блоком кодирования посредством использования любого из различных режимов предсказания и преобразований, режим оптимального кодирования может определяться при рассмотрении характеристик блока кодирования различных размеров изображения.
Таким образом, если изображение, имеющее высокое разрешение или большую величину данных кодируется в макроблоке предшествующего уровня техники, имеющем фиксированный размер 16x16 или 8x8, количество макроблоков в расчете на снимок избыточным образом увеличивается. Соответственно, количество частей сжатой информации, сгенерированной для каждого макроблока, увеличивается, и, таким образом, является трудным передавать сжатую информацию и эффективность сжатия данных уменьшается. Однако посредством использования блока 110 определения блоков кодирования, эффективность сжатия изображения может увеличиваться, так как блок кодирования регулируется при рассмотрении характеристик изображения при увеличении максимального размера блока кодирования при рассмотрении размера изображения.
Также, посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре, используется опорный снимок, подвергнутый внутриконтурной фильтрации, так что может выполняться кодирование с предсказанием при уменьшении ошибки между предсказанным снимком и исходным снимком. Также блок 120 внутриконтурной фильтрации определяет блок фильтрации для внутриконтурной фильтрации, на основе определенных блоков кодирования, так что количество бит, используемое, чтобы передавать дополнительную информацию для внутриконтурной фильтрации, может уменьшаться.
Фиг.2 является блок-схемой устройства для декодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре, 200, согласно другому иллюстративному варианту осуществления.
Устройство для декодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре 200 (в дальнейшем, указываемое как 'устройство 200 декодирования видео') включает в себя блок 210 приема и извлечения, блок 220 декодирования и блок 230 выполнения внутриконтурной фильтрации.
Блок 210 приема и извлечения принимает и осуществляет синтаксический разбор битового потока закодированного видео, и извлекает закодированные данные изображения, информацию режима кодирования о блоках кодирования и информацию внутриконтурной фильтрации для каждого из блоков кодирования, соответствующих древовидной структуре, и для каждого из максимальных блоков кодирования. Блок 210 приема и извлечения может извлекать информацию внутриконтурной фильтрации, закодированные данные изображения и информацию режима кодирования из битового потока, над которым осуществлен синтаксический разбор, при этом извлечение выполняется посредством блока блока фильтрации. Блок 210 приема и извлечения также может извлекать информацию внутриконтурной фильтрации из SPS или PPS снимка.
Блок 220 декодирования декодирует закодированные данные изображения для каждого из блоков декодирования, на основе информации режима кодирования о блоках кодирования, соответствующих древовидной структуре, которая извлекается посредством блока 210 приема и извлечения.
Блок 220 декодирования может считывать блоки кодирования, соответствующие кодированной глубине, и фрагментные типы, режимы предсказания, режимы преобразования и подобное блоков кодирования, содержащихся в максимальном блоке кодирования, на основе информации режима кодирования о блоках кодирования, соответствующих древовидной структуре максимального блока кодирования.
Блок 220 декодирования может декодировать закодированные данные изображения на основе фрагментного типа, режима предсказания и режима преобразования, которые считываются из каждого из блоков кодирования, соответствующих древовидной структуре максимального блока кодирования, так что блок 220 декодирования может декодировать закодированные данные изображения максимального блока кодирования.
Данные изображения, декодированные посредством блока 220 декодирования, и информация внутриконтурной фильтрации, извлеченная посредством блока 210 приема и извлечения, вводятся в блок 230 выполнения внутриконтурной фильтрации.
Блок 230 выполнения внутриконтурной фильтрации определяет блок фильтрации для внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре максимального блока кодирования, посредством использования информации внутриконтурной фильтрации. Например, блок 230 выполнения внутриконтурной фильтрации может определять блок фильтрации посредством разделения или слияния одного или более блоков кодирования из блоков кодирования, соответствующих древовидной структуре, на основе информации внутриконтурной фильтрации. В другом примере, блок 230 выполнения внутриконтурной фильтрации может предсказывать блок фильтрации для текущего максимального блока кодирования посредством использования блоков кодирования, соответствующих древовидной структуре, в качестве значений предсказания, на основе информации внутриконтурной фильтрации. Также блок 230 выполнения внутриконтурной фильтрации может определять, выполнять ли внутриконтурную фильтрацию над декодированными данными изображения посредством использования информации внутриконтурной фильтрации, на основе блока фильтрации максимального блока кодирования.
Блок 230 выполнения фильтрации согласно другому иллюстративному варианту осуществления может определять блок фильтрации для внутриконтурной фильтрации на основе блоков кодирования и фрагментов, соответствующих древовидной структуре максимального блока кодирования, посредством использования информации внутриконтурной фильтрации.
Более подробно об информации внутриконтурной фильтрации, блок 210 приема и извлечения может извлекать информацию слоя фильтрации, информацию выполнения внутриконтурной фильтрации, информацию коэффициентов фильтра и информацию о слое верхнего предела и слое нижнего предела слоя фильтрации и может передавать извлеченную информацию в блок 230 выполнения внутриконтурной фильтрации.
Блок 230 выполнения внутриконтурной фильтрации может определять блок кодирования для слоя фильтрации как блок фильтрации, при этом блоком кодирования является блок из блоков кодирования, соответствующих древовидной структуре. Также блок 230 выполнения внутриконтурной фильтрации может определять, выполнять ли внутриконтурную фильтрацию над каждым из блоков кодирования, соответствующих древовидной структуре максимального блока кодирования, на основе информации выполнения внутриконтурной фильтрации.
Блок 230 выполнения внутриконтурной фильтрации может отдельно определять блок фильтрации для компонента яркости и блок фильтрации для компонента хроматичности согласно информации слоя фильтрации и может отдельно выполнять внутриконтурную фильтрацию над каждым из компонента яркости и компонента хроматичности. Также блок 230 выполнения внутриконтурной фильтрации может предсказывать блок фильтрации для компонента хроматичности посредством ссылки на блок фильтрации для компонента яркости, согласно информации слоя фильтрации, и может отдельно выполнять внутриконтурную фильтрацию над каждым из компонента яркости и компонента хроматичности.
Блок 230 выполнения внутриконтурной фильтрации может применять один и тот же блок фильтрации к максимальным блокам кодирования в снимке или может применять один и тот же блок фильтрации к текущему кадру.
Блок 230 выполнения внутриконтурной фильтрации может определять блок фильтрации согласно одному из блоков данных, включающих в себя текущую последовательность, снимок, кадр, поле, и максимальный блок кодирования.
Блок 230 выполнения внутриконтурной фильтрации может выполнять внутриконтурную фильтрацию посредством выбора одного из множества типов фильтра на основе информации выполнения внутриконтурной фильтрации. Также блок 230 выполнения внутриконтурной фильтрации может определять, выполнять ли внутриконтурную фильтрацию над каждым блоком фильтрации, на основе информации выполнения внутриконтурной фильтрации, и, если определяется, выполнять внутриконтурную фильтрацию, блок 230 выполнения внутриконтурной фильтрации может дополнительно определять тип фильтра из множества типов фильтра.
Информация выполнения внутриконтурной фильтрации может быть флагом для различения случая, в котором выполняется внутриконтурная фильтрация с использованием предварительно определенного типа фильтра, от случая, в котором внутриконтурная фильтрация с использованием предварительно определенного типа фильтра не выполняется. Таким образом, блок 230 выполнения внутриконтурной фильтрации может определять, выполнять ли внутриконтурную фильтрацию над каждым блоком фильтрации.
Блок 230 выполнения внутриконтурной фильтрации может выполнять внутриконтурную фильтрацию посредством различения типов фильтра, которые классифицируются согласно предварительно определенной характеристике, посредством использования информации выполнения внутриконтурной фильтрации. Например, согласно информации выполнения внутриконтурной фильтрации, используемой, чтобы классифицировать типы фильтра, которые определяются в рассмотрении характеристики изображения области фильтрации, блок 230 выполнения внутриконтурной фильтрации может выбирать случай, в котором внутриконтурная фильтрация не выполняется, случай, в котором используется тип фильтра для плоской области, когда выполняется внутриконтурная фильтрация, случай, в котором используется тип фильтра для граничной области, и случай, в котором используется тип фильтра для текстурной области, и может выполнять внутриконтурную фильтрацию.
Блок 230 выполнения внутриконтурной фильтрации может выполнять внутриконтурную фильтрацию посредством различения типов фильтра, которые классифицируются согласно символам кодирования посредством использования информации выполнения внутриконтурной фильтрации. Символы кодирования могут включать в себя вектор движения (MV), значение различия вектора движения (MVD), шаблон кодированного блока (CBP), режим предсказания и подобное.
Блок 230 выполнения внутриконтурной фильтрации может генерировать фильтр для внутриконтурной фильтрации согласно информации коэффициентов фильтра. Например, фильтр для внутриконтурной фильтрации может быть фильтром Винера. В случае, где информация коэффициентов фильтра является информацией различия о коэффициенте винеровского фильтра, блок 230 выполнения внутриконтурной фильтрации может предсказывать текущий коэффициент фильтра посредством использования существующего коэффициента фильтра и информации различия.
Внутриконтурная фильтрация может выполняться посредством использования двумерного фильтра или посредством последовательных одномерных фильтров.
Следующий снимок может декодироваться на основе предсказания посредством ссылки на текущий снимок, над которым выполняется внутриконтурная фильтрация посредством блока 230 выполнения внутриконтурной фильтрации. В устройстве 200 декодирования видео согласно настоящему иллюстративному варианту осуществления, следующий снимок декодируется на основе предсказания посредством использования опорного снимка, подвергнутого внутриконтурной фильтрации, так что ошибка между исходным изображением и восстановленным изображением может уменьшаться.
Фиг.3 является диаграммой для описания концепции блоков кодирования, соответствующих древовидной структуре, согласно одному иллюстративному варианту осуществления.
Размер блока кодирования может выражаться в „ширина × высота”, и может быть 64×64, 32×32, 16×16 и 8×8. Блок кодирования 64×64 может разделяться на фрагменты 64×64, 64×32, 32×64 или 32×32, и блок кодирования 32×32 может разделяться на фрагменты 32×32, 32×16, 16×32 или 16×16, блок кодирования 16×16 может разделяться на фрагменты 16×16, 16×8, 8×16 или 8×8, и блок кодирования 8×8 может разделяться на фрагменты 8×8, 8×4, 4×8 или 4×4.
В видеоданных 310, разрешение равняется 1920×1080, максимальный размер блока кодирования равняется 64, и максимальная глубина равняется 2. В видеоданных 320, разрешение равняется 1920×1080, максимальный размер блока кодирования равняется 64, и максимальная глубина равняется 3. В видеоданных 330, разрешение равняется 352×288, максимальный размер блока кодирования равняется 16, и максимальная глубина равняется 1. Максимальная глубина, показанная на фиг.3, обозначает полное количество разделений от максимального блока кодирования до минимального блока декодирования.
Если разрешение является высоким или величина данных является большой, максимальный размер блока кодирования может быть большим так, чтобы не только увеличивать эффективность кодирования, но также чтобы точно отражать характеристики изображения. Соответственно, максимальный размер блока кодирования видеоданных 310 и 320, имеющих более высокое разрешение, чем видеоданные 330, может быть 64.
Так как максимальная глубина видеоданных 310 равняется 2, блоки 315 кодирования видеоданных 310 могут включать в себя максимальный блок кодирования, имеющий размер длинной оси 64, и блоки кодирования, имеющие размеры длинной оси 32 и 16, так как глубины становятся глубже до двух слоев посредством разделения максимального блока кодирования дважды. Тем временем, так как максимальная глубина видеоданных 330 равняется 1, блоки 335 кодирования видеоданных 330 могут включать в себя максимальный блок кодирования, имеющий размер длинной оси 16, и блоки кодирования, имеющие размер длинной оси 8, так как глубины становятся глубже до одного слоя посредством разделения максимального блока кодирования однократно.
Так как максимальная глубина видеоданных 320 равняется 3, блоки 325 кодирования видеоданных 320 могут включать в себя максимальный блок кодирования, имеющий размер длинной оси 64, и блоки кодирования, имеющие размеры длинной оси 32, 16 и 8, так как глубины становятся глубже до 3 слоев посредством разделения максимального блока кодирования три раза. По мере того, как глубина становится глубже, детальная информация может точно выражаться.
Фиг.4 является блок-схемой кодера 400 изображений на основе блоков кодирования, соответствующих древовидной структуре, согласно одному иллюстративному варианту осуществления. Кодер 400 изображений выполняет операции определителя 120 блока кодирования устройства 100 кодирования видео, чтобы кодировать данные изображения. Другими словами, модуль 410 внутреннего предсказания выполняет внутреннее предсказание над блоками кодирования во внутреннем режиме, из текущего кадра 405, и модуль 420 оценки движения и модуль 425 компенсации движения выполняет внешнюю оценку и компенсацию движения над блоками кодирования во внешнем режиме из текущего кадра 405 посредством использования текущего кадра 405, и опорного кадра 495.
Данные, выведенные из модуля 410 внутреннего предсказания, модуля 420 оценки движения и модуля 425 компенсации движения выводятся как квантованный коэффициент преобразования через преобразователь 430 и модуль 440 квантования. Квантованный коэффициент преобразования восстанавливается как данные в пространственной области посредством модуля 460 обратного квантования и обратного преобразователя 470, и восстановленные данные в пространственной области выводятся как опорный кадр 495 после постобработки посредством блока 480 удаления блочности и блока 490 контурной фильтрации. Квантованный коэффициент преобразования может выводиться как битовый поток 455 посредством энтропийного кодера 450.
Чтобы применять кодер 400 изображений в устройстве 100 кодирования видео, все элементы кодера 400 изображений, т.е. модуль 410 внутреннего предсказания, модуль 420 оценки движения, модуль 425 компенсации движения, преобразователь 430, модуль 440 квантования, энтропийный кодер 450, модуль 460 обратного квантования, обратный преобразователь 470, блок 480 удаления блочности и блок 490 контурной фильтрации, выполняют операции на основе каждого блока кодирования из блоков кодирования, имеющих древовидную структуру, при рассмотрении максимальной глубины каждого максимального блока кодирования.
Конкретно, модуль 410 внутреннего предсказания, модуль 420 оценки движения и модуль 425 компенсации движения определяет фрагменты и режим предсказания каждого блока кодирования из блоков кодирования, имеющих древовидную структуру, при рассмотрении максимального размера и максимальной глубины текущего максимального блока кодирования, и преобразователь 430 определяет размер блока преобразования в каждом блоке кодирования из блоков кодирования, имеющих древовидную структуру.
Фиг.5 является блок-схемой декодера 500 изображений на основе блоков кодирования, соответствующих древовидной структуре, согласно одному иллюстративному варианту осуществления. Модуль 510 синтаксического разбора осуществляет синтаксический разбор закодированных данных изображения, подлежащих декодированию, и информации о кодировании, требуемой для декодирования из битового потока 505. Закодированные данные изображения выводятся как обратно квантованные данные через энтропийный декодер 520 и модуль 530 обратного квантования, и обратно квантованные данные восстанавливаются в данные изображения в пространственной области посредством обратного преобразователя 540.
Модуль 550 внутреннего предсказания выполняет внутреннее предсказание над блоками кодирования во внутреннем режиме по отношению к данным изображения в пространственной области, и модуль 560 компенсации движения выполняет компенсацию движения над блоками кодирования во внешнем режиме посредством использования опорного кадра 585.
Данные изображения в пространственной области, которые прошли через модуль 550 внутреннего предсказания и модуль 560 компенсации движения, могут выводиться как восстановленный кадр 595 после постобработки посредством блока 570 удаления блочности и блока 580 контурной фильтрации. Также данные изображения, которые подвергаются постобработке посредством блока 570 удаления блочности и блока 580 контурной фильтрации, могут выводиться как опорный кадр 585.
Чтобы декодировать данные изображения в декодере 230 данных изображения устройства 200 декодирования видео, декодер 500 изображений может выполнять операции, которые выполняются после модуля 510 синтаксического разбора.
Чтобы применять декодер 500 изображений в устройстве 200 декодирования видео, все элементы декодера 500 изображений, т.е. модуль 510 синтаксического разбора, энтропийный декодер 520, модуль 530 обратного квантования, обратный преобразователь 540, модуль 550 внутреннего предсказания, модуль 560 компенсации движения, блок 570 удаления блочности и блок 580 контурной фильтрации, выполняют операции на основе блоков кодирования, имеющих древовидную структуру для каждого максимального блока кодирования.
Конкретно, модуль 550 внутреннего предсказания и модуль 560 компенсации движения выполняют операции на основе фрагментов и режима предсказания для каждого из блоков кодирования, имеющего древовидную структуру, и обратный преобразователь 540 выполняет операции на основе размера блока преобразования для каждого блока кодирования.
Фиг.6 является диаграммой, иллюстрирующей более глубокие блоки кодирования, соответствующие глубинам, и фрагменты, согласно одному иллюстративному варианту осуществления. Устройство 100 кодирования видео и устройство 200 декодирования видео используют иерархические блоки кодирования так, чтобы принимать в рассмотрение характеристики изображения. Максимальная высота, максимальная ширина и максимальная глубина блоков кодирования могут адаптивно определяться согласно характеристикам изображения или могут различным образом устанавливаться пользователем. Размеры более глубоких блоков кодирования, соответствующих глубинам, могут определяться согласно предварительно определенному максимальному размеру блока кодирования.
В иерархической структуре 600 блоков кодирования, согласно одному иллюстративному варианту осуществления, максимальная высота и максимальная ширина блоков кодирования каждая равняется 64, и максимальная глубина равняется 4. Так как глубина становится глубже вдоль вертикальной оси иерархической структуры 600, высота и ширина более глубокого блока кодирования, каждая, разделяются. Также блок предсказания и фрагменты, которые являются основами для кодирования с предсказанием каждого более глубокого блока кодирования, показаны вдоль горизонтальной оси иерархической структуры 600.
Другими словами, блок 610 кодирования является максимальным блоком кодирования в иерархической структуре 600, при этом глубина равняется 0 и размер, т.е. высота на ширину, равняется 64×64. Глубина становится глубже вдоль вертикальной оси, и существуют блок 620 кодирования, имеющий размер 32×32 и глубину 1, блок 630 кодирования, имеющий размер 16×16 и глубину 2, блок 640 кодирования, имеющий размер 8×8 и глубину 3, и блок 650 кодирования, имеющий размер 4×4 и глубину 4. Блок 650 кодирования, имеющий размер 4×4 и глубину 4, является минимальным блоком кодирования.
Блок предсказания и фрагменты блока кодирования расположены вдоль горизонтальной оси согласно каждой глубине. Другими словами, если блок 610 кодирования, имеющий размер 64×64 и глубину 0, является блоком предсказания, блок предсказания может разделяться на фрагменты, содержащиеся в блоке 610 кодирования, т.е. фрагмент 610, имеющий размер 64×64, фрагменты 612, имеющие размер 64×32, фрагменты 614, имеющие размер 32×64, или фрагменты 616, имеющие размер 32×32.
Аналогично, блок предсказания блока 620 кодирования, имеющего размер 32×32 и глубину 1, может разделяться на фрагменты, содержащиеся в блоке 620 кодирования, т.е. фрагмент 620, имеющий размер 32×32, фрагменты 622, имеющие размер 32×16, фрагменты 624, имеющие размер 16×32, и фрагменты 626, имеющие размер 16×16.
Аналогично, блок предсказания блока 630 кодирования, имеющего размер 16×16 и глубину 2, может разделяться на фрагменты, содержащиеся в блоке 630 кодирования, т.е. фрагмент, имеющий размер 16×16, содержащийся в блоке 630 кодирования, фрагменты 632, имеющие размер 16×8, фрагменты 634, имеющие размер 8×16, и фрагменты 636, имеющие размер 8×8.
Аналогично, блок предсказания блока 640 кодирования, имеющего размер 8×8 и глубину 3, может разделяться на фрагменты, содержащиеся в блоке 640 кодирования, т.е. фрагмент, имеющий размер 8×8, содержащийся в блоке 640 кодирования, фрагменты 642, имеющие размер 8×4, фрагменты 644, имеющие размер 4×8, и фрагменты 646, имеющие размер 4×4.
Блок 650 кодирования, имеющий размер 4×4 и глубину 4, является минимальным блоком кодирования и блоком кодирования самой нижней глубины. Блок предсказания блока 650 кодирования назначается фрагменту, имеющему размер 4×4. Также блок предсказания блока 650 кодирования может включать в себя фрагмент, имеющий размер 4×4, содержащийся в блоке 650 кодирования, фрагменты 652, имеющие размер 4×2, фрагменты 654, имеющие размер 2×4, и фрагменты 656, имеющие размер 2×2.
Чтобы определять упомянутую, по меньшей мере, одну кодированную глубину блоков кодирования, составляющих максимальный блок 610 кодирования, определитель 120 блока кодирования устройства 100 кодирования видео выполняет кодирование для блоков кодирования, соответствующих каждой глубине, включенной в максимальный блок 610 кодирования.
Количество более глубоких блоков кодирования, соответствующих глубинам, включающих в себя данные в одном и том же диапазоне и один и тот же размер, увеличивается по мере того, как глубина становится глубже. Например, требуются четыре блока кодирования, соответствующих глубине 2, чтобы покрывать данные, которые содержатся в одном блоке кодирования, соответствующем глубине 1. Соответственно, чтобы сравнивать результаты кодирования одних и тех же данных согласно глубинам, блок кодирования, соответствующий глубине 1, и четыре блока кодирования, соответствующие глубине 2, каждый кодируются.
Чтобы выполнять кодирование для текущей глубины из глубин, для текущей глубины может выбираться наименьшая ошибка кодирования посредством выполнения кодирования для каждого блока предсказания в блоках кодирования, соответствующих текущей глубине, вдоль горизонтальной оси иерархической структуры 600. Альтернативно, может искаться минимальная ошибка кодирования посредством сравнения наименьших ошибок кодирования, соответствующих глубинам, посредством выполнения кодирования для каждой глубины по мере того, как глубина становится глубже вдоль вертикальной оси иерархической структуры 600. Глубина и фрагмент, имеющие минимальную ошибку кодирования в блоке 610 кодирования, могут выбираться как кодированная глубина и фрагментный тип блока 610 кодирования.
Фиг.7 является диаграммой для описания отношения между блоком 710 кодирования и блоками 720 преобразования, согласно одному иллюстративному варианту осуществления. Устройство 100 или 200 кодирования видео кодирует или декодирует изображение согласно блокам кодирования, имеющим размеры, более маленькие, чем или равные максимальному блоку кодирования, для каждого максимального блока кодирования. Размеры блоков преобразования для преобразования в течение кодирования могут выбираться на основе блоков данных, которые не являются более большими, чем соответствующий блок кодирования.
Например, в устройстве 100 или 200 кодирования видео, если размер блока 710 кодирования равняется 64×64, преобразование может выполняться посредством использования блоков 720 преобразования, имеющих размер 32×32.
Также данные блока 710 кодирования, имеющего размер 64×64, могут кодироваться посредством выполнения преобразования над каждым из блоков преобразования, имеющих размер 32×32, 16×16, 8×8 и 4×4, которые являются более маленькими, чем 64×64, и затем может выбираться блок преобразования, имеющий наименьшую ошибку кодирования.
Фиг.8 является диаграммой для описания информации кодирования блоков кодирования, соответствующих кодированной глубине, согласно одному иллюстративному варианту осуществления. Блок 130 вывода устройства 100 кодирования видео может кодировать и передавать информацию 800 о фрагментном типе, информацию 810 о режиме предсказания и информацию 820 о размере блока преобразования для каждого блока кодирования, соответствующего кодированной глубине, как информацию о режиме кодирования.
Информация 800 указывает информацию о форме фрагмента, полученного посредством разделения блока предсказания текущего блока кодирования, при этом фрагмент является блоком данных для кодирования с предсказанием текущего блока кодирования. Например, текущий блок CU_0 кодирования, имеющий размер 2N×2N, может разделяться на любой из фрагмента 802, имеющего размер 2N×2N, фрагмента 804, имеющего размер 2N×N, фрагмента 806, имеющего размер N×2N, и фрагмента 808, имеющего размер N×N. Здесь, информация 800 о фрагментном типе устанавливается, чтобы указывать один из фрагмента 804, имеющего размер 2N×N, фрагмента 806, имеющего размер N×2N, и фрагмента 808, имеющего размер N×N.
Информация 810 указывает режим предсказания каждого фрагмента. Например, информация 810 может указывать режим кодирования с предсказанием, выполненного над фрагментом, указанным посредством информации 800, т.е. внутренний режим 812, внешний режим 814 или режим 816 пропуска.
Информация 820 указывает блок преобразования, который должен быть основой, когда преобразование выполняется над текущим блоком кодирования. Например, блок преобразования может быть первым блоком 822 внутреннего преобразования, вторым блоком 824 внутреннего преобразования, первым блоком 826 внешнего преобразования, или вторым блоком 828 внутреннего преобразования.
Модуль 220 извлечения данных изображения и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию 800, 810 и 820 для декодирования, согласно каждому более глубокому блоку кодирования.
Фиг.9 является диаграммой более глубоких блоков кодирования, соответствующих глубинам, согласно одному иллюстративному варианту осуществления. Информация разделения может использоваться, чтобы указывать изменение глубины. Информация разделения указывает, разделяется ли блок кодирования текущей глубины на блоки кодирования более низкой глубины.
Блок 910 предсказания для кодирования с предсказанием блока 900 кодирования, имеющего глубину 0 и размер 2N_0×2N_0, может включать в себя фрагменты фрагментного типа 912, имеющего размер 2N_0×2N_0, фрагментного типа 914, имеющего размер 2N_0×N_0, фрагментного типа 916, имеющего размер N_0×2N_0, и фрагментного типа 918, имеющего размер N_0×N_0. Фиг.9 иллюстрирует только фрагментные типы 912 по 918, которые получаются посредством симметричного разделения блока 910 предсказания, но фрагментный тип не ограничен этим, и фрагменты блока 910 предсказания могут включать в себя асимметричные фрагменты, фрагменты, имеющие предварительно определенную форму, и фрагменты, имеющие геометрическую форму.
Кодирование с предсказанием выполняется с повторением над одним фрагментом, имеющим размер 2N_0×2N_0, двумя фрагментами, имеющими размер 2N_0×N_0, двумя фрагментами, имеющими размер N_0×2N_0, и четырьмя фрагментами, имеющими размер N_0×N_0, согласно каждому фрагментному типу. Кодирование с предсказанием во внутреннем режиме и внешнем режиме может выполняться над фрагментами, имеющими размеры 2N_0×2N_0, N_0×2N_0, 2N_0×N_0, и N_0×N_0. Кодирование с предсказанием в режиме пропуска выполняется только над фрагментом, имеющим размер 2N_0×2N_0.
Ошибки кодирования, включая сюда кодирование с предсказанием во фрагментных типах 912 по 918, сравниваются, и наименьшая ошибка кодирования определяется среди фрагментных типов. Если ошибка кодирования является наименьшей в одном из фрагментных типов 912 по 916, блок 910 предсказания не может разделяться в более низкую глубину.
Если ошибка кодирования является наименьшей во фрагментном типе 918, глубина изменяется с 0 на 1, чтобы разделять фрагментный тип 918 в операции 920, и кодирование выполняется с повторением над блоками 930 кодирования, имеющими глубину 2 и размер N_0×N_0, чтобы осуществлять поиск минимальной ошибки кодирования.
Блок 940 предсказания для кодирования с предсказанием блока 930 кодирования, имеющего глубину 1 и размер 2N_1×2N_1 (= N_0×N_0), может включать в себя фрагменты фрагментного типа 942, имеющего размер 2N_1×2N_1, фрагментного типа 944, имеющего размер 2N_1×N_1, фрагментного типа 946, имеющего размер N_1×2N_1, и фрагментного типа 948, имеющего размер N_1×N_1.
Если ошибка кодирования является наименьшей во фрагментном типе 948, глубина изменяется с 1 на 2, чтобы разделять фрагментный тип 948 в операции 950, и кодирование выполняется с повторением над блоками 960 кодирования, которые имеют глубину 2 и размер N_2×N_2, чтобы осуществлять поиск минимальной ошибки кодирования.
Когда максимальная глубина равняется d, операция разделения, соответствующая каждой глубине, может выполняться вплоть до того, когда глубина станет d-1, и информация разделения может кодироваться как вплоть до того, когда глубина будет одной из 0 по d-2. Другими словами, когда кодирование выполняется вплоть до того, когда глубина равняется d-1 после того, как блок кодирования, соответствующий глубине d-2, разделяется в операции 970, блок 990 предсказания для кодирования с предсказанием блока 980 кодирования, имеющего глубину d-1 и размер 2N_(d-1)×2N_(d-1), может включать в себя фрагменты фрагментного типа 992, имеющего размер 2N_(d-1)×2N_(d-1), фрагментного типа 994, имеющего размер 2N_(d-1)×N_(d-1), фрагментного типа 996, имеющего размер N_(d-1)×2N_(d-1), и фрагментного типа 998, имеющего размер N_(d-1)×N_(d-1).
Кодирование с предсказанием может выполняться с повторением над одним фрагментом, имеющим размер 2N_(d-1)×2N_(d-1), двумя фрагментами, имеющими размер 2N_(d-1)×N_(d-1), двумя фрагментами, имеющими размер N_(d-1)×2N_(d-1), четырьмя фрагментами, имеющими размер N_(d-1)×N_(d-1) из фрагментных типов 992 по 998, чтобы осуществлять поиск фрагментного типа, имеющего минимальную ошибку кодирования.
Даже, когда фрагментный тип 998 имеет минимальную ошибку кодирования, так как максимальная глубина равняется d, блок кодирования CU_(d-1), имеющий глубину d-1, более не разделяется в более низкую глубину, и кодированная глубина для блоков кодирования, составляющих текущий максимальный блок 900 кодирования, определяется как d-1, и фрагментный тип текущего максимального блока 900 кодирования может определяться как N_(d-1)×N_(d-1). Также, так как максимальная глубина равняется d и минимальный блок кодирования 980, имеющий самую нижнюю глубину d-1, более не разделяется в более низкую глубину, информация разделения для минимального блока кодирования 980 не устанавливается.
Блок данных 999 может быть 'минимальным блоком' для текущего максимального блока кодирования. Минимальный блок согласно одному иллюстративному варианту осуществления может быть прямоугольным блоком данных, полученным посредством разделения минимального блока кодирования 980 на 4. Посредством выполнения кодирования с повторением, устройство 100 кодирования видео может выбирать глубину, имеющую наименьшую ошибку кодирования, посредством сравнения ошибок кодирования, соответствующих глубинам блока 900 кодирования, чтобы определять кодированную глубину и устанавливать соответствующий фрагментный тип и режим предсказания в качестве режима кодирования кодированной глубины.
Как таковые, минимальные ошибки кодирования, соответствующие глубинам, сравниваются во всех из глубин 1 по d, и глубина, имеющая наименьшую ошибку кодирования, может определяться как кодированная глубина. Кодированная глубина, фрагментный тип блока предсказания и режим предсказания могут кодироваться и передаваться как информация о режиме кодирования. Также, так как блок кодирования разделяется из глубины 0 в кодированную глубину, только информация разделения кодированной глубины устанавливается на 0, и информация разделения глубин, исключающих кодированную глубину, устанавливается на 1.
Модуль 220 извлечения данных изображения и информации кодирования устройства 200 декодирования видео может извлекать и использовать информацию о кодированной глубине и блок предсказания блока 900 кодирования, чтобы декодировать фрагмент 912. Устройство 200 декодирования видео может определять глубину, в которой информация разделения равняется 0, как кодированную глубину посредством использования информации разделения, соответствующей глубинам, и использовать информацию о режиме кодирования соответствующей глубины для декодирования.
Фиг.10-12 являются диаграммами для описания отношения между блоками 1010 кодирования, блоками 1060 предсказания, и блоками 1070 преобразования, согласно одному иллюстративному варианту осуществления. Блоки 1010 кодирования являются блоками кодирования, имеющими древовидную структуру, соответствующую кодированным глубинам, определенным посредством устройства 100 кодирования видео, в максимальном блоке кодирования. Блоки 1060 предсказания являются фрагментами блоков предсказания каждого из блоков 1010 кодирования, и блоки 1070 преобразования являются блоками преобразования каждого из блоков 1010 кодирования.
Когда глубина максимального блока кодирования равняется 0 в блоках 1010 кодирования, глубины блоков 1012 и 1054 кодирования равняются 1, глубины блоков 1014, 1016, 1018, 1028, 1050 и 1052 кодирования равняются 2, глубины блоков 1020, 1022, 1024, 1026, 1030, 1032 и 1048 кодирования равняются 3, и глубины блоков 1040, 1042, 1044 и 1046 кодирования равняются 4.
В блоках 1060 предсказания, некоторые блоки 1014, 1016, 1022, 1032, 1048, 1050, 1052 и 1054 кодирования получаются посредством разделения блоков кодирования в блоках 1010 кодирования. Другими словами, фрагментные типы в блоках 1014, 1022, 1050 и 1054 кодирования имеют размер 2N×N, фрагментные типы в блоках 1016, 1048 и 1052 кодирования имеют размер N×2N, и фрагментный тип блока 1032 кодирования имеет размер N×N. Блоки предсказания и фрагменты блоков 1010 кодирования являются более маленькими или равными каждому блоку кодирования.
Преобразование или обратное преобразование выполняется над данными изображения блока 1052 кодирования в блоках 1070 преобразования в блоке данных, который является более маленьким, чем блок 1052 кодирования. Также блоки 1014, 1016, 1022, 1032, 1048, 1050 и 1052 кодирования в блоках 1070 преобразования являются отличными от блоков в блоках 1060 предсказания в отношении размеров и форм. Другими словами, устройства 100 и 200 кодирования и декодирования видео могут выполнять внутреннее предсказание, оценку движения, компенсацию движения, преобразование и обратное преобразование индивидуально над блоком данных в одном и том же блоке кодирования.
Соответственно, кодирование рекурсивно выполняется над каждым из блоков кодирования, имеющих иерархическую структуру в каждой области максимального блока кодирования, чтобы определять оптимальный блок кодирования, и, таким образом, могут получаться блоки кодирования, имеющие рекурсивную древовидную структуру. Информация кодирования может включать в себя информацию разделения о блоке кодирования, информацию о фрагментном типе, информацию о режиме предсказания и информацию о размере блока преобразования. Таблица 1 указывает информацию кодирования, которая может устанавливаться посредством устройств 100 и 200 кодирования и декодирования видео.
Таблица 1
Информация разделения 0(Кодирование над блоком кодирования, имеющим размер 2N×2N, и текущую глубину d)
Информация разделения 1
Режим предска-зания
Фрагментный тип
Размер блока преобразования
Кодировать с повторением блоки кодирования, имеющие более низкую глубину d+1
Внутрен-нееВнешнееПропуск (только2N×2N)
Симметричный фрагментный тип
Асимметричный фрагментный тип
Информация разделения 0блока преобразования
Информация разделения 1блока преобразования
2N×2N 2N×N N×2N N×N
2N×nU 2N×nD nL×2N nR×2N
2N×2N
NxN (Симметричный тип)N/2×N/2 (Асимметричный тип)
Блок 130 вывода устройства 100 кодирования видео может выводить информацию кодирования о блоках кодирования, имеющих древовидную структуру, и модуль 220 извлечения данных изображения и информации кодирования устройства 200 декодирования видео может извлекать информацию кодирования о блоках кодирования, имеющих древовидную структуру, из принятого битового потока.
Информация разделения указывает, разделяется ли текущий блок кодирования на блоки кодирования более низкой глубины. Если информация разделения текущей глубины d равняется 0, глубина, в которой текущий блок кодирования более не разделяется в более низкую глубину, является кодированной глубиной, и, таким образом, информация о фрагментном типе, режим предсказания и размер блока преобразования могут определяться для кодированной глубины. Если текущий блок кодирования дополнительно разделяется согласно информации разделения, кодирование независимо выполняется над четырьмя разделенными блоками кодирования более низкой глубины.
Режим предсказания может быть одним из внутреннего режима, внешнего режима и режима пропуска. Внутренний режим и внешний режим могут определяться во всех фрагментных типах, и режим пропуска определяется только во фрагментном типе, имеющем размер 2N×2N.
Информация о фрагментном типе может указывать симметричные фрагментные типы, имеющие размеры 2N×2N, 2N×N, N×2N и N×N, которые получаются посредством симметричного разделения высоты или ширины блока предсказания, и асимметричные фрагментные типы, имеющие размеры 2N×nU, 2N×nD, nL×2N и nR×2N, которые получаются посредством асимметричного разделения высоты или ширины блока предсказания. Асимметричные фрагментные типы, имеющие размеры 2N×nU и 2N×nD, могут соответственно получаться посредством разделения высоты блока предсказания в 1:3 и 3:1, и асимметричные фрагментные типы, имеющие размеры nL×2N и nR×2N, могут соответственно получаться посредством разделения ширины блока предсказания в 1:3 и 3:1.
Размер блока преобразования может устанавливаться, чтобы быть двумя типами во внутреннем режиме и двумя типами во внешнем режиме. Другими словами, если информация разделения блока преобразования равняется 0, размер блока преобразования может быть 2N×2N, что является размером текущего блока кодирования. Если информация разделения блока преобразования равняется 1, блоки преобразования могут получаться посредством разделения текущего блока кодирования. Также, если фрагментный тип текущего блока кодирования, имеющего размер 2N×2N, является симметричным фрагментным типом, размер блока преобразования может быть N×N, и если фрагментный тип текущего блока кодирования является асимметричным фрагментным типом, размер блока преобразования может быть N/2×N/2.
Информация кодирования о блоках кодирования, имеющих древовидную структуру, может включать в себя, по меньшей мере, одно из блока кодирования, соответствующего кодированной глубине, блока предсказания и минимального блока. Блок кодирования, соответствующий кодированной глубине, может включать в себя, по меньшей мере, одно из блока предсказания и минимального блока, содержащего такую же информацию кодирования.
Соответственно, определяется, содержатся ли смежные блоки данных в том же блоке кодирования, соответствующем кодированной глубине, посредством сравнения информации кодирования смежных блоков данных. Также соответствующий блок кодирования, соответствующий кодированной глубине, определяется посредством использования информации кодирования блока данных, и, таким образом, может определяться распределение кодированных глубин в максимальном блоке кодирования.
Соответственно, если текущий блок кодирования предсказывается на основе информации кодирования смежных блоков данных, информация кодирования блоков данных в более глубоких блоках кодирования, смежных с текущим блоком кодирования, может напрямую указываться и использоваться.
Альтернативно, если текущий блок кодирования предсказывается на основе информации кодирования смежных блоков данных, для блоков данных, смежных с текущим блоком кодирования, осуществляется поиск с использованием закодированной информации блоков данных, и на смежные блоки кодирования, для которых осуществлялся поиск, может осуществляться ссылка для предсказания текущего блока кодирования.
Фиг.13 является диаграммой для описания отношения между блоком кодирования, блоком предсказания или фрагментом, и блоком преобразования, согласно информации режима кодирования из Таблицы 1. Максимальный блок 1300 кодирования включает в себя блоки 1302, 1304, 1306, 1312, 1314, 1316 и 1318 кодирования кодированных глубин. Здесь, так как блок 1318 кодирования является блоком кодирования кодированной глубины, информация разделения может устанавливаться на 0. Информация о фрагментном типе блока 1318 кодирования, имеющего размер 2N×2N, может устанавливаться, чтобы быть одним из фрагментного типа 1322, имеющего размер 2N×2N, фрагментного типа 1324, имеющего размер 2N×N, фрагментного типа 1326, имеющего размер N×2N, фрагментного типа 1328, имеющего размер NxN, фрагментного типа 1332, имеющего размер 2N×nU, фрагментного типа 1334, имеющего размер 2N×nD, фрагментного типа 1336, имеющего размер nL×2N, и фрагментного типа 1338, имеющего размер nR×2N.
Когда фрагментный тип устанавливается симметричным, т.е. фрагментным типом 1322, 1324, 1326 или 1328, устанавливается блок 1342 преобразования, имеющий размер 2N×2N, если информация разделения (флаг размера TU) блока преобразования равняется 0, и устанавливается блок 1344 преобразования, имеющий размер N×N, если флаг размера TU равняется 1.
Когда фрагментный тип устанавливается асимметричным, т.е. фрагментным типом 1332, 1334, 1336 или 1338, устанавливается блок 1352 преобразования, имеющий размер 2N×2N, если флаг размера TU равняется 0, и устанавливается блок 1354 преобразования, имеющий размер N/2×N/2, если флаг размера TU равняется 1.
Ссылаясь на фиг.13, флаг размера TU является флагом, имеющим значение или 0 или 1, но флаг размера TU не ограничен 1 битом, и блок преобразования может иерархическим образом разделяться, имея древовидную структуру, в то время как флаг размера TU увеличивается от 0.
Фиг.14 является блок-схемой системы 1400 кодирования и декодирования видео, выполняющей внутриконтурную фильтрацию.
Кодер 1410 системы 1400 кодирования и декодирования видео передает кодированный поток данных видео, и декодер 1450 принимает и декодирует поток данных и выводит восстановленное изображение.
Модуль 1415 предсказания кодера 1410 выводит опорное изображение посредством выполнения внешнего предсказания и внутреннего предсказания. Остаточный компонент между опорным изображением и текущим входным изображением проходит через блок 1420 преобразования/квантизации и затем выводится как квантованный коэффициент преобразования. Квантованный коэффициент преобразования проходит через энтропийный кодер 1425 и затем выводится как декодированный поток данных. Квантованный коэффициент преобразования проходит через блок 1430 обратной квантизации/обратного преобразования и затем восстанавливается как данные пространственной области, и восстановленные данные пространственной области проходят через фильтр 1435 удаления блочности и блок 1440 контурной фильтрации и затем выводятся как восстановленное изображение. Восстановленное изображение может проходить через модуль 1415 предсказания и затем может использоваться в качестве опорного изображения для следующего входного изображения.
Закодированные данные изображения потока данных, принятого посредством декодера 1450, проходят через энтропийный декодер 1455 и блок 1460 обратной квантизации/обратного преобразования и затем восстанавливаются в качестве остаточного компонента пространственной области. Данные изображения пространственной области создаются посредством синтеза опорного изображения, выведенного из модуля 1475 предсказания, и остаточного компонента, и восстановленное изображение текущего исходного изображения может выводиться посредством прохождения через фильтр 1465 удаления блочности и блок 1470 контурной фильтрации. Восстановленное изображение может использоваться в качестве опорного изображения для следующего исходного изображения.
Блок 1440 контурной фильтрации системы 1400 кодирования и декодирования видео выполняет контурную фильтрацию посредством использования информации фильтра согласно пользовательскому вводу или настройке системы. Информация фильтра, используемая блоком 1440 контурной фильтрации, выводится в энтропийный кодер 1425 и затем информация фильтра и закодированные данные изображения передаются в декодер 1450. Блок 1470 контурной фильтрации декодера 1450 может выполнять контурную фильтрацию на основе информации фильтра, принятой от декодера 1450.
Фиг.15 и 16 иллюстрируют пример блоков фильтрации, соответствующих древовидной структуре 1600, которые содержатся в максимальном блоке 1500 кодирования, информацию разделения блока фильтрации и информацию выполнения фильтрации, согласно одному иллюстративному варианту осуществления.
Когда блоки фильтрации блока 1440 контурной фильтрации кодера 1410 и блока 1470 контурной фильтрации декодера 1450 формируются как блоки данных, которые являются иерархическими согласно областям в максимальном блоке 1500 кодирования, как блоки кодирования, соответствующие древовидной структуре, описанные в предыдущем иллюстративном варианте осуществления, информация фильтра может включать в себя флаги разделения блоков данных так, чтобы указывать блоки фильтрации, соответствующие древовидной структуре 1600, и включать в себя флаги контурной фильтрации, указывающие выполнение контурной фильтрации над блоками фильтрации.
Блоки фильтрации, соответствующие древовидной структуре 1600, которые содержатся в максимальном блоке 1500 кодирования, иерархически включают в себя блоки 1510 и 1540 фильтрации слоя 1, блоки 1550, 1552, 1554, 1562, 1564 и 1566 фильтрации слоя 2, блоки 1570, 1572, 1574, 1576, 1592, 1594 и 1596 фильтрации слоя 3, и блоки 1580, 1582, 1584 и 1586 фильтрации слоя 4.
Древовидная структура 1600 блоков фильтрации, включенных в максимальный блок 1500 кодирования, указывает флаги разделения, соответствующие слоям блоков данных, и флаги фильтрации. Флаг круговой формы указывает флаг разделения по отношению к соответствующему блоку данных, и флаг формы ромба указывает флаг фильтрации.
Соответствующие ссылочные позиции помимо соответствующих флагов круговой формы указывают блоки данных в максимальном блоке 1500 кодирования. Если флаг круговой формы равняется 1, это означает, что блок данных текущего слоя разделяется на блоки данных более низкого слоя, и если флаг круговой формы равняется 0, это означает, что блок данных текущего слоя более не разделяется и определяется как блок фильтрации.
Так как флаги фильтрации определяются согласно блокам фильтрации, флаг формы ромба устанавливается, только когда флаг круговой формы равняется 0. Если флаг формы ромба равняется 1, это означает, что контурная фильтрация выполняется над соответствующим блоком фильтрации, и если флаг формы ромба равняется 0, это означает, что контурная фильтрация не выполняется.
В случае, где максимальный блок 1500 кодирования включает в себя пять слоев фильтрации 0, 1, 2, 3 и 4, информация разделения и выполнение контурной фильтрации могут кодироваться, как показано в Таблице 2 ниже.
Таблица 2
Слой
Информация разделения
Выполнение контурной фильтрации
0
1(1500)
1
0(1510) 1(1520) 1(1530) 0(1540)
0(1610) 1(1640)
2
0(1550) 0(1552) 0(1554) 1(1556) 1(1560) 0(1562) 0(1564) 0(1566)
1(1650) 1(1652) 1(1654) 0(1662) 0(1664) 1(1666)
3
0(1570) 0(1572) 0(1574) 0(1576) 1(1580) 0(1582) 0(1584) 0(1586)
1(1670) 0(1672) 0(1674) 0(1676) 0(1682) 0(1684) 1(1686)
4
0(1590) 0(1592) 0(1594) 0(1596)
1(1690) 0(1692) 0(1694) 1(1696)
То есть флаги разделения, соответствующие слоям блоков данных, кодируются и передаются как информация фильтра так, чтобы определять блоки фильтрации, соответствующие древовидной структуре 1600, которые подлежат фильтрации посредством блока 1440 контурной фильтрации и блока 1470 контурной фильтрации.
Блоки кодирования, соответствующие древовидной структуре, формируются как формы, чтобы минимизировать ошибку между исходным изображением, соответствующим максимальному блоку 1500 кодирования, и восстановленным изображением посредством декодирования на основе блоков кодирования, соответствующих древовидной структуре, так что пространственная корреляция пикселей внутри блока кодирования улучшается. Таким образом, посредством определения блоков фильтрации на основе блоков кодирования, операция для определения блоков фильтрации, которая является отдельной от определения блоков кодирования, может пропускаться. Также, посредством определения блоков фильтрации на основе блоков кодирования, соответствующих древовидной структуре, флаги разделения, соответствующие слоям блоков фильтрации, могут пропускаться, так что является возможным уменьшать битовую скорость передачи в отношении к информации фильтра. Ниже, способ определения блоков фильтрации и информация фильтра согласно одному иллюстративному варианту осуществления будут подробно описываться со ссылкой на фиг.17-22.
Фиг.17 иллюстрирует максимальные блоки кодирования и блоки данных, включающие в себя фрагменты и включающие в себя блоки кодирования, соответствующие древовидной структуре, которые содержатся в каждом из максимальных блоков кодирования, согласно одному иллюстративному варианту осуществления.
Группа 1700 блоков данных включает в себя блоки кодирования, соответствующие кодированной глубине, 9 максимальных блоков кодирования, каждый имеет размер 32×32. Также каждый из максимальных блоков кодирования включает в себя блоки кодирования, соответствующие древовидной структуре, и фрагменты. Блоки кодирования, соответствующие кодированной глубине, обозначаются посредством использования сплошной линии, и фрагменты, которые получаются посредством разделения блоков кодирования, соответствующих кодированной глубине, обозначаются посредством использования пунктирной линии. Кодированная глубина блоков кодирования, соответствующих древовидной структуре, может включать в себя 0, 1 и 2, и максимальная глубина, соответствующая количеству максимальных иерархических слоев может устанавливаться как 3.
Фиг.18-21 соответственно иллюстрирует блоки фильтрации слоев фильтрации 0, 1, 2 и 3 по отношению к блокам данных из фиг.17.
Блок 120 внутриконтурной фильтрации и блок 230 выполнения внутриконтурной фильтрации могут определять слой фильтрации среди слоев, соответствующих глубинам, и фрагментных слоев каждого блока кодирования из фрагментов и блоков кодирования, соответствующих древовидной структуре максимальных блоков кодирования, и могут определять блоки данных, соответствующие слоям, как блоки фильтрации, при этом блоки данных, соответствующие слоям, являются из каждого из максимальных блоков кодирования до блоков данных определенного слоя фильтрации.
Блок 120 внутриконтурной фильтрации и блок 230 выполнения внутриконтурной фильтрации используют слой фильтрации, чтобы определять блоки фильтрации. Например, ссылаясь на группу 1700 данных, одна и та же информация слоя фильтрации может устанавливаться на 9 максимальных блоков кодирования. Согласно информации слоя фильтрации, блоки кодирования от максимального блока кодирования до глубины слоя фильтрации могут определяться как блоки фильтрации, при этом блоки кодирования являются из блоков кодирования, соответствующих от глубины 0 до кодированной глубины. Однако блоки кодирования, соответствующие кодированной глубине, не разделяются в более низкую глубину согласно слою фильтрации.
Более подробно, в случае слоя 0 фильтрации, блоки кодирования, соответствующие глубине 0, то есть максимальные блоки кодирования, могут определяться как блоки фильтрации. Таким образом, группа 1800 блоков фильтрации может включать в себя блоки кодирования, соответствующие глубине 0.
В случае слоя 1 фильтрации, максимальные блоки кодирования по блоки кодирования, соответствующие глубине 1, могут определяться как блоки фильтрации. Таким образом, группа 1900 блоков фильтрации может включать в себя блоки кодирования, соответствующие глубине 0, и блоки кодирования, соответствующие глубине 1. Однако блоки кодирования, соответствующие глубине 1, не включаются в максимальный блок кодирования, соответствующий глубине 0.
В случае слоя 2 фильтрации, максимальные блоки кодирования по блоки кодирования, соответствующие глубине 2, могут определяться как блоки фильтрации. Таким образом, группа 2000 блоков фильтрации может включать в себя блоки кодирования, соответствующие глубине 0, блоки кодирования, соответствующие глубине 1, и блоки кодирования, соответствующие глубине 2. Однако блоки кодирования, соответствующие глубине 1, и блоки кодирования, соответствующие глубине 2, не включаются в максимальный блок кодирования, соответствующий глубине 0, и блоки кодирования, соответствующие глубине 2, не включаются в блоки кодирования, соответствующие глубине 1.
В случае слоя 3 фильтрации, слой фильтрации может соответствовать максимальной глубине кодированной глубины, и максимальные блоки кодирования, блоки кодирования, соответствующие всем глубинам, и фрагменты могут определяться как блоки фильтрации. Таким образом, группа 2100 блоков фильтрации может включать в себя блоки кодирования, соответствующие глубине 0, блоки кодирования, соответствующие глубине 1, блоки кодирования, соответствующие глубине 2, и фрагменты. Аналогично, блоки кодирования, соответствующие глубине 1, и блоки кодирования, соответствующие глубине 2, не включаются в максимальный блок кодирования, соответствующий глубине 0, и блоки кодирования, соответствующие глубине 2, не включаются в блоки кодирования, соответствующие глубине 1.
Фиг.22 иллюстрирует блоки фильтрации слоя 1 фильтрации и информацию выполнения внутриконтурной фильтрации по отношению к блокам данных из фиг.17.
В случае, где слой фильтрации устанавливается как 1, группа 1900 блоков фильтрации может в конечном счете определяться как группа 2200 блоков фильтрации. Таким образом, блоки фильтрации группы 2200 блоков фильтрации включают в себя блоки данных, соответствующие глубине 0, и блоки кодирования, соответствующие глубине 1, и информация выполнения внутриконтурной фильтрации может устанавливаться на каждый из блоков фильтрации. Информация выполнения внутриконтурной фильтрации из фиг.22 является флагом, указывающим, выполнять ли внутриконтурную фильтрацию над соответствующим блоком фильтрации, и информация выполнения внутриконтурной фильтрации 0 или 1 может применяться к каждому из блоков фильтрации группы 2200 блоков фильтрации. В этом случае, информация о блоках фильтрации группы 2200 блоков фильтрации может включать в себя информацию слоя фильтрации, указывающую слой 1 фильтрации, и информацию выполнения внутриконтурной фильтрации в форме флага.
Информация выполнения внутриконтурной фильтрации может устанавливаться, чтобы указывать не только выполнение внутриконтурной фильтрации, но также, чтобы указывать тип фильтра, выбранный из множества типов фильтра. Например, в случае, где информация выполнения внутриконтурной фильтрации указывает 0, 1, 2 и 3, соответственно, информация выполнения внутриконтурной фильтрации может определять 'случай, в котором внутриконтурная фильтрация не выполняется', 'случай, в котором используется тип 1 фильтра', 'случай, в котором используется тип 2 фильтра', и 'случай, в котором используется тип 3 фильтра', соответственно.
Также информация выполнения внутриконтурной фильтрации может устанавливаться, чтобы различать типы фильтра, которые классифицируются согласно предварительно определенным характеристикам изображения блоков фильтрации. Например, в рассмотрении характеристики изображения области фильтрации, информация выполнения внутриконтурной фильтрации может устанавливаться, чтобы указывать случай, в котором внутриконтурная фильтрация не выполняется, или другой случай, в котором внутриконтурная фильтрация выполняется, при этом другой случай разделяется на 'случай, в котором используется тип фильтра для плоской области', 'случай, в котором используется тип фильтра для граничной области', и 'случай, в котором используется тип фильтра для текстурной области'.
В дополнение, информация выполнения внутриконтурной фильтрации может устанавливаться, чтобы различать типы фильтра, которые классифицируются согласно символам кодирования. Символы кодирования включают в себя вектор движения (MV), значение различия вектора движения (MVD), шаблон кодированного блока (CBP), режим предсказания и подобное.
Значение MVD указывает полную сумму абсолютных значений вертикального компонента и горизонтального компонента MVD. Также, если ненулевой квантованный коэффициент выходит в текущей области, информация шаблона блока кодирования устанавливается как 1, и если ненулевой квантованный коэффициент не выходит, информация шаблона блока кодирования устанавливается как 0.
Символы кодирования генерируются как результат кодирования изображения, таким образом, области, имеющие подобные символы кодирования, установленные там, могут иметь подобную характеристику изображения. Например, в общем, область, в которой значение MVD является более большим, чем предварительно определенное пороговое значение, или информация шаблона блока кодирования устанавливается как 1, может иметь много текстурных компонентов, и область, в которой значение MVD является более маленьким, чем предварительно определенное пороговое значение, или информация шаблона блока кодирования устанавливается как 0, может быть областью, в которой ошибка квантизации минимизируется, так как кодирование с предсказанием выполняется точно, или может быть плоской областью.
Таким образом, тип фильтра для предварительно определенного блока фильтрации может классифицироваться в фильтр для области, в которой значение MVD блока фильтрации является более маленьким, чем предварительно определенное пороговое значение, и фильтр для области, в которой значение MVD блока фильтрации является более большим, чем предварительно определенное пороговое значение. Также тип фильтра для предварительно определенного блока фильтрации может классифицироваться в фильтр для области, в которой информация шаблона блока кодирования устанавливается как 0, и фильтр для области, в которой информация шаблона блока кодирования устанавливается как 1. Также, согласно 4 комбинациям условий по отношению к значению MVD и информации шаблона блока кодирования, тип фильтра для предварительно определенного блока фильтрации может классифицироваться в фильтр для области, в которой значение MVD является более маленьким, чем предварительно определенное пороговое значение и информация шаблона блока кодирования установлена как 0, фильтр для области, в которой значение MVD является более маленьким, чем предварительно определенное пороговое значение и информация шаблона блока кодирования установлена как 1, фильтр для области, в которой значение MVD является более большим, чем предварительно определенное пороговое значение и информация шаблона блока кодирования установлена как 0, и фильтр для области, в которой значение MVD является более большим, чем предварительно определенное пороговое значение и информация шаблона блока кодирования установлена как 1.
Так как режим предсказания является информацией, сгенерированной как результат выполнения кодирования в рассмотрении пространственно временной характеристики изображения, тип фильтра может определяться согласно режиму предсказания блоков фильтрации.
Блок 120 внутриконтурной фильтрации устройства 100 кодирования видео может устанавливать информацию фильтра для каждого блока фильтрации, при этом информация фильтра включает в себя информацию слоя фильтрации о блоках кодирования, соответствующих древовидной структуре, информацию выполнения внутриконтурной фильтрации, информацию коэффициентов фильтра для внутриконтурной фильтрации и информацию о слое верхнего предела и слое нижнего предела слоя фильтрации. Блок 130 передачи устройства 100 кодирования видео может передавать информацию о внутриконтурной фильтрации, закодированные данные и информацию кодирования о блоках кодирования.
Блок 210 приема и извлечения устройства 200 декодирования видео может распознавать блоки фильтрации на основе информации фильтра, может анализировать выполнение фильтрации или тип фильтра каждого блока фильтрации и может выполнять внутриконтурную фильтрацию.
Таким образом, вычисление, чтобы отдельно определять блоки фильтрации для внутриконтурной фильтрации из блоков кодирования, уменьшается, и блоки фильтрации устанавливаются посредством использования только информации слоя фильтрации без использования информации разделения, соответствующей слоям, так что битовая скорость передачи также может уменьшаться.
Фиг.23 является блок-схемой последовательности операций способа кодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре, согласно одному иллюстративному варианту осуществления.
В операции 2310, снимок разделяется на максимальные блоки кодирования, которые являются блоками данных, при этом каждый имеет максимальный размер. В операции 2320, блоки кодирования, соответствующие кодированной глубине, отдельно определяются для более глубоких блоков кодирования, соответствующих глубинам, включенным в каждый максимальный блок кодирования, так что определяются блоки кодирования, соответствующие древовидной структуре.
В операции 2330, блоки фильтрации для выполнения внутриконтурной фильтрации определяются на основе блоков кодирования, соответствующих древовидной структуре каждого максимального блока кодирования, и затем выполняется внутриконтурная фильтрация на основе блоков фильтрации.
В операции 2340, информация о внутриконтурной фильтрации кодируется и закодированная информация о внутриконтурной фильтрации, закодированные данные снимка и закодированная информация режима о блоках кодирования, соответствующих древовидной структуре каждого максимального блока кодирования, передаются согласно блокам фильтрации. Информация фильтра согласно одному иллюстративному варианту осуществления может включать в себя информацию слоя фильтрации, информацию выполнения фильтрации, информацию коэффициентов фильтра и информацию о слое верхнего предела и слое нижнего предела слоя фильтрации.
Фиг.24 является блок-схемой последовательности операций способа декодирования видео посредством выполнения внутриконтурной фильтрации на основе блоков кодирования, соответствующих древовидной структуре, согласно другому иллюстративному варианту осуществления.
В операции 2410, над принятым битовым потоком осуществляется синтаксический разбор, и закодированные данные изображения, закодированная информация режима о блоках кодирования, соответствующих древовидной структуре и информация о внутриконтурной фильтрации каждого максимального блока кодирования извлекаются для каждого из блоков кодирования, соответствующих древовидной структуре, которые содержатся в каждом максимальном блоке кодирования текущего снимка. Информация слоя фильтрации, информация выполнения фильтрации, информация коэффициентов фильтра, и информация о слое верхнего предела и слое нижнего предела слоя фильтрации могут извлекаться как информация фильтра.
В операции 2420, на основе закодированной информации режима о блоках кодирования, соответствующих древовидной структуре, которая извлекается для каждого максимального блока кодирования, закодированные данные изображения декодируются согласно блокам кодирования. В операции 2430, посредством использования извлеченной информации о внутриконтурной фильтрации, блоки фильтрации для внутриконтурной фильтрации определяются на основе блоков кодирования, соответствующих древовидной структуре каждого максимального блока кодирования, и выполняется внутриконтурная фильтрация над декодированными данными изображения каждого максимального блока кодирования согласно блокам фильтрации.
Иллюстративные варианты осуществления могут быть записаны как компьютерные программы и могут осуществляться в цифровых компьютерах общего использования, которые выполняют программы с использованием машиночитаемого носителя записи. Примеры машиночитаемого носителя записи включают в себя магнитные запоминающие носители (например, ROM, гибкие диски, жесткие диски, и т.д.) и оптические носители записи (например, CD-ROMs, или DVDs). Более того, один или более блоков вышеописанных устройств и систем может включать в себя процессор или микропроцессор, выполняющий компьютерную программу, сохраненную в машиночитаемом носителе.
В то время как иллюстративные варианты осуществления были конкретно показаны и описаны со ссылкой на чертежи, специалистам в данной области техники следует понимать, что здесь могут быть выполнены различные изменения в форме и деталях без отхода от сущности и объема новой концепции, как определено посредством прилагаемой формулы изобретения. Иллюстративные варианты осуществления должны рассматриваться в только описательном смысле, а не в целях ограничения. Поэтому объем изобретения определяется не подробным описанием иллюстративных вариантов осуществления, а прилагаемой формулой изобретения, и все различия в пределах объема должны толковаться как включенные в настоящее изобретение.