УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, СПОСОБЫ УПРАВЛЕНИЯ ИМИ И ПРОГРАММА
IMAGE ENCODING DEVICE, IMAGE DECODING DEVICE, METHODS FOR CONTROLLING THEM AND PROGRAM

Область техники, к которой относится изобретение
[0001] Настоящее изобретение относится к устройству кодирования изображений, к устройству декодирования изображений, к способам их управления и к программе.
Уровень техники
[0002] В качестве способа кодирования для записи сжатия движущихся изображений, известен способ кодирования на основе HEVC (стандарта высокоэффективного кодирования видео) (далее называется "HEVC"). В HEVC, чтобы повышать эффективность кодирования, используется базисный блок, имеющий размер, больший размера традиционного макроблока (16 пикселов x 16 пикселов). Базисный блок с большим размером называется "CTU (единицей дерева кодирования)", и его размер составляет максимум 64 пиксела x 64 пиксела. CTU дополнительно разделяется на субблоки, каждый из которых представляет собой единицу для того, чтобы выполнять прогнозирование или преобразование.
[0003] Кроме того, HEVC использует обработку суммирования весового коэффициента с коэффициентами (которые далее называются "коэффициентами ортогонального преобразования") после ортогонального преобразования, что называется "матрицей квантования", на основе частотного компонента. За счет дополнительного снижения данных высокочастотного компонента, ухудшение характеристик которого является незаметным для человеческого зрения, эффективность сжатия может становиться высокой при поддержании качества изображений. PTL 1 раскрывает технологию кодирования такой матрицы квантования.
[0004] В последние годы, активно проводятся действия на предмет того, чтобы реализовывать международную стандартизацию способа кодирования с более высокой эффективностью в качестве замены HEVC. JVET (объединенная экспертная группа по видеостандартам) основана между ISO/IEC и ITU-T, и продвигается стандартизация способа кодирования на основе VVC (стандарта универсального кодирования видео) (далее называется "VVC"). Чтобы повышать эффективность кодирования, в дополнение к традиционному внутреннему прогнозированию и внешнему прогнозированию, изучается новый способ прогнозирования (который далее называется "взвешенным внутренним/внешним прогнозированием") с использованием внутренне прогнозированных пикселов и внешне прогнозированных пикселов.
Список библиографических ссылок
Патентные документы
[0005] PTL 1. Выложенный патент (Япония) номер 2013-38758
Сущность изобретения
Техническая задача
[0006] Так же в VVC, изучено введение матрицы квантования, аналогично HEVC. Тем не менее, матрица квантования в HEVC основана на традиционном способе прогнозирования, таком как внутреннее прогнозирование или внешнее прогнозирование, и не соответствует взвешенному внутреннему/внешнему прогнозированию, которое представляет собой новый способ прогнозирования. По этой причине, управление квантованием согласно частотному компоненту не может быть выполнено для ошибки взвешенного внутреннего/внешнего прогнозирования, и субъективное качество изображений не может быть повышено.
[0007] Настоящее изобретение осуществлено с учетом вышеописанной проблемы и предоставляет технологию обеспечения возможности обработки квантования с использованием матрицы квантования, соответствующей взвешенному внутреннему/внешнему прогнозированию, и повышения субъективного качества изображений.
Решение задачи
[0008] Чтобы решить эту проблему, например, устройство кодирования изображений согласно настоящему изобретению имеет следующую конфигурацию. Таким образом, предоставляется устройство кодирования изображений для кодирования изображения, содержащее:
- средство прогнозирования для формирования, для интересующего блока, имеющего предопределенный размер в качестве цели кодирования в изображении, прогнозированного изображения как из внутреннего прогнозного изображения, полученного посредством обработки внутреннего прогнозирования, так и из внешнего прогнозного изображения, полученного посредством обработки внешнего прогнозирования, и получения ошибки прогнозирования, которая представляет собой разность между интересующим блоком и прогнозированным изображением;
- средство преобразования для частотного преобразования ошибки прогнозирования, полученной посредством средства прогнозирования;
- средство квантования для квантования, с использованием матрицы квантования, коэффициента преобразования, полученного посредством средства преобразования; и
- средство кодирования для энтропийного кодирования коэффициента преобразования после квантования посредством средства квантования.
Преимущества изобретения
[0009] Согласно настоящему изобретению, можно выполнять квантование с использованием матрицы квантования даже для ошибки в новом способе прогнозирования с использованием как внутренних прогнозных пикселов, так и внешних прогнозных пикселов и повышать субъективное качество изображений.
[0010] Другие признаки и преимущества настоящего изобретения должны становиться очевидными из нижеприведенного описания, рассматриваемого в сочетании с прилагаемыми чертежами. Следует отметить, что идентичные ссылки с номерами обозначают идентичные или аналогичные компоненты на всех прилагаемых чертежах.
Краткое описание чертежей
[0011] Прилагаемые чертежи, которые содержатся и составляют часть описания изобретения, иллюстрируют варианты осуществления изобретения и вместе с описанием служат для того, чтобы пояснять принципы изобретения.
Фиг. 1 является блок-схемой, показывающей конфигурацию устройства кодирования изображений согласно первому варианту осуществления;
Фиг. 2 является блок-схемой, показывающей конфигурацию устройства декодирования изображений согласно второму варианту осуществления;
Фиг. 3 является блок-схемой последовательности операций способа, показывающей обработку кодирования изображений устройства кодирования изображений согласно первому варианту осуществления;
Фиг. 4 является блок-схемой последовательности операций способа, показывающей обработку декодирования изображений устройства декодирования изображений согласно второму варианту осуществления;
Фиг. 5 является блок-схемой, показывающей пример аппаратной конфигурации компьютера, применимого в качестве устройства кодирования изображений или устройства декодирования;
Фиг. 6A является видом, показывающим пример структуры потока битов, сформированной посредством первого варианта осуществления;
Фиг. 6B является видом, показывающим пример структуры потока битов, сформированной посредством первого варианта осуществления;
Фиг. 7A является видом, показывающим пример разделения на субблоки, используемого в варианте осуществления.
Фиг. 7B является видом, показывающим пример разделения на субблоки, используемого в варианте осуществления;
Фиг. 7C является видом, показывающим пример разделения на субблоки, используемого в варианте осуществления;
Фиг. 7D является видом, показывающим пример разделения на субблоки, используемого в варианте осуществления;
Фиг. 7E является видом, показывающим пример разделения на субблоки, используемого в варианте осуществления;
Фиг. 7F является видом, показывающим пример разделения на субблоки, используемого в варианте осуществления;
Фиг. 8A является видом, показывающим пример матрицы квантования, используемой в варианте осуществления;
Фиг. 8B является видом, показывающим пример матрицы квантования, используемой в варианте осуществления;
Фиг. 8C является видом, показывающим пример матрицы квантования, используемой в варианте осуществления;
Фиг. 9 является видом, показывающим способ сканирования элемента матрицы квантования;
Фиг. 10A является видом, показывающим матрицу разностных значений матрицы квантования;
Фиг. 10B является видом, показывающим матрицу разностных значений матрицы квантования;
Фиг. 10C является видом, показывающим матрицу разностных значений матрицы квантования;
Фиг. 11A является видом, показывающим пример таблицы кодирования для матрицы квантования; и
Фиг. 11B является видом, показывающим пример таблицы кодирования для матрицы квантования.
Подробное описание вариантов осуществления
[0012] В дальнейшем подробно описываются варианты осуществления согласно настоящему изобретению со ссылкой на прилагаемые чертежи. Следует отметить, что варианты осуществления, которые описываются ниже, представляют собой просто примеры, и настоящее изобретение не ограничено проиллюстрированной конфигурацией. Например, в нижеприведенном пояснении, используются такие термины, как "базисный блок" и "субблок". Тем не менее, варианты осуществления могут применяться к различным единицам обработки, называемым "блоком" и "единицей" в технологии кодирования изображений.
Первый вариант осуществления
[0013]
Фиг. 1 является блок-схемой, показывающей конфигурацию устройства кодирования изображений согласно первому варианту осуществления. Устройство кодирования изображений включает в себя модуль 150 управления, выполненный с возможностью управлять составляющими элементами, которые описываются ниже, и выполнять управление всем устройством. Модуль 150 управления включает в себя CPU, ROM, которое сохраняет программы, которые должны выполняться посредством CPU, различные виды параметров и т.п., и RAM, используемое в качестве рабочей области CPU. Следует отметить, что ОС (операционная система), программы и параметры, сохраненные в ROM или другом энергонезависимом устройстве хранения данных, могут загружаться в RAM, и после этого, программы могут выполняться под управлением ОС.
[0014] Помимо этого, устройство кодирования изображений включает в себя входной терминал 101, модуль 102 разделения на блоки, модуль 103 запоминания матриц квантования, модуль 104 прогнозирования, модуль 105 преобразования/квантования, модуль 106 обратного квантования/обратного преобразования, модуль 107 повторного формирования изображений, запоминающее устройство 108 кадров, модуль 109 внутриконтурной фильтрации, модуль 110 кодирования, модуль 111 комбинированного кодирования, выходной терминал 112 и модуль 113 кодирования матриц квантования.
[0015] В вышеописанной конфигурации, данные изображений (например, 30 кадр/с) подается из источника формирования изображений (не показан) во входной терминал 101 устройства. Следует отметить, что хотя источник формирования изображений может иметь любой тип, в качестве простых примеров, может использоваться модуль захвата изображений или видеокамера, или жесткий диск, или носитель данных, сохраняющий данные целевых изображений кодирования.
[0016] Модуль 102 разделения на блоки разделяет данные изображений одного кадра, вводимого через входной терминал 101, на множество базисных блоков и предоставляет данные изображений каждого базисного блока в модуль 104 прогнозирования последующей стадии.
[0017] Модуль 103 запоминания матриц квантования запоминает множество матриц квантования, которые должны использоваться в обработке квантования. Способ формирования матрицы квантования, которая должна запоминаться, не ограничен конкретным образом. Пользователь может вводить матрицу квантования, матрица квантования может вычисляться из характеристики входного изображения, либо может использоваться матрица квантования, обозначенная заранее в качестве начального значения. В этом варианте осуществления, формируются и запоминаются двумерные матрицы 800-802 квантования, соответствующие трем типам ортогонального преобразования (частотного преобразования) в 8×8 пикселов, показанных на фиг. 8A-8C.
[0018] Модуль 104 прогнозирования выполняет разделение на субблоки для данных изображений каждого базисного блока и выполняет внутреннее прогнозирование, которое представляет собой прогнозирование в кадре, или внешнее прогнозирование, которое представляет собой прогнозирование между кадрами на основе субблоков, за счет этого формируя данные прогнозированных изображений. Кроме того, модуль 104 прогнозирования вычисляет данные ошибок прогнозирования из данных изображений и данных прогнозированных изображений субблока и выводит их. Модуль 104 прогнозирования также выводит информацию, необходимую для прогнозирования, например, информацию разделения на субблоки, режим прогнозирования, вектор движения и т.п., вместе с ошибкой прогнозирования. Информация, необходимая для прогнозирования, далее называется "информацией прогнозирования".
[0019] Модуль 105 преобразования/квантования выполняет ортогональное преобразование (частотное преобразование) данных ошибок прогнозирования, предоставляемых из модуля 104 прогнозирования на основе субблоков, за счет этого получая коэффициенты преобразования. Модуль 105 преобразования/квантования затем квантует коэффициенты преобразования интересующего субблока с использованием соответствующей матрицы квантования, запоминаемой посредством модуля 103 запоминания матриц квантования (коэффициенты преобразования после квантования далее называются просто "квантованными коэффициентами").
[0020] Модуль 106 обратного квантования/обратного преобразования обратно квантует квантованные коэффициенты, вводимые из модуля 105 преобразования/квантования, с использованием соответствующей матрицы квантования, запоминаемой посредством модуля 103 запоминания матриц квантования, за счет этого повторно формируя (извлекая) коэффициенты преобразования. Модуль 106 обратного квантования/обратного преобразования также выполняет обратное ортогональное преобразование коэффициентов преобразования, за счет этого повторно формируя данные ошибок прогнозирования.
[0021] Модуль 107 повторного формирования изображений надлежащим образом обращается к запоминающем устройству 108 кадров на основе информации прогнозирования, вводимой из модуля 104 прогнозирования, за счет этого формируя данные прогнозированных изображений. Модуль 107 повторного формирования изображений формирует повторно сформированные данные изображений из сформированных данных прогнозированных изображений и данных ошибок прогнозирования из модуля 106 обратного квантования/обратного преобразования и выводит их в запоминающее устройство 108 кадров снова.
[0022] Модуль 109 внутриконтурной фильтрации выполняет обработку внутриконтурной фильтрации, такую как фильтрация для удаления блочности или дискретизированное адаптивное смещение для повторно сформированных данных изображений из модуля 107 повторного формирования изображений, которые сохраняются в запоминающем устройстве 108 кадров, и сохраняет данные изображений после обработки фильтрации в запоминающем устройстве 108 кадров снова.
[0023] Модуль 110 кодирования кодирует квантованные коэффициенты, вводимые из модуля 105 преобразования/квантования, и информацию прогнозирования, вводимую из модуля 104 прогнозирования, за счет этого формируя и выводя кодированные данные.
[0024] Модуль 113 кодирования матриц квантования кодирует матрицу квантования, вводимую из модуля 103 запоминания матриц квантования, за счет этого формируя и выводя кодированные данные матрицы квантования.
[0025] Модуль 111 комбинированного кодирования формирует кодированные данные заголовка с использованием кодированных данных матрицы квантования, которая представляет собой вывод из модуля 113 кодирования матриц квантования. Кроме того, модуль 111 комбинированного кодирования формирует поток битов посредством комбинирования кодированных данных изображения, вводимых из модуля 110 кодирования, со сформированными кодированными данными заголовка и выводит поток битов наружу через выходной терминал 112.
[0026] Следует отметить, что назначение вывода не ограничено конкретным образом и может представлять собой устройство хранения данных, такой как носитель записи или файловый сервер в сети.
[0027] Ниже подробнее описывается операция кодирования изображений устройства кодирования изображений согласно варианту осуществления.
[0028] Во-первых, модуль 103 запоминания матриц квантования формирует матрицу квантования. Матрица квантования формируется в соответствии с размером субблока, который должен быть кодирован, или типом способа прогнозирования. В этом варианте осуществления, формируется матрица квантования, имеющая размер в 8×8 пикселов, соответствующая базисному блоку 700 в 8×8 пикселов, показанному на фиг. 7A. Тем не менее, матрица квантования, которая должна формироваться, не ограничена этим, и может формироваться матрица квантования, имеющая размер в 4×8 пикселов, 8×4 пикселов или 4×4 пикселов, согласно форме субблока. Способ определения каждого элемента матрицы квантования не ограничен конкретным образом. Например, может использоваться предопределенное начальное значение, либо элементы могут отдельно задаваться. Альтернативно, элементы могут формироваться в соответствии с характеристикой изображения.
[0029] Модуль 103 запоминания матриц квантования запоминает такую сформированную матрицу квантования. На фиг. 8A-8C ссылки с номерами 800-802 обозначают матрицы квантования, сформированные и запоминаемые посредством модуля 103 запоминания матриц квантования согласно варианту осуществления. Матрица 800 квантования, показанная на фиг. 8A, представляет матрицу квантования, используемую для внутреннего прогнозирования. Матрица 801 квантования, показанная на фиг. 8B, представляет матрицу квантования, используемую для внешнего прогнозирования. Матрица 802 квантования, показанная на фиг. 8C, представляет матрицу квантования, соответствующую взвешенному внутреннему/внешнему прогнозированию. Каждая из матриц 800-802 квантования формируется посредством 8×8 элементов (значений шага квантования), как показано на фиг. 8A-8C. В этом варианте осуществления, три типа матриц 800-802 квантования, показанных на фиг. 8A-8C, запоминаются в двумерной форме. Тем не менее, элементы в матрицах квантования не ограничены этим, как и следовало ожидать. Также можно запоминать множество матриц квантования в соответствии с идентичным способом прогнозирования в зависимости от размера субблока или в зависимости от того, представляет цель кодирования собой блок яркости или цветоразностный блок. В общем, матрица квантования реализует обработку квантования согласно визуальной характеристике человека. Следовательно, как показано на фиг. 8A-8C, элемент для DC-компонентов, соответствующих верхней левой угловой части каждой из матриц 800-802 квантования, является небольшим, и элемент для AC-компонента, соответствующего нижней правой части, является большим.
[0030] Модуль 113 кодирования матриц квантования последовательно считывает матрицы 800-802 квантования, сохраненные в двумерной форме, из модуля 103 запоминания матриц квантования, вычисляет разности посредством сканирования элементов и размещает разности в одномерной матрице. В этом варианте осуществления, способ сканирования, показанный на фиг. 9, используется для матриц 800-802 квантования, показанных на фиг. 8A-8C, и разность между каждым элементом и непосредственно предшествующим элементом вычисляется в порядке сканирования. Например, матрица 802 квантования в 8×8 пикселов, показанная на фиг. 8C, сканируется посредством способа сканирования, показанного на фиг. 9. Рядом с первым элементом "8", расположенным в верхнем левом углу, сканируется элемент "11", расположенный непосредственно под ним, и разность "+3" вычисляется. Чтобы кодировать первый элемент ("8" в этом варианте осуществления) матрицы 802 квантования, вычисляется разность относительно предопределенного начального значения (например, "8"). Тем не менее, значение не ограничено этим, как и следовало ожидать, и может использоваться разность относительно произвольного значения или значение самого первого элемента.
[0031] Как описано выше, в этом варианте осуществления, из матриц 800-802 квантования, показанных на фиг. 8A-8C, одномерные разностные матрицы 1000-1002, показанные на фиг. 10A-10C, формируются с использованием способа сканирования, показанного на фиг. 9. Модуль 113 кодирования матриц квантования дополнительно кодирует разностные матрицы 1000-1002, за счет этого формируя кодированные данные матрицы квантования. В этом варианте осуществления, кодирование выполняется с использованием таблицы кодирования, показанной на фиг. 11A. Тем не менее, таблица кодирования не ограничена этим, и, например, может использоваться таблица кодирования, показанная на фиг. 11B. Таким образом, сформированные кодированные данные матрицы квантования выводятся в модуль 111 комбинированного кодирования последующей стадии.
[0032] Возвращаясь к фиг. 1, модуль 111 комбинированного кодирования кодирует информацию заголовка, необходимую для кодирования данных изображений, и комбинирует кодированные данные матриц 800-802 квантования. Далее описывается кодирование данных изображений.
[0033] Модуль 102 разделения на блоки разделяет данные изображений одного кадра, вводимого из входного терминала 101, на множество базисных блоков и предоставляет данные изображений каждого базисного блока в модуль 104 прогнозирования. В этом варианте осуществления, размер базисного блока составляет 8×8 пикселов, как описано выше.
[0034] Модуль 104 прогнозирования выполняет обработку прогнозирования для данных изображений базисного блока, вводимых из модуля 102 разделения на блоки. Более конкретно, модуль 104 прогнозирования определяет способ разделения на субблоки для разделения базисного блока на более точные субблоки и определяет режим прогнозирования, к примеру, внутреннее прогнозирование, внешнее прогнозирование или взвешенное внутреннее/внешнее прогнозирование на основе субблоков.
[0035] Фиг. 7A-7F показывают примеры шаблонов разделения на субблоки. Ссылка с номером 700, указывающая толстую рамку на внешней стороне на каждом из фиг. 7A-7F, обозначает базисный блок, который имеет размер в 8×8 пикселов в варианте осуществления. Каждый прямоугольник в толстой рамке представляет субблок. Фиг. 7A показывает пример базисного блока=субблок. Фиг. 7B показывает пример традиционного разделения на квадратные субблоки, и базисный блок 700 в 8×8 пикселов разделяется на четыре субблока, имеющие размер в 4×4 пикселов. С другой стороны, фиг. 7C-7F показывают примеры разделения на прямоугольные субблоки. Фиг. 7C показывает пример разделения базисного блока 700 на два вертикально удлиненных субблока, имеющие размер в 4×8 пикселов. Фиг. 7D показывает пример разделения базисного блока 700 на два горизонтально удлиненных субблока, имеющих размер в 8×4 пикселов. Фиг. 7E и 7F показывают разделение базисного блока 700 на три прямоугольных субблока с соотношением 1:2:1. Как описано выше, обработка кодирования выполняется с использованием не только квадратных субблоков, но также и прямоугольных субблоков.
[0036] В этом варианте осуществления, используется только способ (фиг. 7A), в котором базисный блок в 8×8 пикселов не разделяется, как описано выше. Тем не менее, способ разделения на субблоки не ограничен этим. Разделение на основе дерева квадрантов, как показано на фиг. 7B, разделение на основе троичного дерева, как показано на фиг. 7E или 7F, или разделение на основе двоичного дерева, как показано на фиг. 7C или 7D, может использоваться. Если используется разделение на субблоки, отличное от разделения, показанного на фиг. 7A, модуль 103 запоминания матриц квантования формирует матрицу квантования, соответствующую субблоку, который должен использоваться. Сформированная матрица квантования кодируется посредством модуля 113 кодирования матриц квантования.
[0037] В дальнейшем заново описывается способ прогнозирования, используемый в этом варианте осуществления. В этих вариантах осуществления, используются три типа способов прогнозирования, т.е. внутреннее прогнозирование, внешнее прогнозирование и взвешенное внутреннее/внешнее прогнозирование. При внутреннем прогнозировании, с использованием кодированных пикселов, пространственно расположенных вокруг целевого блока кодирования, формируются прогнозированные пикселы целевого блока кодирования, а также формируется режим внутреннего прогнозирования, представляющий способ внутреннего прогнозирования, к примеру, горизонтальное прогнозирование, вертикальное прогнозирование или DC-прогнозирование. При внешнем прогнозировании, с использованием кодированных пикселов кадра, временно отличающегося от целевого блока кодирования, формируются прогнозированные пикселы целевого блока кодирования, и также формируется информация движения, представляющая кадр, на который следует ссылаться, вектор движения и т.п.
[0038] При взвешенном внутреннем/внешнем прогнозировании, прогнозированные пикселы целевого блока кодирования формируются посредством получения среднего взвешенного пиксельных значений, сформированных посредством вышеописанного внутреннего прогнозирования, и пиксельных значений, сформированных посредством вышеописанного внешнего прогнозирования. Например, вычисление выполняется с использованием следующего:
p[x][y]={w x pinter[x][y]+(8-w) x pintra[x][y]}>>3… (1)
(">>" представляет побитовый сдвиг направо).
В уравнении (1), p[x][y] является прогнозированным пикселом посредством взвешенного внутреннего/внешнего прогнозирования для координат (X, Y) в интересующем блоке в качестве цели кодирования. Кроме того, pinter[x][y] представляет пиксельное значение во внешнем прогнозном изображении для координат (X, Y) в интересующем блоке. Помимо этого, pintra[x][y] представляет пиксельное значение во внутреннем прогнозном изображении для координат (X, Y) в интересующем блоке. w представляет значение весового коэффициента для пиксельных значений внешнего прогнозирования и пиксельных значений внутреннего прогнозирования. В этом варианте осуществления, когда w=4, весовые коэффициенты для пиксельных значений внешнего прогнозирования и пиксельных значений внутреннего прогнозирования становятся равными. Другими словами, если w>4, весовой коэффициент для пиксельных значений внешнего прогнозирования увеличивается. Если w<4, весовой коэффициент для пиксельных значений внутреннего прогнозирования увеличивается. При взвешенном внутреннем/внешнем прогнозировании, прогнозированные пикселы целевого блока кодирования формируются таким способом, и также формируется информация режима внутреннего прогнозирования и движения, используемая для того, чтобы формировать прогнозированные пикселы.
[0039] Модуль 104 прогнозирования формирует данные прогнозированных изображений целевого субблока кодирования из определенного режима прогнозирования и кодированных пикселов. Затем модуль 104 прогнозирования формирует данные ошибок прогнозирования посредством вычисления разности между данными изображений целевого субблока кодирования и сформированными данными прогнозированных изображений и предоставляет сформированные данные ошибок прогнозирования в модуль 105 преобразования/квантования. Модуль 104 прогнозирования также предоставляет информацию прогнозирования, такую как разделение на субблоки, режим прогнозирования (информацию, представляющую то, что из внутреннего прогнозирования, внешнего прогнозирования и взвешенного внутреннего/внешнего прогнозирования используется) и векторные данные, в модуль 110 кодирования и модуль 107 повторного формирования изображений.
[0040] Модуль 105 преобразования/квантования выполняет ортогональное преобразование/квантование для входных данных ошибок прогнозирования, за счет этого формируя квантованные коэффициенты. Более конкретно, модуль 105 преобразования/квантования выполняет обработку ортогонального преобразования, соответствующую размеру данных ошибок прогнозирования, за счет этого формируя коэффициенты ортогонального преобразования. Затем, модуль 105 преобразования/квантования выбирает матрицу квантования, сохраненную в модуле 103 запоминания матриц квантования в соответствии с режимом прогнозирования, и квантует коэффициенты ортогонального преобразования с использованием выбранной матрицы квантования, за счет этого формируя квантованные коэффициенты. В этом варианте осуществления, матрица 800 квантования, показанная на фиг. 8A, используется для субблока, который подвергнут обработке прогнозирования посредством внутреннего прогнозирования. Кроме того, матрица 801 квантования, показанная на фиг. 8B, используется для субблока, который подвергнут внешнему прогнозированию. Матрица 802 квантования, показанная на фиг. 8C, используется для субблока, который подвергнут взвешенному внутреннему/внешнему прогнозированию. Тем не менее, матрицы квантования, которые должны использоваться, не ограничены этим. Затем модуль 105 преобразования/квантования предоставляет сформированные квантованные коэффициенты в модуль 110 кодирования и модуль 106 обратного квантования/обратного преобразования.
[0041] Модуль 106 обратного квантования/обратного преобразования обратно квантует входные квантованные коэффициенты субблока с использованием матрицы квантования, сохраненной в модуле 103 запоминания матриц квантования, за счет этого повторно формируя коэффициенты преобразования. Модуль 106 обратного квантования/обратного преобразования также выполняет обратное ортогональное преобразование повторно сформированных коэффициентов преобразования, за счет этого повторно формируя данные ошибок прогнозирования. Для обработки обратного квантования, матрица квантования, соответствующая режиму прогнозирования целевого блока кодирования, используется, аналогично модулю 105 преобразования/квантования. Более конкретно, используется матрица квантования, идентичная матрице квантования, используемой посредством модуля 105 преобразования/квантования. Модуль 106 обратного квантования/обратного преобразования затем предоставляет повторно сформированные данные ошибок прогнозирования в модуль 107 повторного формирования изображений.
[0042] Модуль 107 повторного формирования изображений надлежащим образом обращается к запоминающем устройству 108 кадров на основе информации прогнозирования, вводимой из модуля 104 прогнозирования, за счет этого повторно формируя данные прогнозированных изображений. Модуль 107 повторного формирования изображений затем повторно формирует данные изображений субблока посредством суммирования повторно сформированного прогнозированного изображения и данных ошибок прогнозирования, вводимых из модуля 106 обратного квантования/обратного преобразования, и сохраняет данные изображений в запоминающем устройстве 108 кадров.
[0043] Модуль 109 внутриконтурной фильтрации считывает повторно сформированные данные изображений из запоминающего устройства 108 кадров и выполняет обработку внутриконтурной фильтрации, такую как фильтрация для удаления блочности. Модуль 109 внутриконтурной фильтрации затем сохраняет данные изображений, которые подвергнуты обработке фильтрации, в запоминающем устройстве 108 кадров снова.
[0044] Модуль 110 кодирования энтропийно кодирует квантованные коэффициенты, сформированные посредством модуля 105 преобразования/квантования, и информацию прогнозирования, вводимую из модуля 104 прогнозирования на основе субблоков, за счет этого формируя кодированные данные. Способ энтропийного кодирования не ограничен конкретным образом, и может использоваться кодирование кодом Голомба, арифметическое кодирование, кодирование кодом Хаффмана и т.п. Сформированные кодированные данные подаются в модуль 111 комбинированного кодирования.
[0045] Модуль 111 комбинированного кодирования формирует поток битов посредством мультиплексирования кодированных данных, вводимых из модуля 110 кодирования и т.п., вместе с вышеописанными кодированными данными заголовка. В завершение, поток битов выводится из выходного терминала 112 наружу.
[0046] Фиг. 6A показывает пример структуры данных потока битов, выводимого в первом варианте осуществления. Заголовок последовательности включает в себя кодированные данные матрицы квантования, которая формируется посредством кодированных данных каждого элемента. Тем не менее, позиция, которую следует кодировать, не ограничена этим, и данные могут кодироваться в части заголовки кинокадра или другой части заголовка. Если матрица квантования должна изменяться в одной последовательности, матрица квантования может обновляться посредством ее нового кодирования. В это время, все матрицы квантования могут перезаписываться, или некоторые из них могут изменяться за счет указания перезаписи режима прогнозирования матрицы квантования, соответствующей матрице квантования.
[0047] Ниже описывается процедура обработки для обработки кодирования одного кадра посредством устройства кодирования изображений согласно первому варианту осуществления со ссылкой на блок-схему последовательности операций способа по фиг. 3. Следует отметить, что обработка каждого этапа в нижеприведенном описании выполняется посредством его основного объекта под управлением модуля 150 управления.
[0048] Во-первых, до кодирования изображения, на этапе S301, модуль 103 запоминания матриц квантования формирует двумерные матрицы квантования и запоминает их. Модуль 103 запоминания матриц квантования согласно этому варианту осуществления формирует матрицы 800-802 квантования, соответствующие субблокам в 8×8 пикселов, показанным на фиг. 8A-8C, и соответствующие способам прогнозирования, включающим в себя внутреннее прогнозирование, внешнее прогнозирование и взвешенное внутреннее/внешнее прогнозирование, и запоминает их.
[0049] На этапе S302, модуль 113 кодирования матриц квантования сканирует матрицы 800-802 квантования, сформированные и запоминаемые на этапе S301 для того, чтобы вычислять разности между элементами, и формирует одномерные разностные матрицы. Модуль 113 кодирования матриц квантования согласно этому варианту осуществления формирует разностные матрицы 1000-1002, показанные на фиг. 10A-10C, с использованием способа сканирования, показанного на фиг. 9, из матриц 800-802 квантования, показанных на фиг. 8A-8C. Модуль 113 кодирования матриц квантования также формирует двоичные коды из сформированных разностных матриц 1000-1002 посредством ссылки на таблицу кодирования, показанную на фиг. 11A (или фиг. 11B), за счет этого формируя кодированные данные.
[0050] На этапе S303, модуль 111 комбинированного кодирования формирует информацию заголовка, необходимую для кодирования данных изображений, вместе со сформированными кодированными данными матриц 800-802 квантования, и выводит информацию заголовка.
[0051] На этапе S304, модуль 102 разделения на блоки разделяет входное изображение каждого кадра на базисные блоки. На этапе S305, модуль 104 прогнозирования разделяет данные изображений каждого базисного блока, сформированного на этапе S304, на один или более субблоков, выполняет обработку прогнозирования для каждого субблока и формирует данные прогнозированных изображений и информацию прогнозирования, такую как информация разделения на субблоки и режим прогнозирования. В этом варианте осуществления, используются три типа способов прогнозирования, т.е. внутреннее прогнозирование, внешнее прогнозирование и взвешенное внутреннее/внешнее прогнозирование. Кроме того, модуль 104 прогнозирования вычисляет данные ошибок прогнозирования, которые представляют собой разность между данными входных изображений и данными прогнозированных изображений.
[0052] Следует отметить, что подробный пример обработки посредством модуля 104 прогнозирования заключается в следующем. Модуль 104 прогнозирования выполняет обработку внутреннего прогнозирования для данных изображений интересующего субблока, который должен быть кодирован, посредством ссылки на кодированную область идентичного кадра, которому принадлежит интересующий субблок, за счет этого формируя данные Pintra[x][y] внутренних прогнозных изображений. Кроме того, модуль 104 прогнозирования выполняет обработку внешнего прогнозирования посредством ссылки на уже кодированный кадр (например, непосредственно предшествующий кадр), отличающийся от кадра, которому принадлежит интересующий субблок, который должен быть кодирован, за счет этого формируя данные Pinter[x][y] внешних прогнозных изображений. Данные P[x][y] взвешенных внутренних/внешних прогнозных изображений затем формируются на основе уравнения (1), описанного выше. Модуль 104 прогнозирования получает квадратные суммы (или суммы абсолютных значений) трех данных прогнозированных изображений и разностных данных между пиксельными значениями интересующего субблока и определяет режим прогнозирования данных прогнозированных изображений, для которых квадратная сумма является минимальной, в качестве режима прогнозирования интересующего субблока. В этом варианте осуществления, значение w весового коэффициента уникально вычисляется в соответствии с режимом внутреннего прогнозирования, размером вектора движения, позицией интересующего субблока и т.п. Тем не менее, способ вычислений значения w весового коэффициента не ограничен этим. Например, модуль 104 прогнозирования задает w=0, 1, …, 8 и получает девять данных прогнозированных изображений в этих случаях. Модуль 104 прогнозирования может получать квадратные суммы (или суммы абсолютных значений) девяти данных прогнозированных изображений и разностных данных между пиксельными значениями интересующего субблока и может определять "w", для которого квадратная сумма является минимальной. В том случае, если w=0, модуль 104 прогнозирования определяет из уравнения (1) то, что интересующий субблок должен быть кодирован посредством внутреннего прогнозирующего кодирования. Если w=8, модуль 104 прогнозирования определяет из уравнения (1) то, что интересующий субблок должен быть кодирован посредством внешнего прогнозирующего кодирования. Если диапазоны w из 1-7, модуль 104 прогнозирования определяет то, что интересующий субблок должен быть кодирован посредством кодирования взвешенного внутреннего/внешнего прогнозирования. В этом случае, определенное значение w также может кодироваться на этапе S309 последующей стадии.
[0053] На этапе S306, модуль 105 преобразования/квантования выполняет ортогональное преобразование данных ошибок прогнозирования, вычисленных на этапе S305, за счет этого формируя коэффициенты преобразования. Кроме того, модуль 105 преобразования/квантования выбирает, на основе информации прогнозирования, одну из матриц квантования, сформированных и запоминаемых на этапе S301, и выполняет квантование с использованием выбранной матрицы квантования, за счет этого формируя квантованные коэффициенты. В этом варианте осуществления, матрица 800 квантования, показанная на фиг. 8A, используется для субблока, для которого используется внутреннее прогнозирование, матрица 801 квантования, показанная на фиг. 8B, используется для субблока, для которого используется внешнее прогнозирование, и матрица 802 квантования, показанная на фиг. 8C, используется для субблока, для которого используется взвешенное внутреннее/внешнее прогнозирование.
[0054] На этапе S307, модуль 106 обратного квантования/обратного преобразования обратно квантует квантованные коэффициенты, сформированные на этапе S305 с использованием матрицы квантования, сформированной и хранимой на этапе S301, за счет этого повторно формируя коэффициенты преобразования. Модуль 106 обратного квантования/обратного преобразования также выполняет обратное ортогональное преобразование коэффициентов преобразования, за счет этого повторно формируя данные ошибок прогнозирования. На этом этапе, обработка обратного квантования выполняется с использованием матрицы квантования, идентичной матрице квантования, используемой на этапе S306.
[0055] На этапе S308, модуль 107 повторного формирования изображений повторно формирует данные прогнозированных изображений на основе информации прогнозирования, сформированной на этапе S305. Модуль 107 повторного формирования изображений также повторно формирует данные изображений субблока из повторно сформированных данных прогнозированных изображений и данных ошибок прогнозирования, сформированных на этапе S307.
[0056] На этапе S309, модуль 110 кодирования кодирует информацию прогнозирования, сформированную на этапе S305, и квантованные коэффициенты, сформированные на этапе S306, за счет этого формируя кодированные данные. Модуль 110 кодирования также формирует поток битов, включающий в себя другие кодированные данные.
[0057] На этапе S310, модуль 150 управления определяет то, завершается или нет кодирование всех базисных блоков в кадре. Если кодирование завершается, процесс переходит к этапу S311. В противном случае, процесс возвращается к этапу S305, чтобы выполнять кодирование следующего базисного блока в качестве цели.
[0058] На этапе S311, модуль 109 внутриконтурной фильтрации выполняет обработку внутриконтурной фильтрации для данных изображений, повторно сформированных на этапе S308, чтобы формировать изображение, которое подвергнуто обработке фильтрации, и обработка завершается.
[0059] В вышеописанной обработке, чтобы кодировать второй и последующие кадры движущегося изображения, этапы S304-S311 повторяются до тех пор, пока конечный кадр, который должен быть кодирован, не вводится.
[0060] При вышеописанной конфигурацией и работы, в частности, на этапе S306, или для субблока с использованием взвешенного внутреннего/внешнего прогнозирования, выполняется обработка квантования с использованием матрицы квантования, выделяемой для него. Это позволяет управлять квантованием для каждого частотного компонента и повышать субъективное качество изображений.
[0061] Следует отметить, что в этом варианте осуществления, матрицы квантования отдельно задаются для трех типов способов прогнозирования, включающих в себя внутреннее прогнозирование, внешнее прогнозирование и взвешенное внутреннее/внешнее прогнозирование, и все три типа матриц квантования кодируются. Тем не менее, некоторые из них могут совместно использоваться.
[0062] Например, субблок с использованием взвешенного внутреннего/внешнего прогнозирования может квантоваться с использованием матрицы 800 квантования, показанной на фиг. 8A, аналогично субблоку с использованием внутреннего прогнозирования, и кодирование матрицы 802 квантования, показанной на фиг. 8C, может опускаться. Это может уменьшать ухудшение качества изображений, которое возникает вследствие такой ошибки, как искажение в виде блочности, вызываемое посредством внутреннего прогнозирования, при снижении объема кода, соответствующего матрице 802 квантования, показанной на фиг. 8C.
[0063] Аналогично, субблок с использованием взвешенного внутреннего/внешнего прогнозирования может квантоваться с использованием матрицы 801 квантования, показанной на фиг. 8B, аналогично субблоку с использованием внешнего прогнозирования, и кодирование матрицы 802 квантования, показанной на фиг. 8C, может опускаться. Это может уменьшать ухудшение качества изображений, которое возникает вследствие такой ошибки, как несглаженное движение, вызываемое посредством внешнего прогнозирования, при снижении объема кода, соответствующего матрице квантования, показанной на фиг. 8C.
[0064] Альтернативно, в уравнении (1), описанном выше, матрица квантования, которая должна быть использована для субблока с использованием взвешенного внутреннего/внешнего прогнозирования, может адаптивно определяться в соответствии со значением для значения w весового коэффициента, представляющего весовой коэффициент для внутреннего прогнозного пиксельного значения и внешнего прогнозного пиксельного значения. Например, если значение для значения w весового коэффициента для минимальной разности составляет предопределенное значение (например, центральное значение 4) или больше, матрица 801 квантования, показанная на фиг. 8B, может использоваться для субблока с использованием взвешенного внутреннего/внешнего прогнозирования, и если значение меньше, матрица 800 квантования, показанная на фиг. 8A, может использоваться. Это позволяет снижать объем кода, соответствующий матрице квантования, показанной на фиг. 8C, кодирование которой опускается, при уменьшении ухудшения качества изображений для способа прогнозирования с большим весовым коэффициентом. Альтернативно, матрица квантования, которая должна быть использована для субблока с использованием взвешенного внутреннего/внешнего прогнозирования, может заново формироваться в соответствии со значением для значения w весового коэффициента. Например, вычисление может выполняться с использованием следующего:
QM[x][y]={w x QMinter[x][y]+(8-w) x QMintra[x][y]}>>3… (2)
В вышеприведенном уравнении (2), QM[x][y] представляет собой элемент (значение шага квантования) с координатами (x, y) вычисленной матрицы квантования, используемой для субблока с использованием взвешенного внутреннего/внешнего прогнозирования. QMinter[x][y] представляет собой элемент в координатах (X, Y) матрицы квантования, используемой для субблока для внешнего прогнозирования. Аналогично, QMintra[x][y] представляет собой элемент в координатах (X, Y) матрицы квантования для внутреннего прогнозирования. Это позволяет выполнять соответствующее управление квантованием согласно значению w весового коэффициента и повышать субъективное качество изображений при снижении объема кода, соответствующего матрице 802 квантования, показанной на фиг. 8C, кодирование которой опускается.
[0065] Кроме того, в этом варианте осуществления, матрица квантования для субблока с использованием взвешенного внутреннего/внешнего прогнозирования уникально определяется. Тем не менее, матрица квантования может становиться выбираемой посредством введения идентификатора. Например, на фиг. 6B, кодирование матриц квантования для субблока с использованием взвешенного внутреннего/внешнего прогнозирования становится выбираемым посредством нового введения информационного кода способа кодирования матриц квантования. Например, если информационный код способа кодирования матриц квантования указывает 0, матрица 800 квантования (фиг. 8A) для субблока с использованием внутреннего прогнозирования используется для субблока с использованием взвешенного внутреннего/внешнего прогнозирования. Если информационный код способа кодирования матриц квантования указывает 1, матрица 801 квантования (фиг. 8B) для субблока с использованием внешнего прогнозирования используется для субблока с использованием взвешенного внутреннего/внешнего прогнозирования. С другой стороны, если информационный код способа кодирования матриц квантования указывает 2, отдельно кодированная матрица 802 квантования (фиг. 8C) используется для субблока с использованием взвешенного внутреннего/внешнего прогнозирования. В силу этого можно избирательно реализовывать уменьшение объема кода для матриц квантования и уникальное управление квантованием для субблока с использованием взвешенного внутреннего/внешнего прогнозирования.
Второй вариант осуществления
[0066]
Во втором варианте осуществления, в дальнейшем описывается устройство декодирования изображений для декодирования кодированных данных, сформированных посредством устройства кодирования изображений согласно первому варианту осуществления. Фиг. 2 является блок-схемой, показывающей конфигурацию устройства декодирования изображений.
[0067] Устройство декодирования изображений включает в себя модуль 250 управления, выполненный с возможностью управлять составляющими элементами, которые описываются ниже, и выполнять управление всем устройством. Модуль 250 управления включает в себя CPU, ROM, которое сохраняет программы, которые должны выполняться посредством CPU, различные виды параметров и т.п., и RAM, используемое в качестве рабочей области CPU. Следует отметить, что ОС (операционная система), программы и параметры, сохраненные в ROM или другом энергонезависимом устройстве хранения данных, могут загружаться в RAM, и после этого, программы могут выполняться под управлением ОС.
[0068] Помимо этого, устройство декодирования изображений включает в себя входной терминал 201, модуль 202 демультиплексирования/декодирования, модуль 203 декодирования, модуль 204 обратного квантования/обратного преобразования, модуль 205 повторного формирования изображений, запоминающее устройство 206 кадров, модуль 207 внутриконтурной фильтрации, выходной терминал 208 и модуль 209 декодирования матриц квантования.
[0069] Ниже описывается конфигурация и работа устройства декодирования изображений в конфигурации вышеописанного устройства декодирования изображений. Следует отметить, что устройство декодирования изображений выполнено с возможностью вводить, на основе кадров, поток битов, сформированный посредством вышеописанного устройства кодирования изображений.
[0070] Модуль 202 демультиплексирования/декодирования вводит кодированный поток битов через входной терминал 201, демультиплексирует информацию относительно обработки декодирования и кодированные данные относительно коэффициентов из потока битов и декодирует кодированные данные, существующие в части заголовка потока битов. Модуль 202 демультиплексирования/декодирования согласно этому варианту осуществления демультиплексирует кодированные данные матрицы квантования из кодированного потока битов и предоставляет кодированные данные в модуль 209 декодирования матриц квантования. Модуль 202 демультиплексирования/декодирования также демультиплексирует кодированные данные данных изображений из кодированного потока битов и предоставляет кодированные данные в модуль 203 декодирования. Вкратце, модуль 202 демультиплексирования/декодирования выполняет операцию, обратную по отношению к операции модуля 111 комбинированного кодирования, показанного на фиг. 1.
[0071] Модуль 209 декодирования матриц квантования декодирует кодированные данные матрицы квантования из модуля 202 демультиплексирования/декодирования и повторно формирует и запоминает матрицы 800-802 квантования.
[0072] Модуль 203 декодирования декодирует кодированные данные, вводимые из модуля 202 демультиплексирования/декодирования, и повторно формирует квантованные коэффициенты и информацию прогнозирования.
[0073] Аналогично модулю 106 обратного квантования/обратного преобразования, показанному на фиг. 1, модуль 204 обратного квантования/обратного преобразования обратно квантует квантованные коэффициенты с использованием повторно сформированных матриц 800-802 квантования, за счет этого получая коэффициенты преобразования. Модуль 204 обратного квантования/обратного преобразования также выполняет обратное ортогональное преобразование, за счет этого повторно формируя данные ошибок прогнозирования.
[0074] Модуль 205 повторного формирования изображений надлежащим образом обращается к запоминающем устройству 206 кадров на основе входной информации прогнозирования, за счет этого формируя данные прогнозированных изображений. Модуль 205 повторного формирования изображений формирует данные изображений посредством суммирования данных ошибок прогнозирования, повторно сформированных посредством модуля 204 обратного квантования/обратного преобразования, с данными прогнозированных изображений и сохраняет данные изображений в запоминающем устройстве 206 кадров.
[0075] Модуль 207 внутриконтурной фильтрации выполняет обработку внутриконтурной фильтрации, такую как фильтрация для удаления блочности для повторно сформированного изображения, сохраненного в запоминающем устройстве 206 кадров, и сохраняет данные изображений, которые подвергнуты обработке фильтрации, в запоминающем устройстве 206 кадров снова, аналогично модулю 109 внутриконтурной фильтрации, показанному на фиг. 1. Затем выходной терминал 208 выводит повторно сформированные данные изображений во внешнее устройство (например, устройство отображения).
[0076] Далее подробнее описывается работа каждого составляющего элемента устройства декодирования изображений, показанного на фиг. 2.
[0077] Во втором варианте осуществления, поток битов, сформированный в первом варианте осуществления, вводится на основе кадров.
[0078] Поток битов одного кадра, вводимого через входной терминал 201, подается в модуль 202 демультиплексирования/декодирования. Модуль 202 демультиплексирования/декодирования демультиплексирует информацию относительно обработки декодирования и кодированные данные относительно коэффициентов из потока битов и декодирует кодированные данные, существующие в части заголовка потока битов. Более конкретно, модуль 202 демультиплексирования/декодирования повторно формирует кодированные данные матрицы квантования. Модуль 202 демультиплексирования/декодирования согласно этому варианту осуществления сначала извлекает кодированные данные матриц 800-802 квантования, показанных на фиг. 8A-8C, из заголовка последовательности потока битов, показанного на фиг. 6A, и предоставляет кодированные данные в модуль 209 декодирования матриц квантования. Затем, модуль 202 демультиплексирования/декодирования повторно формирует кодированные данные каждого субблока базисного блока данных кинокадров и предоставляет кодированные данные в модуль 203 декодирования.
[0079] Во-первых, модуль 209 декодирования матриц квантования декодирует входные кодированные данные матрицы квантования, за счет этого повторно формируя одномерные разностные матрицы 1000-1002, показанные на фиг. 10A-10C. В этом варианте осуществления, декодирование выполняется с использованием таблицы кодирования, показанной на фиг. 11A (или фиг. 11B), аналогично первому варианту осуществления. Тем не менее, таблица кодирования не ограничена этим, и может использоваться любая другая таблица кодирования, при условии, что используется таблица кодирования, идентичная таблице кодирования в первом варианте осуществления. Кроме того, модуль 209 декодирования матриц квантования обратно сканирует повторно сформированные одномерные разностные матрицы, за счет этого повторно формируя двумерные матрицы квантования. Здесь, выполняется операция, обратная по отношению к операции модуля 113 кодирования матриц квантования согласно первому варианту осуществления. Таким образом, модуль 209 декодирования матриц квантования согласно этому варианту осуществления повторно формирует три типа матриц 800-802 квантования, показанных на фиг. 8A-8C, из разностных матриц 1000-1002, показанных на фиг. 10A-10C, с использованием способа сканирования, показанного на фиг. 9, и запоминает их.
[0080] Модуль 203 декодирования декодирует кодированные данные, за счет этого повторно формируя квантованные коэффициенты и информацию прогнозирования. Модуль 203 декодирования затем предоставляет повторно сформированные квантованные коэффициенты в модуль 204 обратного квантования/обратного преобразования и предоставляет повторно сформированную информацию прогнозирования в модуль 205 повторного формирования изображений.
[0081] Модуль 204 обратного квантования/обратного преобразования выбирает одну из матриц 800-802 квантования, повторно сформированных посредством модуля 209 декодирования матриц квантования. Модуль 204 обратного квантования/обратного преобразования затем обратно квантует входные квантованные коэффициенты с использованием выбранной матрицы квантования, за счет этого формируя коэффициенты ортогонального преобразования. Модуль 204 обратного квантования/обратного преобразования дополнительно выполняет обратное ортогональное преобразование, чтобы повторно формировать данные ошибок прогнозирования, и предоставляет повторно сформированную информацию прогнозирования в модуль 205 повторного формирования изображений. В соответствии с режимом прогнозирования целевого блока декодирования, определенным в соответствии с информацией прогнозирования, повторно сформированной посредством модуля 203 декодирования, модуль 204 обратного квантования/обратного преобразования согласно этому варианту осуществления определяет матрицу квантования, которая должна быть использована в обработке обратного квантования. Таким образом, матрица 800 квантования, показанная на фиг. 8A, выбирается для субблока, для которого используется внутреннее прогнозирование, матрица 801 квантования, показанная на фиг. 8B, выбирается для субблока, для которого используется внешнее прогнозирование, и матрица 802 квантования, показанная на фиг. 8C, выбирается для субблока, для которого используется взвешенное внутреннее/внешнее прогнозирование. Тем не менее, матрицы квантования, которые должны использоваться, не ограничены этим, и могут использоваться матрицы квантования, идентичные матрицам квантования, используемым посредством модуля 105 преобразования/квантования и модуля 106 обратного квантования/обратного преобразования согласно первому варианту осуществления.
[0082] Модуль 205 повторного формирования изображений надлежащим образом обращается к запоминающем устройству 206 кадров на основе информации прогнозирования, вводимой из модуля 203 декодирования, за счет этого повторно формируя данные прогнозированных изображений. В этом варианте осуществления, используются три типа способов прогнозирования, т.е. внутреннее прогнозирование, внешнее прогнозирование и взвешенное внутреннее/внешнее прогнозирование, аналогично модулю 104 прогнозирования согласно первому варианту осуществления. Подробная обработка прогнозирования является идентичной обработке прогнозирования модуля 104 прогнозирования согласно первому варианту осуществления, и ее описание опускается. Модуль 205 повторного формирования изображений повторно формирует данные изображений посредством суммирования данных ошибок прогнозирования, вводимых из модуля 204 обратного квантования/обратного преобразования, с данными прогнозированных изображений и сохраняет данные изображений в запоминающем устройстве 206 кадров. Сохраненные данные изображений представляют собой возможный вариант для ссылки при прогнозировании при декодировании другого субблока.
[0083] Модуль 207 внутриконтурной фильтрации считывает повторно сформированные данные изображений из запоминающего устройства 206 кадров и выполняет обработку внутриконтурной фильтрации, такую как фильтрация для удаления блочности, аналогично модулю 109 внутриконтурной фильтрации, показанному на фиг. 1. Модуль 207 внутриконтурной фильтрации затем сохраняет данные изображений, которые подвергнуты обработке фильтрации, в запоминающем устройстве 206 кадров снова.
[0084] Повторно сформированное изображение, сохраненное в запоминающем устройстве 206 кадров, в итоге выводится из выходного терминала 208 наружу.
[0085] Ниже описывается процедура обработки для обработки декодирования одного кадра посредством устройства декодирования изображений согласно второму варианту осуществления со ссылкой на блок-схему последовательности операций способа по фиг. 4. Следует отметить, что обработка каждого этапа в нижеприведенном описании выполняется посредством его основного объекта под управлением модуля 250 управления.
[0086] Во-первых, на этапе S401, модуль 202 демультиплексирования/декодирования демультиплексирует информацию относительно обработки декодирования и кодированные данные относительно коэффициентов из потока битов и декодирует кодированные данные в части заголовка. Более конкретно, кодированные данные матрицы квантования повторно формируются.
[0087] На этапе S402, модуль 209 декодирования матриц квантования декодирует кодированные данные матрицы квантования, повторно сформированной на этапе S401, за счет этого повторно формируя одномерные разностные матрицы 1000-1002, показанные на фиг. 10A-10C. Кроме того, модуль 209 декодирования матриц квантования обратно сканирует повторно сформированные одномерные разностные матрицы 1000-1002, за счет этого повторно формируя и запоминая двумерные матрицы 800-802 квантования.
[0088] Таким образом, в этом варианте осуществления, модуль 209 декодирования матриц квантования повторно формирует три типа матриц 800-802 квантования, показанных на фиг. 8A-8C, из разностных матриц 1000-1002, показанных на фиг. 10A-10C с использованием способа сканирования, показанного на фиг. 9, и запоминает их.
[0089] На этапе S403, модуль 203 декодирования декодирует кодированные данные, демультиплексированные на этапе S401, за счет этого повторно формируя квантованные коэффициенты и информацию прогнозирования.
[0090] На этапе S404, модуль 204 обратного квантования/обратного преобразования получает коэффициенты преобразования посредством обратного квантования квантованных коэффициентов с использованием одной из матриц 800-802 квантования, повторно сформированных на этапе S402. Модуль 204 обратного квантования/обратного преобразования дополнительно выполняет обратное ортогональное преобразование, чтобы повторно формировать данные ошибок прогнозирования. Модуль 204 обратного квантования/обратного преобразования согласно этому варианту осуществления определяет матрицу квантования, которая должна быть использована, в соответствии с режимом прогнозирования, определенным на основе информации прогнозирования, повторно сформированной на этапе S403. Таким образом, матрица 800 квантования, показанная на фиг. 8A, используется для субблока, для которого используется внутреннее прогнозирование. Кроме того, матрица 801 квантования, показанная на фиг. 8B, используется для субблока, для которого используется внешнее прогнозирование. Матрица 802 квантования, показанная на фиг. 8C, используется для субблока, для которого используется взвешенное внутреннее/внешнее прогнозирование. Тем не менее, матрицы квантования, которые должны использоваться, не ограничены этим, и могут использоваться матрицы квантования, идентичные матрицам квантования, используемым на этапах S306 и S307 первого варианта осуществления.
[0091] На этапе S405, модуль 205 повторного формирования изображений повторно формирует данные прогнозированных изображений из информации прогнозирования, сформированной на этапе S403. Модуль 205 повторного формирования изображений согласно этому варианту осуществления использует три типа способов прогнозирования, т.е. внутреннее прогнозирование, внешнее прогнозирование и взвешенное внутреннее/внешнее прогнозирование, аналогично этапу S305 первого варианта осуществления. Модуль 205 повторного формирования изображений также повторно формирует данные изображений посредством суммирования данных ошибок прогнозирования, сформированных на этапе S404, с повторно сформированными данными прогнозированных изображений.
[0092] На этапе S406, модуль 250 управления определяет то, завершается или нет декодирование всех базисных блоков в кадре. Если декодирование завершается, процесс переходит к этапу S407. В противном случае, процесс возвращается к этапу S403, чтобы задавать следующий базисный блок в качестве цели декодирования.
[0093] На этапе S407, модуль 207 внутриконтурной (in-loop) фильтрации выполняет обработку внутриконтурной фильтрации для данных изображений, повторно сформированных на этапе S405, чтобы формировать изображение, которое подвергнуто обработке фильтрации, и обработка завершается.
[0094] При вышеописанной конфигурации и работе, даже для субблока с использованием взвешенного внутреннего/внешнего прогнозирования, которое формируется в первом варианте осуществления, можно управлять квантованием для каждого частотного компонента и декодировать поток битов с повышенным субъективным качеством изображений.
[0095] Следует отметить, что в этом варианте осуществления, матрицы квантования отдельно задаются для трех типов способов прогнозирования, включающих в себя внутреннее прогнозирование, внешнее прогнозирование и взвешенное внутреннее/внешнее прогнозирование, и все три типа матриц квантования декодируются. Тем не менее, некоторые из них могут совместно использоваться.
[0096] Например, субблок с использованием взвешенного внутреннего/внешнего прогнозирования может обратно квантоваться с использованием матрицы 800 квантования, показанной на фиг. 8A, аналогично субблоку с использованием внутреннего прогнозирования, и декодирование матрицы 802 квантования, показанной на фиг. 8C, может опускаться. Это позволяет декодировать поток битов, в котором уменьшается ухудшение качества изображений, которое возникает вследствие такой ошибки, как искажение в виде блочности, вызываемое посредством внутреннего прогнозирования, при снижении объема кода, соответствующего матрице квантования, показанной на фиг. 8C.
[0097] Аналогично, субблок с использованием взвешенного внутреннего/внешнего прогнозирования может обратно квантоваться с использованием матрицы 801 квантования, показанной на фиг. 8B, аналогично субблоку с использованием внешнего прогнозирования, и декодирование матрицы квантования, показанной на фиг. 8C, может опускаться. Это позволяет декодировать поток битов, в котором уменьшается ухудшение качества изображений, которое возникает вследствие такой ошибки, как несглаженное движение, вызываемое посредством внешнего прогнозирования, при снижении объема кода, соответствующего матрице 802 квантования, показанной на фиг. 8C.
[0098] Альтернативно, в уравнении (1), описанном выше, матрица квантования, которая должна быть использована для субблока с использованием взвешенного внутреннего/внешнего прогнозирования, может адаптивно определяться в соответствии со значением для значения w весового коэффициента, представляющего весовой коэффициент для внутреннего прогнозного пиксельного значения и внешнего прогнозного пиксельного значения. Например, если значение w составляет предопределенное значение (например, центральное значение 4) или больше, матрица 801 квантования, показанная на фиг. 8(b), может использоваться для субблока с использованием взвешенного внутреннего/внешнего прогнозирования, и если значение меньше, может использоваться матрица 800 квантования, показанная на фиг. 8A. Это позволяет декодировать поток битов, в котором снижается объем кода, соответствующий матрице 802 квантования, показанной на фиг. 8C, кодирование которой опускается, при уменьшении ухудшения качества изображений для способа прогнозирования с большим весовым коэффициентом. Альтернативно, матрица квантования, которая должна быть использована для субблока с использованием взвешенного внутреннего/внешнего прогнозирования, может заново формироваться в соответствии со значением для значения w весового коэффициента, аналогично уравнению (2), описанному выше. Это позволяет выполнять соответствующее управление квантованием согласно значению w весового коэффициента и декодировать поток битов, в котором субъективное качество изображений повышается, при снижении объема кода, соответствующего матрице 802 квантования, показанной на фиг. 8C, кодирование которой опускается.
[0099] Кроме того, в этом варианте осуществления, матрица квантования для субблока с использованием взвешенного внутреннего/внешнего прогнозирования уникально определяется. Тем не менее, матрица квантования может становиться выбираемой посредством введения идентификатора. Например, на фиг. 6B, кодирование матриц квантования для субблока с использованием взвешенного внутреннего/внешнего прогнозирования становится выбираемым посредством нового введения информационного кода способа кодирования матриц квантования. Например, если информационный код способа кодирования матриц квантования указывает 0, матрица 800 квантования (фиг. 8A) для субблока с использованием внутреннего прогнозирования используется для субблока с использованием взвешенного внутреннего/внешнего прогнозирования. Если информационный код способа кодирования матриц квантования указывает 1, матрица 801 квантования (фиг. 8B) для субблока с использованием внешнего прогнозирования используется для субблока с использованием взвешенного внутреннего/внешнего прогнозирования. С другой стороны, если информационный код способа кодирования матриц квантования указывает 2, отдельно кодированная матрица 802 квантования (фиг. 8C) используется для субблока с использованием взвешенного внутреннего/внешнего прогнозирования. В силу этого можно декодировать поток битов, который избирательно реализует уменьшение объема кода для матриц квантования и уникальное управление квантованием для субблока с использованием взвешенного внутреннего/внешнего прогнозирования.
Третий вариант осуществления
[0100]
В вышеописанных вариантах осуществления, описание приведено при условии, что модули обработки, показанные на фиг. 1 и 2, формируются посредством аппаратных средств. Тем не менее, обработка, выполняемая посредством модулей обработки, показанных на фиг. 1 и 2, может быть сконфигурирована посредством компьютерной программы.
[0101] Фиг. 5 является блок-схемой, показывающей пример аппаратной конфигурации компьютера, применимой к устройству отображения изображений согласно вышеописанным вариантам осуществления.
[0102] CPU 501 управляет всем компьютером с использованием компьютерных программ и данных, сохраненных в RAM 502 или ROM 503, и выполняет обработку, описанную выше, в качестве обработки, которая должна выполняться посредством устройства обработки изображений согласно вышеописанным вариантам осуществления. Таким образом, CPU 501 функционирует в качестве модулей обработки, показанных на фиг. 1 и 2.
[0103] RAM 502 имеет область для временного хранения компьютерных программ и данных, загружаемых из внешнего устройства 506 хранения данных, и данных, полученных снаружи через интерфейс 507. RAM 502 также имеет рабочую область, используемую посредством CPU 501 для того, чтобы выполнять различные виды обработки. Таким образом, RAM 502, например, может выделяться в качестве запоминающего устройства кадров или может надлежащим образом предоставлять различные виды других областей.
[0104] ROM 503 сохраняет данные настроек компьютера, начальную загрузочную программу и т.п. Функциональный модуль 504 формируется посредством клавиатуры, мыши и т.п. Посредством управления функциональным модулем 504, пользователь компьютера может вводить различные виды инструкций в CPU 501. Модуль 505 отображения отображает результат обработки посредством CPU 501. Модуль 505 отображения формируется, например, посредством жидкокристаллического дисплея.
[0105] Внешнее устройство 506 хранения данных представляет собой устройство хранения информации большой емкости, представленное посредством жесткого диска. ОС (операционная система) и компьютерные программы, выполненные с возможностью инструктировать CPU 501 реализовывать функции модулей, показанных на фиг. 1 и 2, сохраняются во внешнем устройстве 506 хранения данных. Данные изображений в качестве цели обработки также могут сохраняться во внешнем устройстве 506 хранения данных.
[0106] Компьютерные программы и данные, сохраненные во внешнем устройстве 506 хранения данных, надлежащим образом загружаются в RAM 502 под управлением CPU 501 и обрабатываются посредством CPU 501. Сеть, к примеру, LAN или Интернет, либо другое устройство, к примеру, проекционное устройство или устройство отображения, может соединяться с интерфейсом 507. Компьютер может получать или отправлять различные виды информации через интерфейс 507. Ссылка с номером 508 обозначает шину, которая соединяет вышеописанные модули.
[0107] В вышеописанной конфигурации, когда устройство включается, CPU 501 выполняет начальную загрузочную программу в ROM 503, загружает ОС, сохраненную во внешнем устройстве 506 хранения данных, в RAM 502, и активирует ОС. Как результат, устройство может выполнять связь через интерфейс 507 и функционирует в качестве устройства обработки информации. Когда CPU 501 загружает приложение (соответствующее фиг. 3) относительно кодирования изображений из внешнего устройства 506 хранения данных в RAM 502 и выполняет приложение под управлением ОС, CPU 501 функционирует в качестве различных видов модулей обработки, показанных на фиг. 1, и устройство функционирует в качестве устройства кодирования изображений. С другой стороны, когда CPU 501 загружает приложение (соответствующее фиг. 4) относительно декодирования изображений из внешнего устройства 506 хранения данных в RAM 502 и выполняет приложение, CPU 501 функционирует в качестве различных видов модулей обработки, показанных на фиг. 2, и устройство функционирует в качестве устройства декодирования изображений.
Другие варианты осуществления
[0108]
Настоящее изобретение может реализовываться посредством обработки предоставления программы для реализации одной или более функций вышеописанных вариантов осуществления в систему или устройство через сеть или носитель данных и инструктирования одному или более процессоров в компьютере системы или устройства считывать и выполнять программу. Настоящее изобретение также может реализовываться посредством схемы (например, ASIC) для реализации одной или более функций.
[0109] Настоящее изобретение не ограничено вышеприведенным вариантами осуществления, и различные изменения и модификации могут вноситься в пределах сущности и объема настоящего изобретения. Следовательно, чтобы информировать широкую публику в отношении объема настоящего изобретения, прилагается нижеприведенная формула изобретения.
[0110] Данная заявка испрашивает приоритет по заявке на патент (Япония) номер 2018-235912, поданной 17 декабря 2018 года, которая настоящим содержится по ссылке в данном документе.