УСТРОЙСТВО ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЙ ПРОГНОЗИРОВАНИЯ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ДВИЖУЩИХСЯ ИЗОБРАЖЕНИЙ, УСТРОЙСТВО КОДИРОВАНИЯ ДВИЖУЩИХСЯ ИЗОБРАЖЕНИЙ И СПОСОБ ФОРМИРОВАНИЯ ИЗОБРАЖЕНИЙ ПРОГНОЗИРОВАНИЯ
PREDICTION IMAGE FORMING APPARATUS, MOVING IMAGE DECODING APPARATUS, MOVING IMAGE ENCODING APPARATUS, AND METHOD FOR FORMING PREDICTION IMAGES

ССЫЛКИ НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящее раскрытие представляет собой заявку на национальной фазе Международной Патентной Заявки PCT/JP2019/051080, поданной 26 декабря 2019, опубликованной под номером WO2020/141599, которая притязает на преимущества и приоритет предварительной заявки на патент США номер 62/787,646, поданной 2 января 2019, все содержание которой, таким образом, содержится в настоящем документе посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
[0001]
Варианты осуществления настоящего изобретения относятся к устройству формирования изображений прогнозирования, устройству декодирования движущихся изображений и устройству кодирования движущихся изображений.
УРОВЕНЬ ТЕХНИКИ
[0002]
Для эффективной передачи или записи движущихся изображений устройство кодирования движущихся изображений применяют для формирования кодированных данных путем кодирования движущегося изображения, а устройство декодирования движущихся изображений применяют для формирования декодированного изображения путем декодирования кодированных данных.
[0003]
Конкретные схемы кодирования движущихся изображений включают в себя, например, H.264/AVC, высокоэффективное кодирование видеоизображений (HEVC) и т. д.
[0004]
В таких схемах кодирования движущихся изображений изображения (кадры), образующие движущееся изображение, управляются посредством иерархической структуры и кодируются/декодируются для каждого элемента кодирования (CU), причем иерархическая структура включает в себя срезы, полученные путем разделения изображений, элементы кодового дерева (CTU), полученные путем разделения срезов, CU, полученные путем разделения кодирования.
[0005]
Кроме того, в таких схемах кодирования движущихся изображений иногда формируют изображение прогнозирования на основании локальных декодированных изображений, полученных путем кодирования/декодирования входных изображений, и кодируют ошибки прогнозирования (иногда также называемые «разностными изображениями» или «остаточными изображениями»), полученные путем вычитания изображения прогнозирования из входных изображений (исходных изображений). Способы формирования изображений прогнозирования включают в себя межкадровое прогнозирование и внутрикадровое прогнозирование. Технологии кодирования и декодирования движущихся изображений в последние годы включают в себя непатентный документ 1.
[0006]
Более того, технологии кодирования и декодирования движущихся изображений в последние годы включают в себя прогнозирование с помощью линейной модели с перекрестными компонентами (CCLM - англ.: cross-component linear model) для формирования изображения прогнозирования изображения цветности в соответствии с изображением яркости. При прогнозировании CCLM параметры линейного прогнозирования получают с помощью декодированных изображений, смежных с блоком объекта, а цветность блока объекта прогнозируют в соответствии с моделью линейного прогнозирования (моделью CCLM) (непатентный документ 2).
Список библиографических ссылок
Непатентная литература
[0007]
Непатентный документ 1: “Versatile Video Coding (Draft 3)”, JVET-L1001, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 2018-11-08 17:06:06
Непатентный документ 2: “CE3-5.1: On cross-component linear model simplification”, JVET-L0191, Joint Video Exploration Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 2018-10-03
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Техническая задача
[0008]
Как описано выше, при обработке CCLM получают параметры линейного прогнозирования и формируют изображения прогнозирования с помощью модели линейного прогнозирования. При получении параметров линейного прогнозирования применяют целочисленные операции и табличный поиск, но проблемой является использование таблицей большого объема памяти.
[0009]
Кроме того, при получении значения прогнозирования с помощью произведения градиентного члена (параметра a прогнозирования CCLM) параметров линейного прогнозирования и значения пикселя, битовая ширина параметра a прогнозирования CCLM увеличивается в способе согласно непатентному документу 1, в результате чего возникает сложная проблема произведения. Кроме того, в непатентном документе 1 также применяется произведение при получении градиентного члена (параметра a прогнозирования CCLM) параметров линейного прогнозирования и члена смещения (параметра b прогнозирования CCLM) параметров линейного прогнозирования, причем это произведение также служит в качестве произведения значений, имеющих большие значения битовой ширины, и, следовательно, является сложным. Следует отметить, что произведение значений, имеющих большие значения битовой ширины, увеличивает аппаратную шкалу.
Решение проблемы
[0010]
Для решения вышеуказанной проблемы участок прогнозирования CCLM в соответствии с решением по настоящему изобретению представляет собой участок прогнозирования CCLM для формирования изображения прогнозирования с помощью прогнозирования CCLM, причем участок прогнозирования CCLM содержит: участок получения параметра прогнозирования CCLM для получения параметров (a, b) прогнозирования CCLM с помощью значения разности яркости, значения разности цветности и таблицы; и участок фильтра прогнозирования CCLM для формирования изображения прогнозирования цветности с помощью эталонного изображения яркости и параметров (a, b) прогнозирования CCLM. Участок получения параметров прогнозирования CCLM получает параметр a прогнозирования CCLM с помощью первого значения сдвига shift_a для сдвига вправо значения, полученного умножением значения обратной таблицы, на которую выполняется ссылка при применении значения разности яркости, на значение разности цветности. Участок фильтра прогнозирования CCLM применяет второе указанное значение сдвига shiftA для сдвига вправо произведения параметра a на яркость, таким образом получая изображение прогнозирования цветности.
Преимущества изобретения
[0011]
В соответствии с решением по настоящему изобретению достигается эффект упрощения умножения с помощью параметра линейного прогнозирования при прогнозировании CCLM.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0012]
На ФИГ. 1 представлено схематическое изображение, иллюстрирующее компоненты системы передачи изображений в соответствии с настоящим вариантом осуществления.
[0013]
На ФИГ. 2 представлена схема, иллюстрирующая компоненты передающего устройства, оснащенного устройством кодирования движущихся изображений в соответствии с настоящим вариантом осуществления и компоненты принимающего устройства, оснащенного устройством декодирования движущихся изображений в соответствии с настоящим вариантом осуществления.
[0014]
На ФИГ. 3 представлена схема, иллюстрирующая компоненты записывающего устройства, оснащенного устройством кодирования движущихся изображений в соответствии с настоящим вариантом осуществления, и устройство воспроизведения, оснащенное устройством декодирования движущихся изображений в соответствии с настоящим вариантом осуществления.
[0015]
На ФИГ. 4 представлена схема, иллюстрирующая иерархическую структуру данных в кодированном потоке.
[0016]
На ФИГ. 5 представлена схема, иллюстрирующая пример разделения CTU.
[0017]
На ФИГ. 6 представлено схематическое изображение, иллюстрирующее типы (номера режимов) режимов внутрикадрового прогнозирования.
[0018]
На ФИГ. 7 представлено схематическое изображение, иллюстрирующее компоненты устройства декодирования движущихся изображений.
[0019]
На ФИГ. 8 представлено схематическое изображение, иллюстрирующее компоненты участка декодирования параметров внутрикадрового прогнозирования.
[0020]
На ФИГ. 9 представлена схема, иллюстрирующая эталонные области для внутрикадрового прогнозирования.
[0021]
На ФИГ. 10 представлена схема, иллюстрирующая компоненты участка формирования изображения внутрикадрового прогнозирования.
[0022]
На ФИГ. 11 представлена блок-схема, иллюстрирующая пример компонентов участка прогнозирования CCLM.
[0023]
На ФИГ. 12 представлена блок-схема, иллюстрирующая пример компонентов участка фильтра прогнозирования CCLM в соответствии с вариантом осуществления настоящего изобретения.
[0024]
На ФИГ. 13 представлена диаграмма, иллюстрирующая пиксели, на которые выполняется ссылка при получении параметров прогнозирования CCLM в соответствии с вариантом осуществления настоящего изобретения.
[0025]
На ФИГ. 14 представлена схема, иллюстрирующая пример комбинации (яркости и цветности), применяемой при прогнозировании CCLM в соответствии с настоящим вариантом осуществления.
[0026]
На ФИГ. 15 представлена блок-схема, иллюстрирующая компоненты устройства кодирования движущихся изображений.
[0027]
На ФИГ. 16 представлено схематическое изображение, иллюстрирующее компоненты участка кодирования параметров внутрикадрового прогнозирования.
[0028]
На ФИГ. 17 представлена схема, иллюстрирующая пример расчета значения элемента, не содержащегося в таблице.
[0029]
На ФИГ. 18 представлена схема, иллюстрирующая пример расчета значения элемента, не содержащегося в таблице.
[0030]
На ФИГ. 19 представлена схема, иллюстрирующая пример потока данных примера обработки в соответствии с настоящим изобретением.
[0031]
На ФИГ. 20 представлен пример, иллюстрирующий значения normDiff, idx и т. д. с разностью, находящейся в диапазоне от 0 до 63.
[0032]
На ФИГ. 21 представлен пример, иллюстрирующий значения idx, sc и т. д. с разностью, находящейся в диапазоне от 0 до 63.
[0033]
На ФИГ. 22 представлена схема, иллюстрирующая другой пример потока данных примера обработки в соответствии с настоящим изобретением.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
(Первый вариант осуществления)
[0034]
Ниже представлено описание вариантов осуществления настоящего изобретения со ссылкой на прилагаемые графические материалы.
[0035]
На ФИГ. 1 представлено схематическое изображение, иллюстрирующее компоненты системы 1 передачи изображений в соответствии с настоящим вариантом осуществления.
[0036]
Система 1 передачи изображений представляет собой систему для передачи кодированного потока, полученного путем кодирования изображения объекта, декодирования переданного кодированного потока и отображения изображения. Компоненты системы 1 передачи изображений включают в себя: устройство 11 кодирования движущихся изображений (устройство кодирования изображений), сеть 21, устройство 31 декодирования движущихся изображений (устройство декодирования изображений) и устройство 41 отображения движущихся изображений (устройство отображения изображений).
[0037]
Изображение T представляет собой ввод в устройство 11 кодирования движущихся изображений.
[0038]
Сеть 21 передает кодированные потоки Te, сгенерированные устройством 11 кодирования движущихся изображений, в устройство 31 декодирования движущихся изображений. Сеть 21 представляет собой сеть Интернет, глобальную сеть (WAN), локальную сеть (LAN) или их комбинацию. Сеть 21 не обязательно ограничивается двунаправленной сетью связи и может представлять собой однонаправленную сеть связи для передачи широковещательных волн, таких как наземная цифровая широковещательная передача и спутниковое широковещательная передача. Кроме того, сеть 21 также может быть заменена на носитель данных, на который записываются кодированные потоки Te, такой как, универсальный цифровой диск (DVD, зарегистрированный товарный знак), диск Blue-ray (BD, зарегистрированный товарный знак) и т. д.
[0039]
Устройство 31 декодирования движущихся изображений декодирует кодированные потоки Te, передаваемые сетью 21 соответственно, для формирования одного или более декодированных изображений Td.
[0040]
Устройство 41 отображения движущихся изображений отображает все или часть из одного или множества декодированных изображений Td, сформированных устройством 31 декодирования движущихся изображений. Устройство 41 отображения движущихся изображений включает в себя, например, устройства отображения, такие как жидкокристаллический дисплей, органический электролюминесцентный дисплей (EL) и т. д. Дисплей может быть выполнен в виде, например, стационарного дисплея, мобильного дисплея, видеошлема (HMD - англ.: head-mounted display) и т. д. Кроме того, когда устройство 31 декодирования движущихся изображений имеет высокие возможности обработки, отображается изображение с высоким качеством изображения, а когда устройство 31 декодирования движущихся изображений имеет только относительно низкие возможности обработки, отображается изображение, не требующее высоких возможностей обработки и высоких возможностей отображения.
<Оператор>
[0041]
Операторы, применяемые в настоящем описании, описаны ниже.
[0042]
>> обозначает смещение вправо; << обозначает смещение влево; И обозначает побитовое И; | обозначает побитовое ИЛИ; |= обозначает оператор присваивания ИЛИ; || обозначает логическую сумму.
[0043]
x?y:z представляет собой трехкомпонентный оператор, в котором y берется, когда x истинно (кроме 0), и z берется, когда x ложно (0).
[0044]
Clip3(a, b, c) представляет собой функцию для обрезания c до значения, равного или превышающего a и равного или менее b, и представляет собой функцию для возврата a, если c < a, возврата b, если c > b, и возврата c в противном случае (где a <= b).
[0045]
abs(a) представляет собой функцию возврата абсолютного значения a.
[0046]
Int(a) представляет собой функцию возврата целочисленного значения a.
[0047]
floor(a) представляет собой функцию возврата наибольшего целого числа, равного или меньше a.
[0048]
ceil(a) представляет собой функцию возврата наименьшего целого числа, равного или больше a.
[0049]
a/d обозначает деление a на d (удаление десятичного знака).
[0050]
a^b обозначает a в степени b.
[0051]
знак (a) представляет собой функцию возврата знака и возврата 1, если a > 0, возврата 0, если a=0, и возврата -1, если a < 0.
<Структура кодированного потока Te>
[0052]
Перед подробным описанием устройства 11 кодирования движущихся изображений и устройства 31 декодирования движущихся изображений в соответствии с настоящим вариантом осуществления описана структура данных кодированного потока Te, сгенерированного устройством 11 кодирования движущихся изображений и декодированного устройством 31 декодирования движущихся изображений.
[0053]
На ФИГ. 4 представлена схема, иллюстрирующая иерархическую структуру данных в кодированном потоке Te. Кодированный поток Te в качестве примера включает в себя последовательность и множество изображений, образующих последовательность. На ФИГ. 4(a)-(f) представлены схемы, иллюстрирующие соответственно видеопоследовательность кодирования последовательности по умолчанию SEQ, изображение кодирования, определяющее PICT изображения, срез кодирования S, определяющий срез S, данные среза кодирования, определяющие данные среза, элемент кодового дерева, включенный в данные среза кодирования, и элемент кодирования, включенный в элемент кодового дерева.
(Видеопоследовательность кодирования)
[0054]
В видеопоследовательности кодирования определяют набор данных, на которые будет ссылаться устройство 31 декодирования движущихся изображений для декодирования последовательности SEQ объекта обработки. Кодированное видео последовательности SEQ показано на ФИГ. 4(a) и включает в себя набор (VPS) параметров видеосигнала,множество наборов (SPS) параметров последовательности, множество наборов (PPS) параметров изображения, множество изображений (PICT) и информацию (SEI) дополнительного улучшения.
[0055]
В VPS в движущемся изображении, образованном множеством слоев, определяют набор параметров кодирования, общих для множества движущихся изображений, множество слоев, включенных в движущееся изображение, и набор параметров кодирования, относящихся к каждому из слоев.
[0056]
В SPS определяют набор параметров кодирования, на которые будет ссылаться устройство 31 декодирования движущихся изображений для декодирования последовательности объекта. Например, определяют ширину и высоту изображения. Следует отметить, что может существовать множество SPS. В этом случае любой один из множества SPS выбирают из PPS.
[0057]
В PPS определяют набор параметров кодирования, на которые будет ссылаться устройство 31 декодирования движущихся изображений для декодирования каждого изображения в последовательности объекта. Например, включены эталонное значение (pic_init_qp_minus26) ширины квантования для декодирования изображения и флаг (weighted_pred_flag) для указания применения взвешенного прогнозирования. Следует отметить, что может существовать множество PPS. В этом случае любой один из множества PPS выбирают из каждого изображения в последовательности объекта.
(Изображение кодирования)
[0058]
В изображении кодирования определяют набор данных, на которые ссылается устройство 31 декодирования движущихся изображений для декодирования PICT изображения объекта обработки. PICT изображения показан на ФИГ. 4(b) и включает в себя срез 0 для среза NS-1 (NS представляет собой общее количество срезов, включенных в PICT изображения).
[0059]
Следует отметить, что в представленном ниже описании, когда нет необходимости различать срез 0 и срез NS-1, подстрочные индексы ссылочных позиций могут быть опущены. Кроме того, другие элементы данных, включенные в кодированный поток Te и имеющие подстрочный индекс для описания ниже, следуют тем же правилам.
(Срез кодирования)
[0060]
В срезе кодирования определяют набор данных, на которые ссылается устройство 31 декодирования движущихся изображений для декодирования среза S объекта обработки. Срез показан на ФИГ. 4(c) и включает в себя заголовок среза и данные среза.
[0061]
Заголовок среза включает в себя группу параметров кодирования, на которую ссылается устройство 31 декодирования движущихся изображений для определения способа декодирования среза объекта. Информация обозначения типа среза (slice_type) для обозначения типа среза представляет собой пример параметра кодирования, включенного в заголовок среза.
[0062]
Примеры типов срезов, которые могут быть обозначены с помощью информации обозначения типа среза, включают (1) срез I, применяющий только внутрикадровое прогнозирование во время кодирования, (2) срез P, применяющий однонаправленное прогнозирование или внутрикадровое прогнозирование во время кодирования, (3) срез B, применяющий однонаправленное прогнозирование, двунаправленное прогнозирование или внутрикадровое прогнозирование во время кодирования и т. п. Следует отметить, что межкадровое прогнозирование не ограничивается однонаправленным прогнозированием и двунаправленным прогнозированием, и для формирования изображений прогнозирования можно применять больше эталонных изображений. Срез P и срез B, применяемые далее в настоящем документе, относятся к срезу, включающему в себя блок, в котором может применяться межкадровое прогнозирование.
[0063]
Следует отметить, что заголовок среза может также включать в себя ссылку (pic_parameter_set_id) на набор параметров изображения PPS.
(Данные среза кодирования)
[0064]
В данных среза кодирования определяют набор данных, на которые ссылается устройство 31 декодирования движущихся изображений для декодирования данных среза объекта обработки. Данные среза показаны на ФИГ. 4(d) и включают в себя множество CTU. CTU представляет собой блок фиксированного размера (например, 64 × 64), образующий срез, и его также называют самым большим элементом кодирования (LCU).
(Элемент кодового дерева)
[0065]
На ФИГ. 4(e) определен набор данных, на которые ссылается устройство 31 декодирования движущихся изображений для декодирования CTU объекта обработки. CTU разделяют посредством рекурсивного разделения квадродерева (QT), разделения двоичного дерева (BT) или разделения троичного дерева (TT) на элементы кодирования CU, служащие в качестве основной единицы обработки кодирования. Разделение BT и разделение TT в совокупности называют разделением мультидерева (MT). Узлы структуры дерева, полученные посредством рекурсивного разделения квадродерева, называют узлами кодирования. Промежуточные узлы квадродерева, двоичного дерева и троичного дерева представляют собой узлы кодирования, а сам CTU также определяется как самый высокий узел кодирования.
[0066]
CT включает в себя следующую информацию, применяемую в качестве информации о CT: флаг разделения QT (qt_split_cu_flag) для указания того, следует ли выполнять разделение QT, флаг разделения MT (mtt_split_cu_flag) для указания того, существует ли разделение MT, направление разделения MT (mtt_split_cu_vertical_flag) для указания направления разделения MT, и тип разделения MT (mtt_split_cu_binary_flag) для указания типа разделения MT. qt_split_cu_flag, mtt_split_cu_flag, mtt_split_cu_vertical_flag и mtt_split_cu_binary_flag передаются на основании каждого узла кодирования.
[0067]
На ФИГ. 5 представлена схема, иллюстрирующая пример разделения CTU. Если qt_split_cu_flag равен 1, узел кодирования разделяют на четыре узла кодирования (ФИГ. 5(b)).
[0068]
Если qt_split_cu_flag равен 0, а mtt_split_cu_flag равен 0, узел кодирования не разделяют, и один CU поддерживается в качестве узла (ФИГ. 5(a)). CU представляет собой концевой узел узлов кодирования и не подвергается дополнительному разделению. CU представляет собой основную единицу обработки кодирования.
[0069]
Если mtt_split_cu_flag равен 1, на кодирующем узле выполняют разделение MT следующим образом. Если mtt_split_cu_vertical_flag равен 0, а mtt_split_cu_binary_flag равен 1, узел кодирования разделяют по горизонтали на два узла кодирования (ФИГ. 5(d)); если mtt_split_cu_vertical_flag равен 1, а mtt_split_cu_binary_flag равен 1, узел кодирования разделяют по вертикали на два узла кодирования (ФИГ. 5(c)). Кроме того, если mtt_split_cu_vertical_flag равен 0, а mtt_split_cu_binary_flag равен 0, узел кодирования разделяют по горизонтали на три кодирующих узла (ФИГ. 5(f)); если mtt_split_cu_vertical_flag равен 1, а mtt_split_cu_binary_flag равен 0, узел кодирования разделяют по вертикали на три кодирующих узла (ФИГ. 5(e)). Эти разделения проиллюстрированы на ФИГ. 5(g).
[0070]
Кроме того, когда размер CTU составляет 64 × 64 пикселей, размер CU может представлять собой любое одно из 64 × 64 пикселя, 64 × 32 пикселя, 32 × 64 пикселя, 32 × 32 пикселя, 64 × 16 пикселей, 16 × 64 пикселя, 32 × 16 пикселей, 16 × 32 пикселя, 16 × 16 пикселей, 64 × 8 пикселей, 8 × 64 пикселя, 32 × 8 пикселей, 8 × 32 пикселей, 16 × 8 пикселей, 8 × 16 пикселей, 8 × 8 пикселей, 64 × 4 пикселя, 4 × 64 пикселя, 32 × 4 пикселя, 4 × 32 пикселя, 16 × 4 пикселя, 4 × 16 пикселей, 8 × 4 пикселя, 4 × 8 пикселей и 4 × 4 пикселя.
(Элемент кодирования)
[0071]
Как показано на ФИГ. 4(f), определяют набор данных, на которые ссылается устройство 31 декодирования движущихся изображений для декодирования элемента кодирования объекта обработки. В частности, CU состоит из заголовка CU CUH, параметров прогнозирования, параметров преобразования, коэффициентов квантования и преобразования и т. д. В заголовке CU определяют режим прогнозирования и т. п.
[0072]
Обработка прогнозирования может выполняться для каждого CU и может выполняться для каждого под-CU, полученного путем дополнительного разделения CU. Если CU и под-CU имеют одинаковый размер, в CU включен один под-CU. Если CU имеет размер, превышающий размер под-CU, CU разделяют на под-CU. Например, если размер CU составляет 8 × 8, а размер под-CU составляет 4 × 4, CU разделяют на четыре под-CU, включая два горизонтальных разделения и два вертикальных разделения.
[0073]
Типы прогнозирования (режимы прогнозирования) включают в себя внутрикадровое прогнозирование и межкадровое прогнозирование. Внутрикадровое прогнозирование представляет собой прогнозирование в одном и том же изображении, а межкадровое прогнозирование относится к обработке прогнозирования, выполняемой между взаимно разными изображениями (например, между временными точками отображения).
[0074]
Обработку в участке преобразования/квантования выполняют для каждого CU, но коэффициент квантования и преобразования также могут подвергать энтропийному кодированию для каждого подблока 4 × 4 и т. п.
(Параметры прогнозирования)
[0075]
Изображение прогнозирования получают с помощью параметров прогнозирования, связанных с блоком. Параметры прогнозирования включают в себя параметры прогнозирования для внутрикадрового прогнозирования и межкадрового прогнозирования.
[0076]
Параметры прогнозирования для внутрикадрового прогнозирования описаны ниже. Параметры внутрикадрового прогнозирования состоят из режима прогнозирования яркости IntraPredModeY и режима прогнозирования цветности IntraPredModeC. На ФИГ. 6 представлено схематическое изображение, иллюстрирующее типы (номера режимов) режимов внутрикадрового прогнозирования. Как показано на ФИГ. 6, существует, например, 67 режимов внутрикадрового прогнозирования (от 0 до 66) и 28 широкоугольных режимов предсказания (от -14 до -1 и от 67 до 80). Например, планарное прогнозирование (0), прогнозирование DC (1) и аналоговое прогнозирование (от 2 до 66). Кроме того, для обеспечения цветности могут быть добавлены режимы CCLM (от 81 до 83).
[0077]
Элементы синтаксиса, используемые для получения параметров внутрикадрового прогнозирования, включают в себя, например, intra_luma_mpm_flag, mpm_idx, mpm_remainder и т. д.
(MPM)
[0078]
intra_luma_mpm_flag представляет собой флаг, указывающий на то, соответствует ли режим прогнозирования яркости Intra Pred ModeY блока объекта наиболее возможному режиму (MPM). MPM представляет собой режим прогнозирования, включенный в список кандидатов MPM mpmCandList[]. Список кандидатов MPM представляет собой список, в котором хранятся кандидаты, где в соответствии с оценками, основанными на режиме внутрикадрового прогнозирования смежного блока, и указанным режимом внутрикадрового прогнозирования, вероятности применения кандидатов к блоку объекта являются высокими. Если intra_luma_mpm_flag равен 1, то режим прогнозирования яркости IntraPredModeY для блока объекта получают с помощью списка кандидатов MPM и индекса mpm_idx.
IntraPredModeY=mpmCandList[mpm_idx]
(REM)
[0079]
Если intra_luma_mpm_flag равен 0, то режим прогнозирования яркости IntraPredModeY получают с помощью mpm_remainder. В частности, режим внутрикадрового прогнозирования выбирают из режимов RemIntraPredMode, оставшихся после удаления режимов внутрикадрового прогнозирования, включенных в список кандидатов MPM, из всех режимов внутрикадрового прогнозирования.
(Компоненты устройства декодирования движущихся изображений)
[0080]
ФИГ. 7 представляет собой схематическое изображение, иллюстрирующее компоненты устройства декодирования движущихся изображений. Описаны компоненты устройства 31 декодирования движущихся изображений (ФИГ. 7) в соответствии с настоящим вариантом осуществления.
[0081]
Компоненты устройства 31 декодирования движущихся изображений включают в себя: участок 301 энтропийного декодирования, участок 302 декодирования параметров (устройство декодирования изображений прогнозирования), контурный фильтр 305, память 306 эталонных изображений, память 307 параметров прогнозирования, участок 308 формирования изображений прогнозирования, участок 311 обратного квантования/обратного преобразования и участок 312 добавления. Следует отметить, что в соответствии с описанным ниже устройством 11 кодирования движущихся изображений устройство 31 декодирования движущихся изображений может не включать в себя контурный фильтр 305.
[0082]
Участок 302 декодирования параметров дополнительно включает в себя участок декодирования заголовков, участок декодирования информации CT и участок декодирования CU (участок декодирования режимов прогнозирования) все они не показаны на ФИГ. 7. Участок декодирования CU дополнительно включает в себя участок декодирования TU. Вышеуказанные компоненты также могут в совокупности называться модулем декодирования. Участок декодирования заголовков декодирует информацию о наборе параметров, такую как VPS, SPS, PPS и заголовок среза (информацию о срезе), из кодированных данных. Участок декодирования информации CT декодирует CT из кодированных данных. Участок декодирования CU декодирует CU из кодированных данных. Если TU включает в себя ошибку прогнозирования, участок декодирования TU декодирует информацию об обновлении QP (значение коррекции квантования) и ошибку прогнозирования квантования (residual_coding) из кодированных данных.
[0083]
Кроме того, участок 302 декодирования параметров выполнен с возможностью включения в себя участка 303 декодирования параметров межкадрового прогнозирования и участка 304 декодирования параметров внутрикадрового прогнозирования. Участок 308 формирования изображений прогнозирования выполнен с возможностью включения в себя участка 309 формирования изображений межкадрового прогнозирования и участка 310 формирования изображений внутрикадрового прогнозирования.
[0084]
Кроме того, ниже описан пример, в котором CTU и CU применяют в качестве единиц обработки, однако обработка не ограничена этим вариантом, и обработка также может выполняться в единицах под-CU. Альтернативно, CTU и CU могут быть заменены блоками, а под-CU может быть заменен подблоком, причем обработка может выполняться в единицах блоков или подблоков.
[0085]
Участок 301 энтропийного декодирования выполняет энтропийное декодирование для кодированного ввода потока Te, разделяет каждый код (элемент синтаксиса) и выполняет декодирование. Отделенный код включает в себя информацию прогнозирования для формирования изображений прогнозирования, ошибки прогнозирования для формирования разностных изображений и т. п. Участок 301 энтропийного декодирования выводит выделенный код в участок 302 декодирования параметров.
(Функции участка 304 декодирования параметров внутрикадрового прогнозирования)
[0086]
Участок 304 декодирования параметров внутрикадрового прогнозирования декодирует параметр внутрикадрового прогнозирования, такой как режим внутрикадрового прогнозирования IntraPredMode, путем ссылки на параметр прогнозирования, хранящийся в памяти 307 параметров прогнозирования, и на основании ввода кода из участка 301 энтропийного декодирования. Участок 304 декодирования параметров внутрикадрового прогнозирования выводит декодированный параметр внутрикадрового прогнозирования в участок 308 формирования изображений прогнозирования, а затем декодированный параметр внутрикадрового прогнозирования сохраняется в памяти 307 параметров прогнозирования. Участок 304 декодирования параметров внутрикадрового прогнозирования может также получать режимы внутрикадрового прогнозирования, которые отличаются яркостью и цветностью.
[0087]
На ФИГ. 8 представлено схематическое изображение, иллюстрирующее компоненты участка 304 декодирования параметров внутрикадрового прогнозирования участка 302 декодирования параметров. Как показано на ФИГ. 8, участок 304 декодирования параметров внутрикадрового прогнозирования выполнен с возможностью включения в себя: участка 3041 управления декодированием параметров, участка 3042 декодирования параметров внутрикадрового прогнозирования яркости и участка 3043 декодирования параметров внутрикадрового прогнозирования цветности.
[0088]
Участок 3041 управления декодированием параметров указывает декодирование элемента синтаксиса участку 301 энтропийного декодирования и принимает элемент синтаксиса от участка 301 энтропийного декодирования. Если intra_luma_mpm_flag равен 1, то участок 3041 управления параметрами декодирования выводит mpm_idx в участок 30422 декодирования параметров MPM в участке 3042 декодирования параметров внутрикадрового прогнозирования. Кроме того, если intra_luma_mpm_flag равен 0, то участок 3041 управления декодированием параметров выводит mpm_remainder в участок 30423 декодирования параметров не-MPM участка 3042 декодирования параметров внутрикадрового прогнозирования яркости. Кроме того, участок 3041 управления декодированием параметров выводит параметр внутрикадрового прогнозирования цветности intra_chroma_pred_mode в участок 3043 декодирования параметров внутрикадрового прогнозирования цветности.
[0089]
Участок 3042 декодирования параметров внутрикадрового прогнозирования яркости выполнен с возможностью включения в себя: участка 30421 получения списка кандидатов MPM, участка 30422 декодирования параметров MPM и участка 30423 декодирования параметров не-MPM (участка декодирования и участка получения).
[0090]
Участок 30422 декодирования параметров MPM получает режим прогнозирования яркости IntraPredModeY со ссылкой на список кандидатов mpmCandList[], полученный участком 30421 получения списка кандидатов MPM, и MPM_idx и выводит его в участок 310 формирования изображений внутрикадрового прогнозирования.
[0091]
Участок 30423 декодирования параметров не-MPM получает IntraPredModeY из списка кандидатов MPM mpmCandList[] и mpm_remainder и выводит его в участок 310 формирования изображений внутрикадрового прогнозирования.
[0092]
Участок 3043 декодирования параметров внутрикадрового прогнозирования цветности получает режим прогнозирования цветности IntraPredModeC из intra_chroma_pred_mode и выводит его в участок 310 формирования изображений внутрикадрового прогнозирования.
[0093]
Контурный фильтр 305 представляет собой фильтр, предусмотренный в контуре кодирования, и представляет собой фильтр для устранения блочных искажений и кольцевых искажений для повышения качества изображения. Контурный фильтр 305 выполняет фильтрацию, такую как деблокирующая фильтрация, адаптивное смещение выборки (SAO) и адаптивную фильтрацию контура (ALF) для декодированного изображения CU, сформированного участком 312 добавления.
[0094]
В памяти 306 эталонных изображений хранится декодированное изображение CU, сформированное участком 312 добавления, в заданном положении для каждого изображения объекта и каждого CU объекта.
[0095]
В памяти 307 параметров прогнозирования хранятся параметры прогнозирования в заданном положении для CTU или CU каждого декодированного объекта. В частности, в памяти 307 параметров прогнозирования хранится параметр, декодированный участком 302 декодирования параметров, режим прогнозирования predMode, разделенный участком 301 энтропийного декодирования, и т. д.
[0096]
Режим прогнозирования predMode, параметры прогнозирования и т. д. являются вводом в участок 308 формирования изображений прогнозирования. Кроме того, участок 308 формирования изображений прогнозирования считывает эталонное изображение из памяти 306 эталонных изображений. Участок 308 формирования изображений прогнозирования применяет в режиме прогнозирования, указанном режимом прогнозирования predMode, параметры прогнозирования и считанное эталонное изображение (блок эталонного изображения) для формирования изображения прогнозирования блока или подблока. В настоящем документе блок эталонного изображения относится к набору (как правило, прямоугольнику, и поэтому он упоминается как блок) пикселей эталонного изображения и представляет собой область, на которую выполняется ссылка для формирования изображения прогнозирования.
(Участок 310 формирования изображений внутрикадрового прогнозирования)
[0097]
Если режим прогнозирования predMode указывает режим внутрикадрового прогнозирования, то участок 310 формирования изображений внутрикадрового прогнозирования выполняет внутрикадровое прогнозирование путем применения параметра ввода внутрикадрового прогнозирования из участка 304 декодирования параметров внутрикадрового прогнозирования, и эталонных пикселей, считанных из памяти 306 эталонных изображений.
[0098]
В частности, участок 310 формирования изображения внутрикадрового прогнозирования считывает из памяти 306 эталонных изображений смежные блоки на изображении объекта и в пределах заданного диапазона расстояний до блока объекта. Смежные блоки в заданном диапазоне представляют собой смежные блоки, расположенные слева, сверху слева, сверху и сверху справа от блока объекта, и изменяющиеся в зависимости от областей, на которые выполняется ссылка в режиме внутрикадрового прогнозирования.
[0099]
Участок 310 формирования изображений внутрикадрового прогнозирования формирует изображение прогнозирования блока объекта со ссылкой на считанные декодированные значения пикселей и режим прогнозирования, указанный IntraPredMode. Участок 310 формирования изображений внутрикадрового прогнозирования выводит сформированное изображение прогнозирования блока в участок 312 добавления.
[0100]
Далее проиллюстрировано формирование изображений прогнозирования на основе режимов внутрикадрового прогнозирования. При планарном прогнозировании, прогнозировании DC и угловом прогнозировании декодированную периферийную область, смежную (расположенную рядом) с блоком объекта прогнозирования, устанавливают в эталонную область R. Затем формируют изображение прогнозирования путем экстраполяции пикселей в эталонной области R в конкретном направлении. Например, эталонная область R может быть выполнена в виде L-образной области (например, области, представленной пикселями, отмеченными кругами, заполненными диагональными линиями, включая левую и верхнюю (или дополнительно верхнюю левую, верхнюю правую, нижнюю левую) части блока объекта прогнозирования.
(Подробные сведения относительно участка формирования изображений прогнозирования)
[0101]
Далее на ФИГ. 10 представлены подробные сведения относительно компонентов участка 310 формирования изображений внутрикадрового прогнозирования. На ФИГ. 10 представлена схема, иллюстрирующая компоненты участка формирования изображения внутрикадрового прогнозирования. Участок 310 формирования изображений внутрикадрового прогнозирования содержит: участок 3101 конфигурации блока объекта прогнозирования, участок 3102 конфигурации неотфильтрованных эталонных изображений (первый участок конфигурации эталонных изображений), участок 3103 конфигурации отфильтрованных эталонных изображений (второй участок конфигурации эталонных изображений), участок 3104 прогнозирования и участок 3105 коррекции изображений прогнозирования (участок коррекции изображений прогнозирования, участок переключения фильтра и участок изменения весового коэффициента).
[0102]
Участок 3104 прогнозирования формирует временное изображение прогнозирования (изображение прогнозирования до коррекции) блока объекта прогнозирования на основании соответствующих эталонных пикселей (неотфильтрованного эталонного изображения) в эталонной области R, отфильтрованного эталонного изображения, сформированного фильтром эталонных пикселей (первым фильтром), и режима внутрикадрового прогнозирования, и выводит его в участок 3105 коррекции изображений прогнозирования. Участок 3105 коррекции изображений прогнозирования корректирует временное изображение прогнозирования в соответствии с режимом внутрикадрового прогнозирования, формирует изображение прогнозирования (скорректированное изображение прогнозирования) и выводит его.
[0103]
Далее описаны функции участка 310 формирования изображений внутрикадрового прогнозирования.
(Участок 3101 конфигурации блока объекта прогнозирования)
[0104]
Участок 3101 конфигурации блока объекта прогнозирования конфигурирует CU объекта в качестве блока объекта прогнозирования и выводит информацию, относящуюся к блоку объекта прогнозирования (информацию о блоке объекта прогнозирования). Информация о блоке объекта прогнозирования включает в себя по меньшей мере размер, расположение и индекс, указывающий яркость или цветность блока объекта прогнозирования.
(Участок 3102 конфигурации неотфильтрованных эталонных изображений)
[0105]
Участок 3102 конфигурации неотфильтрованных эталонных изображений конфигурирует смежную периферийную область блока объекта прогнозирования в качестве эталонной области R на основании размера и расположения блока объекта прогнозирования. Затем для каждого значения пикселя в пределах эталонной области R (неотфильтрованное эталонное изображение, граничные пиксели) конфигурируют каждое декодированное значение пикселя в соответствующем положении в памяти 306 эталонных изображений. На ФИГ. 9 представлена схема, иллюстрирующая эталонные области для внутрикадрового прогнозирования. Строка r[x][-1] декодированных пикселей, смежных с верхней стороной блока объекта прогнозирования, и столбец r[-1][y] декодированных пикселей, смежных с левой стороной блока объекта прогнозирования, показанного на ФИГ. 9(a), представляют собой неотфильтрованные эталонные изображения.
(Участок 3103 конфигурации отфильтрованных эталонных изображений)
[0106]
Участок 3103 конфигурации отфильтрованных эталонных изображений применяет фильтр эталонных пикселей (первый фильтр) к неотфильтрованному эталонному изображению в соответствии с режимом внутрикадрового прогнозирования и получает отфильтрованное эталонное изображение s[x][y] для каждого положения (x, y) в эталонной области R. В частности, отфильтрованное эталонное изображение (ФИГ. 9(b)) получают путем применения фильтра нижних частот к неотфильтрованному эталонному изображению положения (x, y) и окружающему положение (x, y). Следует отметить, что фильтр нижних частот необязательно должен применяться ко всем режимам внутрикадрового прогнозирования, а фильтр нижних частот также может применяться к части режимов внутрикадрового прогнозирования. Следует отметить, что фильтр, применяемый к неотфильтрованному эталонному изображению в эталонной области R в участке 3103 конфигурации отфильтрованных эталонных пикселей, называется «фильтром эталонных пикселей (первым фильтром)» и, соответственно, фильтр для коррекции временного изображения прогнозирования в участке 3105 коррекции изображений прогнозирования, описанном ниже, называется «граничным фильтром (вторым фильтром)».
(Функции участка 3104 внутрикадрового прогнозирования)
[0107]
Участок 3104 внутрикадрового прогнозирования формирует временное изображение прогнозирования (значения временных пикселей прогнозирования, изображение прогнозирования до коррекции) блока объекта прогнозирования на основании режима внутрикадрового прогнозирования, неотфильтрованного эталонного изображения и значений отфильтрованных эталонных пикселей и выводит его в участок 3105 коррекции изображения прогнозирования. Участок 3104 прогнозирования предоставляется внутри вместе с: участком 31041 планарного прогнозирования, участком 31042 прогнозирования DC, участком 31043 углового прогнозирования и участком 31044 прогнозирования CCLM (устройством формирования изображений прогнозирования). Участок 3104 прогнозирования выбирает конкретный участок прогнозирования в соответствии с режимом внутрикадрового прогнозирования и вводит неотфильтрованное эталонное изображение и отфильтрованное эталонное изображение. Взаимосвязь между режимом внутрикадрового прогнозирования и соответствующим участком прогнозирования показана ниже.
·Планарное прогнозирование
Участок 31041 планарного прогнозирования
·Прогнозирование DC
Участок 31042 прогнозирования DC
·Угловое прогнозирование
Участок 31043 углового прогнозирования
·Прогнозирование CCLM
Участок 31044 прогнозирования CCLM
(Планарное прогнозирование)
[0108]
Участок 31041 планарного прогнозирования формирует временное изображение прогнозирования путем линейного добавления множества отфильтрованных эталонных изображений в соответствии с расстоянием между положением пикселя объекта прогнозирования и положением эталонного пикселя и выводит его в участок 3105 коррекции изображения прогнозирования.
(Прогнозирование DC)
[0109]
Участок 31042 прогнозирования DC получает значение прогнозирования DC, эквивалентное среднему значению отфильтрованного эталонного изображения s[x][y], и выводит временное изображение прогнозирования q[x][y] в отношении значений прогнозирования DC в виде значений пикселей.
(Угловое прогнозирование)
[0110]
Участок 31043 углового прогнозирования формирует временное изображение прогнозирования q[x][y] с помощью отфильтрованного эталонного изображения s[x][y] в направлении прогнозирования (эталонном направлении), показанном в режиме внутрикадрового прогнозирования, и выводит его в участок 3105 коррекции изображения прогнозирования.
(Прогнозирование с помощью линейной модели с перекрестными компонентами (CCLM)
[0111]
Участок 31044 прогнозирования CCLM прогнозирует значения пикселей цветности на основании значений пикселей яркости. В частности, изображение прогнозирования изображения цветности (Cb, Cr) формируют с помощью линейной модели на основании декодированного изображения яркости.
(Функции участка 3105 коррекции изображения прогнозирования)
[0112]
Участок 3105 коррекции изображения прогнозирования корректирует в соответствии с режимом внутрикадрового прогнозирования временное изображение прогнозирования, выводимое из участка 3104 прогнозирования. В частности, для каждого пикселя временного изображения прогнозирования участок 3105 коррекции изображения прогнозирования выполняет взвешенное добавление (взвешенное усреднение) к неотфильтрованному эталонному изображению и временному изображению прогнозирования в соответствии с расстоянием между эталонной областью R и пикселем прогнозирования объекта для получения изображения прогнозирования (скорректированного изображения прогнозирования) Pred, полученного путем коррекции временного изображения прогнозирования. Следует отметить, что в некоторых режимах внутрикадрового прогнозирования (например, планарное прогнозирование, прогнозирование DC и т. д.) временное изображение прогнозирования может не обязательно корректироваться с помощью участка 3105 коррекции изображения прогнозирования, и вывод участка 3104 прогнозирования непосредственно рассматривается как изображение прогнозирования.
[0113]
Участок 311 обратного квантования/обратного преобразования обратно квантует ввод коэффициентовквантования и преобразования из участка 301 энтропийного декодирования, для получения коэффициента преобразования. Коэффициент квантования и преобразования представляет собой коэффициент, полученный путем выполнения частотного преобразования и квантования, такого как дискретное косинусное преобразование (DCT), дискретное синусное преобразование (DST) и т. д., в отношении ошибки прогнозирования при обработке кодирования. Участок 311 обратного квантования/обратного преобразования выполняет обратное частотное преобразование, такое как обратное DCT, обратное DST и т. д., в отношении полученного коэффициента преобразования для вычисления ошибки прогнозирования. Участок 311 обратного квантования/обратного преобразования выводит ошибку прогнозирования в участок 312 добавления.
[0114]
Участок 312 добавления добавляет изображение прогнозирования ввода блока из участка 308 формирования изображений прогнозирования, к вводу ошибки прогнозирования из участка 311 обратного квантования/обратного преобразования для каждого пикселя, для формирования декодированного изображения блока. Участок 312 добавления сохраняет декодированное изображение блока в памяти 306 эталонных изображений и выводит его на контурный фильтр 305.
(Функции устройства кодирования движущихся изображений)
[0115]
Далее описаны компоненты устройства 11 кодирования движущихся изображений в соответствии с настоящим вариантом осуществления. На ФИГ. 15 представлена блок-схема, иллюстрирующая компоненты устройства 11 кодирования движущихся изображений в соответствии с настоящим вариантом осуществления. Устройство 11 кодирования движущихся изображений выполнено с возможностью включения в себя: участка 101 формирования изображений прогнозирования, участка 102 вычитания, участка 103 преобразования/квантования, участка 105 обратного квантования/обратного преобразования, участка 106 добавления, контурного фильтра 107, памяти 108 параметров прогнозирования (участка хранения параметров прогнозирования, памяти кадров), памяти 109 эталонных изображений (участка хранения эталонных изображений, памяти кадров), участка 110 определения параметров кодирования, участка 111 кодирования параметров и участка 104 энтропийного кодирования.
[0116]
Участок 101 формирования изображений прогнозирования формирует изображение прогнозирования в соответствии с областями, сформированными путем разделения каждого изображения каждого изображения T, а именно в соответствии с CU. Участок 101 формирования изображений прогнозирования выполняет то же действие, что и участок 308 формирования изображений прогнозирования, описанный выше, и поэтому его описание здесь опущено.
[0117]
Участок 102 вычитания вычитает значение пикселя изображения прогнозирования ввода блока из участка 101 формирования изображений прогнозирования, из значения пикселя изображения T для генерирования ошибки прогнозирования. Участок 102 вычитания выводит ошибку прогнозирования в участок 103 преобразования/квантования.
[0118]
Участок 103 преобразования/квантования вычисляет коэффициент преобразования путем выполнения частотного преобразования в отношении ввода ошибки прогнозирования из участка 102 вычитания, и получает коэффициент квантования и преобразования посредством квантования. Участок 103 преобразования/квантования выводит коэффициент квантования и преобразования в участок 104 энтропийного кодирования и участок 105 обратного квантования/обратного преобразования.
[0119]
Участок 105 обратного квантования/обратного преобразования такой же как участок 311 обратного квантования/обратного преобразования (ФИГ. 7) в устройстве 31 декодирования движущихся изображений, и поэтому его описание здесь опущено. Рассчитанная ошибка прогнозирования является вводом в участок 106 добавления.
[0120]
В участке 104 энтропийного кодирования коэффициент квантования и преобразования является вводом из участка 103 преобразования/квантования, а параметры кодирования является вводом из участка 111 кодирования параметров. Параметры кодирования включают в себя, например, коды, такие как индекс эталонного изображения refIdxLX, индекс вектора прогнозирования mvp_LX_idx, вектор разности mvdLX, режим точности вектора движения amvr_mode, режим прогнозирования predMode и индекс объединения merge_idx.
[0121]
Участок 104 энтропийного кодирования выполняет энтропийное кодирование информации о разделении, параметров прогнозирования, коэффициента квантования и преобразования и т. д. для генерирования кодированного потока Te и выводит его.
[0122]
Участок 111 кодирования параметров включает в себя участок кодирования заголовков, участок кодирования информации CT, участок кодирования CU (участок кодирования режима прогнозирования), участок кодирования параметров межкадрового прогнозирования и участок кодирования параметров внутрикадрового прогнозирования, которые не показанны на ФИГ. 14. Участок кодирования CU, дополнительно включает в себя участок кодирования TU.
(Функции участка 113 кодирования параметров внутрикадрового прогнозирования)
[0123]
Участок 113 кодирования параметров внутрикадрового прогнозирования получает форму кодирования (например, mpm_idx, mpm_remainder и т. д.) в соответствии с вводом режима внутрикадрового прогнозирования IntraPredMode из участка 110 определения параметров кодирования. Участок 113 кодирования параметров внутрикадрового прогнозирования содержит те же компоненты, что и часть компонентов, посредством которых участок 304 декодирования параметров внутрикадрового прогнозирования получает параметр внутрикадрового прогнозирования.
[0124]
На ФИГ. 16 представлено схематическое изображение, иллюстрирующее компоненты участка кодирования параметров внутрикадрового прогнозирования. На ФИГ. 16 изображены компоненты участка 113 кодирования параметров внутрикадрового прогнозирования участка 111 кодирования параметров. Участок 113 кодирования параметров внутрикадрового прогнозирования выполнен с возможностью включения в себя: участка 1131 управления параметрами кодирования, участка 1132 получения параметров внутрикадрового прогнозирования яркости и участка 1133 получения параметров внутрикадрового прогнозирования цветности.
[0125]
Режим прогнозирования яркости IntraPredModeY и режим прогнозирования цветности IntraPredModeC являются вводом в участок 1131 управления параметрами кодирования из участка 110 определения параметров кодирования. Участок 1131 управления параметрами кодирования определяет intra_luma_mpm_flag со ссылкой на список кандидатов mpmCandList[] участка 30421 получения списка кандидатов. Затем intra_luma_mpm_flag и IntraPredModeY выводятся в участок 1132 получения параметров внутрикадрового прогнозирования. Кроме того, IntraPredModeC выводится в участок 1133 получения параметров внутрикадрового прогнозирования цветности.
[0126]
Участок 1132 получения параметров внутрикадрового прогнозирования выполнен с возможностью включения в себя: участка 30421 получения списка кандидатов MPM (участка получения списка кандидатов), участка 11322 получения параметров MPM и участка 11323 получения параметров не-MPM (участка кодирования и участка получения).
[0127]
Участок 30421 получения списка кандидатов MPM получает список кандидатов MPM mpmCandList[] со ссылкой на режим внутрикадрового прогнозирования смежных блоков, хранящихся в памяти 108 параметров прогнозирования. Участок 11322 получения параметров MPM получает mpm_idx из IntraPredModeY и mpmCandList[], если intra_luma_mpm_flag равен 1, и выводит его в участок 104 энтропийного кодирования. Участок 11323 получения параметров не-MPM получает mpm_remainder из IntraPredModeY и mpmCandList[], если intra_luma_mpm_flag равен 0, и выводит его в участок 104 энтропийного кодирования.
[0128]
Участок 1133 получения параметров внутрикадрового прогнозирования цветности получает intra_chroma_pred_mode из IntraPredModeY и IntraPredModeC и выводит его.
[0129]
Участок 106 добавления добавляет значение пикселя изображения прогнозирования ввода блока из участка 101 формирования изображений прогнозирования, к вводу ошибки прогнозирования из участка 105 обратного квантования/обратного преобразования для каждого пикселя, для формирования декодированного изображения. Участок 106 добавления сохраняет сформированное декодированное изображение в памяти 109 эталонных изображений.
[0130]
Контурный фильтр 107 выполняет фильтрацию деблокирования, SAO и ALF в отношении декодированного изображения, сформированного участком 106 добавления. Следует отметить, что контурный фильтр 107 необязательно включает в себя три вышеуказанных фильтра, например, контурный фильтр 107 может включать в себя только фильтр деблокирования.
[0131]
Память 108 параметров прогнозирования хранит параметры прогнозирования, сгенерированные участком 110 определения параметров кодирования в заданном положении для каждого изображения объекта и каждого CU.
[0132]
В памяти 109 эталонных изображений хранится декодированное изображение, сформированное контурным фильтром 107, в заданном положении для каждого изображения объекта и каждого CU.
[0133]
Участок 110 определения параметров кодирования выбирает один из множества наборов параметров кодирования. Параметры кодирования относятся к вышеупомянутой информации о разделении QT, BT или TT, параметрам прогнозирования или параметрам, сгенерированным в связи ними и служащим в качестве объектов кодирования. Участок 101 формирования изображений прогнозирования применяет эти параметры кодирования для формирования изображения прогнозирования.
[0134]
Участок 110 определения параметров кодирования вычисляет значение стоимости RD, обозначающее размер информации и ошибку кодирования для каждого из множества наборов. Значение стоимости RD представляет собой, например, сумму количества кода и значения, полученного умножением квадратной ошибки на коэффициент λ. Участок 110 определения параметров кодирования выбирает набор параметров кодирования, имеющих самое низкое расчетное значение стоимости. Таким образом, участок 104 энтропийного кодирования применяет выбранный набор параметров кодирования в качестве кодированного потока Te и выводит его. Участок 110 определения параметров кодирования сохраняет определенные параметры кодирования в памяти 108 параметров прогнозирования.
[0135]
Следует отметить, что в приведенном выше варианте осуществления часть устройства 11 кодирования движущихся изображений и устройства 31 декодирования движущихся изображений, например, участок 301 энтропийного декодирования, участок 302 декодирования параметров, контурный фильтр 305, участок 308 формирования изображений прогнозирования, участок 311 обратного квантования/обратного преобразования, участок 312 добавления, участок 101 формирования изображений прогнозирования, участок 102 вычитания, участок 103 преобразования/квантования, участок 104 энтропийного кодирования, участок 105 обратного квантования/обратного преобразования, контурный фильтр 107, участок 110 определения параметров кодирования и участок 111 кодирования параметров могут быть реализованы с помощью компьютера. В этом случае это может быть реализовано путем записи программы для реализации функции управления на машиночитаемый носитель информации и осуществления считывания и выполнения компьютерной системой программы, записанной на носителе информации. Следует отметить, что описанная «компьютерная система» относится к компьютерной системе, встроенной в любое одно из устройства 11 кодирования движущихся изображений и устройства 31 декодирования движущихся изображений и включающей в себя операционную систему (OS) и оборудование, такое как периферийное устройство. Кроме того, термин «машиночитаемый носитель информации» относится к сменному носителю информации, такому как гибкий диск, магнитооптический диск, ПЗУ и CD-ROM, а также к устройству хранения данных, такому как жесткий диск, встроенному в компьютерную систему. Более того, «машиночитаемый носитель информации» может также включать в себя носитель информации для динамического сохранения программы в течение короткого промежутка времени, например, линию связи, применяемую для передачи программы по сети, такой как Интернет, или по линии связи, такой как телефонная линия, и может также включать в себя носитель информации, для сохранения программы в течение фиксированного периода времени, например, энергозависимое запоминающее устройство в компьютерной системе, которая функционирует в этом случае в качестве сервера или клиента. Кроме того, описанная выше программа может представлять собой программу для реализации части описанных выше функций, а также может представлять собой программу, способную реализовывать описанные выше функции в сочетании с программой, уже записанной в компьютерную систему.
[0136]
Кроме того, в описанном выше варианте осуществления устройство 11 кодирования движущихся изображений и устройство 31 декодирования движущихся изображений могут быть частично или полностью реализованы в виде интегральных схем, таких как большие интегральные схемы (LSI). Функциональные блоки устройства 11 кодирования движущихся изображений и устройства 31 декодирования движущихся изображений могут быть индивидуально реализованы в виде процессоров или могут быть частично или полностью интегрированы в процессор. Кроме того, способ интеграции на уровне схем не ограничивается LSI, и интегральные схемы могут быть реализованы в виде выделенных схем или процессора общего назначения. Кроме того, благодаря развитию полупроводниковой технологии появится технология интеграции на уровне схем, с помощью которой заменят LSI, и, следовательно, также может быть применена интегральная схема, основанная на этой технологии.
[0137]
Вариант осуществления настоящего изобретения был подробно описан выше со ссылкой на прилагаемые графические материалы, однако конкретная конфигурация не ограничивается вышеуказанным вариантом осуществления и могут быть выполнены различные изменения конструкции без отступления от объема сущности настоящего изобретения.
(Примеры применения)
[0138]
Описанные выше устройство 11 кодирования движущихся изображений и устройство 31 декодирования движущихся изображений можно применять в состоянии установки на различных устройствах для передачи, получения, записи и воспроизведения движущихся изображений. Следует отметить, что движущееся изображение может быть естественным движущимся изображением, захваченным видеокамерой или т. п., или искусственным движущимся изображением (включая CG и GUI), формируемым компьютером или т. п.
[0139]
На ФИГ. 2 представлена схема, иллюстрирующая компоненты передающего устройства, оснащенного устройством кодирования движущихся изображений в соответствии с настоящим вариантом осуществления и компоненты принимающего устройства, оснащенного устройством декодирования движущихся изображений в соответствии с настоящим вариантом осуществления. Сначала со ссылкой на ФИГ. 2 представлено описание того, что для передачи и получения движущихся изображений можно применять описанные выше устройство 11 кодирования движущихся изображений и устройство 31 декодирования движущихся изображений.
[0140]
На ФИГ. 2(a) представлена блок-схема, иллюстрирующая компоненты устройства PROD_A передачи, оснащенного устройством 11 кодирования движущихся изображений. Как показано на ФИГ. 2(A), устройство PROD_A передачи включает в себя: участок PROD_A1 кодирования для получения кодированных данных путем кодирования движущегося изображения, участок PROD_A2 модуляции для получения сигнала модуляции с помощью кодированных данных, полученных участком PROD_A1 кодирования для модуляции несущей, и участок PROD_A3 передачи для передачи сигнала модуляции, полученного участком PROD_A2 модуляции. Описанное выше устройство 11 кодирования движущихся изображений применяется в качестве участка PROD_A1 кодирования.
[0141]
В качестве источника для предоставления ввода движущегося изображения в участок PROD_A1 кодирования, устройство PROD_A передачи может дополнительно включать в себя: видеокамеру PROD_A4 для захвата движущегося изображения, носитель PROD_A5 информации, на который записывается движущееся изображение, терминал PROD_A6 ввода для ввода движущегося изображения с внешнего устройства и участок A7 обработки изображений для создания или обработки изображения. На ФИГ. 2(а) в качестве примера показано, что устройство PROD_A передачи включает в себя все эти компоненты, но часть этих компонентов может отсутствовать.
[0142]
Следует отметить, что носитель PROD_A5 информации может представлять собой носитель, на котором записано не кодированное движущееся изображение, или носитель, на котором записано движущееся изображение, кодированное с помощью способа кодирования для записи, отличного от способа кодирования для передачи. В последнем случае участок декодирования (не показан) для декодирования, в соответствии со способом кодирования для записи, кодированных данных, считанных с носителя PROD_A5 информации, может быть расположен между носителем PROD_A5 информации и участком PROD_A1 кодирования.
[0143]
На ФИГ. 2(b) представлена блок-схема, иллюстрирующая компоненты устройства PROD_B получения, оснащенного устройством 31 декодирования движущихся изображений. Как показано на ФИГ. 2(b), устройство PROD_B получения включает в себя: участок PROD_B1 получения для получения сигнала модуляции, участок PROD_B2 модуляции для получения кодированных данных путем демодуляции сигнала модуляции, принятого участком PROD_B1 получения, и участок PROD_B3 декодирования для получения движущегося изображения путем декодирования кодированных данных, полученных участком PROD_B2 демодуляции. Описанное выше устройство 31 декодирования движущихся изображений применяется в качестве участка PROD_B3 декодирования.
[0144]
Устройство PROD_B получения служит местом назначения предоставления движущегося изображения, выводимого посредством участка PROD_B3 декодирования, и может дополнительно включать в себя дисплей PROD_B4 для отображения движущегося изображения, носитель PROD_B5 информации для записи движущегося изображения и терминал PROD_B6 вывода для вывода движущегося изображения на внешнее устройство. На ФИГ. 2(b) в качестве примера показано, что устройство PROD_B получения включает в себя все эти компоненты, но часть этих компонентов может отсутствовать.
[0145]
Следует отметить, что носитель PROD_B5 информации может представлять собой носитель, на котором записано не кодированное движущееся изображение, или носитель, на котором записано движущееся изображение, кодированное с помощью способа кодирования для записи, отличного от способа кодирования для передачи. В последнем случае участок кодирования (не показан) для кодирования, в соответствии со способом кодирования для записи, движущегося изображения, полученного от участка PROD_B3 декодирования, может быть расположен между участком PROD_B3 декодирования и носителем PROD_B5 информации.
[0146]
Следует отметить, что среда передачи для передачи сигнала модуляции может быть беспроводной или проводной. Кроме того, схема передачи для передачи сигнала модуляции может представлять собой широковещательную передачу (в данном случае называемую схемой передачи, для которой место назначения передачи не определено заранее) или связь (в данном случае называемую схемой передачи, для которой место назначения передачи определено заранее). То есть передача сигнала модуляции может быть реализована с помощью любого одного из следующего: беспроводная широковещательная передача, проводная широковещательная передача, беспроводная связь и проводная связь.
[0147]
Например, широковещательная станция (широковещательное устройство и т. п.)/принимающая станция (телевизионный приемник и т. п.) цифровой наземной широковещательной передачи представляет собой пример устройства PROD_A передачи/устройства PROD_B получения, которое передает или получает сигнал модуляции с помощью беспроводной широковещательной передачи. Кроме того, широковещательная станция (широковещательное устройство и т. п.)/принимающая станция (телевизионный приемник и т. п.) кабельного телевизионного широковещания представляет собой пример устройства PROD_A передачи/устройства PROD_B получения, которое передает или получает сигнал модуляции с помощью проводной широковещательной передачи.
[0148]
Кроме того, сервер (рабочая станция и т. п.)/клиент (телевизионный приемник, персональный компьютер, смартфон, и т. п.) с помощью службы видео по запросу (VOD) и службы совместного использования движущихся изображений в Интернете представляет собой пример устройства PROD_A передачи/устройства PROD_B получения, которое передает или получает сигнал модуляции с помощью связи (как правило, в локальной сети (LAN) применяется беспроводная или проводная среда передачи данных, а в глобальной сети (WAN) применяется проводная среда передачи данных). В настоящем документе персональный компьютер включает в себя настольный компьютер, ноутбук и планшетный компьютер. Кроме того, смартфон также включает в себя многофункциональный терминал мобильного телефона.
[0149]
Следует отметить, что клиент, использующий службу совместного использования изображений, имеет функцию декодирования кодированных данных, загруженных с сервера, и их отображения на дисплее, а также функцию кодирования движущихся изображений, захваченных видеокамерой, и их загрузки на сервер. Таким образом, клиент, использующий службу совместного использования движущихся изображений, функционирует как в качестве устройства PROD_A передачи, так и в качестве устройства PROD_B получения.
[0150]
Далее со ссылкой на ФИГ. 3 приведено описание того, что для записи и воспроизведения движущихся изображений можно применять описанные выше устройство 11 кодирования движущихся изображений и устройство 31 декодирования движущихся изображений. На ФИГ. 3 представлена схема, иллюстрирующая компоненты записывающего устройства, оснащенного устройством кодирования движущихся изображений в соответствии с настоящим вариантом осуществления, и устройство воспроизведения, оснащенное устройством декодирования движущихся изображений в соответствии с настоящим вариантом осуществления.
[0151]
На ФИГ. 3(a) представлена блок-схема, иллюстрирующая компоненты устройства PROD_C записи, оснащенного описанным выше устройством 11 кодирования движущихся изображений. Как показано на ФИГ. 3(a), устройство PROD_C записи включает в себя: участок PROD_C1 кодирования для получения кодированных данных путем кодирования движущегося изображения и участок PROD_C2 записи для записи кодированных данных, полученных участком PROD_C1 кодирования, на носителе PROD_M информации. Описанное выше устройство 11 кодирования движущихся изображений применяют в качестве участка PROD_C1 кодирования.
[0152]
Следует отметить, что носитель PROD_M информации может представлять собой (1) носитель информации, встроенный в записывающее устройство PROD_C, такой как жесткий диск (HDD) и твердотельный накопитель (SSD), также может представлять собой (2) носитель информации, подключенный к устройству PROD_C записи, такой как карта памяти SD и флеш-память с универсальной последовательной шиной (USB), и также может представлять собой (3) носитель информации, загруженный в приводное устройство (не показано), встроенное в устройство PROD_C записи, такой как универсальный цифровой диск (DVD, зарегистрированная торговая марка) и диск Blu-ray (BD, зарегистрированная торговая марка).
[0153]
Кроме того, в качестве источника для предоставления ввода движущегося изображения в участок PROD_C1 кодирования, устройство PROD_C записи может дополнительно включать в себя: видеокамеру PROD_C3 для захвата движущегося изображения, терминал PROD_C4 ввода для ввода движущегося изображения с внешнего устройства, участок PROD_C5 получения для получения движущегося изображения и участок PROD_C6 обработки изображений для формирования или обработки изображения. На ФИГ. 3(а) в качестве примера показано, что устройство PROD_C записи включает в себя все эти компоненты, но часть этих компонентов может отсутствовать.
[0154]
Следует отметить, что участок PROD_C5 получения может получать некодированное движущееся изображение, а также может получать кодированные данные, кодированные с помощью способа кодирования для передачи, отличного от способа кодирования для записи. В последнем случае между участком PROD_C5 получения и участком PROD_C1 кодирования может быть предусмотрен участок декодирования для передачи (не показана) для декодирования данных, кодированных с помощью способа кодирования для передачи.
[0155]
К примерам таких устройств PROD_C записи относятся: устройство записи на DVD, устройство записи на BD, устройство записи на жесткий диск (HDD) и т. д. (в данном случае терминал PROD_C4 ввода или участок PROD_C5 получения представляет собой основной источник для предоставления движущегося изображения). Кроме того, примеры такого устройства PROD_C записи также включают в себя портативную видеокамеру (в данном случае видеокамера PROD_C3 представляет собой основной источник для предоставления движущегося изображения), персональный компьютер (в данном случае участок PROD_C5 получения или участок C6 обработки изображений представляет собой основной источник для предоставления движущегося изображения) и смартфон (в данном случае видеокамера PROD_C3 или участок PROD_ C5 получения представляет собой главный источник для предоставления движущегося изображения).
[0156]
На ФИГ. 3(b) представлена блок-схема, иллюстрирующая компоненты устройства PROD_D воспроизведения, оснащенного описанным выше устройством 31 декодирования движущихся изображений. Как показано на ФИГ. 3(b), устройство PROD_D воспроизведения включает в себя: участок PROD_D1 считывания для считывания кодированных данных, записанных на носителе PROD_M информации, и участок PROD_D2 декодирования для получения перемещающегося изображения путем декодирования кодированных данных, считанных участком PROD_D1 считывания. Описанное выше устройство 31 декодирования движущихся изображений применяется в качестве участка PROD_D2 декодирования.
[0157]
Следует отметить, что носитель PROD_M информации может представлять собой (1) носитель информации, встроенный в устройство PROD_D воспроизведения, такой как HDD и SSD, также может представлять собой (2) носитель информации, подключенный к устройству PROD_D воспроизведения, такой как карта памяти SD и флэш-память USB, а также может представлять собой (3) носитель информации, загруженный в приводное устройство (не показано), встроенное в устройство PROD_D воспроизведения, такой как DVD и BD.
[0158]
Кроме того, в качестве места назначения предоставления движущегося изображения выводимого участком PROD_D2 декодирования, устройство PROD_D воспроизведения может дополнительно включать в себя: дисплей, PROD_D3 для отображения движущегося изображения, терминал PROD_D4 вывода для вывода движущегося изображения на внешнее устройство и участок PROD_D5 передачи для передачи движущегося изображения. На ФИГ. 3(b) в качестве примера показано, что устройство PROD_D воспроизведения включает все эти компоненты, но часть этих компонентов может отсутствовать.
[0159]
Следует отметить, что участок PROD_D5 передачи может передавать некодированное движущееся изображение, а также передавать кодированные данные, кодированные с помощью способа кодирования для передачи, отличного от способа кодирования для записи. В последнем случае между участком PROD_D2 кодирования и участком PROD_D5 передачи может быть предусмотрен участок кодирования (не показан) для кодирования движущегося изображения с помощью способа кодирования для передачи.
[0160]
Примеры такого устройства PROD_D воспроизведения включают в себя проигрыватель DVD, проигрыватель BD, проигрыватель HDD и т. п. (в данном случае терминал PROD_D4 вывода, подключенный к телевизионному приемнику и т. п., представляет собой основное место назначения предоставления движущегося изображения). Кроме того, примеры такого устройства PROD_D воспроизведения включают в себя телевизионный приемник (в данном случае дисплей PROD_D3 представляет собой основное место назначения предоставления движущегося изображения), цифровое табло (также называемое электронным табло или электронной доской, а также дисплей PROD_D3 или участок PROD_D5 передачи представляет собой основное местом назначения предоставления движущегося изображения), настольный компьютер (в данном случае терминал PROD_D4 вывода или участок PROD_D5 передачи представляет собой основное место назначения предоставления движущегося изображения), ноутбук или планшетный компьютер (в данном случае дисплей PROD_D3 или участок PROD_D5 передачи представляет собой основное место назначения предоставления движущегося изображения), смартфон (в данном случае дисплей PROD_D3 или участок PROD_D5 передачи представляет собой основное место назначения предоставления движущегося изображения) и т. п.
(Режим внутрикадрового прогнозирования цветности)
[0161]
Далее прогнозирование CCLM описано со ссылкой на ФИГ. 11-14.
[0162]
Участок 304 декодирования параметров внутрикадрового прогнозирования относится к режиму прогнозирования яркости IntraPredModeY, intra_chroma_pred_mode и таблице, показанной на ФИГ. 11(b), при получении описанного выше режима прогнозирования цветности IntraPredModeC. На ФИГ. 11(b) показан способ получения для IntraPredModeC. Если intra_chroma_pred_mode составляет от 0 до 3 и 7, то получают IntraPredModeC в зависимости от значения IntraPredModeY. Например, если intra_chroma_pred_mode равно 0, а IntraPredModeY равно 0, то IntraPredModeC равно 66. Кроме того, если intra_chroma_pred_mode равно 3, а IntraPredModeY равно 50, то IntraPredModeC равно 1. Следует отметить, что значения IntraPredModeY и IntraPredModeC представляют режим внутрикадрового прогнозирования, показанный на ФИГ. 6. Если intra_chroma_pred_mode составляет от 4 до 6, то IntraPredModeC получают без зависимости от значения IntraPredModeY. intra_chroma_pred_mode=81 (INTRA_LT_CCLM), 82 (INTRA_L_CCLM) и 83 (INTRA_T_CCLM) соответственно представляют собой режим, в котором формируют изображение прогнозирования изображения цветности на основании изображения яркости верхнего и левого смежных блоков, режим, в котором формируют изображение прогнозирования изображения цветности на основании изображения яркости левого смежного блока, и режим, в котором формируют изображение прогнозирования изображения цветности на основании изображения яркости верхнего смежного блока.
[0163]
Ниже описано прогнозирование CCLM. На графических материалах блоки объектов и смежные блоки изображения яркости представлены pY[][] и pRefY[][]. Блок объекта имеет ширину bW и высоту bH.
[0164]
Участок 31044 прогнозирования CCLM (участок 3102 конфигурации неотфильтрованных эталонных изображений) получает параметры прогнозирования CCLM с помощью смежного изображения яркости pRefY[][], показанного на ФИГ. 13(a)-(c), и смежного изображения цветности pRefC[][], показанного на ФИГ. 13(e), в качестве эталонных областей. Участок 31044 прогнозирования CCLM получает изображение прогнозирования цветности с помощью изображения объекта яркости pRef[].
[0165]
На ФИГ. 13 представлены схемы, иллюстрирующие пиксели, на которые выполняется ссылка при получении параметров прогнозирования CCLM в соответствии с вариантом осуществления настоящего изобретения. Участок 31044 прогнозирования CCLM получает параметры прогнозирования CCLM с помощью значений пикселей верхнего и левого смежных блоков блока объекта, если intra_chroma_pred_mode равно 81 (INTRA_LT_CCLM), как показано на ФИГ. 13(a); получает параметры прогнозирования CCLM с помощью значений пикселей левого смежного блока, если intra_chroma_pred_mode равно 82 (INTRA_L_CCLM), как показано на ФИГ. 13(b); и получает параметры прогнозирования CCLM с помощью значений пикселей верхнего смежного блока, если intra_chroma_pred_mode равно 83 (INTRA_T_CCLM), как показано на ФИГ. 13(c). Размер областей может быть следующим. Как показано на ФИГ. 13(a), верхняя сторона блока объекта имеет ширину bW и высоту refH (refH > 1), а левая сторона блока объекта имеет высоту bH и ширину refW (refW > 1). На ФИГ. 13(b) высота составляет 2*bH, а ширина - refW. Как показано на ФИГ. 13(c), ширина составляет 2*bW, а высота - refH. Для реализации обработки с понижающей дискретизацией refW и refH могут быть установлены на значение более 1 путем сопоставления числа отводов фильтра понижающей дискретизации. Кроме того, на ФИГ. 13(e) блок объекта и смежный блок изображения цветности (Cb, Cr) представлены pC[][] и pRefC[][]. Блок объекта имеет ширину bWC и высоту bHC.
(Участок прогнозирования CCLM)
[0166]
Участок 31044 прогнозирования CCLM описан на основании ФИГ. 11. На ФИГ. 11 представлена блок-схема, иллюстрирующая пример компонентов участка 31044 прогнозирования CCLM. На ФИГ. 11(a) представлена блок-схема, иллюстрирующая пример компонентов участка прогнозирования CCLM в соответствии с вариантом осуществления настоящего изобретения, а на ФИГ. 11(b) представлена схема, иллюстрирующая способ получения IntraPredModeC. Участок 31044 прогнозирования CCLM включает в себя: участок 310441 понижающей дискретизации, участок 310442 получения параметров прогнозирования CCLM (участок получения параметров) и участок 310443 фильтра прогнозирования CCLM.
[0167]
Участок 310441 понижающей дискретизации понижает частоту дискретизации pRefY[][] и pY[][] для соответствия размеру изображения цветности. Если формат цветности составляет 4:2:0, то число горизонтальных и вертикальных пикселей pRefY[][] и pY[][] дискретизируют как 2:1, а результаты сохраняют в pRefDsY[][] и pDsY[][], показанных на ФИГ. 13(d). Следует отметить, что bW/2 и bH/2 соответственно равны bWC и bHC. Если формат цветности составляет 4:2:2, то число горизонтальных пикселей pRefY[][] и pY[][] [] дискретизируют как 2:1, а результаты сохраняют в pRefDsY[] и pDsY[][]. Если формат цветности составляет 4:4:4, то дискретизацию не осуществляют, а pRefY[][] и pY[][] сохраняют в pRefDsY[][] и pDsY[][]. Пример дискретизации представлен следующими формулами.
pDsY[x][y] = (pY[2 * x - 1][2 * y] + pY[2 * x - 1][2 * y+1] + 2 * pY[2 * x][2 * y] + 2 * pY[2 * x][2 * y+1] + pY[2 * x+1][2 * y] + pY[2 * x+1][2 * y+1] + 4) >> 3
pRefDsY[x][y] = (pRefY[2 * x - 1][2 * y] + pRefY[2 * x - 1][2 * y+1] + 2 * pRefY[2 * x][2 * y] + 2 * pRefY[2 * x][2 * y+1] + pRefY[2 * x+1][2 * y] + pRefY[2 * x+1][2 * y+1] + 4) >> 3
[0168]
Участок 310443 фильтра прогнозирования CCLM рассматривает эталонное изображение refSamples[][] в качестве входного сигнала и выводит изображение прогнозирования predSamples[][] с помощью параметров (a, b) прогнозирования CCLM.
predSamples[][] = ((a * refSamples[][]) >> shiftA) + b (CCLM - 1)
[0169]
В данном случае refSamples представляет собой pDsY, показанный на ФИГ. 13(d); (a, b) представляют собой параметры прогнозирования CCLM, полученные с помощью участка 310442 получения параметров прогнозирования CCLM; predSamples[][] представляет собой изображение прогнозирования цветности (pC, показанный на ФИГ. 13(e)). Следует отметить, что (a, b) получают соответственно для Cb и Cr. Кроме того, shiftA представляет собой нормализованную величину сдвига, представляющую точность значения a, и когда наклон десятичной точности установлен на af, a=af << shiftA. Например, shiftA=16.
[0170]
На ФИГ. 12 представлена блок-схема, иллюстрирующая пример компонентов участка фильтра прогнозирования CCLM в соответствии с вариантом осуществления настоящего изобретения. На ФИГ. 12 показаны компоненты участка 310443 фильтра прогнозирования CCLM, который прогнозирует цветность в соответствии с яркостью. Как показано на ФИГ. 12, участок 310443 фильтра прогнозирования CCLM имеет участок 310444 линейного прогнозирования. Участок 310444 линейного прогнозирования рассматривает refSamples[][] в качестве входного сигнала и выводит predSamples[][] с помощью параметров (a, b) прогнозирования CCLM.
[0171]
Более конкретно, участок 310444 линейного прогнозирования получает цветность Cb или Cr в соответствии с яркостью Y с помощью следующей формулы, в которой применяют параметры (a, b) прогнозирования CCLM, и выводит predSamples[][] с помощью этой цветности Cb или Cr.
Cb (или Cr) = aY+b
[0172]
Участок 310442 получения параметров прогнозирования CCLM получает параметры прогнозирования CCLM с помощью подвергнутого понижающей дискретизации смежного блока pRefY (pRefDsY [][], показанного на ФИГ. 13(d)) яркости и смежного блока pRefC[][] (pRefC[][], показанного на ФИГ. 13(e)) цветности в качестве входных сигналов. Участок 310442 получения параметров прогнозирования CCLM выводит полученные параметры (a, b) прогнозирования CCLM в участок 310443 фильтра прогнозирования CCLM.
(Участок получения параметров прогнозирования CCLM)
[0173]
Участок 310442 получения параметров прогнозирования CCLM получает параметры (a, b) прогнозирования CCLM в случае, когда predSamples[][] блока прогнозирования блока объекта линейно прогнозируют в соответствии с refSamples[][] эталонного блока.
[0174]
При получении параметров (a, b) прогнозирования CCLM участок 310442 получения параметров прогнозирования CCLM получает точку (x1, y1), в которой значение яркости Y является максимальным (Y_MAX), и точку (x2, y2), в которой значение яркости Y является минимальным (Y_MIN) из группы смежных блоков (значение яркости Y, значение цветности C). Затем значения пикселей (x1, y1) и (x2, y2) на pRefC, соответствующие (x1, y1) и (x2, y2) на pRefDsY, соответственно устанавливают на C_MAX (или C_Y_MAX) и C_MIN (или C_Y_MIN). Затем, как показано на ФИГ. 14, получают прямую линию, соединяющую (Y_MAX, C_MAX) и (Y_MIN, C_MIN) на графике с помощью Y и C в качестве осей x и y соответственно. Параметры (a, b) прогнозирования CCLM для этой прямой линии могут быть получены с помощью следующей формулы.
a = (C_MAX - C_MIN)/(Y_MAX - Y_MIN)
b=C_MIN - (a * Y_MIN)
[0175]
Если применяется (a, b), то shiftA формулы (CCLM - 1) = 0.
[0176]
Следует отметить, что в случае вычисления параметра a значение разности яркости (diff) и значение разности цветности (diffC) применяют значение разности между максимальным значением Y_MAX яркости и минимальным значением Y_MIN яркости и значение разности между максимальным значением C_MAX цветности и минимальным значением C_MIN цветности, но не ограничивается ими. Следует отметить, что в случае вычисления параметра b Y_MIN и C_MIN применяют в качестве репрезентативных значений требуемой яркости и цветности, но репрезентативные значения не ограничиваются ими. Эти значения являются общими во всех вариантах осуществления настоящего изобретения. Например, параметр b также может быть таким, как показано ниже.
b=C_MAX - (a * Y_MAX)
[0177]
Кроме того, формула также может быть следующей.
b=C_AVE - (a * Y_AVE)
[0178]
В данном случае C_AVE и Y_AVE представляют собой соответственно среднее значение цветности и среднее значение яркости.
[0179]
В данном случае, если цветность представляет собой Cb, то (C_MAX, C_MIN) представляют собой значения пикселей (x1, y1) и (x2, y2) смежного блока pRefCb[][] Cb, а если цветность представляет собой Cr, то (C_MAX, C_MIN) представляют собой значения пикселей (x1, y1) и (x2, y2) смежного блока pRefCr[][] Cr.
[0180]
Следует отметить, что стоимость расчета для деления высока; следовательно, параметры (a, b) прогнозирования CCLM получают с помощью целочисленных операций и табличного поиска вместо деления. В частности, расчет выполняют с помощью следующей формулы. Следует отметить, что в следующем варианте осуществления применяется таблица, исключающая d=0 в обратной таблице, требуемой делением 1/d (таблица, в которой d=diff - 1 задана в качестве независимой переменной), но, безусловно, может также применяться таблица, в которой d=diff задано в качестве независимой переменной.
ChromaDelta=C_MAX - C_MIN
low = (ChrmaDelta * LMDivTableLow[diff - 1] + 2^15) >> 16
a = (ChromaDelta * LMDivTable[diff - 1] + low+add) >> shiftB
b=C_MIN - ((a * Y_MIN) >> shiftA)
diff = (Y_MAX - Y_MIN+add) >> shiftB
shiftB = (BitDepthC > 8)?(BitDepthC - 9):0
add = (shiftB > 0)?1 << (shiftB - 1):0
[0181]
Если diff=0, то a=0. В данном случае LMDivTableLow[] и LMDivTable[] представляют собой таблицы (обратные таблицы), применяемые для выполнения деления путем ссылки на таблицы, а получение выполняют заранее с помощью следующей формулы. Другими словами, сохраняемое в таблице значение представляет собой полученное значение (значение, соответствующее обратной величине делителя). Таким образом, в таблице сохраняются значение разности и полученное значение путем установления соответствия. Кроме того, shiftB представляет собой значение сдвига, применяемое для квантования области значения diff, которое отличается в зависимости от битовой глубины, которая должна составлять 2^9=512 или меньше. Следует отметить, что если битовая глубина BitDepthC изображения цветности равна 10 битам или превышает их, квантование выполняют заранее, так что значение diff находится в диапазоне от 0 до 512. shiftB не ограничен вышеуказанным. Например, заданная константа Q (например, 2, 6 или т. п.) может применяться следующим образом. Это также справедливо и для других вариантов осуществления.
shiftB=BitDepthC - Q
LMDivTable[diff - 1] = floor(2^16/diff)
LMDivTableLow[diff - 1] = floor((2^16 * 2^16)/diff) - floor(2^16/diff) * 2^16
[0182]
LMDivTable[diff - 1] представляет собой целую часть (1/diff* 2^16). LMDivTableLow[diff - 1] представляет собой десятичную часть умноженную на 2^16 (1/diff* 2^16). Кроме того, a и b составляют 2^16 (от 2 до степени 16), умноженное на значение формулы (C=a * Y+b), описанной выше.
[0183]
Например, если diff=7, то это выглядит следующим образом.
LMDivTable[7-1] = floor(2^16/7) = 9362
LMDivTableLow[7-1] = floor((2^16 * 2^16) /7) - floor(2^16/7) * 2^16=18724
[0184]
Если применяются (a, b), полученные из приведенной выше формулы, shiftA формулы (CCLM - 1) составляет 16.
(Специальная обработка в участке прогнозирования CCLM)
(Пример обработки 1)
[0185]
В описанном выше варианте осуществления участок 310442 получения параметров прогнозирования CCLM получает параметр b прогнозирования CCLM с помощью таблицы LMDivTable, представляющей целую часть 1/diff, и таблицы LMDivTableLow, представляющей десятичную часть 1/diff. В данном случае таблица LMDivTable имеет максимальное значение 65536 (17 бит), а таблица LMDivTableLow имеет максимальное значение 65140 (16 бит). Число элементов каждой таблицы составляет 512. Таким образом, для хранения таблицы LMDivTable и таблицы LMDivTableLow требуется очень большая память, имеющая размер 17 * 512+16 * 512=16896 (бит).
[0186]
В этом примере обработки участок 310442 получения параметров прогнозирования CCLM не получает параметры прогнозирования CCLM с помощью таблицы LMDivTableLow из двух таблиц, которая представляет десятичную часть 1/diff. Таким образом, участок 310442 получения параметров прогнозирования CCLM получает параметры (a, b) прогнозирования CCLM с помощью следующей формулы.
a = (ChromaDelta * LMDivTable[diff - 1] + add) >> shiftB
b=C_MIN - ((a * Y_MIN) >> shiftA)
add = (shiftB > 0)?1 << (shiftB - 1):0
[0187]
Авторы настоящего изобретения экспериментально подтвердили, что прогнозирование CCLM обеспечивает достаточную производительность только с помощью таблицы LMDivTable.
[0188]
В результате, поскольку нет необходимости хранить таблицу LMDivTableLow, объем памяти, необходимый для хранения таблицы, может быть уменьшен примерно вдвое. Кроме того, вычислительная нагрузка также может быть уменьшена, поскольку нет необходимости в операциях для получения div.
[0189]
Как описано выше, участок 31044 прогнозирования CCLM для этой обработки формирует изображение прогнозирования с помощью прогнозирования CCLM и имеет участок 310442 получения параметров прогнозирования CCLM. Параметры прогнозирования CCLM получают путем генерирования таблицы LMDivTable, соответствующей значениям разности множества эталонных пикселей яркости и полученным значениям, применяемым для получения параметров прогнозирования CCLM в соответствии со значениями разности. Вышеупомянутая таблица LMDivTable сохраняет целую часть значений, полученных умножением обратной разности значений на константу.
[0190]
Таким образом, объем памяти, необходимый для таблицы для получения параметров прогнозирования CCLM, может быть уменьшен.
(Пример обработки 2)
[0191]
В этом примере обработки уменьшают число битов (битовую ширину) в таблице LMDivTable, применяемой участком 310442 получения параметров прогнозирования CCLM.
[0192]
В описанном выше варианте осуществления значения из таблицы LMDivTable представляют собой целую часть (1/diff) * 65536 и поэтому являются следующими.
65536, 32768, 21845, 16384, 13107, 10922, 9362, 8192, 7281, 6553, 5957, 5461, 5041, 4681, 4369, 4096, 3855, 3640, 3449, 3276, 3120, 2978, 2849, 2730, 2621, 2520, 2427, 2340, 2259, 2184, 2114, 2048......
[0193]
В данном примере обработки дробная часть (m) каждого значения, описанного выше, аппроксимирована экспоненциальным представлением (m * 2^exp), представленным битами P, и в таблице DivTableM сохраняется только дробная часть. Например, если предполагается, что P=5, то значения обратной таблицы будут следующими.
16 * 2^12, 16 * 2^11, 21 * 2^10, 16 * 2^10, 26 * 2^9, 21 * 2^9, 18 * 2^9, 16 * 2^9, 28 * 2^8, 26 * 2^8, 23 * 2^8, 21 * 2^8, 20 * 2^8, 18 * 2^8, 17 * 2^8, 16 * 2^8, 30 * 2^7, 28 * 2^7, 27 * 2^7, 26 * 2^7, 24 * 2^7, 23 * 2^7, 22 * 2^7, 21 * 2^7, 20 * 2^7, 20 * 2^7, 19 * 2^7, 18 * 2^7, 18 * 2^7, 17 * 2^7, 17 * 2^7, 16 * 2^7......
[0194]
В таблице DivTableM сохраняются только дробные части этих значений. То есть,
DivTableM[] = {16, 16, 21, 16, 26, 21, 18, 16, 28, 26, 23, 21, 20, 18, 17, 16, 30, 28, 27, 26, 24, 23, 22, 21, 20, 20, 19, 18, 18, 17, 17, 16......}
[0195]
Следовательно, в вышеупомянутом варианте осуществления максимальное значение, требующее 17 бит, может быть представлено 5 битами, и объем памяти, необходимый для хранения таблицы DivTableM, может быть уменьшен.
[0196]
Следует отметить, что, если число сохраняемых значений задано равным 2^N, начиная с начала таблицы, минимальное значение в таблице DivTableM составляет 2^(P - 1), и, следовательно, значение, полученное вычитанием 2^(P - 1) из каждого значения, может сохраняться в таблице DivTableM. Вышеупомянутое значение получают путем добавления 2^(P - 1) к значению, полученному из таблицы. В этом случае память, требуемая для 1 бита, может быть дополнительно уменьшена для каждого значения. Далее значение сдвига в таблице DivTableM, в случае, когда число сохраняемых значений установлено равным 2^N, начиная с начала таблицы, называется offsetM. Если применяется таблица, из которой вычтено смещение, то offsetM=2^(P - 1). В противном случае offsetM=0.
[0197]
Более того, если с помощью целой части экспоненциального представления (1/diff) * (2^16) сохраняется только дробная часть в обратной таблице, то необходимо получить значение экспоненциальной части. В этом примере обработки участок 310442 получения параметров прогнозирования CCLM получает значение экспоненциальной части в соответствии со следующей формулой.
exp=clz(d, N) + (16 - N - (P - 1))
[0198]
В данном случае d=diff - 1 (разность яркости), exp представляет собой экспоненциальную часть (экспоненту), а N представляет собой число элементов, сохраненных в виде таблицы. Например, если N=9, то сохраняется 512 элементов, а если N=5, то сохраняется 32 элемента. Кроме того, «16» представляет собой точность 1/diff, т. е. число битов множителя для преобразования 1/diff в целочисленное представление. В описанном выше варианте осуществления расчет выполняется умножением значения 65536 (= 2^16) для получения значения 1/diff с целочисленной точностью. Следует отметить, что точность 1/diff является произвольной, и при применении другого значения точность также должна быть изменена на «16» соответственно.
[0199]
Функция clz (подсчет начальных нулей) представляет собой функцию, состоящую из двух независимых переменных (d, mw) и возвращает число последовательных нулей в старших значащих битах (MSB) первой независимой переменной d, представленной двоичным числом. Вторая независимая переменная mw представляет собой максимальное число битов (число битов). Например, если P=5, то в случае d=1 (0b00001, diff=2) (0b представляет собой префикс, указывающий двоичное число), clz(1, mw) = 4, а в случае d=2 (0b00010, diff=3), clz(2, mw) = 3. Кроме того, если d=16 (0b10000, diff=17), clz(16, mw) = 0. Следует отметить, что когда первая независимая переменная d равна 0, возвращается вторая независимая переменная mw. Таким образом, если d=0 (0b00000, diff=1), clz(0, mw) = mw.
[0200]
Следует отметить, что функция clz имеет специальную команду для множества ЦП. В специальной команде иногда обозначение максимального числа битов ограничено значениями 8, 16, 32 и т. д. Однако, например, если mw <= 8, clz(d, mw) = clz(d, 8) - (8 - mw). Кроме того, специальная команда не является обязательной. Например, в случае clz(d, 4) специальную команду можно заменить на следующую формулу.
clz(d, 4) = (d & 0×08)?1:(d & 0×04)?2:(d & 0×02)?3:(d & 0×01)?4:5
[0201]
Следует отметить, что значение функции clz d и логарифмическое значение d с основанием, равным 2 (т. е. log2 (d)), имеют следующее соотношение между собой.
clz(x, N) + floor(log2 (x)) = N
[0202]
Таким образом, exp можно получить с помощью следующей формулы.
exp=N - floor(log2 (diff)) + (16 - N - (P - 1)) = 16 - (P - 1) - floor(log2 (diff))
[0203]
Кроме того, получение также может быть выполнено с помощью следующей формулы.
exp=N - ceil(log2 (d)) + (16 - N - (P - 1)) = 16 - (P - 1) - ceil(log2 (d))
[0204]
Участок 31044 прогнозирования CCLM использует exp, полученную в соответствии с d, для сдвига значения, полученного умножением DivTableM[d] (которое обозначается разностью яркости d (= diff - 1)) на разность цветности, таким образом получая параметр a прогнозирования CCLM.
a = (ChromaDelta * DivTableM[d] << exp) + add) >> shiftB
b=C_MIN - ((a * Y_MIN) >> shiftA)
[0205]
В данном случае exp=clz(d, N) + (16 - N - (P - 1)) = 16 - (P - 1) - (N - clz(d, N))
[0206]
Для LMDivTable[d], DivTableM[d] и exp (примера обработки 1) установлено следующее соотношение.
LMDivTable[d] = DivTableM[d] << exp
[0207]
Следует отметить, что параметр a прогнозирования CCLM может быть получен после получения величины сдвига (shiftB - exp) с помощью экспоненциальной части exp, как описано ниже. Однако далее для простоты знак величины сдвига и направление сдвига обращены, если значения сдвига в операции битового сдвига вправо и операции битового сдвига влево являются отрицательными. Это же применяется и для других примеров.
a = (ChromaDelta * DivTableM[d] + add) >> (shiftB - exp)
[0208]
В данном случае add = (shiftB - exp > 0)?1 << (shiftB-exp-1):0
[0209]
В альтернативном варианте осуществления участок 310442 получения параметров прогнозирования CCLM может получать значение экспоненциальной части в соответствии со следующей формулой.
exp=16 - (P - 1) - ceil(log2 (diff))
[0210]
Кроме того, формула также может быть следующей.
exp=16 - (P - 1) - floor(log2 (diff))
[0211]
Кроме того, также можно сохранить только экспоненциальную часть как таблицу ShiftTableE. Например, если P=5, таблица ShiftTableE имеет следующий вид:
[0212]
ShiftTableE[] = {12, 11, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7......}. Альтернативно может применяться таблица ShiftTableE'[], показанная ниже.
ShiftTableE'[] = {0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5......}
[0213]
Экспоненциальная часть рассчитывается следующим образом:
exp=16 - (P - 1) - ShiftTableE'[d].
[0214]
Если максимальное число битов mw равно N или меньше него, вместо функции CLZ также можно применять таблицы ShiftTableE и ShiftTableE'.
clz(d, mw) = mw - ShiftTableE'[d] = mw - (16 - (P - 1) - ShiftTableE[d]))
[0215]
Участок 31044 прогнозирования CCLM применяет таблицу DivTableM и таблицу сдвига ShiftTableE для получения параметров CCLM с помощью следующей формулы.
a = (ChromaDelta * DivTableM[d] << ShiftTableE[d]) + add) >> shiftB
b=C_MIN - ((a * Y_MIN) >> shiftA)
[0216]
Следует отметить, что экспоненциальная часть exp может применяться, как описано ниже, для получения величины сдвига (shiftB - exp) и затем параметра a прогнозирования CCLM.
a = (ChromaDelta * DivTableM[d] + add) >> (shiftB - exp)
[0217]
В данном случае add = (shiftB - exp > 0)?1 << (shiftB - exp - 1):0, exp=ShiftTableE[d]
[0218]
Как описано выше, участок 31044 прогнозирования CCLM данного примера обработки формирует изображение прогнозирования с помощью прогнозирования CCLM, обеспечен участком 310442 получения параметров прогнозирования CCLM и получает параметр прогнозирования a CCLM с помощью значения разности яркости (d), значения разности цветности (ChromaDelta) и обратной таблицы DivTableM. Участок 310442 получения параметров прогнозирования CCLM получает экспоненциальную часть exp, соответствующую величине, обратной значению разности яркости (d), умножает элементы таблицы DivTableM на значение разности цветности и получает параметры прогнозирования CCLM путем выполнения сдвига в соответствии с величиной сдвига, полученной из экспоненциальной части exp.
[0219]
Вышеупомянутая конфигурация уменьшает число битов значения, сохраняемого в обратной таблице, необходимой для получения параметров прогнозирования CCLM, тем самым уменьшая требуемый объем памяти. Следует отметить, что, как показано в примере обработки 1, таблицу LMDivTableLow также можно не применять, а при сохранении таблицы LMDivTableLow также можно создать таблицу с элементами LMDivTableLow, разделенными на дробную часть и экспоненциальную часть.
(Добавление числа битов для произведения)
[0220]
Как описано выше, в CCLM при получении параметров a и b прогнозирования CCLM и формировании изображений прогнозирования с помощью a и b необходимы произведения ChromaDelta * LMDivTable[diff - 1], a * Y_MIN и a * refSamples[][]
a = (ChromaDelta * LMDivTable[diff - 1] + low+add) >> shiftB//11 бит * 17 бит=28
b=C_MIN - ((a * Y_MIN) >> shiftA)//27 бит * 10 бит=37
predSamples[][] = ((a * refSamples[][]) >> shiftA) + b//27 бит * 10 бит=37
(Битовая ширина параметра a)
[0221]
Например, при вычислении до вышеупомянутого примера обработки 1 битовая ширина ChromaDelta, a, Y_MIN, и refSamples[][] в 10-битовом изображении составляет соответственно 11 бит, 10 бит, 10 бит и 10 бит, а при shiftA=16 битовая ширина LMDivTable[diff - 1] и a составляет соответственно 16 бит и 27 бит (= 11 бит * 16 бит). В результате произведение при получении a, получении b и прогнозировании с помощью a составляет соответственно 11 бит * 17 бит, 27 бит * 10 бит и произведение 27 бит * 10 бит и большую битовую ширину, а аппаратное обеспечение является сложным.
[0222]
В примере обработки 2 произведение ChromaDelta * DivTableM[d] при получении а сокращено до битовой ширины, которая меньше ширины, чем в примере обработки 1, на exp (= ShiftTableE[d]), тем самым упрощая произведение.
(Пример обработки 3)
[0223]
В описанном выше варианте осуществления значения 512 элементов, применяемых в качестве желаемого диапазона от 1 до 512 значения разности яркости diff, хранятся в таблицах LMDivTable (и LMDivTableLow), требуемых для прогнозирования CCLM. В этом примере обработки уменьшается число элементов, хранящихся в таблице, и несохраняемые элементы получают путем вычисления, тем самым снижая требуемую память.
[0224]
Например, участок 310442 получения параметров прогнозирования CCLM получает параметры (a, b) прогнозирования CCLM с помощью таблицы LMDivTable_2N, включая 2^N элементов. Затем участок 310442 получения параметров прогнозирования CCLM рассчитывает в соответствии с 1/k сохраненного значения значение элемента, не сохраненного в таблице LMDivTable_2N. LMDivTable_2N[] представляет собой таблицу, в которой хранятся первые 2^N элементов LMDivTable[].
[0225]
Более конкретно, описание представлено со ссылкой на ФИГ. 17. На ФИГ. 17 представлена схема, иллюстрирующая пример расчета значения элемента, не содержащегося в таблице. В этом примере N=3. Как показано на ФИГ. 17, участок 310442 получения параметров прогнозирования CCLM непосредственно применяет значения из таблицы LMDivTable_2N для интервала D0[0..2^ N - 1] (например, 0..7) d, сохраняемого значениями из таблицы LMDivTable_2N; применяет значение 1/2 значения интервала D0'[2^N/2..2^(N+1) - 1] (например, 4..7) из второй половины D0 таблицы LMDivTable_2N для следующего интервала D1[2^N..2^(N+1) -1] (например, 8..15); применяет значение 1/4 значения интервала D0’ (например, 4..7) из таблицы LMDivTable_2N для следующего интервала D2[2^(N+1)..2^(N+2) -1] (например, 16.. 31); и применяет значение 1/8 значения интервала D0' (например, 4..7) из таблицы LMDivTable_2N для следующего интервала D3[2^(N+2)..2^(N+3) -1] (например, 32..63). Более того, интервал D1 имеет ширину, в два раза превышающую ширину интервала D0'; интервал D2 имеет ширину, в 4 раз превышающую ширину интервала D0'; интервал D3 имеет ширину, в 8 раз превышающую ширину интервала D0'. Таким образом, значения интервала Dsc[2^(N+sc - 1)..2^(N+sc) - 1] представляют собой значения, полученные умножением значений интервала D0'[2^N/2..2^(N+1) - 1] на 1/k (в данном случае K=2^sc), и, начиная с начала интервала Dsc, одинаковые значения сохраняются для каждого k. В данном случае 1 <= sc <= 6. 6 получено из 9-3; 9 - точность diff; 3 определяется в соответствии с D1, начиная с 8 (= 2^3).
[0226]
Например, если N=3, то значение, следующее за d(= diff - 1) = 8, рассчитывают путем умножения значения интервала D0'[4..7] на 1/k, как описано ниже.
Интервал [8..15] → 1/2
Интервал [16..31] → 1/4
Интервал [32..63] → 1/8
Интервал [64..127] → 1/16
Интервал [128..255] → 1/32
Интервал [256..511] → 1/64
[Таблица 1]
Интервал
Диапазон d
k
sc
D1
[8..15]
1/2
1
D2
[16..31]
1/4
2
D3
[32..63]
1/8
3
D4
[64..127]
1/16
4
D5
[128..255]
1/32
5
D6
[256..511]
1/64
6
[0227]
На ФИГ. 18 представлена схема, иллюстрирующая пример расчета значения элемента, не содержащегося в таблице. Более конкретно, как показано на ФИГ. 18, например, d=8, 9-1/2 от d=4; d=10, 11-1/2 от d=5; d=12, 13-1/2 из d=6; d=14, 15 представляет собой 1/2 от d=7; d=16, 17, 18, 19-1/4 от d=4; и d=20, 21, 22, 23-1/4 от d=5...... (список продолжается), и расчет выполняется со ссылкой на LMDivTable_2N в виде k последовательных одинаковых значений в пределах диапазона 1/k значений. Таким образом, применяют ссылку d/k на LMDivTable_2N. Далее по тексту k называется шкалой, а sc=log2 (k) называется значением сдвига шкалы. Следует отметить, что значение (d >> sc или diff >> sc), полученное путем выполнения нормализации в соответствии со значением сдвига шкалы sc, называется normDiff.
[0228]
В частности, если для представления применяется формула, то на обратную таблицу LMDivTable_2 выполняется ссылка в LMDivTable_2N[d/k]/k (= LMDivTable_2N[d >> sc] >> sc) с применением полученного k с помощью следующей формулы.
sc = (9 - N) - clz(d >> N, 9 - N)
k=2^(sc)
[0229]
Следует отметить, что «9» обусловлено точностью (числом битов) diff в размере 512 элементов (9 битов), а если точность отличается, выделяется другое значение.
[0230]
Например, sc также может быть получено с помощью следующей формулы:
sc = (9 - N) - (9 - N - (floor(log2 (d)) - N)) = floor(log2 (d)) - N
[0231]
Участок 31044 прогнозирования CCLM получает параметр a прогнозирования CCLM с помощью значения, полученного путем дополнительного сдвига значения из таблицы DivTableM на sc и разности цветности ChromaDelta, где на значение из таблицы DivTableM ссылается значение (d >sc), полученное путем сдвига разности яркости d (= diff - 1) на указанное значение сдвига шкалы sc, которое зависит от d.
a = (ChromaDelta * (LMDivTable_2N[d >> sc] >> sc) + add) >> shiftB
b=C_MIN - ((a * Y_MIN) >> shiftA)
[0232]
В данном случае add = (shiftB > 0)?1 << (shiftB - 1):0
[0233]
Альтернативно, когда применяется конфигурация всегда выполнения 1-битового сдвига вправо при получении поправочного члена add на рециркуляцию, как показано ниже, достигается эффект упрощения устранения расхождения между тем, является ли значение сдвига положительным.
add = (1 << shiftB) >> 1
[0234]
Следует отметить, что положение применения сдвига, реализуемого с помощью sc, не зависит от вышеупомянутой ситуации. Параметр a прогнозирования CCLM может также быть получен, как показано ниже.
a = (ChromaDelta * (LMDivTable_2N[d >> sc] + add) >> (shiftB+sc)
b=C_MIN - ((a * Y_MIN) >> shiftA)
[0235]
В данном случае add = (shiftB+sc > 0)?1 << (shiftB+sc - 1):0
или
add = (1 << (shiftB+sc)) >> 1
[0236]
Следует отметить, что в вышеуказанном процессе случай, в котором d=0 исключен, рассматривается при делении 1/d, и применяется только таблица, приведенная выше d >= 1. То есть применяется таблица d=diff - 1 вместо d=diff, хотя также может применяться таблица d=diff.
[0237]
Другими словами, как показано в вышеупомянутой LMDivTable_2N[d >> sc], ссылка на обратную таблицу LMDivTable_2N выполняется в соответствии с индексом (d >> sc), полученным путем уменьшения значения путем выполнения сдвига таким образом, что число элементов LMDivTable_2N уменьшается, тем самым достигая эффекта уменьшения размера таблицы. Кроме того, коррекция размера путем дополнительного сдвига вправо значения обратной таблицы LMDivTable_2N, как показано LMDivTable_2N[d >> sc] >> sc and (LMDivTable_2N[d >> sc] + add) >> (shiftB+sc), не приводит к ухудшению производительности, а скорее достигает эффекта уменьшения размера таблицы.
(Вариант примера обработки 3)
[0238]
В упомянутом выше варианте осуществления сконфигурирована таблица для d=diff - 1; число элементов, хранящихся в таблице, уменьшено; несохраненные элементы получают путем расчета, тем самым снижая требуемую память. В данном варианте описан пример конфигурирования таблицы для diff(0 <= diff <= 511) для снижения требуемой памяти. Ниже описано различие для примера обработки 3.
[0239]
Например, если число элементов таблицы равно 2^N, N=5, то устанавливается соответствие с таблицей 1, как показано в таблице 2.
[Таблица 2]
Интервал
diff
k
sc
range (diff/32)
idx
exp
iShift (16 - exp)
D0
0..31
1
0
0
0..31
13..18
3..8
D1
32..63
1/2
1
1
16..31
9, 8,
7, 8,
D2
64..127
1/4
2
2..3
16..31
9, 8,
7, 8,
D3
128..255
1/8
3
4..7
16..31
9, 8,
7, 8,
D4
256..511
1/16
4
8..15
16..31
9, 8,
7, 8,
D5
512
1/32
5
16
16
9
7
[0240]
В частности, если для представления применяется формула, то на обратную таблицу LMDivTable_2’ выполняется ссылка в LMDivTable_2N'[d/k]/k (= LMDivTable_2N[d >> sc] >> sc) с применением полученного k с помощью следующей формулы. LMDivTable_2N'[] представляет собой таблицу, полученную путем вставки 0 в начале LMDivTable_2N[] и удаления элементов в конце.
range=diff >> N
sc=ShiftTableE"_2 N[range+1]
k=2^(sc)
[0241]
ShiftTableE"_2 N[] представляет собой таблицу, полученную путем вставки 0 в начале ShiftTableE'_2 N[].
ShiftTableE"_2N[] = {0, 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5......}
[0242]
Участок 31044 прогнозирования CCLM получает параметр a прогнозирования CCLM с помощью значения, полученного путем дополнительного сдвига значения из таблицы LMDivTable_2N' на sc, и разности цветности ChromaDelta, где на значение из таблицы LMDivTable_2N' ссылается значение (diff >> sc), полученное путем сдвига разности яркости diff на указанное значение сдвига шкалы sc, которое зависит от diff.
a = (ChromaDelta * (LMDivTable_2N'[diff >> sc] >> sc) + add) >> shiftB
b=C_MIN - ((a * Y_MIN) >> shiftA)
[0243]
В данном случае
add = (shiftB > 0)?1 << (shiftB - 1):0
или
add = (1 << shiftB) >> 1
[0244]
LMDivTable_2N'[] представляет собой таблицу, полученную путем вставки 0 в начале LMDivTable_2N'[] и удаления элементов в конце.
[0245]
Эффект примера обработки 3 такой же, как и в данном варианте.
(Пример обработки 4)
[0246]
Участок 310442 получения параметров прогнозирования CCLM может выполнять обработку путем объединения вышеупомянутых примеров обработки с 1 по 3. В данном случае участок 310442 получения параметров прогнозирования CCLM получает значение сдвига шкалы sc, соответствующее значению разности яркости (d), получает значение (DivTableM_2N[d>>sc]) таблицы DivTableM_2N, ссылаясь на значение d>>sc в качестве индекса (положения элемента), причем значение d>>sc получают путем сдвига вправо значения разности яркости (d) на sc, а затем умножают значение разности цветности на значение r, полученное путем выполнения сдвига с помощью значения exp, соответствующего экспоненциальной части, соответствующей d >> sc и значению сдвига sc, таким образом получая параметры прогнозирования CCLM.
[0247]
Параметры (a, b) прогнозирования CCLM получают в соответствии со следующей формулой.
a = (ChromaDelta * r+add) >> shiftB
b=MinChromaValue - ((a * MinLumaValue) >> shiftA)
d=diff - 1
sc = (D - N) - clz(d >> N, D - N)
exp=clz(d >> sc, N) + (16 - N - P - 1))
r = (DivTableM_2N[d >> sc] + offsetM) << exp >> sc
add = (shiftB > 0)?
1 << (shiftB - 1):0
[0248]
Например, sc также может быть получено с помощью следующей формулы: То же самое выполняется следующим образом.
c = (D - N) - (D - N - (floor(log2 (d)) - N)) = floor(log2 (d)) - N
[0249]
Если применяют смещение (число сохраняемых значений конфигурируют так, чтобы оно составляло 2^N, начиная с начала таблицы), то offsetM=2^(P - 1). Если смещение не применяется, то offsetM=0.
[0250]
В данном случае
D: (1.. 2^D) представляет диапазон значений diff, где D=9 в (пример обработки 1) до (пример обработки 3)
N: целое число, представляющее log2 от числа элементов DivTable, где 0 < N <= D
P: число битов дробной части в экспоненциальном представлении значения целого кратного (2^16) 1/diff, где 0 <= P - 1 <= 16 - N
[0251]
Следует отметить, что порядок применения значения сдвига шкалы sc и экспоненциального значения сдвига exp не ограничивается вышеуказанным. Например, участок 310442 получения параметров прогнозирования CCLM получает sc, соответствующее значению разности яркости (d), и применяет значение сдвига (shiftB+sc - exp), полученное в соответствии с exp и sc, для сдвига значения, полученного умножением DivTableM_2N[d >> sc] на значение разности цветности, таким образом получая параметры прогнозирования CCLM. Посредством таблицы, на которую ссылается DivTableM_2N[d >> sc], в качестве индекса (положения элемента) значение d >> sc получают путем сдвига вправо значения разности яркости (d) на sc.
a = (ChromaDelta * r+add) >> (shiftB+sc - exp)
b=MinChromaValue - ((a * MinLumaValue) >> shiftA)
d=diff - 1
sc = (D - N) - clz(d >> N, D - N)
exp=clz(d >> sc, N) + (16 - N - (P - 1))
r = (DivTableM_2N[d >> sc] + offsetM)
add = (shiftB+sc - exp > 0)?1 << (shiftB+sc - exp - 1):0
offsetM=2^(P - 1) или 0
[0252]
Кроме того, можно также нормализовать значение ChromaDelta, сначала применяя значение сдвига shiftB.
a = ((ChromaDelta+add) >> shiftB) * r >> (sc - exp)
(Примеры значений таблиц)
[0253]
Примеры значений таблиц приведены ниже.
<Пример 1> N=6 и P=5, со смещением offsetM 2^(P - 1)
DivTableM_2N[64] = {0, 0, 5, 0, 10, 5, 2, 0, 12, 10, 7, 5, 4, 2, 1, 0, 14, 12, 11, 10, 8, 7, 6, 5, 4, 4, 3, 2, 2, 1, 1, 0, 15, 14, 13, 12, 12, 11, 10, 10, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0, 0}
ShiftTableE_2N[64] = {12, 11, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6}
<Вариант примера 1> В случае другого метода округления таблица также может быть следующей.
DivTableM_2N[64] = {0, 0, 5, 0, 10, 5, 2, 0, 12, 10, 7, 5, 4, 2, 1, 0, 14, 12, 11, 10, 8, 7, 6, 5, 4, 4, 3, 2, 2, 1, 1, 0, 15, 14, 14, 13, 12, 11, 11, 10, 9, 9, 8, 8, 7, 7, 6, 6, 5, 5, 4, 4, 4, 3, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0}
[0254]
ShiftTableE_2N аналогично <примеру 1>.
[0255]
Если N=6 и P=5, то объем памяти, необходимый для хранения таблицы, составляет (5-1) * 2^6=4 * 64=256 (бит). По сравнению со случаем вышеописанного варианта осуществления 256/16896=1,515%, и объем памяти может быть значительно уменьшен.
<Пример 2> N=5 и P=5 со смещением 2^(P - 1)
DivTableM_2N[32] = {0, 0, 5, 0, 10, 5, 2, 0, 12, 10, 7, 5, 4, 2, 1, 0, 14, 12, 11, 10, 8, 7, 6, 5, 4, 4, 3, 2, 2, 1, 1, 0}
ShiftTableE_2N[32] = {12, 11, 10, 10, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}
[0256]
В данном случае (N=5, P=5 и D=9 со смещением) формулы получения a и b сведены следующим образом:
[0257]
d=diff - 1
sc = (D - N) -clz(d >> N, D - N) = (9-5) - clz(d >> 5, 9-5) = 4 - clz(d >> 5, 4)
exp=clz(d >> sc, N) + (16 - N - (P - 1)) = clz(d >> sc, 5) + (16-5 - (5-1) = clz(d >> sc, 5) + 7
offsetM=2^(P - 1) = 2^(5-1) = 16
r = (DivTableM_2N[d >> sc] + offsetM) = DivTableM_2N[d >> sc] + 16
add = (shiftB+sc-exp > 0)?1 << (shiftB+sc - exp - 1):0,
a = (ChromaDelta * r+add) >> (shiftB+sc - exp)
b=MinChromaValue - ((a * MinLumaValue) >> shiftA)
[0258]
В данном случае при применении ShiftTableE_2N вместо clz a и b рассчитывают, как показано ниже.
[0259]
d=diff - 1
sc = (D - N) - clz(d >> N, D - N) = (D - N) - ((D - N) - (16 - (P - 1) - ShiftTableE_2N[d >> 5])) = 4 - (4 - (16-4) - ShiftTableE_2N[d >> 5])) = 12 - ShiftTableE_2N[d >> 5]
exp=ShiftTableE_2N[d >> 5]
offsetM=2^(P - 1) = 2^(5-1) = 16
r = (DivTableM_2N[d >> sc] + offsetM) = DivTableM_2N[d >> sc] + 16
add = (shiftB+sc - exp > 0)?1 << (shiftB+sc - exp - 1):0,
a = (ChromaDelta * r+add) >> (shiftB+sc - exp)
b=MinChromaValue - ((a * MinLumaValue) >> shiftA)
<Вариант примера 2> В случае другого метода округления таблица также может быть следующей.
DivTableM_2N[32] = {0, 0, 5, 0, 10, 5, 2, 0, 12, 10, 7, 5, 4, 2, 1, 0, 14, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 3, 2, 1, 1, 0}
[0260]
ShiftTableE_2N аналогично <примеру 2>.
[0261]
Следует отметить, что в случае отсутствия смещения (offsetM=0) значения, полученные путем добавления соответствующих элементов вышеупомянутого смещения DivTableM_2N до 2^(P - 1), заранее сохраняются и применяются.
<Пример 3> N=6 и P=4 со смещением 2^(P - 1)
DivTableM_2N[64] = {0, 0, 3, 0, 5, 3, 1, 0, 6, 5, 4, 3, 2, 1, 1, 0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0, 0, 7, 7, 7, 6, 6, 5, 5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0}
ShiftTableE_2N[64] = {13, 12, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7}
<Вариант примера 3> В случае другого метода округления таблица также может быть следующей.
DivTableM_2N[32] = {0, 0, 3, 0, 5, 3, 1, 0, 6, 5, 4, 3, 2, 1, 1, 0, 7, 6, 6, 5, 4, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0}
[0262]
ShiftTableE_2N аналогично <примеру 3>.
< Пример 4> N=5 и P=4 со смещением 2^(P - 1)
DivTableM_2N[32] = {0, 0, 3, 0, 5, 3, 1, 0, 6, 5, 4, 3, 2, 1, 1, 0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0, 0}
ShiftTableE_2N[32] = {13, 12, 11, 11, 10, 10, 10, 10, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8,}
<Вариант примера 4> В случае другого метода округления таблица также может быть следующей.
DivTableM_2N[32] = {0, 0, 3, 0, 5, 3, 1, 0, 6, 5, 4, 3, 2, 1, 1, 0, 7, 6, 6, 5, 4, 4, 3, 3, 2, 2, 2, 1, 1, 1, 1, 0}
[0263]
ShiftTableE_2N аналогично <примеру 4>.
[0264]
Следует отметить, что если N=5 и P=4, то объем памяти, необходимый для хранения таблицы, составляет (4-1) * 2^5=3 * 32=96 (бит). По сравнению со случаем, описанным в приведенном выше варианте осуществления, 96/16896=0,568%, и объем памяти может быть значительно уменьшен.
[0265]
В примерах обработки 5 и 6, проиллюстрированных ниже, может быть применена таблица, приведенная выше.
(Пример обработки 5)
[0266]
В примере обработки 5 проиллюстрирован пример, в котором точность shiftA параметра a задана как переменная в формуле (CCLM - 1). В частности, точность shiftA параметра a получают из значения сдвига exp, полученного из значения разности яркости diff.
[0267]
Далее участок 310442 получения параметров прогнозирования CCLM получает член (diffC/diff), эквивалентный наклону линейного прогнозирования, из значения разности яркости diff и значения разности цветности diffC, и рассматривает в качестве параметра a (в данном случае значение 2^shiftA (= 1 << shiftA) раз параметра a получают для выполнения интегрализации).
[0268]
Сначала участок 310442 получения параметров прогнозирования CCLM получает значение v, эквивалентное дробной части, обратной diff, с помощью описанного выше способа.
idx=diff >> sc
exp=16 - (P - 1) - ceil(log2 (idx)) -sc
msb=1 << (P - 1)
v=DivTable_2N'[idx]|msb
[0269]
В данном случае P представляет собой заданную константу (например, P=4), соответствующую числу битов дробной части в обратной таблице (1/diff). Кроме того, exp представляет собой переменную, которая уменьшается по мере увеличения разности яркости diff (и представляет собой переменную, которая уменьшается пропорционально логарифмическому значению diff), и ее можно получить в соответствии с таблицей. Следует отметить, что если idx=0, то log2 (idx) устанавливают на 0. В данном случае вычитание другого значения из 16 для получения значения exp обусловлено тем, что обратная таблица создается на основе (2^16)/diff. Ниже битовая ширина, применяемая в качестве эталона в обратной таблице, обозначена как baseA. Если битовая ширина параметра a не ограничена, тогда shiftA=baseA. Следует отметить, что максимальное значение v равно (1 << P) -1, а число битов v равно P.
exp=16 - (P - 1) - ShiftTableE”_2N[idx] - sc
[0270]
Участок 310442 получения параметров прогнозирования CCLM корректирует число битов параметра a путем дополнительного выполнения сдвига вправо на shift_a, как описано ниже, если параметр a получают с помощью произведения diffC и v.
add = (1 << shift_a) >> 1
a = (diffC * v+add) >> shift_a
b=C_Y_MIN - ((a * Y_MIN) >> shift_a)
[0271]
В данном случае shift_a представляет собой значение, полученное из битовой глубины bitDepth изображения. expC представляет собой константу, которая ограничивает битовую ширину параметра a и, например, находится в диапазоне от 0 до 3. Битовая ширина параметра a равна битовая ширина diffC+битовая ширина v - shift_a, равна bitDepth+P - (bitDepth - 8 - expC) = P+8 - expC и уменьшается до небольшого значения, не зависящего от битовой глубины изображения. Например, если P=4 и expC=3, a имеет битовую ширину 9.
shift_a=bitDepth - 8 - expC
[0272]
Участок 310442 получения параметров прогнозирования CCLM корректирует значение shiftA путем вычитания значения exp и expC из исходного значения shiftA (= baseA, например, 16), при этом значение exp получают с помощью разности яркости diff.
shiftA=16 - (exp+expC)
[0273]
Участок 310443 фильтра прогнозирования CCLM выводит predSamples[][] изображения прогнозирования с помощью формулы (CCLM - 1) и с помощью параметров (a, b) прогнозирования CCLM и скорректированного shiftA, описанных выше.
[0274]
Таким образом, битовая ширина a, применяемая для получения b или формирования predSamples[][] изображения прогнозирования, может быть уменьшена путем адаптивного получения величины сдвига a с помощью разности яркости diff и битовой глубины bitDepth. За счет этого эффект упрощения произведения a и значения яркости refSamples[][] в формуле (CCLM - 1).
[0275]
В примере обработки 5 произведение diffC * v при получении a уменьшается с 11 бит * 16 бит в примере обработки 1 до 11 бит * P бит, таким образом достигая эффекта упрощения произведения. Если P=4, 11 бит * 4 бита=15 бит.
[0276]
В примере обработки 5 произведение a * Y_MIN при получении b уменьшается с 27 бит * 10 бит в примере обработки 1 до P+8 - expC бит * 10 бит, таким образом достигая эффекта упрощения произведения. Если P=4 и expC=3, 9 бит * 4 бита=13 бит.
[0277]
В примере обработки 5 произведение формулы (CCLM - 1) уменьшается с 27 бит * 10 бит в примере обработки 1 до P+8 - expC бит * 10 бит, таким образом достигая эффекта упрощения произведения. Если P=4 и expC=3, 9 бит * 4 бита=13 бит.
[0278]
Следует отметить, что expC в примере обработки 5 представляет собой константу, которая отличается от примера обработки 5 и не зависит от разности цветности и, следовательно, на нее может выполняться ссылка как на expConst или т. п., а не как на expC.
(Пример обработки 6)
[0279]
В примере обработки 6 описан пример, в котором точность shiftA параметра a для произведения со значением яркости установлена как переменная в формуле (CCLM - 1). В частности, верхний предел числа битов a (область значения a) установлен равным max_a_bits, а точность shiftA параметра a получают на основании diffC, служащего в качестве разности цветности (C_Y_MAX-C_Y_MIN). Следует отметить, что вышеуказанное можно интерпретировать как пример, в котором дробная часть фиксированного числа битов и степень 2 представляют параметр a. Далее число битов дробной части представлено max_a_bits, а число битов экспоненциальной части представлено expC.
[0280]
Далее участок 310442 получения параметров прогнозирования CCLM получает (diffC/diff * 2^shiftA), эквивалентное наклону, из знаменателя (значение разности яркости) diff и числителя (значение разности цветности) diffC и рассматривает его в качестве параметра a. Далее берется 2^shiftA (т. е., 1 << shiftA) раз параметра a для выполнения интегрализации.
[0281]
Участок 310442 получения параметров прогнозирования CCLM получает idx, применяемый для ссылки на обратную таблицу, полученную путем сжатия diff, а затем получает значение v, эквивалентное обратной величине diff.
diff=Y_MAX - Y_MIN
range = (diff >> N) + 1
sc=ceil(log2 (range))
idx=diff >> sc
[0282]
В данном случае N представляет собой заданную константу, например, 5.
msb=1 << (P - 1)
v=DivTable_2N'[idx]|msb
[0283]
В данном случае P представляет собой число битов дробной части (части, сохраненной в таблице DivTable_2N') обратной таблицы (1/diff), а msb представляет собой offsetM.
[0284]
Участок 310442 получения параметров прогнозирования CCLM получает значение сдвига exp, соответствующее значению разности яркости diff.
exp=16 - (P - 1) - ceil(log2 (diff+1)) = 16 - (P - 1) - ceil(log2 (idx)) - sc
[0285]
Кроме того, exp может быть получено со ссылкой на таблицу.
exp=16 - (P - 1) - ShiftTableE"_2N[idx] - sc
[0286]
Участок 310442 получения параметров прогнозирования CCLM получает значение сдвига expC, соответствующее логарифмическому значению абсолютного значения absDiffC значения разности цветности diffC.
diffC=C_Y_MAX - C_Y_MIN
absDiffC = (diffC < 0? - diffC:diffC)
rangeDiffC = (absDiffC >> (max_a_bits - P - 1))
expC=ceil(log2 (rangeDiffC+1))
[0287]
В данном случае конфигурация, в которой значение max_a_bits установлено равным P+1, также является предпочтительной, и в этом случае rangeDiffC=absDiffC. Таким образом, участок 310442 получения параметров прогнозирования CCLM получает expC путем исключения rangeDiffC, как показано ниже.
expC=ceil(log2 (absDiffC+1))
[0288]
Если параметр a получают с помощью произведения diffC и v, то участок 310442 получения параметров прогнозирования CCLM дополнительно смещает вправо diffC * v на expC для получения параметра a, имеющего ограниченное число битов, как показано ниже.
add = (1 << expC) >> 1
a = (diffC * v+add) >> expC, формула (a - 1)
b=C_Y_MIN - ((a * Y_MIN) >> expC)//shift_a=expC, формула (b - 1)
[0289]
При добавлении формулы (a - 1) формулу (a - 1) умножают на переменную со знаком diffC и сдвигают вправо на битовую ширину переменной diffC+max_a_bits - P - 1. Таким образом, битовая ширина a составляет max_a_bit суммы битовой ширины P v, max_a_bits - P - 1 и знакового бита 1. В частности, в конфигурации, в которой max_a_bits=P+1, представление может быть выполнено посредством P+1 бит, полученных путем добавления не более 1, представляющего собой знаковый бит diffC к битовой ширине (например, P) v.
[0290]
Участок 310442 получения параметров прогнозирования CCLM корректирует значение shiftA, путем вычитания exp и expC из исходного значения shiftA (например, 16), причем expC получают с помощью знаменателя (значение разности яркости diff), а exp получают с помощью числителя (значение разности цветности diffC).
shiftA=16 - (exp+expC)
[0291]
Например, если max_a_bits=5, то a представляется в соответствии с 5-битовой точностью (от -16 до 15). Кроме того, expC представляет собой переменную, которая увеличивается по мере увеличения абсолютного значения разности цветности diffC (и представляет собой переменную, которая увеличивается пропорционально логарифмическому значению absDiffC).
expC=ceil(log2 (rangeDiffC))
[0292]
Следует отметить, что если rangeDiffC=0, то expC=0. expC может быть получено со ссылкой на таблицу.
expC=ShiftTableE"_2 N[rangeDiffC+1]
[0293]
Участок 310443 фильтра прогнозирования CCLM выводит predSamples[][] изображения прогнозирования с помощью формулы (CCLM - 1) и с помощью параметров (a, b) прогнозирования CCLM и скорректированного shiftA, описанных выше.
[0294]
Таким образом, битовая глубина a может быть уменьшена за счет адаптивного получения величины сдвига a из разности цветности diffC. Соответственно, ухудшение точности предотвращается, и упрощается произведение a и значения яркости refSamples[][] в формуле (CCLM-1).
[0295]
В примере обработки 6 произведение diffC * v при получении a уменьшается с 11 бит * 16 бит в примере обработки 1 до 11 бит * P бит, таким образом достигая эффекта упрощения произведения. Если P=4, 11 бит * 4 бита=15 бит.
[0296]
В примере обработки 6 произведение a * Y_MIN при получении b уменьшается с 27 бит * 10 бит в примере обработки 1 до max_a_bits бит * 10 бит, таким образом достигая эффекта упрощения произведения. Если max_a_bits=5, 5 бит* 10 бит=15 бит.
[0297]
В примере обработки 6 произведение формулы (CCLM - 1) уменьшается с 27 бит * 10 бит в примере обработки 1 до max_a_bits бит * 10 бит, таким образом достигая эффекта упрощения произведения. Если max_a_bits=5, 5 бит* 10 бит=15 бит.
(Пример обработки 7)
[0298]
Далее обработка комбинации примеров обработки с 1 по 3 (пример обработки 4) с акцентом на уменьшении таблицы, примера обработки 2 с акцентом на уменьшении битовой ширины, и примеров обработки 5 и 6 описана в отношении обработки в качестве примера обработки 7. То, что было описано, частично опущено, и приведено краткое описание. Кроме того, shiftB для ограничения diff заданным числом битов устанавливают на 0. Способ получения параметров a и b прогнозирования CCLM показан ниже. Если C_Y_MAX=C_Y_MIN, то a=0 и b=C_Y_MIN.
[0299]
Участок 310442 получения параметров прогнозирования CCLM получает, на основании значения разности яркости diff, индекс idx, применяемый для обратной таблицы DivTableM_2N', и переменную exp, применяемую для точной коррекции, и получает значение v, эквивалентное обратной величине diff.
shiftA=baseA=16
diff=Y_MAX - Y_MIN
range=diff >> N
sc=ceil(log2 (range+1))
idx=diff >> sc
exp=baseA - (P - 1) - ceil(log2 (idx)) - sc
msb=1 << (P - 1)
v = (DivTableM_2N'[idx]|msb)
[0300]
В данном случае baseA представляет собой число битов (например, 16), применяемых в качестве ссылки для получения обратной таблицы DivTableM_2N'[idx]; N представляет собой константу, соответствующую числу элементов (2^N) DivTableM_2N'; P представляет собой константу, соответствующую числу битов дробной части в экспоненциальном представлении (2^16/diff) с базовым числом 2; max_a_bits представляет собой константу, соответствующую числу битов дробной части в экспоненциальном представлении a с базовым числом 2. Msb также представляет собой константу. Одним примером может быть N=5, P=4, max_a_bits=5, и msb=2^(P - 1) = 8. Ниже показан пример DivTableM_2N'[] в случае msb=2^(P - 1) (имеется смещение).
DivTableM_2N'[32] = {0, 0, 0, 3, 0, 5, 3, 1, 0, 6, 5, 4, 3, 2, 1, 1, 0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}
[0301]
Участок 310442 получения параметров прогнозирования CCLM получает, на основании значения разности цветности diffC, переменную expC для ограничения битовой ширины параметра a.
max_a_bits=5
diffC=C_Y_MAX - C_Y_MIN
absDiffC = (diffC < 0? - diffC:diffC)
rangeDiffC = (absDiffC >> (max_a_bits - P - 1))
expC=ceil(log2 (rangeDiffC+1))
shift_a=expC
[0302]
Участок 310442 получения параметров прогнозирования CCLM получает параметр a, имеющий ограниченное число битов, посредством дополнительного сдвига вправо diffC * v на shift_a, как описано ниже.
add=1 << shift_a >> 1
a = (diffC * v+add) >> shift_a
[0303]
В этой конфигурации shift_a=expC, так что формулы для получения a и b могут быть заменены следующими формулами.
add = (1 << expC) >> 1
a = (diffC * v+add) >> expC
[0304]
Таким образом, битовая ширина (точность) a может поддерживаться фиксированной независимо от значения diffC.
[0305]
Участок 310442 получения параметров прогнозирования CCLM корректирует значение shiftA путем вычитания exp и expC из исходного значения shiftA (например, 16), причем exp получают с помощью diff, а expC получают с помощью diffC.
shiftA- = exp+expC
[0306]
Кроме того, если исходное значение равно 16, shiftA также может быть получен, как показано ниже.
shiftA=16 - exp - expC
[0307]
Кроме того, поскольку исходное значение baseA shiftA также применяется для получения expC и смещает друг друга, shiftA может быть непосредственно получено с помощью констант P, idx и rangeDiffC.
shiftA=baseA - (baseA - (P - 1) - ceil(log2 (idx)) - sc) - ceil(log2 (rangeDiffC+1))
= P - 1+ceil(log2 (idx)) + sc - ceil(log2 (rangeDiffC+1))
[0308]
Участок 310442 получения параметров прогнозирования CCLM получает параметр b с помощью параметра a, имеющего ограниченную битовую ширину.
b=C_Y_MIN - ((a * Y_MIN) >> shiftA)
[0309]
Участок 310443 фильтра прогнозирования CCLM выводит predSamples[][] изображения прогнозирования с помощью формулы (CCLM - 1) и с помощью параметров (a, b) прогнозирования CCLM и скорректированного shiftA, описанных выше.
[0310]
Следует отметить, что, как показано в примере обработки 6, expC может быть установлена на заданную константу независимо от diffC. Однако значение expC меньше значения, полученного путем добавления битовой глубины bitDepth изображения к P (число битов дробной части в экспоненциальном представлении (2^16/diff) с базовым числом 2). Например, если bitDepth=10 и P=4, то expC устанавливается меньше 14.
expC < bitDepth+P
[0311]
Таким образом, точность a несколько снижена, но обработка может быть упрощена.
[0312]
В соответствии с вышеописанной конфигурацией достигаются эффекты, описанные в примерах обработки с 1 по 3, 5 и 6. При повторной регистрации основных эффектов достигаются по меньшей мере следующие эффекты.
[0313]
Как описано в примере обработки 3, эффекта упрощения уменьшения размера таблицы можно достичь с помощью diff >> sc и ссылки на таблицу.
[0314]
Эффект упрощения произведения, достигаемый за счет уменьшения битовой ширины, описанной в примерах обработки 5 и 6, может быть достигнут.
(Пример обработки 8)
[0315]
Ниже представлен пример дополнительного уменьшения размера таблицы по сравнению с примерами обработки 3, 7. В примере обработки 3 размер таблицы уменьшен с помощью ссылки на основе diff >> sc (обработка путем уменьшения вдвое значения (1/diff), соответствующего второй половине D0' D0, показанной на ФИГ. 18, повторяется в D1, D2...). Однако, если в данном случае для sc допускаются отрицательные значения, первый полуинтервал (интервал D-1' в D0, отличный от D0') оставшейся таблицы также может быть получен из второго полуинтервала (D0’). Такая обработка может быть выполнена путем получения индекса посредством вычитания заданного значения из значения разности, масштабированного в виде (diff >> sc) - 16.
[0316]
На ФИГ. 19 представлена схема, иллюстрирующая пример потока данных примера обработки в соответствии с настоящим изобретением. На ФИГ. 19 представлена схема потока данных, представляющая действия участка получения коэффициента целочисленного деления, предусмотренного в участке 310442 получения параметров прогнозирования CCLM, согласно примеру обработки 8 в данном варианте осуществления. Участок получения коэффициента целочисленного деления рассматривает diff и diffC в качестве входных данных и получает линейный коэффициент прогнозирования a, соответствующий diffC/diff, и значение сдвига shiftA, соответствующее точности a и применяемое для линейного прогнозирования. Следует отметить, что каждая переменная удовлетворяет следующему соотношению.
a = (diffC/diff) << shiftA
[0317]
В данном случае diffC соответствует числителю, а diff соответствует знаменателю, так что diffC также может называться числителем, а diff также может называться знаменателем.
[0318]
На ФИГ. 20 представлен пример, иллюстрирующий значения normDiff, idx и т.д. с разностью, находящейся в диапазоне от 0 до 63. На ФИГ. 20 представлен пример значений, представляющих собой normDiff и idx, в котором diff находится в диапазоне от 0 до 63. Нормализация проводится по diff с помощью значения сдвига шкалы sc, эквивалентного логарифмическому значению 2, причем normDiff изменяется на величину от 16 до 31. idx представляет собой значение, полученное путем вычитания заданного значения из normDiff, и находится в диапазоне от 0 до 15. Нормализация проводится на diffNorm в соответствии с diff так, что normDiff и idx представляют собой диапазоны значений, которые повторяются в каждой группе, полученной путем разделения diff. Размер группы составляет 1, 1, 2, 4, 8, 16 и 32..., и если размер группы больше размера таблицы, idx повторяет, в группе, значение, полученное путем деления размера таблицы на размер группы.
[0319]
На ФИГ. 21 представлен пример, иллюстрирующий значения idx, sc и т.д. с разностью, находящейся в диапазоне от 0 до 63. На ФИГ. 21 указано значение DivTableM_2N[idx] и значение сдвига sc1, причем значение DivTableM_2N[idx] представляет собой значение из обратной таблицы, на которое ссылается idx. Кроме того, также регистрируют sc для получения значения сдвига.
[0320]
Участок 310442 получения параметров прогнозирования CCLM получает, на основании значения разности яркости diff, индекс idx, применяемый для ссылки на обратную таблицу DivTableM_2N, и получает значение v, эквивалентное обратной величине diff.
diff=Y_MAX - Y_MIN
sc=floor(log2 (diff))
normDiff = (diff << 4) >> sc
idx=normDiff - 16
v = (DivTableM_2N[idx]|8)
DivTableM_2N[16] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}
[0321]
В данном случае индекс idx из обратной таблицы получают путем вычитания заданного собственного значения (2^N, 16, если N=4) из значения normDiff, полученного путем сдвига вправо diff с помощью значения сдвига шкалы sc. Таким образом, в таблице сохраняется только обратная величина diff (1/diff), показанная в интервале D0' на ФИГ. 18, а обратная величина diff в интервале D-1' может быть получена из интервала D0', таким образом достигая эффекта дополнительного уменьшения размера таблицы. Однако N из примера обработки 8 представляет собой, например, число элементов интервала D0', показанного на ФИГ. 18, и имеет другое значение, чем N, представляющее собой число элементов интервала D0, применяемых в примерах обработки 3 и 7. Следует отметить, что вместо обратной таблицы также можно применять обратные табличные значения, для которых элементы обратной таблицы установлены в биты (1 << m)-масштабного множителя, как описано ниже. Кроме того, в описанном выше случае число элементов из числа элементов (2^N) обратной таблицы DivTableM_2N установлено равным 16 (n=4) и установлено равным точности обратной таблицы, P=4. N и P не ограничены вышеуказанным. При применении других значений N и P получение выполняют с помощью следующих формул.
normDiff = (diff << N) >> sc
msb=1 << (P - 1)
v = (DivTableM_2N[normDiff - (1 << N)]|msb)
v = (DivTableM_2N[idx]|msb)
DivTableM_2N[16] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}
[0322]
Участок 310442 получения параметров прогнозирования CCLM получает, на основании значения разности цветности diffC, переменную expC для ограничения битовой ширины параметра a.
diffC=C_Y_MAX - C_Y_MIN
expC=floor(log2 (abs (diffC))) + 1
[0323]
Участок 310442 получения параметров прогнозирования CCLM получает параметр a, имеющий ограниченное число битов, как описано ниже, путем дополнительного сдвига вправо diffC * v на expC (= shift_a)
add = (1 << expC) >> 1
a = (diffC * v+add) >> expC
[0324]
Таким образом, битовая ширина (точность) a может поддерживаться фиксированной независимо от значения diffC.
[0325]
Участок 310442 получения параметров прогнозирования CCLM корректирует значение shiftA путем добавления scl, полученного с помощью diff, к фиксированному значению, эквивалентному baseA, и вычитания expC, полученного с помощью diffC.
sc1=sc + ((normDiff!=16)?1:0)
shiftA=3+sc1 - expC
[0326]
В данном случае shiftA получают из заданного фиксированного значения (3, а именно, P - 1), sc1 получают путем коррекции значения сдвига шкалы sc, соответствующего логарифмическому значению diff, и expC, являющегося логарифмическим значением diffC, таким образом, что битовая ширина a не увеличивается.
[0327]
Участок 310442 получения параметров прогнозирования CCLM может получать индекс idx обратной таблицы с помощью младших значащих битов (& 15) значения normDiff, полученного путем сдвига вправо diff с помощью значения сдвига шкалы sc.
diff=Y_MAX - Y_MIN
sc=floor(log2 (diff))
normDiff = (diff << 4) >> sc
idx=normDiff & 15
v = (DivTableM_2N[idx]|8)
sc1=sc + ((normDiff & 15)?1:0)
shiftA=3+sc1 - expC
add = (1 << expC) >> 1
a = (diffC * v+add) >> expC
[0328]
В соответствии с этой конфигурацией диапазон индексов эталонной обратной таблицы ограничен за счет выделения младших значащих битов, таким образом достигая эффекта дополнительного уменьшения размера таблицы. Получение shiftA выполняется с помощью заданного фиксированного значения (3), причем sc1 получают с помощью sc, соответствующего логарифмическому значению diff, и строки младших значащих битов normDiff, причем expC представляет собой логарифмическое значение diffC, так что битовая ширина a не увеличивается.
[0329]
Участок 310442 получения параметров прогнозирования CCLM получает параметр b с помощью параметра a, имеющего ограниченную битовую ширину.
b=C_Y_MIN - ((a * Y_MIN) >> shiftA)
[0330]
Участок 310443 фильтра прогнозирования CCLM выводит predSamples[][] изображения прогнозирования с помощью формулы (CCLM - 1) и с помощью параметров (a, b) прогнозирования CCLM и скорректированного shiftA, описанных выше.
[0331]
Следует отметить, что, как показано в примере обработки 6, expC может быть установлена на заданную константу независимо от diffC. Однако значение expC меньше значения, полученного путем добавления битовой глубины bitDepth изображения к P (число битов дробной части в экспоненциальном представлении (2^16/diff) с базовым числом 2). Например, если bitDepth=10 и P=4, то expC устанавливается меньше 14.
expC < bitDepth+P
[0332]
Следует отметить, что ниже показан псевдокод для всей обработки, описанной выше.
LMDivTableSig2[1 << 4] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}
diff=Y_MAX - Y_MIN
diffC=C_Y_MAX - C_Y_MIN
sc=mylog (diff)
normDiff=diff << 4 >> sc
v=LMDivTableSig2[normDiff - 16]|8
sc1=sc + (normDiff!
= 16)
expC=mylog (abs (diffC)) + 1
add=1 << expC >> 1
a = (diffC * v+add) >> expC
shiftA=3+sc1 - expC
b=C_Y_MIN - rightShift (a * Y_MIN, shiftA)
[0333]
В данном случае
rightShift(значение, сдвиг) =
(сдвиг>= 0)?(значение >> сдвиг):(значение << -сдвиг)
mylog(x) = (x <= 0)?-1:31 - clz(x)
[0334]
Независимая переменная в функции clz, описанная выше, имеет ширину 32 бита.
(Вариант примера обработки 8)
[0335]
Поиск по обратной таблице, представленный в примере обработки 8, может быть заменен значениями обратной таблицы для обработки. Несомненно, в примере обработки 9, описанном ниже, вместо обратной таблицы также можно применять значения обратной таблицы.
diff=Y_MAX - Y_MIN
sc=floor(log2 (diff))
normDiff = (diff << 4) >> sc
idx=normDiff - 16
v = (DivTableM_2N[idx]|8)
DivTableM_2N[16] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}
[0336]
Кроме того, получение idx из normDiff также может быть следующим.
idx=normDiff & 15
[0337]
Например, вышеописанная таблица составляет 3 бита * 16=48 бит, так что одно значение DivTblVal (например, в шестнадцатеричном представлении 0×89999aabbccddef8) может применяться, даже если таблица не используется. В этом случае DivTblVal представляет собой шестнадцатеричное значение v, в котором каждый бит соответствует idx.
[0338]
В конфигурации применения этого значения обратной таблицы участок 310442 получения параметров прогнозирования CCLM получает v с помощью следующей формулы.
v = (0×89999aabbccddef8 >> (idx << 2)) & 0xf.
[0339]
В соответствии с вышеизложенным значение обратной таблицы смещается вправо на основании idx, полученного с помощью значения сдвига шкалы sc, и выделение осуществляют посредством обработки маски с помощью И (&, побитового И) таким образом, чтобы была получена конкретная входная часть значения обратной таблицы. Таким образом, v также может быть получено без обратной таблицы. Получение а выполняется с помощью v, тем самым достигая эффекта удаления обратной таблицы из получения а в дополнение к эффекту примера обработки 8, описанному выше.
[0340]
Кроме того, обработка idx << 2 для конфигурирования индекса как 4-битового блока может быть опущена и выполняется последующая обработка.
normDiff = (diff << 6 >> x) & 60;
v= (0×89999aabbccddef8 >> normDiff) & 0xf;
[0341]
Подводя итог вышеизложенному, таблица может быть представлена в виде значения m * n битов путем назначения каждого элемента i (i=0... n-1, n=2^N) обратной таблицы (i * m)-му биту, подсчитанному из LSB значения обратной таблицы DivTblVal. Конфигурация выполняется, чтобы установить m равным или большим, чем логарифмическое значение максимального значения обратной таблицы+1 (равного или большего, чем P - 1). Например, если максимальное значение в обратной таблице равно 7 (P=4), ceil(log2 (7+1)) = 3 до 3 или более битов применяют для m.
DivTblVal=DivTableM_2N[0] + DivTableM_2N[1] * m+DivTableM_2N[2] * m * m*...
[0342]
Следует отметить, что битовая ширина m каждой записи значения обратной таблицы может быть установлена равной 3 битам.
[0343]
Альтернативно v = ((0×49293725bb8 >> (idx * 3)) & 0×7|8).
[0344]
Следует отметить, что при создании значения обратной таблицы следует обратить внимание на то, отличается ли порядок этих значений от порядка элементов обратной таблицы. Пример псевдокода, применяемого в способе получения значений обратной таблицы, показан ниже.
· Генерирование суммы значений обратной таблицы(= DivTblVal) с 4 битами плюс последний msb (8)
s = [0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0]
sum=0; (0.. 15).each{|i|sum += ((s[i] + 8) << (i * 4));}; printf(“%#018x¥n”, sum)
генерирование значений обратной таблицы в случае 3 битов
sum=0;(0..15).each{|i|sum += ((s[i]) << (i * 3));};printf(“%#018x¥n”, sum)
[0345]
Следует отметить, что ниже показан псевдокод для всей обработки, описанной выше.
diff=Y_MAX - Y_MIN
diffC=C_Y_MAX - C_Y_MIN
sc=mylog (diff)
idx = (diff << 4 >> sc) & 15
v = (0×89999aabbccddef8 >> (idx<<2)) & 0xf
sc1=sc + ((idx!=0)?1:0)
expC=mylog (abs (diffC)) + 1
add = (1 << expC) >> 1
a = (diffC * v+add) >> expC
shiftA=3+sc1 - expC
b=C_Y_MIN - rightShift (a * Y_MIN, shiftA)
(Пример обработки 9)
[0346]
Далее в примере обработки 9 описан пример обработки, который дополнительно ограничивает диапазон значения сдвига shiftA.
[0347]
На ФИГ. 22 представлена схема, иллюстрирующая другой пример потока данных примера обработки в соответствии с настоящим изобретением. На ФИГ. 22 представлена схема потока данных, представляющая действия участка получения коэффициента целочисленного деления, предусмотренного в участке 310442 получения параметров прогнозирования CCLM, согласно примеру обработки 9 в данном варианте осуществления.
[0348]
Участок 310442 получения параметров прогнозирования CCLM получает, на основании значения разности яркости diff, индекс idx, применяемый для ссылки на обратную таблицу DivTableM_2N, и получает значение v, эквивалентное обратной величине diff.
diff=Y_MAX - Y_MIN
sc=floor(log2 (diff))
normDiff = (diff << 4) >> sc
idx=normDiff & 15
v = (DivTableM_2N[idx]|8)
DivTableM_2N[16] = {0, 7, 6, 5, 5, 4, 4, 3, 3, 2, 2, 1, 1, 1, 1, 0}
[0349]
В данном случае индекс idx в обратной таблице получен из младших значащих битов значения normDiff нормализованного diff.
[0350]
Участок 310442 получения параметров прогнозирования CCLM получает, на основании значения разности цветности diffC, переменную expC для ограничения битовой ширины параметра a.
diffC=C_Y_MAX - C_Y_MIN
expC=floor(log2 (abs (diffC))) + 1
[0351]
Кроме того, участок 310442 получения параметров прогнозирования CCLM получает параметр a, имеющий ограниченное число битов, посредством сдвига вправо diffC * v на expC (= shift_a), как описано ниже.
add = (1 << expC) >> 1
a = (diffC * v+add) >> expC
[0352]
Участок 310442 получения параметров прогнозирования CCLM корректирует значение shiftA путем добавления scl, полученного с помощью diff, к фиксированному значению, эквивалентному baseA, и вычитания expC, полученного с помощью diffC.
sc1=sc + ((idx!=0)?1:0)
shiftA=3+sc1 - expC
[0353]
В данном случае вводят shiftA для корректирования точности значения, представленного a, но диапазон значений shiftA является большим. Когда диапазон сдвига shiftA увеличивается, в дополнение к тому, что в случае аппаратного обеспечения масштаб многорегистровой схемы циклического сдвига (схемы переменного сдвига) увеличивается, диапазон значения b также увеличивается, когда значение shiftA является отрицательным. Таким образом, в примере обработки 9 диапазон значения shiftA ограничен заданным диапазоном. Участок 310442 получения параметров прогнозирования CCLM может обрезать значение shiftA до заданного диапазона.
[0354]
Например, если значение shiftA меньше заданного значения minTH, то значение shiftA ограничено minTH. Для minTH подходят, например, значения от 0 до 2. Отрицательное значение shiftA означает сдвиг вправо, а не влево, и в результате диапазон значения увеличивается.
if (shiftA < minTH)
{
shiftA=minTH
}
[0355]
Кроме того, если значение shiftA меньше заданного значения minTH, то значение a может быть установлено равным заданному максимальному значению maxA или -maxA, или 0 (в случае a=0) в соответствии со знаком a.
if (shiftA < minTH)
{
shiftA=minTH
a=sign (a) * maxA
}
[0356]
В данном случае, например, minTH=1 и maxA=15. Следует отметить, что значение устанавливается путем умножения максимального значения maxA в абсолютных значениях на знак a. Значение устанавливается равным -maxA, если знак a является отрицательным; значение устанавливается на maxA, если знак a является положительным; a устанавливается на 0, если a равно 0. Как уже было дополнительно описано в формуле (a - 1), в конфигурации max_a_bits=P+1 (конфигурации shift_a=expC=floor(log2(diffC)) + 1) битовая ширина a представляет собой P битов в случае абсолютного значения, и P+1 бит в случае значения со знаком, так что диапазон a может быть установлен на -(1 << P) - (1 << P), как показано ниже.
if (shiftA < minTH)
{
shiftA=minTH
a = (a == 0)?0:((a > 0)?(1 << P) - 1:-(1 << P))
} Следует отметить, что когда maxA = (1 << P) - 1 применяется в качестве общего максимального значения среди абсолютных значений, если a является отрицательным или положительным, может быть выполнена следующая конфигурация, как описано выше.
a=sign(a) * ((1 << P) - 1)
[0357]
Кроме того, a == 0, т. е. наклон, наклон равный 0, представляет собой случай, когда diffC == 0 Если diffC == 0, то после получения diffC ветвь выполняет другую обработку. Например, может быть выполнена следующая конфигурация. а и shiftA могут быть получены с помощью вышеупомянутого способа, только если diffC! = 0.
if (diffC == 0) {
shiftA=0
a=0
}
[0358]
Участок 310442 получения параметров прогнозирования CCLM получает параметр b с помощью shiftA, имеющего ограниченное значение, и параметра a, имеющего ограниченную битовую ширину.
b=C_Y_MIN - ((a * Y_MIN) >> shiftA)
[0359]
Участок 310443 фильтра прогнозирования CCLM выводит predSamples[][] изображения прогнозирования с помощью формулы (CCLM - 1) и с помощью параметров (a, b) прогнозирования CCLM и скорректированного shiftA, описанных выше.
[0360]
В соответствии с вышеописанной конфигурацией дополнительное задание нижнего предела minTH shiftA для операции сдвига после умножения параметра a при прогнозировании CCLM позволяет достичь следующего эффекта: эффект уменьшения сложности операции сдвига shiftA при прогнозировании с помощью параметра a и получения с помощью параметра b, а также эффект уменьшения диапазона параметра b.
[0361]
Кроме того, если shiftA меньше заданного значения, то в конфигурации установки заданного значения на основании знака a для a установка уклона a в значение, близкое к исходному наклону, обеспечивает эффект повышения точности прогнозирования CCLM по сравнению с установкой уклона a другим способом.
[0362]
Следует отметить, что если эффект ограничения диапазона параметра b достигается только за счет предотвращения приближения наклона а к перпендикулярному, можно также применять следующий метод.
if (shiftA < minTH)
{
shiftA=0
a=0
}
[0363]
В этом случае, если shift A представляет собой значение, которое меньше заданного значения, то a=0. В этом случае однозначно определяют, что значение b равно b=C_Y_MIN.
[0364]
Следует отметить, что, как первоначально описано, в случае вычисления параметра a значение разности яркости (diff) и значение разности цветности (diffC) применяют значение разности между максимальным значением Y_MAX каждой яркости и минимальным значением Y_MIN яркости и значение разности между максимальным значением C_Y_MAX цветности и минимальным значением C_Y_MIN цветности, но не ограничивается ими. Следует отметить, что в случае вычисления параметра b Y_MIN и C_Y_MIN применяют в качестве репрезентативных значений требуемой яркости и цветности, но репрезентативные значения не ограничиваются ими.
(Другие примеры)
[0365]
Следует отметить, что в вышеупомянутых примерах обработки описан пример уменьшения объема памяти для хранения таблицы для обработки CCLM, но техническую концепцию настоящего изобретения также можно применять для уменьшения объема памяти для хранения другой информации, а также битовой ширины умножения. Например, техническая концепция настоящего изобретения также применима к таблице для получения преобразованного вектора движения.
[0366]
Участок прогнозирования CCLM в соответствии с решением по настоящему изобретению представляет собой участок прогнозирования CCLM для формирования изображений прогнозирования с помощью прогнозирования CCLM, причем участок прогнозирования CCLM содержит: участок получения параметров прогнозирования CCLM для получения параметров (a, b) прогнозирования CCLM с помощью значения разности яркости, значения разности цветности и таблицы; и участок фильтра прогнозирования CCLM для формирования изображения хромирования с помощью эталонного изображения яркости и параметров (a, b) прогнозирования CCLM, причем участок получения параметров прогнозирования CCLM получает параметр a прогнозирования CCLM путем сдвига значения, полученного умножением элемента таблицы, на который ссылается значение разности яркости, на значение разности цветности.
[0367]
В участке прогнозирования CCLM в соответствии с решением по настоящему изобретению участок получения параметров прогнозирования CCLM получает значение разности яркости из первого пикселя, имеющего наибольшее значение яркости в смежном блоке, и второго пикселя, имеющего наименьшее значение яркости в смежном блоке; получает значение разности цветности из значений цветности первого пикселя и второго пикселя; получает значение сдвига шкалы sc, соответствующее значению разности яркости; и умножает значение в таблице на значение разности цветности, причем на значение в таблице ссылается индекс idx, полученный в результате сдвига вправо значения разности яркости на sc, и параметр a прогнозирования CCLM получают путем дополнительного сдвига значения, полученного с помощью умножения.
[0368]
В участке прогнозирования CCLM в соответствии с решением по настоящему изобретению участок получения параметров прогнозирования CCLM умножает значение, полученное путем добавления смещения к значению в таблице, на которое ссылается idx, на значение разности цветности.
[0369]
В участке прогнозирования CCLM в соответствии с решением по настоящему изобретению участок получения параметров прогнозирования CCLM получает первое значение сдвига, соответствующее логарифмическому значению абсолютного значения разности цветности, умножает значение в таблице, на которое ссылается idx, на значение разности цветности и получает параметр a прогнозирования CCLM путем дополнительного сдвига значения, полученного с помощью умножения на значение сдвига expC.
[0370]
В участке прогнозирования CCLM в соответствии с решением по настоящему изобретению участок получения параметров прогнозирования CCLM получает второе значение сдвига, соответствующее логарифмическому значению разности яркости diff, и получает параметр b прогнозирования CCLM с помощью значения цветности второго пикселя, параметра a прогнозирования CCLM, значения яркости второго пикселя, первого значения сдвига и второго значения сдвига.
[0371]
В участке прогнозирования CCLM в соответствии с решением по настоящему изобретению первое значение сдвига и второе значение сдвига получают со ссылкой на таблицу.
(Аппаратная реализация и программная реализация)
[0372]
Кроме того, блоки в перемещающемся устройстве 31 декодирования изображений и перемещающемся устройстве 11 кодирования изображения, описанные выше, могут быть реализованы аппаратно с помощью логической схемы, сформированной на интегральной схеме (ИС), или могут быть реализованы с помощью программного обеспечения с помощью центрального процессора (ЦП).
[0373]
В последнем случае описанные выше устройства включают в себя: ЦП для выполнения команд программы для реализации функций, постоянное запоминающее устройство (ПЗУ) для хранения программы, оперативное запоминающее устройство (ОЗУ) для загрузки программы и устройство хранения данных (носитель данных), такое как запоминающее устройство для хранения программы и различных данных. Цель вариантов осуществления настоящего изобретения может быть достигнута путем выполнения следующего: программное обеспечение для реализации описанных выше функций, а именно: программный код программы управления для указанных выше устройств (исполняемая программа, промежуточная программа кода, исходная программа), записывают на носителе информации машиночитаемым образом, носитель информации предоставляют вышеуказанным устройствам и компьютер (или ЦП, или MPU) считывает программный код, записанный на носителе информации, и исполняет его.
[0374]
Примеры носителей информации, описанных выше, включают в себя: ленты, такие как магнитная лента и кассетная лента, диски, включая магнитный диск, такой как гибкий диск (зарегистрированный товарный знак)/жесткий диск, и оптический диск, такой как компакт-диск (CD-ROM)/магнитооптический (MO)/мини-диск (MD)/цифровой универсальный диск (DVD, зарегистрированный товарный знак)/записываемый компакт-диск (CD-R)/диск Blu-ray (зарегистрированный товарный знак), карты, такие как карты ИС (включая карту памяти)/оптическая карта, полупроводниковые запоминающие устройства, такие как масочное ПЗУ/стираемое программируемое постоянное запоминающее устройство (СППЗУ)/электрически стираемое и программируемое постоянное запоминающее устройство (ЭСППЗУ)/флэш-ПЗУ, или логические схемы, такие как программируемое логическое устройство (PLD) и программируемая пользователем вентильная матрица (FPGA).
[0375]
Кроме того, описанные выше устройства также могут быть выполнены с возможностью соединения с сетью передачи данных и обеспечения вышеуказанным программным кодом с помощью сети передачи данных. Сеть передачи данных не имеет конкретных ограничений при условии, что программный код может быть передан. Например, может применяться Интернет, интранет, эктранет, локальная сеть (LAN), цифровая сеть с интеграцией услуг (ISDN), сеть с дополнительными услугами (VAN), сеть передачи данных кабельного телевидения с приемом на коллективную антенну (CATV), виртуальная частная сеть, телефонная сеть, сеть мобильной связи, спутниковая сеть связи и т. п. Кроме того, средства передачи данных, формирующие сеть передачи данных, не ограничиваются конкретной конфигурацией или типом при условии, что программный код может быть передан. Также можно применять, например, проводную среду, такую как Institute of Electrical и Electronic Engineers (IEEE) 1394, USB, несущую для связи по ЛЭП, линию кабельного телевидения, телефонную линию и асимметричную цифровую абонентскую линию (ADSL), или беспроводную среду, такую как инфракрасный луч, включая Infrared Data Association (IrDA) и удаленный контроллер, Bluetooth (зарегистрированный товарный знак), беспроводную связь IEEE 802.11, высокоскоростную передачу данных (HDR), связь малого радиуса действия (NFC), Digital Living Network Alliance (DLNA, зарегистрированный товарный знак), мобильную телефонную сеть, цепь спутниковой связи и наземную цифровую широковещательную сеть. Следует отметить, что варианты осуществления настоящего изобретения также могут быть реализованы в форме сигнала компьютерных данных, встроенного в несущую волну, в которой вышеупомянутый программный код реализован путем электронной передачи.
[0376]
Варианты осуществления настоящего изобретения не ограничены приведенными выше вариантами осуществления и могут быть изменены различными способами в пределах объема формулы изобретения. Таким образом, варианты осуществления, полученные путем комбинирования технических решений, надлежащим образом измененных в пределах объема формулы изобретения, также включены в технический объем настоящего изобретения.
СПИСОК ССЫЛОЧНЫХ ПОЗИЦИЙ
31 - устройство декодирования изображений
301 - участок энтропийного декодирования
302 - участок декодирования параметров
303 - участок декодирования параметров межкадрового прогнозирования
304 - участок декодирования параметров внутрикадрового прогнозирования
308 - участок формирования изображений прогнозирования
309 - участок формирования изображений межкадрового прогнозирования
310 - участок формирования изображений внутрикадрового прогнозирования
3104 - участок прогнозирования
31044 - участок прогнозирования CCLM (устройство формирования изображений прогнозирования)
310441 - участок понижающей дискретизации
310442 - участок получения параметров прогнозирования CCLM (участок получения параметров)
310443 - участок фильтра прогнозирования CCLM
311 - участок обратного квантования/обратного преобразования
312 - участок добавления
11 - устройство кодирования изображений
101 - участок формирования изображений прогнозирования
102 - участок вычитания
103 - участок преобразования/квантования
104 - участок энтропийного кодирования
105 - участок обратного квантования/обратного преобразования
107 - контурный фильтр
110 - участок определения параметров кодирования
111 - участок кодирования параметров
112 - участок кодирования параметров межкадрового прогнозирования
113 - участок кодирования параметров внутрикадрового прогнозирования.