Способ кодирования изображения, способ декодирования изображения, устройство кодирования изображения, устройство декодирования изображения и устройство кодирования и декодирования изображения

Иллюстрации

Показать все

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

Реферат

Область техники

[0001] Настоящее изобретение относится к способу кодирования изображения для кодирования изображения и способу декодирования изображения для декодирования изображения.

Уровень техники

[0002] Большинство текущих стандартизированных алгоритмов видеокодирования основаны на гибридном видеокодировании. В способах гибридного видеокодирования используются несколько разных схем сжатия без потерь и сжатия с потерями, чтобы достигнуть желаемого коэффициента сжатия. Гибридное видеокодирование также является основой для стандартов ITU-T (стандарты Н.26х, такие как Н.261, Н.263), а также стандартов ISO/IEC (стандарты MPEG-X, такие как MPEG 1, MPEG 2 и MPEG 4).

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

[0004] Кроме того, стандарт видеокодирования, называемый высокоэффективным видеокодированием (HEVC), рассматривает Совместная команда по видеокодированию (JCT-VC) с конкретной целью улучшения эффективности относительно видеокодирования с высокой разрешающей способностью.

Список литературы

Непатентная литература

[0005] Непатентная литература 1: Gordon, et al., "Wavefront Parallel Processing for HEVC Encoding and Decoding", JCTVC-F274-V2, from the Meeting in Torino, July 2011, Internet: http://phenix.int-evry.fr.

Непатентная литература 2: Fuldseth, et al., "Tiles", JCTVC-F355-vl, from the Meeting in Torino, July 2011, Internet: http://phenix.int-evry.fr.

Непатентная литература 3: JCTVC-J1003_d7, "High efficiency video coding (HEVC) text specification draft 8", July 2012, page 73, "dependent_slice_flag", Internet: http://phenix.IT-sudparis.eu/j ct/

Сущность изобретения

Техническая проблема

[0006] Однако существует проблема, состоящая в том, что способ кодирования изображения, способ декодирования изображения и т.п. не имеют достаточной эффективности обработки.

[0007] Таким образом, настоящее изобретение обеспечивает способ кодирования изображения и способ декодирования изображения, которые способны увеличить эффективность обработки.

Решение проблемы

[0008] Способ кодирования изображения в соответствии с аспектом настоящего изобретения представляет собой способ кодирования изображения для выполнения обработки кодирования посредством разделения картинки на множество слайсов (вырезок), способ кодирования изображения содержит передачу битового потока, который включает в себя: флаг разрешения зависимого слайса, указывающий, включает ли в себя картинка зависимый слайс, над которым выполняется обработка кодирования в зависимости от результата обработки кодирования, выполненного над слайсом, отличающимся от текущего слайса; адрес слайса, указывающий начальную позицию текущего слайса; и указание зависимости, указывающее, является ли текущий слайс зависимым слайсом, при этом флаг разрешения зависимого слайса расположен в наборе параметров, общем для слайсов, адрес слайса расположен в заголовке текущего слайса, и указание зависимости расположено в заголовке слайса и расположено перед адресом слайса и после синтаксического элемента, идентифицирующего набор параметров.

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

[0010] Общие и частные аспекты, раскрытые выше, могут быть реализованы с использованием системы, способа, интегральной схемы, компьютерной программы или считываемого компьютером носителя записи, такого как компакт-диск (CD-ROM), или любой комбинации систем, способов, интегральных схем, компьютерных программ или считываемых компьютером носителей записи.

Благоприятные эффекты изобретения

[0011] Способ кодирования изображения и способ декодирования изображения в соответствии с настоящим изобретением способны увеличить эффективность кодирования.

Краткое описание чертежей

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

Фиг. 1 - блок-схема, показывающая пример кодера, соответствующего стандарту HEVC.

Фиг. 2 - блок-схема, показывающая пример декодера, соответствующего стандарту HEVC.

Фиг. 3 - схема, показывающая пример конфигурации изображения при волновой параллельной обработке (WPP).

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

Фиг. 5 - схема, показывающая пример заголовка пакета.

Фиг. 6 - схема, показывающая пример заголовка слайса из энтропийного слайса или зависимого слайса.

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

Фиг. 8 - схематический вид, показывающий зависимости и передачи сигналов, когда используются зависимый слайс и энтропийный слайс.

Фиг. 9А - схема, показывающая пример реализации синтаксиса зависимостей между уровнями, временных зависимостей и зависимостей между слайсами в стандарте НМ8.0.

Фиг. 9В - схема для объяснения этапов анализа, которые должны быть выполнены для анализа зависимостей между уровнями в стандарте НМ8.0.

Фиг. 9С - схема для объяснения этапов анализа, которые должны быть выполнены для анализа зависимостей между уровнями в стандарте НМ8.0.

Фиг. 10 - схема, показывающая пример позиции флага dependent_slice_flag.

Фиг. 11 - схема, показывающая пример синтаксиса, когда условие анализа относительно флага dependent_slice_enabled_flag на фиг. 10 удалено.

Фиг. 12 - схема, показывающая пример синтаксиса, когда флаг dependent_slice_flag перемещен перед флагом first_slice_in_pic_flag.

Фиг. 13 - схема, показывающая пример синтаксиса, когда флаг dependent_slice_flag перемещен перед синтаксическим элементом slice_address.

Фиг. 14 - схема, показывающая пример синтаксиса, когда флаг dependenteslice_flag перемещен в заголовке NAL.

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

Фиг. 16 - схема, показывающая пример синтаксиса заголовка слайса и заголовка элемента NAL, когда предполагается, что флаг dependent_slice_flag установлен равным 1 для некоторых типов элементов NAL (NALU).

Фиг. 17 показывает общую конфигурацию системы обеспечения контента для реализации службы распространения контента.

Фиг. 18 показывает общую конфигурацию системы цифрового вещания.

Фиг. 19 показывает блок-схему, иллюстрирующую пример конфигурации телевизора.

Фиг. 20 показывает блок-схему, иллюстрирующую пример конфигурации блока воспроизведения/записи информации, который считывает информацию с носителя записи и записывает информацию на носитель записи, являющийся оптическим диском.

Фиг. 21 показывает пример конфигурации носителя записи, являющегося оптическим диском.

Фиг. 22А показывает пример сотового телефона.

Фиг. 22В - блок-схема, показывающая пример конфигурации сотового телефона.

Фиг. 23 иллюстрирует структуру мультиплексированных данных.

Фиг. 24 схематично показывает, каким образом каждый поток мультиплексирован в мультиплексированных данных.

Фиг. 25 более подробно показывает, каким образом видеопоток сохранен в потоке пакетов PES.

Фиг. 26 показывает структуру пакетов TS и пакетов источника в мультиплексированных данных.

Фиг. 27 показывает структуру данных таблицы РМТ.

Фиг. 28 показывает внутреннюю структуру информации мультиплексированных данных.

Фиг. 29 показывает внутреннюю структуру информации атрибутов потока.

Фиг. 30 показывает этапы для идентификации видеоданных.

Фиг. 31 показывает пример конфигурации интегральной схемы для реализации способа кодирования движущегося изображения и способа декодирования движущегося изображения в соответствии с каждым из вариантов осуществления.

Фиг. 32 показывает конфигурацию для переключения между частотами возбуждения.

Фиг. 33 показывает этапы для идентификации видеоданных и переключения между частотами возбуждения.

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

Фиг. 35А - схема, показывающая пример конфигурации для совместного использования модуля блока обработки сигналов.

Фиг. 35В - схема, показывающая другой пример конфигурации для совместного использования модуля блока обработки сигналов.

Описание вариантов осуществления

[0013] (Базовые знания для настоящего раскрытия)

Относительно способа кодирования изображения и способа декодирования изображения, описанных в разделе "Уровень техники", авторы изобретения обнаружили следующую проблему.

[0014] Сначала будут описаны устройство кодирования изображения и устройство декодирования изображения в стандарте HEVC.

[0015] Видеосигнал, введенный в устройство кодирования изображения, является последовательностью изображений, называемых кадрами (картинками). Каждый кадр включает в себя двухмерную матрицу пикселей. Все упомянутые выше стандарты, основанные на гибридном видеокодировании, включают в себя разделение каждого отдельного видеокадра на меньшие блоки, включающие в себя множество пикселей. Размер блоков может изменяться, например, в соответствии с содержимым изображения. Способ кодирования обычно может различаться для каждого блока. Самый большой размер для такого блока, например, в стандарте HEVC составляет 64×64 пикселя. Он называется наибольшим элементом кодирования (LCU). Элемент LCU может быть рекурсивно разделен на 4 элемента CU.

[0016] В стандарте H.264/MPEG-4 AVC макроблок (обычно обозначающий блок размером 16×16 пикселей) является основным элементом изображения, для которого выполняется кодирование. Макроблок может быть далее разделен на меньшие подблоки. Этапы кодирования, включенные в способ кодирования, и/или этапы декодирования, включенные в способ декодирования, выполняются для каждого подблока.

[0017] [1-1. Гибридное видеокодирование]

Далее в простой форме описано гибридное видеокодирование.

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

[0019] Далее, коэффициенты преобразования, полученные из преобразования, подвергаются квантованию. Это квантование является (необратимым) сжатием с потерями. Обычно значения сжатых коэффициентов преобразования дополнительно подвергаются сжатию без потерь посредством энтропийного кодирования. Кроме того, вместе с кодированным видеосигналом кодируется и обеспечивается вспомогательная информация, необходимая для воссоздания кодированного видеосигнала. Например, это информация о пространственном предсказании, временном предсказании и/или квантовании.

[0020] [1-2. Конфигурация устройства кодирования изображения]

Фиг. 1 является примером типичного устройства кодирования изображения стандарта H.264/MPEG-4 AVC и/или HEVC (кодер 100).

[0021] Как показано на фиг. 1, кодер 100 включает в себя блок 105 вычитания, блок 110 преобразования, блок 120 квантования, блок 130 обратного преобразования, блок 140 суммирования, фильтр 150 удаления блочности, адаптивный контурный фильтр 160, память 170 кадров, блок 180 предсказания и энтропийный кодер 190.

[0022] Блок 180 предсказания получает сигнал s2 предсказания посредством временного предсказания или пространственного предсказания. Тип предсказания, используемого в блоке 180 предсказания, может различаться для каждого кадра или для каждого блока. Временное предсказание называется интерпредсказанием, и пространственное предсказание называется интрапредсказанием. Кодирование, использующее сигнал s2 предсказания посредством временного предсказания, называется интеркодированием, и кодирование, использующее сигнал s2 предсказания посредством пространственного предсказания, называется интракодированием. При получении сигнала предсказания с использованием временного предсказания используются кодированные изображения, сохраненные в памяти. При получении сигнала предсказания с использованием пространственного предсказания используется значение граничного пикселя кодированного или декодированного соседнего блока, сохраненного в памяти. Количество направлений предсказания в интрапредсказании зависит от размера элемента кодирования (CU). Следует отметить, что подробности предсказания будут описаны позже.

[0023] Блок 105 вычитания сначала определяет разность (сигнал е ошибки предсказания) между текущим блоком, который должен быть кодирован, входного изображения (=входной сигнал s1) и соответствующим блоком предсказания (=сигнал s2 предсказания). Разность используется для предсказания текущего блока, который должен быть кодирован. Следует отметить, что сигнал е ошибки предсказания также называется разностным сигналом предсказания.

[0024] Блок 110 преобразования преобразовывает сигнал е ошибки предсказания в коэффициенты. Обычно блок 110 преобразования использует ортогональное преобразование, такое как двухмерное дискретное косинусное преобразование (DCT) или его целочисленная версия. Ортогональное преобразование может значительно уменьшить корреляцию входного сигнала s1 (видеосигнала до кодирования). После преобразования низкочастотные компоненты обычно являются более важными для качества изображения, чем высокочастотные компоненты, таким образом, может быть потрачено больше битов для кодирования низкочастотных компонентов, чем высокочастотных компонентов.

[0025] Блок 120 квантования выполняет квантование коэффициентов и получает квантованные коэффициенты.

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

[0027] Энтропийный кодер 190 преобразовывает двухмерную матрицу квантованных коэффициентов в одномерный массив. Как правило, энтропийный кодер 190 выполняет это преобразование посредством так называемого зигзагообразного сканирования. Зигзагообразное сканирование начинается с коэффициента DC в верхнем левом углу двухмерного массива и выполняет сканирование двухмерного массива в предопределенной последовательности, заканчивающейся коэффициентом АС в правом нижнем углу. Энергия обычно концентрируется в левой верхней части двухмерной матрицы коэффициентов. Обычно, когда коэффициенты расположены в верхнем левом углу, они являются коэффициентами низкочастотной компоненты. Когда коэффициенты расположены в правом нижнем углу, они являются коэффициентами высокочастотной компоненты. Таким образом, зигзагообразное сканирование в результате дает массив, в котором последние значения обычно являются последовательно множеством единиц или нулей. Это позволяет выполнять эффективное кодирование с использованием кодов длин серий в качестве части фактического энтропийного кодирования или до него.

[0028] Стандарты H.264/MPEG-4 AVC и HEVC используют разные типы энтропийного кодирования. Хотя некоторые синтаксические элементы кодируются с фиксированной длиной, большинство синтаксических элементов кодируется с помощью кодов с переменной длиной. В частности, среди синтаксисов для кодирования сигналов ошибки предсказания (разностных сигналов предсказания) используются контекстно-адаптивные коды с переменной длиной (САВАС). Обычно для кодирования других синтаксических элементов используются различные другие целочисленные коды, отличающиеся от контекстно-адаптивных кодов с переменной длиной. Однако может использоваться контекстно-адаптивное двоичное арифметическое кодирование.

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

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

[0031] Энтропийный кодер 109 передает стороне декодера битовый поток, включающий в себя кодированные квантованные коэффициенты (кодированные видеосигналы) и кодированную вспомогательную информацию.

[0032] Стандарты H.264/MPEG-4 и H.264/MPEG-4 AVC, а также стандарт HEVC включают в себя два функциональных уровня, уровень видеокодирования (VCL) и уровень сетевой абстракции (NAL). Уровень VCL обеспечивает описанную выше функциональность кодирования. Уровень NAL инкапсулирует информационный элементы в стандартизированные элементы, называемые элементами NAL, в соответствии с их последующим применением, например, передачей по каналу или сохранением в устройстве хранения. Информационные элементы, инкапсулированные посредством уровня NAL, например, представляют собой (1) закодированный сигнал ошибки предсказания (сжатые видеоданные) или (2) другую информацию, необходимую для декодирования видеосигнала, такую как тип предсказания, параметр квантования, векторы движения и т.д. Существуют элементы NAL уровня VCL, содержащие сжатые видеоданные и соответствующую информацию, а также элементы не уровня VCL, инкапсулирующие дополнительные данные, такие как набор параметров, относящихся ко всей последовательности видеокадров, или вспомогательная информация улучшения (SEI), предоставляющая дополнительную информацию, которая может использоваться для улучшения выполнения декодирования.

[0033] Некоторые элементы NAL не уровня VCL включают в себя, например, наборы параметров. Набор параметров является набором параметров, относящихся к кодированию и декодированию некоторой части последовательности видеокадров. Например, существует набор параметров последовательности (SPS), который включает в себя параметр, относящийся к кодированию и декодированию всей последовательности изображений. В частности, набор параметров последовательности является синтаксической структурой, включающей в себя синтаксические элементы. В частности, синтаксические элементы применяются к нулю или более из всех кодированных последовательностей видеокадров, как определено содержимым элемента seq_parameter_set_id. seq_parameter_set_id является синтаксическим элементом, включенным в набор параметров изображения (описано ниже), на которое ссылается элемент pic_parameter_set_id. pic_parameter_set_id является синтаксическим элементом, включенным в каждый заголовок слайса.

[0034] Набор параметров изображения (PPS) является набором параметров, который определяет параметры, применяемые к кодированию и декодированию изображения последовательности изображений (последовательности видеокадров). В частности, набор PPS является синтаксической структурой, включающей в себя синтаксические элементы. Синтаксические элементы применяются к нулю или более из всех кодированных изображений, как определено элементом pic_parameter_set_id, который является синтаксическим элементом, находящимся в каждом заголовке слайса.

[0035] В соответствии с этим более просто отслеживать набор SPS, чем наборы PPS. Это вызвано тем, что набор PPS изменяется для каждого изображения, тогда как набор SPS является постоянным для всей последовательности видеокадров, которая может длиться несколько минут или даже часов.

[0036] Кодер 100 включает в себя блок воссоздания (так называемый блок декодирования), который получает воссозданный сигнал (так называемый декодированный сигнал) s3. С помощью блока воссоздания воссозданное изображение, полученное посредством воссоздания (декодирования) кодированного изображения, формируется и сохраняется в памяти 170 кадров.

[0037] Блок воссоздания включает в себя блок 130 обратного преобразования, блок 140 суммирования, фильтр 150 удаления блочности и адаптивный контурный фильтр 160.

[0038] Блок 130 обратного преобразования в соответствии с описанными выше этапами кодирования выполняет обратное квантование и обратное преобразование. Следует отметить, что сигнал е' ошибки предсказания, полученный из блока 130 обратного преобразования, отличается от сигнала е ошибки предсказания вследствие погрешности квантования, называемой также шумом квантования.

[0039] Блок 140 суммирования получает воссозданный сигнал s' посредством добавления воссозданного сигнала е' ошибки предсказания, воссозданного блоком 130 обратного преобразования, к сигналу s2 предсказания.

[0040] Фильтр 150 удаления блочности выполняет обработку фильтра удаления блочности для уменьшения шума квантования, который накладывается на воссозданный сигнал s' вследствие квантования. При этом, поскольку описанные выше этапы кодирования выполняются для каждого блока, существует случай, в котором граница блока является видимой, когда наложен шум (характеристики блочности шума). Наложенный шум называется шумом блочности. В частности, когда блоком 120 квантования выполнено сильное квантование, в воссозданном изображении (декодированном изображении) имеются более видимые границы блоков. Такой шум блочности имеет отрицательный эффект на визуальное восприятие человека, и это означает, что человек чувствует ухудшение качества изображения. Чтобы уменьшить шум блочности, фильтр 150 удаления блочности выполняет обработку фильтра удаления блочности над каждым воссозданным сигналом s' (воссозданным блоком).

[0041] Например, при обработке фильтра удаления блочности стандарта Н.264/MPEG-4 AVC для каждой области выбирается подходящая обработка фильтра. В случае высокой степени шума блочности применяется сильный. (узкополосный) низкочастотный фильтр, тогда как для низкой степени шума блочности применяется более слабый (широкополосный) низкочастотный фильтр. Сила низкочастотного фильтра определяется сигналом е2 предсказания и сигналом е1 ошибки предсказания. Обработка фильтра удаления блочности в целом сглаживает края блока. Это приводит к улучшенному субъективному качеству изображения декодированных сигналов. Отфильтрованное изображение используется для предсказания с компенсацией движения следующего изображения. Поскольку обработка фильтра также уменьшает ошибки предсказания, эффективность кодирования может быть улучшена.

[0042] Адаптивный контурный фильтр 160 применяет обработку адаптивного к отсчету смещения (SAO) и/или обработку адаптивного контурного фильтра (ALF) к воссозданному изображению s'' после обработки фильтра удаления блочности в фильтре 150 удаления блочности для получения воссозданного сигнала (декодированного сигнала) S3.

[0043] Обработка фильтра удаления блочности в фильтре 150 удалении блочности нацелена на улучшение субъективного качества. Между тем обработка ALF и обработка SAO в адаптивном контурном фильтре 160 нацелены на улучшение пиксельной точности ("объективного" качества). Обработка SAO используется для добавления значения смещения к пиксельному значению для каждого пикселя с использованием пиксельного значения непосредственно соседнего пикселя. Обработка ALF используется для компенсации искажения изображения, вызванного сжатием. Как правило, фильтр, используемый при обработке ALF, является фильтром Винера с коэффициентами фильтра, определенными таким образом, что среднеквадратическая погрешность (MSE) между воссозданным сигналом s' и входным сигналом si минимизирована. Коэффициенты фильтра обработки ALF вычисляются и передаются, например, для каждого кадра. Обработка ALF может быть применена ко всему кадру (изображению) или к локальным областям (блокам). Вспомогательная информация, указывающая, какие области должны быть отфильтрованы, может быть передана для каждого блока, для каждого кадра или для каждого дерева квадрантов.

[0044] Память 170 кадров (буфер кадров) сохраняет часть кодированного и воссозданного (декодированного) изображения (воссозданного сигнала s3). Сохраненное воссозданное изображение используется для декодирования интеркодированного блока.

[0045] Блок 180 предсказания получает сигнал s2 предсказания с использованием (того же самого) сигнала, который может использоваться и на стороне кодера, и на стороне декодера, чтобы поддержать совместимость между стороной кодера и стороной декодера. Сигнал, который может использоваться и на стороне кодера, и на стороне декодера, является воссозданным сигналом S3 (видеосигналом после обработки адаптивным контурным фильтром 160) на стороне кодера, который кодирован и затем воссоздан (декодирован), и воссозданным сигналом s4 (видеосигналом после обработки адаптивным контурным фильтром на фиг. 2) на стороне декодера, который декодирован из битового потока.

[0046] Блок 180 предсказания при формировании сигнала s2 предсказания посредством интеркодирования выполняет предсказание с использованием предсказания с компенсацией движения. Блок оценки движения блока 180 предсказания (не проиллюстрирован) находит наилучший соответствующий блок для текущего блока из блоков в пределах ранее кодированных и воссозданных видеокадров. Наиболее соответствующий блок затем становится сигналом предсказания. Относительное смещение (движение) между текущим блоком и его наиболее соответствующим блоком затем сообщается как данные движения, включенные во вспомогательную информацию, в виде трехмерных векторов движения. Сигнал передается вместе с кодированными видеоданными. Трехмерный вектор движения включает в себя два вектора движения пространственной размерности и один вектор движения временной размерности. Чтобы оптимизировать точность предсказания, векторы движения могут быть определены с пространственным субпиксельным разрешением, например, с разрешением в половину пикселя или с разрешением в четверть пикселя. Вектор движения с пространственным субпиксельным разрешением может указывать пространственную позицию в пределах уже воссозданного кадра, в которой нет реального доступного пиксельного значения, то есть субпиксельную позицию. Следовательно, необходима пространственная интерполяция таких пиксельных значений, чтобы выполнить предсказание с компенсацией движения. Это может быть достигнуто посредством фильтра интерполяции (интегрированного в пределах блока 180 предсказания на фиг. 1).

[0047] [1-3. Конфигурация устройства декодирования изображения]

Конфигурация декодера (устройства декодирования изображения) будет описана со ссылкой на фиг. 2.

[0048] Фиг. 2 является блок-схемой, показывающей пример декодера 200 в соответствии со стандартом видеокодирования Н.264/MPEG-4 AVC или HEVC.

[0049] Как показано на фиг. 2, декодер 200 включает в себя энтропийный декодер 290, блок 230 обратного преобразования, блок 240 суммирования, фильтр 250 удаления блочности, адаптивный контурный фильтр 260, память 270 кадров и блок 280 предсказания.

[0050] Битовый поток, введенный в декодер 200 (закодированный видеосигнал), сначала передается энтропийному декодеру 290.

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

[0052] Энтропийный декодер 290 преобразовывает декодированные квантованные коэффициенты в одномерном массиве в квантованные коэффициенты в двухмерном массиве посредством обратного сканирования. Энтропийный декодер 290 вводит квантованные коэффициенты в блок 230 обратного преобразования после того, как преобразовал их в двухмерный массив.

[0053] Блок 230 обратного преобразования выполняет обратное квантование и обратное преобразование над квантованными коэффициентами, преобразованными в двухмерный массив, для получения сигнала е' ошибки предсказания. Сигнал е' ошибки предсказания соответствует разностям, полученным посредством вычитания сигнала предсказания из сигнала, введенного в кодер, в случае, когда не внесен шум квантования и не возникла ошибка.

[0054] Блок 280 предсказания получает сигнал s2 предсказания посредством временного предсказания или пространственного предсказания. Такая информация, как тип предсказания, включенный во вспомогательную информацию, используется в случае интрапредсказания (пространственное предсказание). Кроме того, такая информация, как данные движения, включенные во вспомогательную информацию, используется в случае предсказания с компенсацией движения (интерпредсказание, временное предсказание).

[0055] Блок 240 суммирования складывает сигнал е' ошибки предсказания, полученный от блока 230 обратного преобразования 230, и сигнал е2 предсказания, полученный из блока 280 предсказания, для получения воссозданного сигнала s'.

[0056] Фильтр 250 удаления блочности выполняет обработку фильтра удаления блочности над воссозданным сигналом s'. Адаптивный контурный фильтр 260 применяет обработку SAO и обработку ALF к воссозданному сигналу s'', к которому применена обработка фильтра 250 удаления блочности. Декодированный сигнал S4, полученный из применения обработки SAO и обработки ALF в адаптивном контурном фильтре 260, сохраняется в памяти 270 кадров. Декодированный сигнал S4, сохраненный в памяти 270 кадров, используется в блоке 280 предсказания для предсказания следующего текущего блока, который должен быть декодирован, или текущего изображения, которое должно быть декодировано.

[0057] [1-4. Эффективность обработки]

Обычно параллелизм обработки рассматривается для увеличения эффективности обработки кодирования и обработки декодирования.

[0058] По сравнению со стандартом H.264/MPEG-4 AVC стандарт HEVC имеет функцию для поддержки параллельной обработки высокого уровня (обработка с распараллеливанием) кодирования и декодирования. В стандарте HEVC возможно разделить кадр на слайсы, так же как в стандарте H.264/MPEG-4 AVC. При этом слайсы являются группами элементов LCU в порядке сканирования. В стандарте Н.264/MPEG-4 AVC слайсы могут быть декодированы независимо, и никакое пространственное предсказание между слайсами не применяется. Таким образом, параллельная обработка может быть выполнена для каждого слайса.

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

[0060] Чтобы обеспечить более эффективную параллельную обработку, предложена волновая параллельная обработка (WPP). Алгоритм WPP поддерживает постоянную зависимость, которая отличается от параллельной обработки, в которой каждый из слайсов является независимым.

[0061] Последующее описание будет сделано посредством ссылки на случай, в котором изображение содержит элементы LCU, которые в этих изображениях расположены в матрице, и каждая строка элементов LCU содержит один слайс (см. фиг. 3). В алгоритме WPP среди элементов LCU, содержащих текущую строку 32 элементов LCU, в качестве вероятностной модели кодирования САВАС для сброса состояния кодирования САВАС первого элемента LCU (головного элемента LCU) используется вероятностная модель кодирования САВАС сразу после завершения обработки над вторым элементом LCU предыдущей строки 31 элемента LCU. Поддерживаются все зависимости между блоками. Это дает возможность распараллеливания декодирования строк элементов LCU. Выбор времени для начала обработки каждой строки элементов LCU задерживается на два элемента LCU относительно предыдущего. Информация о начальных точках для начала декодирования строки элемента LCU включена в заголовок слайса. Алгоритм WPP подробно описан в непатентной литературе 1.

[0062] Другой подход для улучшения распараллеливания называется фрагментами. В соответствии с этим кадр (изображение) разделяется на фрагменты. Фрагменты являются прямоугольными группами элементов LCU. Границы между фрагментами установлены таким образом, что все изображение разделено в матрице. Фрагменты обрабатываются в порядке растровой развертки.

[0063] Все зависимости разрываются на границах фрагментов. Энтропийное кодирование, такое как кодирование САВАС, также сбрасывается в начале каждого фрагмента. Только обработка фильтра удаления блочности и обработка адаптивного к отсчету смещения могут быть применены через границы фрагментов. Таким образом, фрагменты могут кодироваться и декодироваться параллельно. Фрагменты подробно описаны в непатентной литературе 2 и непатентной литературе 3.

[0064] Кроме того, чтобы улучшить концепцию слайсов и сделать ее подходящей для параллелизма, а не для устойчивости к ошибкам, что было первоначальной целью слайсов в стандарте H.264/MPEG-4 AVC, была предложена концепция зависимых слайсов и энтропийных слайсов.

[0065] Другими словами, в стандарте HEVC существует три типа поддерживаемых слайсов: (1) обычные слайсы; (2) энтропийные слайсы; и (3) зависимые слайсы.

[0066] Обычные слайсы обозначают слайсы, уже известные из стандарта Н.264/MPEG-4 AVC. Между обычными слайсами не разрешается пространственное предсказание. Другими словами, предсказание через границы слайсов не разрешается. Это означает, что обычный слайс кодирован без ссылок на какой-либо другой слайс. Чтобы обеспечить независимое декодирование таких слайсов, кодирование САВАС перезапускается в начале каждого слайса.

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