УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ, СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ
IMAGE ENCODING APPARATUS, METHOD FOR IMAGE ENCODING, IMAGE DECODING APPARATUS, AND METHOD FOR IMAGE DECODING

ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение относится к методике кодирования изображения и методике декодирования изображения.
Предшествующий уровень техники
[0002] В качестве способа кодирования для записи сжатия движущегося изображения, известны способ кодирования H.264/AVC (далее упоминается как H.264) и способ кодирования HEVC (Высокоэффективное кодирование видео) (далее упоминается как HEVC). В HEVC, чтобы повысить эффективность кодирования, используется базовый блок, имеющий размер больше, чем обычный макроблок (16 пикселов × 16 пикселов). Базовый блок с большим размером называется CTU (единица дерева кодирования), и его размер составляет максимально 64 пиксела × 64 пиксела. CTU дополнительно делится на подблоки, каждый из которых представляет собой единицу для выполнения предсказания или преобразования.
[0003] Также, в HEVC, выполняется адаптивная обработка фильтра устранения блочности для границы блока восстановленных изображений, полученных суммированием сигнала обработки обратного квантования/обратного преобразования и предсказанного изображения, тем самым подавляя визуально заметное блочное искажение и препятствуя распространению ухудшения качества изображения в предсказанное изображение. PTL 1 раскрывает методику, касающуюся такой фильтрации устранения блочности.
[0004] В последние годы, были инициированы действия для реализации международной стандартизации способа кодирования повышенной эффективности как преемника HEVC. Была создана JVET (Объединенная группа экспертов по видео) между ISO/IEC и ITU-T, и продвигалась стандартизация способа кодирования VVC (Многоцелевое кодирование видео) (далее упоминаемого как VVC). Для повышения эффективности кодирования, в дополнение к обычному интра-предсказанию и интер-предсказанию, был исследован новый способ предсказания (упоминаемый далее как взвешенное интра-/интер-предсказание), использующий как интра-предсказанные пикселы, так и интер-предсказанные пикселы.
Список цитированных документов
Патентные документы
[0005] PTL 1: Выложенная японская патентная публикация № 2014-507863
Краткое описание сущности изобретения
Техническая проблема
[0006] В VVC так же, как и в HEVC, исследовалось введение фильтрации устранения блочности. Также, в VVC, в дополнение к обычному интра-предсказанию и интер-предсказанию, исследовалось введение взвешенного интра-/интер-предсказания, которое генерирует новый предсказанный пиксел с использованием как интра-предсказанных пикселов, так и интер-предсказанных пикселов. В HEVC, способ решения об интенсивности фильтра устранения блочности основан на способе предсказания, таком как интра-предсказание/интер-предсказание. С другой стороны, во взвешенном интра-/интер-предсказании которое также является новым способом предсказания, решение об интенсивности фильтра устранения блочности принимается тем же самым способом, что и в интер-предсказании. Однако это не может в достаточной степени подавить искажение на границе блока. Настоящее изобретение обеспечивает методику надлежащего принятия решения об интенсивности обработки фильтра устранения блочности для взвешенного интра-/интер-предсказания и подавления искажения, генерируемого на границе блока.
Решение проблемы
[0007] В соответствии с аспектом настоящего изобретения, предложено устройство кодирования изображения, содержащее средство кодирования для кодирования изображения путем выполнения обработки предсказания для каждого блока, средство принятия решения для принятия решения о по меньшей мере интенсивности обработки фильтра устранения блочности, подлежащей выполнению для границы между первым блоком и вторым блоком, смежным с первым блоком, на основе режима, используемого в обработке предсказания первого блока, и режима, используемого в обработке предсказания второго блока, и средство обработки для выполнения, для границы, обработки фильтра устранения блочности в соответствии с интенсивностью, выбранной средством принятия решения, причем средство кодирования может использовать, в обработке предсказания, один из первого режима для выведения, с использованием пиксела в изображении, включающем в себя блок цели кодирования, предсказанного пиксела в блоке цели, второго режима для выведения предсказанного пиксела в блоке цели с использованием пиксела в изображении, отличном от изображения, включающего в себя блок цели кодирования, и третьего режима для генерации предсказанного пиксела в блоке цели с использованием как пиксела в изображении, включающем в себя блок цели кодирования, так и пиксела в изображении, отличном от изображения, включающего в себя блок цели, и если третий режим используется в по меньшей мере одном из первого блока и второго блока, средство принятия решения устанавливает интенсивность обработки фильтра устранения блочности, подлежащей выполнению для границы между первым блоком и вторым блоком, на ту же самую интенсивность, что и в случае, в котором первый режим используется в по меньшей мере одном из первого блока и второго блока.
Полезные результаты изобретения
[0008] В соответствии с конфигурацией настоящего изобретения, становится возможным надлежащим образом принимать решение о интенсивности обработки фильтра устранения блочности для взвешенного интра-/интер-предсказания и подавлять искажение, генерируемое на границе блока.
[0009] Другие особенности и преимущества настоящего изобретения будут очевидны из следующего описания во взаимосвязи с приложенными чертежами. Отметим, что те же самые ссылочные позиции обозначают одинаковые или подобные компоненты на всех приложенных чертежах.
Краткое описание чертежей
[0010] Приложенные чертежи, которые включены в настоящий документ и составляют часть описания, иллюстрируют варианты осуществления изобретения и, вместе с описанием, служат для пояснения принципов изобретения.
Фиг. 1 является блок-схемой, показывающей пример функциональной конфигурации устройства кодирования изображения;
Фиг. 2 является блок-схемой, показывающей пример функциональной конфигурации устройства декодирования изображения;
Фиг. 3 является блок-схемой последовательности операций обработки кодирования;
Фиг. 4 является блок-схемой последовательности операций обработки декодирования;
Фиг. 5 является блок-схемой, показывающей пример конфигурации аппаратных средств компьютерного устройства;
Фиг. 6 является видом, показывающим пример конфигурации битового потока; и
Фиг. 7 является видом, показывающим пример обработки фильтра устранения блочности.
Описание вариантов осуществления
[0011] Варианты осуществления настоящего изобретения будут описаны далее со ссылкой на приложенные чертежи. Отметим, что вариант осуществления, описываемый ниже, показывает пример, когда настоящее изобретение реализовано в деталях, и является одним из детальных вариантов осуществления конфигурации, описанной в формуле изобретения. Например, в последующем объяснении используются такие термины как "базовый блок" и "подблок". Однако, варианты осуществления могут быть применены к различным единицам обработки, называемым "блоком" и "единицей" в методике кодирования изображения.
[0012] [Первый вариант осуществления]
Пример функциональной конфигурации устройства кодирования изображения в соответствии с этим вариантом осуществления будет описан сначала со ссылкой на блок-схему на фиг. 1. Модуль 199 управления управляет работой всего устройства кодирования изображения. Модуль 102 разделения на блоки делит входное изображение (изображение каждого кадра движущегося изображения или неподвижного изображения) на множество базовых блоков и выводит каждый базовый блок (разделенное изображение).
[0013] Модуль 103 предсказания делит каждый базовый блок на множество подблоков (разделенные изображения). Для каждого подблока, модуль 103 предсказания генерирует предсказанное изображение путем выполнения внутрикадрового предсказания (интра-предсказания), межкадрового предсказания (интер-предсказания) или взвешенного интра-/интер-предсказания, которое суммирует веса как для внутрикадрового предсказания, так и межкадрового предсказания и комбинирует их. Затем, для каждого подблока, модуль 103 предсказания получает разность между предсказанным изображением и подблоком в качестве ошибки предсказания. Также, модуль 103 предсказания генерирует, в качестве информации предсказания, информацию, представляющую, каким образом базовый блок разделен на подблоки, режим предсказания, и информацию, необходимую для предсказания, такую как вектор движения.
[0014] Модуль 104 преобразования/квантования выполняет ортогональное преобразование ошибки предсказания каждого подблок, получая при этом коэффициенты преобразования (коэффициенты ортогонального преобразования) каждого подблока. Модуль 104 преобразования/квантования квантует коэффициенты преобразования каждого подблока, генерируя при этом квантованные коэффициенты подблока.
[0015] Модуль 105 обратного квантования/обратного преобразования генерирует коэффициенты преобразования путем обратного квантования квантованных коэффициентов каждого подблока, сгенерированных модулем 104 преобразования/квантования с использованием матрицы квантования, используемой для квантования подблока, и выполняет обратное ортогональное преобразование коэффициентов преобразования, генерируя при этом ошибку предсказания.
[0016] Модуль 106 восстановления изображения генерирует, на основе информации предсказания, сгенерированной модулем 103 предсказания, предсказанное изображение из закодированных данных изображения, сохраненных в памяти 107 кадров, и восстанавливает изображение из предсказанного изображения и ошибки предсказания, сгенерированной модулем 105 обратного квантования/обратного преобразования. Модуль 106 восстановления изображения сохраняет восстановленное изображение в памяти 107 кадров. Данные изображения, сохраненные в памяти 107 кадров, представляют собой изображение, к которому обращается модуль 103 предсказания при выполнении предсказания (обработки предсказания) для изображения другого кадра.
[0017] Модуль 108 внутриконтурной (in-loop) фильтрации выполняет обработку внутриконтурной фильтрации, такую как фильтрация устранения блочности или адаптивное смещение выборки для изображения, сохраненного в памяти 107 кадров.
[0018] Модуль 112 вычисления интенсивности обработки фильтрации вычисляет интенсивность (значение bS) обработки фильтра устранения блочности, подлежащей выполнению для границы между подблоками, смежными друг с другом, с использованием информации предсказания, выведенной из модуля 103 предсказания, и квантованных коэффициентов, выведенных из модуля 104 преобразования/квантования.
[0019] Один из двух подблоков, смежных друг с другом, будет упоминаться как подблок P, а другой - как подблок Q. Значение bS, которое представляет собой интенсивность обработки фильтра устранения блочности, выполняемой для границы между подблоком P и подблоком Q, вычисляется следующим образом.
[0020] - Если по меньшей мере один из подблока P и подблока Q является подблоком, к которому применяется интра-предсказание или взвешенное интра-/интер-предсказание, то значение bS=2.
- Если ненулевой коэффициент ортогонального преобразования существует в по меньшей мере одном из подблока P и подблока Q, то значение bS=1.
- Иначе, если абсолютное значение (величина) разности между вектором движения подблока P и вектором движения подблока Q равна или больше, чем предопределенное значение (например, один или более пикселов), то значение bS=1.
- Иначе, если опорное изображение компенсации движения различается между подблоком P и подблоком Q, или если число векторов движения различно, то значение bS=1.
- Иначе, значение bS=0.
Здесь, когда значение bS становится большим, выполняется обработка фильтра устранения блочности с использованием фильтра устранения блочности более высокой интенсивности. В этом варианте осуществления, когда значение bS=0, обработка фильтра устранения блочности не исполняется. Когда значение bS=1, обработка фильтра устранения блочности исполняется только для компонентов яркости. Когда значение bS=2, обработка фильтра устранения блочности исполняется для компонентов яркости и цветоразностных компонентов. То есть, в этом варианте осуществления, значение bS представляет, следует ли выполнять обработку фильтра устранения блочности, или представляет тип сигналов (компонентов изображения), таких как компоненты яркости или цветоразностные компоненты, в качестве цели обработки фильтра устранения блочности. Однако настоящее изобретение не ограничено этим. Число типов интенсивности обработки фильтра устранения блочности может быть больше или меньше. Содержание обработки в соответствии с интенсивностью обработки фильтра устранения блочности также может быть различным.
[0021] Например, значение bS может принимать значения пяти уровней от 0 до 4, как в обработке фильтра устранения блочности в H.264. В этом варианте осуществления, интенсивность обработки фильтра устранения блочности для границы между подблоками с использованием взвешенного интра-/интер-предсказания имеет то же самое значение, что и то, когда подблоки используют интра-предсказание. Это указывает, что значение bS=2, то есть, интенсивность максимальна. Однако, вариант осуществления не ограничен этим. Промежуточное значение bS может быть обеспечено между значением bS=1 и значением bS=2 в этом варианте осуществления, и если по меньшей мере один из подблока P и подблока Q использует взвешенное интра-/интер-предсказание, может быть использовано промежуточное значение bS. В этом случае, обработка фильтра устранения блочности подобная обработке в нормальном случае, в котором значение bS=2, может исполняться для компонентов яркости, и обработка фильтра устранения блочности, интенсивность сглаживающего эффекта которой ниже, чем в случае, когда значение bS=2, может исполняться для цветоразностных компонентов. Это позволяет исполнять обработку фильтра устранения блочности промежуточной степени сглаживания на границе между подблоками, использующими взвешенное интра-/интер-предсказание. Простой термин "интенсивность обработки фильтра устранения блочности", как описано выше, означает изменение интенсивности обработки фильтра(фильтром) устранения блочности путем изменения сигнала (компонента яркости или цветоразностного компонента) в качестве цели обработки фильтра устранения блочности или изменение интенсивности сглаживающего эффекта коррекции сигнала фильтром устранения блочности.
[0022] Как описано выше, решение об интенсивности обработки фильтра устранения блочности, подлежащей выполнению для границы между смежными блоками в восстановленном изображении (декодированном изображении), сохраненном в памяти 107 кадров, принимается на основе информации, полученной в процессе предиктивного кодирования каждого блока.
[0023] В этом варианте осуществления, фильтр устранения блочности применяется к области изображения 8 пикселов × 8 пикселов, включая границу подблоков, реализуя тем самым обработку фильтра устранения блочности для области изображения.
[0024] Обработка фильтра устранения блочности, выполняемая модулем 108 внутриконтурной фильтрации, будет описана здесь подробно с использованием примера, показанного на фиг. 7. На фиг. 7, подблок Q (блок Q на фиг. 7), имеющий размер 8 пикселов × 8 пикселов, является смежным с правой стороны подблока P (блок P на фиг. 7), имеющего размер 8 пикселов × 8 пикселов. Здесь, обработка фильтра устранения блочности выполняется для части границы (8 пикселов (по горизонтали) × 8 пикселов (по вертикали), образованной из 4 пикселов (по горизонтали) × 8 пикселов (по вертикали) на правом конце подблока P, и 4 пикселов (по горизонтали) × 8 пикселов (по вертикали) на левом конце подблока Q) между подблоком P и подблоком Q. В это время, обработка, описываемая ниже, выполняется для каждой из верхней половины и нижней половины части границы, реализуя тем самым обработку фильтра устранения блочности для каждой из верхней половины и нижней половины. Здесь, верхняя половина части границы указывает пиксельную область 8 пикселов (по горизонтали) × 4 пиксела (по вертикали), образованную из 4 пикселов (по горизонтали) × 4 пиксела (по вертикали) на верхней правой стороне подблока P и 4 пикселов (по горизонтали) × 4 пиксела (по вертикали) на верхней левой стороне подблока Q. Кроме того, нижняя половина части границы указывает пиксельную область 8 пикселов (по горизонтали) × 4 пиксела (по вертикали), образованную из 4 пикселов (по горизонтали) × 4 пиксела (по вертикали) на нижней правой стороне подблока P и 4 пикселов (по горизонтали) × 4 пиксела (по вертикали) на нижней левой стороне подблока Q.
[0025] Обработка фильтра устранения блочности для нижней половины части границы будет описана ниже. Обработка фильтра устранения блочности, описываемая ниже, аналогично применяется к верхней половине части границы.
[0026] Прямоугольники p00 - p33, добавленные на фиг. 7, представляют пикселы в пиксельной области 4 пиксела (по горизонтали) × 4 пиксела (по вертикали) на нижней правой стороне подблока P, и p00 - p33 указывают значения пикселов. q00 - q33 на фиг. 7 представляют пикселы в пиксельной области 4 пиксела (по горизонтали) × 4 пиксела (по вертикали) на нижней левой стороне подблока Q, и q00 - q33 указывают значения пикселов. Сначала, относительно сигнала яркости, если значение bS≥1, следует ли выполнять обработку фильтрации, определяется с использованием следующего неравенства.
[0027] |p20-2 × p10+p00| + |p23-2 × p13+p03| + |q20-2 × q10+q00| + |q23-2 × q13+q03| < β
где β является значением, полученным из среднего значения параметра квантования подблока P и параметра квантования подблока Q. Только когда это неравенство удовлетворено, определяется выполнять обработку фильтра устранения блочности. Когда обработка фильтра устранения блочности должна выполняться, затем определяется, какая одна из сильной фильтрации и слабой фильтрации, которые имеют различные сглаживающие эффекты, должна использоваться. Если все неравенства (1) - (6), показанные ниже, удовлетворены, то определяется использовать сильную фильтрацию, имеющую высокий сглаживающий эффект. Иначе, определяется использовать слабую фильтрацию, сглаживающий эффект которой слабее, чем у сильной фильтрации.
(1) 2 × (|p20-2 × p10+p00| + |q20-2 × q10+q00|) < (β >> 2)
(2) 2 × (|p23-2 × p13+p03| + |q23-2 × q13+q03|) < (β >> 2)
(3) |p30 - p00| + |q00 - q30| < (β >> 3)
(4) |p33 - p03| + |q03 - q33| < (β >> 3)
(5) |p00 - q00| < ((5 × tc+1) >> 1)
(6) |p03 - q03| < ((5 × tc+1) >> 1)
где >> N (N=1 до 3) означает вычисление с N-битовым арифметическим правым сдвигом, и tc является значением, полученным из значения bS, параметра квантования подблока P и параметра квантования подблока Q.
[0028] Пусть p'0k, p'1k, p'2k, q'0k, q'1k и q'2k (k=0 до 3) являются пикселами после фильтрации, тогда сильная обработка фильтрации, имеющая высокий сглаживающий эффект для сигнала яркости, представляется посредством
[0029] p'0k=Clip3(p0k - 2 × tc, p0k+2 × tc, (p2k+2 × p1k+2 × p0k+2 × q0k+q1k+4) >> 3)
p'1k=Clip3(p1k - 2 × tc, p1k+2 × tc, (p2k+p1k+p0k+q0k+2) >> 2)
p'2k=Clip3(p2k - 2 × tc, p2k+2 × tc, (2 × p3k+3 × p2k+p1k+p0k+q0k+4) >> 3)
q'0k=Clip3(q0k - 2 × tc, q0k+2 × tc, (q2k+2 × q1k+2 × q0k+2 × p0k+p1k+4) >> 3)
q'1k=Clip3(q1k - 2 × tc, q1k+2 × tc, (q2k+q1k+q0k+p0k+2) >> 2)
q'2k=Clip3(q2k - 2 × tc, q2k+2 × tc, (2 × q3k+3 × q2k+q1k+q0k+p0k+4) >> 3)
где Clip3(a, b, c) является функцией для выполнения обработки ограничения, так что диапазон c удовлетворяет a≤b≤c. С другой стороны, слабая обработка фильтрации, имеющая низкий сглаживающий эффект для сигнала яркости, исполняется посредством
[0030] Δ = (9 × (q0k - p0k) - 3 × (q1k - p1k) + 8) >> 4
|Δ| < 10 × tc
Если это неравенство не удовлетворено, обработка фильтра устранения блочности не исполняется. Если неравенство удовлетворено, обработка, описываемая ниже, выполняется для значения пиксела p0k и значения пиксела q0k.
[0031] Δ = Clip3(-tc, tc, Δ)
p'0k=Clip1Y(p0k + Δ)
q'0k=Clip1Y(q0k - Δ)
a
где Clip1Y(a) является функцией для выполнения обработки ограничения, так что диапазон  удовлетворяет 0≤a≤(максимальное значение, которое может быть выражено битовой глубиной сигнала яркости). Также, если условия, представленные посредством
|p20-2 × p10+p00| + |p23-2 × p13+p03| < (β + (β >> 1)) >> 3)
|q20-2 × q10+q00| + |q23-2 × q13+q03| < (β + (β >> 1)) >> 3)
удовлетворены, следующая обработка фильтрации выполняется для p1k и q1k.
[0032] Δp=Clip3(-(tc >> 1), tc >> 1, (((p2k+p0k+1) >> 1) - p1k + Δ) >> 1)
p'1k=Clip1Y(p1k + Δp)
Δq=Clip3(-(tc >> 1), tc >> 1, (((q2k+q0k+1) >> 1) - q1k + Δ) >> 1)
q'1k=Clip1Y(q1k + Δq)
Что касается обработки фильтра устранения блочности цветоразностного сигнала, следующая обработка выполняется, только когда значение bS=2.
[0033] Δ = Clip3(-tc, tc, ((((q0k - p0k) << 2) + p1k - q1k+4) >> 3))
p'0k=Clip1C(p0k + Δ)
p'0k=Clip1C(p0k - Δ)
a
где Clip1C(a) является функцией для выполнения обработки ограничения, так что диапазон  удовлетворяет 0≤a≤(максимальное значение, которое может быть выражено битовой глубиной цветоразностного сигнала). В этом варианте осуществления, значение bS, представляющее интенсивность обработки фильтра устранения блочности, указывает тип сигнала в качестве цели обработки фильтра устранения блочности, и дополнительно, сильный фильтр, имеющий высокий сглаживающий эффект, и слабый фильтр, имеющий низкий сглаживающий эффект, избирательно используются в соответствии с состоянием значения пиксела. Однако, настоящее изобретение не ограничено этим. Например, в соответствии со значением bS может приниматься решение не только о типе сигнала, но и об интенсивности сглаживающего эффекта. Альтернативно, на основе значения bS может приниматься решение только об интенсивности сглаживающего эффекта, а решение о типе сигнала может приниматься на основе другого условия.
[0034] Модуль 109 кодирования кодирует квантованные коэффициенты, сгенерированные модулем 104 преобразования/ квантования, и информацию предсказания, сгенерированную модулем 103 предсказания, генерируя при этом закодированные данные. Модуль 110 комбинированного кодирования генерирует битовый поток, включающий в себя закодированные данные, сгенерированные модулем 109 кодирования, и данные заголовка, включающие в себя информацию, необходимую для декодирования входного изображения, и выводит битовый поток.
[0035] Работа устройства кодирования изображения в соответствии с эти вариантом осуществления будет описана ниже. Модуль 102 разделения на блоки делит входное изображение на множество базовых блоков и выводит каждый из разделенных базовых блоков.
[0036] На основе базового блока, модуль 103 предсказания делит базовый блок на множество подблоков (разделенные изображения). Для каждого подблока, модуль 103 предсказания принимает решение, какой один из следующих способов предсказания должен использоваться для кодирования.
[0037] - Интра-предсказание, такое как горизонтальное предсказание или вертикальное предсказание,
- Интер-предсказание для выполнения компенсации движения из опорного кадра,
- Взвешенное интра-/интер-предсказание, которое комбинирует интра-предсказание и интер-предсказание.
Способы предсказания, используемые в этом варианте осуществления, будут описаны снова. В интра-предсказании, с использованием закодированных пикселов, пространственно расположенных вокруг блока (целевого блока кодирования) в качестве цели кодирования, генерируются (выводятся) предсказанные пикселы целевого блока кодирования, и режим интра-предсказания, представляющий способ интра-предсказания, такой как горизонтальное предсказание, вертикальное предсказание или DC предсказание, также генерируется.
[0038] В интер-предсказании, с использованием закодированных пикселов кадра, отличных по времени от целевого блока кодирования, генерируются предсказанные пикселы целевого блока кодирования, и информация движения, представляющая кадр, к которому следует обращаться, вектор движения или тому подобное, также генерируется.
[0039] Во взвешенном интра-/интер-предсказании, значения пикселов предсказанных пикселов целевого блока кодирования генерируются путем получения взвешенного среднего значений пикселов, сгенерированных вышеописанным интра-предсказанием, и значений пикселов, сгенерированных вышеописанным интер-предсказанием (с использованием обоих). Значения пикселов предсказанных пикселов вычисляются с использованием, например, уравнения (1) ниже (уравнение в случае, когда размер базового блока составляет 8 пикселов × 8 пикселов).
[0040] p[x][y] = (w × pInter[x][y] + (8 - w) × pIntra[x][y]) >> 3)…(1)
">>" представляет битовый сдвиг вправо. В уравнении (1), p[x][y] является значением пиксела предсказанного пиксела, полученным взвешенным интра-/интер-предсказанием, которое вычисляется для координат (x, y) в целевом блоке кодирования. pInter[x][y] является значением пиксела, полученным интер-предсказанием для координат (x, y) в целевом блоке кодирования, и pInter[x][y] является значением пиксела, полученным интер-предсказанием для координат (x, y) в блоке цели кодирования. w представляет весовое значение для значений пикселов интер-предсказания и значений пикселов интра-предсказания. В этом варианте осуществления, когда w=4, веса для значений пикселов интер-предсказания и значений пикселов интра-предсказания становятся равными. Иными словами, если w > 4, вес для значений пикселов интер-предсказания увеличивается. Если w < 4, вес для значений пикселов интра-предсказания увеличивается. Способ принятия решения о весовом значении не ограничен конкретно, и решение о весовом значении принимается в соответствии с размером вектора движения, положением целевого блока кодирования, и тому подобного для режима интра-предсказания или интер-предсказания. Во взвешенном интра-/интер-предсказании, предсказанные пикселы целевого блока кодирования генерируются таким путем, и режим интра-предсказания и информация движения, используемые для генерации предсказанных пикселов, также генерируются.
[0041] Модуль 103 предсказания затем генерирует предсказанное изображение из выбранного способа предсказания и закодированных пикселов и генерирует ошибку предсказания из подблока и предсказанного изображения. Модуль 103 предсказания также генерирует, в качестве информации предсказания, информацию, представляющую, как базовый блок разделен на подблоки, режим предсказания, и информацию, необходимую для предсказания, такую как вектор движения.
[0042] Модуль 104 преобразования/квантования выполняет ортогональное преобразование ошибки предсказания каждого подблок, генерируя при этом коэффициенты преобразования каждого подблока. Модуль 104 преобразования/квантования квантует коэффициенты преобразования каждого подблока, генерируя при этом квантованные коэффициенты подблока.
[0043] Модуль 105 обратного квантования/обратного преобразования генерирует коэффициенты преобразования путем обратного квантования квантованных коэффициентов каждого подблока, сгенерированных модулем 104 преобразования/ квантования, с использованием матрицы квантования, используемой для квантования подблока, и выполняет обратное ортогональное преобразование коэффициентов преобразования, генерируя при этом ошибку предсказания.
[0044] Модуль 106 восстановления изображения генерирует, на основе информации предсказания, сгенерированной модулем 103 предсказания, предсказанное изображение из закодированных данных изображения, сохраненных в памяти 107 кадров, и восстанавливает изображение из предсказанного изображения и ошибки предсказания, сгенерированной модулем 105 обратного квантования/обратного преобразования. Модуль 106 восстановления изображения сохраняет восстановленное изображение в памяти 107 кадров.
[0045] Модуль 112 вычисления интенсивности обработки фильтрации вычисляет интенсивность обработки фильтра устранения блочности, подлежащей выполнению для границы между подблоками, смежными друг с другом, путем выполнения вышеописанной обработки с использованием информации предсказания, выведенной из модуля 103 предсказания, и квантованных коэффициентов, выведенных из модуля 104 преобразования/квантования.
[0046] Модуль 108 внутриконтурной фильтрации выполняет обработку внутриконтурной фильтрации, такую как фильтрация устранения блочности или адаптивное смещение выборки, для изображения, сохраненного в памяти 107 кадров. Обработка фильтра устранения блочности, подлежащая выполнению модулем 108 внутриконтурной фильтрации, основана на интенсивности, полученной модулем 112 вычисления интенсивности обработки фильтрации.
[0047] Модуль 109 кодирования энтропийно кодирует квантованные коэффициенты, сгенерированные модулем 104 преобразования/квантования, и информацию предсказания, сгенерированную модулем 103 предсказания, генерируя при этом закодированные данные. Способ энтропийного кодирования конкретно не указывается, и может использоваться кодирование Голомба, арифметическое кодирование, кодирование Хаффмана или тому подобное.
[0048] Модуль 110 комбинированного кодирования генерирует битовый поток путем мультиплексирования закодированных данных, данных заголовка и тому подобного, сгенерированных модулем 109 кодирования, и выводит сгенерированный битовый поток.
[0049] Обработка кодирования входного изображения вышеописанным устройством кодирования изображения будет описана со ссылкой на блок-схему последовательности операций, показанную на фиг. 3. На этапе S301, модуль 110 комбинированного кодирования кодирует заголовок, необходимый для кодирования изображения, генерируя при этом данные заголовка (закодированные данные).
[0050] На этапе S302, модуль 102 разделения на блоки делит входное изображение на множество базовых блоков. На этапе S303, модуль 103 предсказания выбирает, в качестве выбранного базового блока, невыбранный один из базовых блоков, разделенных на этапе S302. Модуль 103 предсказания принимает решение о способе разделения на подблоки (в этом варианте осуществления, способ предсказания из интра-предсказания, интер-предсказания и взвешенного интра-/интер-предсказания) и разделяет выбранный базовый блок на множество подблоков в соответствии с принятым способом разделения на подблоки. Также, модуль 103 предсказания принимает решение о способе предсказания на основе подблока. Для каждого подблока, модуль 103 предсказания генерирует предсказанное изображение путем выполнения предсказания в соответствии с принятым способом предсказания с использованием изображения в памяти 107 кадров и получает разность между подблоком и предсказанным изображением в качестве ошибки предсказания. Также, модуль 103 предсказания генерирует, в качестве информации предсказания, информацию, представляющую способ разделения на подблоки, режим предсказания и информацию, необходимую для предсказания, такую как вектор движения.
[0051] На этапе S304, модуль 104 преобразования/квантования выполняет ортогональное преобразование ошибки предсказания каждого подблока, генерируя при этом коэффициенты преобразования каждого подблока. Модуль 104 преобразования/квантования квантует коэффициенты преобразования каждого подблока, генерируя при этом квантованные коэффициенты подблока.
[0052] На этапе S305, модуль 105 обратного квантования/ обратного преобразования генерирует коэффициенты преобразования путем обратного квантования квантованных коэффициентов каждого подблока, сгенерированного на этапе S304, с использованием матрицы квантования, используемой для квантования подблока. Затем, модуль 105 обратного квантования/обратного преобразования выполняет обратное ортогональное преобразование сгенерированных коэффициентов преобразования, генерируя при этом ошибку предсказания.
[0053] На этапе S306, модуль 106 восстановления изображения генерирует, на основе информации предсказания, сгенерированной модулем 103 предсказания, предсказанное изображение из закодированных данных изображения, сохраненных в памяти 107 кадров. Затем, модуль 106 восстановления изображения восстанавливает изображение из предсказанного изображения и ошибки предсказания, сгенерированной модулем 105 обратного квантования/обратного преобразования. Модуль 106 восстановления изображения сохраняет восстановленное изображение в памяти 107 кадров.
[0054] На этапе S307, модуль 109 кодирования энтропийно кодирует квантованные коэффициенты, сгенерированные модулем 104 преобразования/квантования, и информацию предсказания, сгенерированную модулем 103 предсказания, генерируя при этом закодированные данные. Модуль 110 комбинированного кодирования перемножает данные заголовка и закодированные данные, сгенерированные модулем 109 кодирования, генерируя при этом битовый поток.
[0055] На этапе S308, модуль 199 управления определяет, закодированы ли все базовые блоки. В результате этого определения, если все базовые блоки закодированы, процесс переходит к этапу S309. Если остается незакодированный базовый блок, процесс возвращается к этапу S303.
[0056] На этапе S309, модуль 112 вычисления интенсивности обработки фильтрации вычисляет интенсивность обработки фильтра устранения блочности, подлежащей выполнению для границы между подблоками, смежными друг с другом, путем выполнения вышеописанной обработки с использованием информации предсказания, полученной модулем 103 предсказания, и квантованных коэффициентов, полученных модулем 104 преобразования/квантования.
[0057] На этапе S310, модуль 108 внутриконтурной фильтрации выполняет обработку внутриконтурной фильтрации, такую как фильтрация устранения блочности или адаптивное смещение выборки для изображения, сохраненного в памяти 107 кадров. Обработка фильтра устранения блочности, подлежащая выполнению для границы между подблоками, смежными друг с другом, основана на интенсивности, полученной для границы модулем 112 вычисления интенсивности обработки фильтрации.
[0058] Как описано выше, в соответствии с этим вариантом осуществления, в частности на этапе S309, фильтр устранения блочности, имеющий высокий эффект коррекции искажений, может быть установлен для границы между подблоками с использованием взвешенного интра-/интер-предсказания. Это может подавлять блочное искажение и улучшать субъективное качество изображения. Также, поскольку никакой новой операции не требуется для вычисления интенсивности обработки фильтра устранения блочности, сложность реализации не увеличивается.
[0059] Дополнительно, в этом варианте осуществления, наличие/отсутствие обработки фильтра устранения блочности для границы блока яркости или цветовой разности изменяется в зависимости от интенсивности (значение bS) обработки фильтра устранения блочности. Однако интенсивность сглаживающего эффекта самого фильтра может изменяться по интенсивности (значению bS). Например, когда интенсивность (значение bS) обработки фильтра устранения блочности высока, может использоваться фильтр, имеющий большую длину отводов и высокий корректирующий эффект. Когда интенсивность (значение bS) обработки фильтра устранения блочности низка, может использоваться фильтр, имеющий более короткую длину отводов и низкий корректирующий эффект. Это позволяет настраивать интенсивность фильтра, то есть, корректирующий эффект способом иным, чем наличие/отсутствие обработки фильтра устранения блочности.
[0060] [Второй вариант осуществления]
В последующих вариантах осуществления, включая этот вариант осуществления, будут описаны отличия от первого варианта осуществления, а остальное является тем же самым, что и в первом варианте осуществления, если только ниже не будет указано иначе. В этом варианте осуществления, устройство кодирования изображения выполняет следующую обработку в соответствии с блок-схемой последовательности операций, показанной на фиг. 3.
[0061] Фиг. 6 показывает пример конфигурации битового потока в соответствии с этим вариантом осуществления. Заголовок картинки сохраняет filter_weight_threshold, который представляет собой порог веса (порог веса интенсивности) для интенсивности обработки фильтра устранения блочности. Это представляет собой порог для принятия решения, по значению веса w во взвешенном интра-/интер-предсказании, следует ли обрабатывать подблок как подблок, к которому применяется интра-предсказание, или подблок, к которому применяется интер-предсказание, при вычислении значения bS фильтра устранения блочности.
[0062] На этапе S309, модуль 112 вычисления интенсивности обработки фильтрации вычисляет значение bS. Более конкретно, если справедливо следующее неравенство, значение bS вычисляется путем обработки подблока взвешенного интра-/интер-предсказания как подблока интра-предсказания.
[0063] w < filter_weight_threshold
Например, если значение filter_weight_threshold равно 4, все подблоки взвешенного интра-/интер-предсказания, которые имеют значение веса w меньше, чем 4, обрабатываются как подблоки интра-предсказания. Все подблоки взвешенного интра-/интер-предсказания, которые имеют значение веса w, равное 4 или более, обрабатываются как подблоки интер-предсказания. Последующая таблица показывает пример значений bS, когда подблок P и подблок Q, показанные на фиг. 7, закодированы посредством интра-предсказания, интер-предсказания, взвешенного интра-/интер-предсказания (w=3) и взвешенного интра-/интер-предсказания (w=5).
[0064] [Таблица 1]
Способы предсказания блоков P и Q и значений bS
Блок Q
интра
интер
w=3
w=5
Блок P
интра
2
2
2
2
интер
2
1 или менее
2
1 или менее
w=3
2
2
2
2
w=5
2
1 или менее
2
1 или менее
[0065] В этой таблице, filter_weight_threshold=4. Например, если по меньшей мере один из подблока P и подблока Q, которые являются смежными, закодирован посредством интра-предсказания или взвешенного интра-/интер-предсказания (w=3), этот один подблок обрабатывается как блок интра-предсказания. Следовательно, значение bS установлено в 2. Если как подблок P, так и подблок Q закодированы посредством интер-предсказания или взвешенного интра-/интер-предсказания (w=5), то как подблок P, так и подблок Q обрабатываются как блоки интер-предсказания. Следовательно, значение bS установлено в 0 или 1. Следует ли установить значение bS в 0 или 1, определяется как в модуле 112 вычисления интенсивности обработки фильтрации в соответствии с первым вариантом осуществления. Это решается в зависимости от наличия/отсутствия ненулевых коэффициентов ортогонального преобразования в подблоке P и подблоке Q, разницы в числе или размере векторов движения, разницы в опорном изображении и тому подобного.
[0066] Модуль 112 вычисления интенсивности обработки фильтрации определяет значение bS путем обращения к данным в таблице. Отметим, что в этом варианте осуществления filter_weight_threshold сохранен в заголовке картинки. Однако место сохранения не ограничено конкретным местом сохранения, и filter_weight_threshold может сохраняться, например, в заголовке последовательности. Также, в этом варианте осуществления, порог веса интенсивности сохраняется в заголовке в качестве информации, используемой для определения, следует ли обрабатывать подблок взвешенного интра-/интер-предсказания как подблок интра-предсказания или подблок интер-предсказания при вычислении значения bS. Однако настоящее изобретение не ограничено этим. Может сохраняться информация флага, представляющая, что подблок должен всегда обрабатываться как подблок интра-предсказания, или может сохраняться информация флага, представляющая, что подблок должен всегда обрабатываться как подблок интер-предсказания. Альтернативно, значение, полученное вычитанием 4 из значения filter_weight_threshold заранее, может быть установлено как порог веса интенсивности filter_weight_threshold_minus4. Поскольку возможность того, что значение filter_weight_threshold_minus4 установлено в 0 или значение, близкое к 0, становится высокой, величина кода самой информации может быть снижена посредством кодирования Голомба или тому подобного.
[0067] Как описано выше, в соответствии с этим вариантом осуществления, становится возможным принимать решение об интенсивности обработки фильтра устранения блочности для подблока взвешенного интра-/интер-предсказания без необходимости в сложной обработке. Кроме того, пользовать может свободно настраивать интенсивность обработки фильтра устранения блочности для блока взвешенного интра-/интер-предсказания.
[0068] Также, в этом варианте осуществления, информация, используемая для принятия решения об интенсивности фильтра, выведена в заголовок. Однако настоящее изобретение не ограничено этим. Следует ли обрабатывать подблок взвешенного интра-/интер-предсказания как подблок интра-предсказания или подблок интер-предсказания, может быть однозначно определено заранее посредством значения w. Альтернативно, фильтр устранения блочности, который сильно сглаживает, когда вес интра-предсказания становится большим, может применяться независимо от значения bS. Следовательно, величина кода, соответствующего порогу веса интенсивности, может быть сэкономлена, и сложность реализации может быть снижена путем фиксации обработки фильтра устранения блочности с использованием режима предсказания.
[0069] [Третий вариант осуществления]
В этом варианте осуществления будет описано устройство декодирования изображения, которое декодирует входное изображение, закодированное устройством кодирования изображения в соответствии с первым вариантом осуществления. Пример функциональной конфигурации устройства декодирования изображения в соответствии с этим вариантом осуществления будет описан со ссылкой на блок-схему на фиг. 2.
[0070] Модуль 299 управления управляет работой всего устройства декодирования изображения. Модуль 202 демультиплексирования/декодирования получает битовый поток, сгенерированный устройством кодирования изображения, демультиплексирует информацию относительно обработки декодирования и закодированные данные относительно коэффициентов из битового потока и декодирует закодированные данные, существующие в заголовке битового потока. В этом варианте осуществления, модуль 202 демультиплексирования/декодирования выполняет операцию, обратную операции вышеописанного модуля 110 комбинированного кодирования.
[0071] Модуль 203 декодирования декодирует закодированные данные, демультиплексированные из битового потока модулем 202 демультиплексирования/декодирования, получая при этом квантованные коэффициенты и информацию предсказания. Модуль 204 обратного квантования/обратного преобразования выполняет операцию, подобную операции модуля 105 обратного квантования/обратного преобразования, предусмотренного в вышеописанном устройстве кодирования изображения. Модуль 204 обратного квантования/обратного преобразования получает коэффициенты преобразования путем обратного квантования квантованных коэффициентов и выполняет обратное ортогональное преобразование для коэффициентов преобразования, получая при этом ошибку предсказания.
[0072] Модуль 205 восстановления изображения генерирует предсказанное изображение путем обращения к изображению, сохраненному в памяти 206 кадров, на основе информации предсказания, декодированной модулем 203 декодирования. Модуль 205 восстановления изображения генерирует восстановленное изображение с использованием сгенерированного предсказанного изображения и ошибки предсказания, полученной модулем 204 обратного квантования/обратного преобразования, и сохраняет сгенерированное восстановленное изображение в памяти 206 кадров.
[0073] Модуль 209 вычисления интенсивности обработки фильтрации определяет значение bS, которое является интенсивностью обработки фильтра устранения блочности для границы между смежными подблоками, с использованием информации предсказания и квантованных коэффициентов, декодированных модулем 203 декодирования, подобно модулю 112 вычисления интенсивности обработки фильтрации.
[0074] Модуль 207 внутриконтурной фильтрации выполняет обработку внутриконтурной фильтрации, такую как фильтрация устранения блочности для восстановленного изображения, сохраненного в памяти 206 кадров, подобно модулю 108 внутриконтурной фильтрации. Обработка фильтра устранения блочности модулем 207 внутриконтурной фильтрации представляет собой обработку фильтра устранения блочности, соответствующую значению bS, полученному модулем 209 вычисления интенсивности обработки фильтрации.
[0075] Восстановленное изображение, сохраненное в памяти 206 кадров, соответственно выводится модулем 299 управления. Место вывода восстановленного изображения не ограничено конкретным местом вывода. Например, восстановленное изображение может отображаться на дисплейном экране устройства отображения, такого как дисплей, или восстановленное изображение может выводиться на проекционное устройство, такое как проектор.
[0076] Работа (обработка декодирования битового потока) устройства декодирования изображения, имеющего вышеописанную конфигурацию, будет описана далее. В этом варианте осуществления, битовый поток, введенный в модуль 202 демультиплексирования/декодирования, представляет собой битовый поток каждого кадра движущегося изображения. Однако он может представлять собой битовый поток неподвижного изображения.
[0077] Модуль 202 демультиплексирования/декодирования получает битовый поток одного кадра, сгенерированный устройством кодирования изображения, демультиплексирует информацию относительно обработки декодирования и закодированные данные относительно коэффициентов из битового потока и декодирует закодированные данные, существующие в заголовке битового потока. Также, модуль 202 демультиплексирования/декодирования выводит закодированные данные каждого базового блока данных картинки на модуль 203 декодирования.
[0078] Модуль 203 декодирования декодирует закодированные данные, демультиплексированные из битового потока модулем 202 демультиплексирования/декодирования, получая при этом квантованные коэффициенты и информацию предсказания. Информация предсказания включает в себя информацию, представляющую, какой один из следующих способов предсказания был использован для кодирования каждого подблока.
[0079] - Интра-предсказание, такое как горизонтальное предсказание или вертикальное предсказание,
- Интер-предсказание для выполнения компенсации движения из опорного кадра,
- Взвешенное интра-/интер-предсказание, которое комбинирует интра-предсказание и интер-предсказание.
Модуль 204 обратного квантования/обратного преобразования получает коэффициенты преобразования путем обратного квантования квантованных коэффициентов каждого подблока и выполняет обратное ортогональное преобразование для коэффициентов преобразования, получая при этом ошибку предсказания.
[0080] Модуль 205 восстановления изображения генерирует предсказанное изображение путем обращения к изображению, сохраненному в памяти 206 кадров, на основе информации предсказания, декодированной модулем 203 декодирования. Модуль 205 восстановления изображения генерирует восстановленное изображение с использованием сгенерированного предсказанного изображения и ошибки предсказания, полученной модулем 204 обратного квантования/обратного преобразования, и сохраняет сгенерированное восстановленное изображение в памяти 206 кадров.
[0081] Модуль 209 вычисления интенсивности обработки фильтрации определяет значение bS, которое является интенсивностью обработки фильтра устранения блочности для границы между смежными подблоками, с использованием информации предсказания и квантованных коэффициентов, декодированных модулем 203 декодирования, подобно модулю 112 вычисления интенсивности обработки фильтрации.
[0082] Модуль 207 внутриконтурной фильтрации выполняет обработку внутриконтурной фильтрации, такую как фильтрация устранения блочности для восстановленного изображения, сохраненного в памяти 206 кадров, подобно модулю 108 внутриконтурной фильтрации. Обработка фильтра устранения блочности модулем 207 внутриконтурной фильтрации представляет собой обработку фильтра устранения блочности, соответствующую значению bS, полученному модулем 209 вычисления интенсивности обработки фильтрации.
[0083] В этом варианте осуществления, значение bS указывает тип сигнала (компонент изображения) в качестве цели обработки фильтрации устранения блочности, как в первом варианте осуществления. Дополнительно, сильный фильтр, имеющий высокий сглаживающий эффект, и слабый фильтр, имеющий низкий сглаживающий эффект, избирательно используются в соответствии с состоянием значения пиксела. Однако настоящее изобретение не ограничено этим. Например, не только тип сигнала, но и интенсивность сглаживающего эффекта может определяться в соответствии со значением bS. Альтернативно, только интенсивность сглаживающего эффекта может определяться на основе значения bS, а тип сигнала может определяться на основе другого условия.
[0084] Обработка декодирования битового потока, соответствующего одному кадру, устройством декодирования изображения, описанным выше, будет описана со ссылкой на блок-схему последовательности операций, показанную на фиг. 4. На этапе S401, модуль 202 демультиплексирования/декодирования получает битовый поток, соответствующий одному кадру, сгенерированный устройством кодирования изображения. Модуль 202 демультиплексирования/декодирования затем демультиплексирует информацию относительно обработки декодирования и закодированные данные относительно коэффициентов из битового потока и декодирует закодированные данные, существующие в заголовке битового потока.
[0085] Процессы этапов S402 - S405 выполняются для каждого базового блока входного изображения (в изображении). На этапе S402, модуль 203 декодирования декодирует закодированные данные, демультиплексированные из битового потока модулем 202 демультиплексирования/декодирования, получая при этом квантованные коэффициенты и информацию предсказания.
[0086] На этапе S403, модуль 204 обратного квантования/обратного преобразования получает коэффициенты преобразования путем обратного квантования квантованных коэффициентов подблока в качестве цели декодирования и выполняет обратное ортогональное преобразование для коэффициентов преобразования, получая при этом ошибку предсказания.
[0087] На этапе S404, модуль 205 восстановления изображения генерирует предсказанное изображение со ссылкой на изображение, сохраненное в памяти 206 кадров, на основе информации предсказания, декодированной модулем 203 декодирования. Модуль 205 восстановления изображения генерирует восстановленное изображение с использованием сгенерированного предсказанного изображения и ошибки предсказания, полученной модулем 204 обратного квантования/обратного преобразования, и сохраняет сгенерированное восстановленное изображение в памяти 206 кадров.
[0088] На этапе S405, модуль 299 управления определяет, завершено ли декодирование всех базовых блоков, включенных в битовый поток. В результате определения, если декодирование всех базовых блоков, включенных в битовый поток, завершено, процесс переходит к этапу S406. С другой стороны, если базовый блок, декодирование которого не завершено, еще остается во всех базовых блоках, включенных в битовый поток, обработка от этапа S402 повторяется для базового блока, декодирование которого еще не завершено.
[0089] На этапе S406, модуль 209 вычисления интенсивности обработки фильтрации определяет значение bS, которое представляет собой интенсивность обработки фильтра устранения блочности для границы между смежными подблоками, с использованием информации предсказания и квантованных коэффициентов, декодированных модулем 203 декодирования, подобно модулю 112 вычисления интенсивности обработки фильтрации.
[0090] На этапе S407, модуль 207 внутриконтурной фильтрации выполняет обработку внутриконтурной фильтрации, такую как фильтрация устранения блочности для восстановленного изображения, сохраненного в памяти 206 кадров на этапе S404, подобно модулю 108 внутриконтурной фильтрации. Обработка фильтра устранения блочности модулем 207 внутриконтурной фильтрации представляет собой обработку фильтра устранения блочности, соответствующую значению bS, полученному модулем 209 вычисления интенсивности обработки фильтрации на этапе S406.
[0091] Как описано выше, в соответствии с этим вариантом осуществления, становится возможным декодировать битовый поток, сгенерированный устройством кодирования изображения в соответствии с первым вариантом осуществления, в котором соответствующий фильтр устранения блочности применяется к подблоку, закодированному посредством взвешенного интра-/интер-предсказания.
[0092] Дополнительно, в этом варианте осуществления, наличие/отсутствие фильтра для границы блока яркости или цветовой разности изменяется в зависимости от интенсивности (значения bS) обработки фильтра устранения блочности. Однако интенсивность сглаживающего эффект самого фильтра может изменяться по интенсивности (значения bS) обработки фильтра устранения блочности. Например, когда интенсивность (значение bS) обработки фильтра устранения блочности высока, может использоваться фильтр, имеющий большую длину отводов и высокий корректирующий эффект. Когда интенсивность (значение bS) обработки фильтра устранения блочности низка, может использоваться фильтр, имеющий более короткую длину отводов и низкий корректирующий эффект. Это делает возможным декодировать битовый поток, для которого интенсивность фильтра, то есть, корректирующий эффект настраивается способом иным, чем наличие/отсутствие фильтра.
[0093] [Четвертый вариант осуществления]
В этом варианте осуществления, будет описано устройство декодирования изображения, которое декодирует входное изображение, закодированное устройством кодирования изображения в соответствии с вторым вариантом осуществления. В этом варианте осуществления, в обработке в соответствии с блок-схемой последовательности операций, показанной на фиг. 4, следующие моменты отличаются от третьего варианта осуществления.
[0094] На этапе S401, модуль 202 демультиплексирования/ декодирования демультиплексирует информацию относительно обработки декодирования и закодированные данные относительно коэффициентов из битового потока, показанного на фиг. 6, и декодирует закодированные данные, существующие в заголовке битового потока. В этом декодировании, декодируется filter_weight_threshold, который представляет собой порог веса интенсивности в заголовке картинки.
[0095] На этапе S406, модуль 209 вычисления интенсивности обработки фильтрации вычисляет значение bS. Отметим, что в этом варианте осуществления, следует ли устанавливать значение bS в 0 или 1, определяется как в модуле 209 вычисления интенсивности обработки фильтрации в соответствии с третьим вариантом осуществления.
[0096] В этом варианте осуществления, filter_weight_threshold существует в заголовке картинки. Однако настоящее изобретение не ограничено этим, и filter_weight_threshold может существовать, например, в заголовке последовательности. Также, в этом варианте осуществления, порог веса интенсивности декодируется как информация, используемая для определения, должен ли блок взвешенного интра-/интер-предсказания обрабатываться как подблок интра-предсказания или подблок интер-предсказания при вычислении значения bS. Однако настоящее изобретение не ограничено этим. Может декодироваться информация флага, представляющая, что подблок должен всегда обрабатываться как подблок интра-предсказания, или может декодироваться информация флага, представляющая, что подблок должен всегда обрабатываться как подблок интер-предсказания. Альтернативно, значение, полученное вычитанием 4 из значения filter_weight_threshold, заранее может декодироваться как порог веса интенсивности filter_weight_threshold_minus4. Поскольку возможность того, что значение filter_weight_threshold_minus4 установлено в 0 или значение, близкое к 0, становится высокой, может декодироваться битовый поток, в котором величина кода самой информации мала.
[0097] Как описано выше, в соответствии с этим вариантом осуществления, становится возможным определять интенсивность обработки фильтра устранения блочности для подблока взвешенного интра-/интер-предсказания без необходимости в сложной обработке. Кроме того, становится возможным декодировать битовый поток, для которого пользовать может свободно настраивать интенсивность обработки фильтра устранения блочности для подблока взвешенного интра-/интер-предсказания.
[0098] Также, в этом варианте осуществления, информация, используемая для принятия решения об интенсивности фильтра, декодируется из заголовка. Однако настоящее изобретение не ограничено этим. Должен ли подблок взвешенного интра-/интер-предсказания обрабатываться как подблок интра-предсказания или подблок интер-предсказания, может однозначно определяться заранее посредством значения w. Альтернативно, фильтр устранения блочности, который сильно сглаживает, когда вес интра-предсказания становится большим, может применяться независимо от значения bS. Следовательно, может декодироваться битовый поток, в котором величина кода, соответствующая порогу веса интенсивности, может быть сэкономлена, и сложность реализации может быть снижена путем фиксации обработки фильтра устранения блочности с использованием режима предсказания.
[0099] [Четвертый вариант осуществления]
Все функциональные блоки, показанные на фиг. 1 и 2, могут быть реализованы в аппаратных средствах, и некоторые могут быть реализованы посредством программного обеспечения (компьютерных программ). В этом случае, компьютерное устройство, включающее в себя память 107 кадров или память 206 кадров в качестве устройства памяти и способное исполнять компьютерные программы, может применяться к вышеописанному устройству кодирования изображения или устройству декодирования изображения. Пример конфигурации аппаратных средств компьютерного устройства, применимой к вышеописанному устройству кодирования изображения или устройству декодирования изображения, будет описан со ссылкой на блок-схему на фиг. 5.
[0100] CPU 501 исполняет различные виды обработки с использованием компьютерных программ и данных, сохраненных в RAM 502 или ROM 503. Соответственно, CPU 501 выполняет управление работой всего компьютерного устройства и исполняет обработку или управляет обработкой, описанной выше в качестве обработки, подлежащей исполнению вышеописанным устройством кодирования изображения или устройством декодирования изображения.
[0101] RAM 502 имеет область для хранения компьютерных программ и данных, загружаемых из ROM 503 или внешнего устройства 506 хранения, и данных (например, вышеописанных данных движущегося изображения или неподвижного изображения), принимаемых извне через I/F (интерфейс) 507. RAM 502 также имеет рабочую область, используемую посредством CPU 501 для исполнения различных видов обработки. Таким образом, RAM 502 может соответственно обеспечивать различные виды областей. Установочные данные и программа активации компьютерного устройства сохранены в ROM 503.
[0102] Операционный модуль 504 представляет собой пользовательский интерфейс, такой как клавиатура, мышь или сенсорная панель. Путем приведения в действие операционного модуля 504, пользователь может вводить различные виды инструкций в CPU 501.
[0103] Модуль 505 отображения образован жидкокристаллическим экраном или экраном сенсорной панели и может отображать результат обработки посредством CPU 501 как изображение или символы. Например, восстановленное изображение, декодированное вышеописанным устройством декодирования изображения, может отображаться на модуле 505 отображения. Отметим, что модуле 505 отображения может быть проекционным устройством, таким как проектор, который проецирует изображение или символы.
[0104] Внешнее устройство 506 хранения представляет собой устройство хранения информации большой емкости, такое как накопитель на жестком диске. OS (операционная система) и компьютерные программы и данные, используемые для побуждения CPU 501 исполнять или управлять различными видами обработки, описанной выше как обработка, подлежащая исполнению вышеописанным устройством кодирования изображения или устройством декодирования изображения, сохранены во внешнем устройстве 506 хранения. Компьютерные программы, сохраненные во внешнем устройстве 506 хранения, включают в себя компьютерную программу, используемую для побуждения CPU 501 реализовывать функции функциональных модулей иных, чем вышеописанные память 107 кадров и память 206 кадров. Также, данные, сохраненные во внешнем устройстве 506 хранения, включают в себя различные виды информации, необходимой для кодирования или декодирования, такой как была описана выше как уже известная информация (порог веса интенсивности, данные в таблице 1 и тому подобное).
[0105] Компьютерные программы и данные, сохраненные во внешнем устройстве 506 хранения, соответственно загружаются в RAM 502 под управлением CPU 501 и обрабатываются посредством CPU 501. Отметим, что вышеописанные память 107 кадров или память 206 кадров могут быть реализованы посредством устройства памяти, такого как RAM 502 или внешнее устройство 506 хранения.
[0106] I/F 507 функционирует как интерфейс, сконфигурированный, чтобы выполнять обмен данными с внешним устройством. Например, движущееся изображение или неподвижное изображение может быть получено от внешнего серверного устройства или устройства захвата изображения в RAM 502 или внешнее устройство 506 хранения через I/F 507.
[0107] CPU 501, RAM 502, ROM 503, операционный модуль 504, модуль 505 отображения, внешнее устройство 506 хранения и I/F 507 соединены с шиной 508. Отметим, что конфигурация, показанная на фиг. 5, является только примерной конфигурацией аппаратных средств компьютерного устройства, применимого к вышеописанному устройству кодирования изображения или устройству декодирования изображения, и могут быть осуществлены различные изменения/ модификации.
[0108] [Шестой вариант осуществления]
В вышеописанных вариантах осуществления, подблок используется в качестве единицы кодирования. Однако единица кодирования не ограничена подблоком, и, например, базовый блок может быть использован как единица кодирования. Также, числовые значения, используемые в приведенном выше описании, использованы только для обеспечения детального описания, и не предназначены для ограничения вышеописанных вариантов осуществления использованными числовыми значениями. Например, значение w, значение порога веса интенсивности и размер блока, используемые в приведенном выше описании, являются только примерами и не ограничены вышеописанными числовыми значениями.
[0109] В вышеописанных вариантах осуществления, устройство декодирования изображения было описано как устройство, отличное от устройства кодирования изображения. Однако устройство декодирования изображения и устройство кодирования изображения могут быть объединены в одно устройство. В этом случае, такое устройство может кодировать входное изображение и декодировать закодированное входное изображение по мере необходимости.
[0110] Также, цель применения фильтра устранения блочности не ограничивается границей между подблоками и может быть, например, границей между единицами преобразования. В вышеописанных вариантах осуществления, размер фильтра устранения блочности составляет 8 пикселов × 8 пикселов. Однако, размер не ограничен этим. Размер единицы преобразования может быть таким же, как подблок или может отличаться от подблока.
[0111] Некоторые или все из вышеописанных вариантов осуществления могут подходящим образом использоваться в комбинации. Альтернативно, некоторые или все из вышеописанных вариантов осуществления могут использоваться избирательно.
(Другие варианты осуществления)
Настоящее изобретение может быть реализовано путем обработки программы для реализации одной или более функций вышеописанных вариантов осуществления, предоставляемой в систему или устройство через сеть или носитель данных, и побуждения одного или более процессоров в компьютере системы или устройства считывать программу и исполнять ее. Настоящее изобретение может также быть реализовано схемой (например, ASIC) для реализации одной или более функций.
[0112] Настоящее изобретение не ограничено вышеописанными вариантами осуществления, и различные изменения и модификации могут быть выполнены без отклонения от сущности и объема настоящего изобретения. Поэтому, чтобы информировать общественность об объеме настоящего изобретения, представлена следующая формула изобретения.
[0113] Настоящая заявка испрашивает приоритет Японской патентной заявки № 2018-235911, поданной 17 декабря, 2018, которая полностью включена в настоящий документ посредством ссылки.
Список ссылочных позиций
[0114] 102 модуль разделения на блоки
103 модуль предсказания
104 модуль преобразования/квантования
105 модуль обратного квантования/обратного преобразования
106 модуль восстановления изображения
107 память кадров
108 модуль внутриконтурной фильтрации
109 модуль кодирования
110 модуль комбинированного кодирования
112 модуль вычисления интенсивности обработки фильтрации
202 модуль демультиплексирования/декодирования
203 модуль декодирования
204 модуль обратного квантования/обратного преобразования
205 модуль восстановления изображения
206 память кадров
207 модуль внутриконтурной фильтрации
209 модуль вычисления интенсивности обработки фильтрации
299 модуль управления