Область техники, к которой относится изобретение
[0001] Настоящее раскрытие относится к кодированию видео и относится, например, к системам, составляющим элементам, способам и т.д. при кодировании и декодировании видео.
Уровень техники
[0002] Технология кодирования видео совершенствуется от H.261 и MPEG-1 до H.264/AVC (стандарт усовершенствованного кодирования видео), MPEG-LA, H.265/HEVC (стандарт высокоэффективного кодирования видео) и H.266/VVC (универсальный видеокодек). В силу такого совершенствования, всегда необходимо улучшать и оптимизировать технологию кодирования видео, чтобы обрабатывать цифровые видеоданные, объем которых продолжает увеличиваться в различных видах вариантов применения.
[0003] Следует отметить, что H.265/HEVC связан с одним примером традиционного стандарта, связанного с вышеописанной технологией кодирования видео.
Список библиографических ссылок
Патентные документы
[0004]
[NPL 1] H.265 (ISO/IEC 23008-2 HEVC) / HEVC (High Efficiency Video Coding)
Сущность изобретения
Техническая задача
[0005] Относительно схемы кодирования, как описано выше, предложения новых схем желательны для увеличения эффективности кодирования, увеличения качества изображений, уменьшения объема обработки, уменьшения размеров схем, надлежащего выбора и т.д. элемента, который представляет собой опорный кадр, опорный блок и т.п. или операции.
[0006] Настоящее раскрытие предоставляет, например, конфигурацию или способ, который может обеспечивать по меньшей мере одно из увеличения эффективности кодирования, увеличения качества изображений, уменьшения объема обработки, уменьшения размера схем, надлежащего выбора и т.д. элемента или операции. Следует отметить, что настоящее раскрытие может охватывать возможные конфигурации или способы, которые могут обеспечивать преимущества, отличные от вышеуказанных преимуществ.
Решение задачи
[0007] Например, кодер согласно одному аспекту настоящего раскрытия представляет собой кодер, включающий в себя схему и запоминающее устройство, соединенное со схемой. При работе, схема: извлекает абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относитеьной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает, для каждой из множества пар относительных пиксельных позиций, пиксельное разностное значение, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает горизонтально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлекает, в качестве третьего параметра, общую сумму горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает вертикально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве четвертого параметра, общую сумму множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве пятого параметра, общую сумму вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирует прогнозное изображение, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.
[0008] Некоторые реализации вариантов осуществления согласно настоящему раскрытию могут: повышать эффективность кодирования; упрощать процесс кодирования/декодирования; увеличивать скорость кодирования и/или декодирования; и эффективно выбирать соответствующие компоненты/операции, которые должны использоваться для кодирования и декодирования, к примеру, соответствующие фильтры, размеры блоков, векторы движения, опорные кадры, опорные блоки и т.д.
[0009] Дополнительные выгоды и преимущества согласно одному или более аспектов настоящего раскрытия должны становиться очевидными из описания изобретения и чертежей. Эти выгоды и преимущества могут получаться посредством признаков, описанных в некоторых вариантах осуществления, в описании изобретения и на чертежах. Тем не менее, все признаки не всегда должны обязательно предоставляться, с тем чтобы получать одно или более преимуществ и/или эффектов.
[0010] Следует отметить, что эти общие или конкретные аспекты могут реализовываться как система, способ, интегральная схема, компьютерная программа, носитель записи либо любая комбинация означенного.
Преимущества изобретения
[0011] Конфигурация или способ согласно аспекту настоящего раскрытия может обеспечивать по меньшей мере одно из увеличения эффективности кодирования, увеличения качества изображений, уменьшения объема обработки, уменьшения размера схем, надлежащего выбора и т.д. элемента или операции. Следует отметить, что конфигурация или способ согласно аспекту настоящего раскрытия может обеспечивать преимущества, отличные от вышеописанных преимуществ.
Краткое описание чертежей
[0012]
[Фиг. 1] Фиг. 1 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера согласно варианту осуществления.
[Фиг. 2] Фиг. 2 является блок-схемой последовательности операций способа, указывающей один пример полного процесса декодирования, выполняемого посредством кодера.
[Фиг. 3] Фиг. 3 является концептуальной схемой, иллюстрирующей один пример разбиения на блоки.
[Фиг. 4A] Фиг. 4A является концептуальной схемой, иллюстрирующей один пример конфигурации слайсов.
[Фиг. 4B] Фиг. 4B является концептуальной схемой, иллюстрирующей один пример конфигурации тайлов.
[Фиг. 5A] Фиг. 5A является диаграммой, указывающей базисные функции преобразования для различных типов преобразования.
[Фиг. 5B] Фиг. 5B является концептуальной схемой, иллюстрирующей примерные пространственно варьирующиеся преобразования (SVT).
[Фиг. 6A] Фиг. 6A является концептуальной схемой, иллюстрирующей один пример формы фильтра, используемой в адаптивном контурном фильтре (ALF).
[Фиг. 6B] Фиг. 6B является концептуальной схемой, иллюстрирующей другой пример формы фильтра, используемой в ALF.
[Фиг. 6C] Фиг. 6C является концептуальной схемой, иллюстрирующей другой пример формы фильтра, используемой в ALF.
[Фиг. 7] Фиг. 7 является блок-схемой, указывающей один пример конкретной конфигурации контурного фильтра, который функционирует в качестве фильтра удаления блочности (DBF).
[Фиг. 8] Фиг. 8 является концептуальной схемой, указывающей пример фильтра удаления блочности, имеющего симметричную характеристику фильтрации относительно границы блока.
[Фиг. 9] Фиг. 9 является концептуальной схемой для иллюстрации границы блока, для которой выполняется процесс фильтрации для удаления блочности.
[Фиг. 10] Фиг. 10 является концептуальной схемой, указывающей примеры Bs-значений.
[Фиг. 11] Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством процессора прогнозирования кодера.
[Фиг. 12] Фиг. 12 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством процессора прогнозирования кодера.
[Фиг. 13] Фиг. 13 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством процессора прогнозирования кодера.
[Фиг. 14] Фиг. 14 является концептуальной схемой, иллюстрирующей шестьдесят семь режимов внутреннего прогнозирования, используемых при внутреннем прогнозировании в варианте осуществления.
[Фиг. 15] Фиг. 15 является блок-схемой последовательности операций способа, иллюстрирующей примерную базовую последовательность операций обработки внешнего прогнозирования.
[Фиг. 16] Фиг. 16 является блок-схемой последовательности операций способа, иллюстрирующей один пример извлечения векторов движения.
[Фиг. 17] Фиг. 17 является блок-схемой последовательности операций способа, иллюстрирующей другой пример извлечения векторов движения.
[Фиг. 18] Фиг. 18 является блок-схемой последовательности операций способа, иллюстрирующей другой пример извлечения векторов движения.
[Фиг. 19] Фиг. 19 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего прогнозирования в нормальном внешнем режиме.
[Фиг. 20] Фиг. 20 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего прогнозирования в режиме объединения.
[Фиг. 21] Фиг. 21 является концептуальной схемой для иллюстрации одного примера процесса извлечения векторов движения в режиме объединения.
[Фиг. 22] Фиг. 22 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса преобразования с повышением частоты кадров (FRUC).
[Фиг. 23] Фиг. 23 является концептуальной схемой для иллюстрации одного примера сопоставления с шаблоном (билатерального сопоставления) между двумя блоками вдоль траектории движения.
[Фиг. 24] Фиг. 24 является концептуальной схемой для иллюстрации одного примера сопоставления с шаблоном (сопоставления с эталоном) между эталоном в текущем кадре и блоком в опорном кадре.
[Фиг. 25A] Фиг. 25A является концептуальной схемой для иллюстрации одного примера извлечения вектора движения каждого субблока на основе векторов движения множества соседних блоков.
[Фиг. 25B] Фиг. 25B является концептуальной схемой для иллюстрации одного примера извлечения вектора движения каждого субблока в аффинном режиме, в котором используются три управляющих точки.
[Фиг. 26A] Фиг. 26A является концептуальной схемой для иллюстрации аффинного режима объединения.
[Фиг. 26B] Фиг. 26B является концептуальной схемой для иллюстрации аффинного режима объединения, в котором используются две управляющих точки.
[Фиг. 26C] Фиг. 26C является концептуальной схемой для иллюстрации аффинного режима объединения, в котором используются три управляющих точки.
[Фиг. 27] Фиг. 27 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса в аффинном режиме объединения.
[Фиг. 28A] Фиг. 28A является концептуальной схемой для иллюстрации аффинного внешнего режима, в котором используются две управляющих точки.
[Фиг. 28B] Фиг. 28B является концептуальной схемой для иллюстрации аффинного внешнего режима, в котором используются три управляющих точки.
[Фиг. 29] Фиг. 29 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса в аффинном внешнем режиме.
[Фиг. 30A] Фиг. 30A является концептуальной схемой для иллюстрации аффинного внешнего режима, в котором текущий блок имеет три управляющих точки, и соседний блок имеет две управляющих точки.
[Фиг. 30B] Фиг. 30B является концептуальной схемой для иллюстрации аффинного внешнего режима, в котором текущий блок имеет две управляющих точки, и соседний блок имеет три управляющих точки.
[Фиг. 31A] Фиг. 31A является блок-схемой последовательности операций способа, иллюстрирующей процесс в режиме объединения, включающий в себя детализацию векторов движения в декодере (DMVR).
[Фиг. 31B] Фиг. 31B является концептуальной схемой для иллюстрации одного примера DMVR-процесса.
[Фиг. 32] Фиг. 32 является блок-схемой последовательности операций способа, иллюстрирующей один пример формирования прогнозного изображения.
[Фиг. 33] Фиг. 33 является блок-схемой последовательности операций способа, иллюстрирующей другой пример формирования прогнозного изображения.
[Фиг. 34] Фиг. 34 является блок-схемой последовательности операций способа, иллюстрирующей другой пример формирования прогнозного изображения.
[Фиг. 35] Фиг. 35 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса коррекции прогнозных изображений, выполняемого посредством процесса перекрывающейся блочной компенсации движения (OBMC).
[Фиг. 36] Фиг. 36 является концептуальной схемой для иллюстрации одного примера процесса коррекции прогнозных изображений, выполняемого посредством OBMC-процесса.
[Фиг. 37] Фиг. 37 является концептуальной схемой для иллюстрации формирования двух треугольных прогнозных изображений.
[Фиг. 38] Фиг. 38 является концептуальной схемой для иллюстрации модели при условии равномерного прямолинейного движения.
[Фиг. 39] Фиг. 39 является концептуальной схемой для иллюстрации одного примера способа формирования прогнозных изображений с использованием процесса коррекции яркости, выполняемого посредством процесса компенсации локальной освещенности (LIC).
[Фиг. 40] Фиг. 40 является блок-схемой, иллюстрирующей пример монтажа кодера.
[Фиг. 41] Фиг. 41 является блок-схемой, иллюстрирующей функциональную конфигурацию декодера согласно варианту осуществления.
[Фиг. 42] Фиг. 42 является блок-схемой последовательности операций способа, иллюстрирующей один пример полного процесса декодирования, выполняемого посредством декодера.
[Фиг. 43] Фиг. 43 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством процессора прогнозирования декодера.
[Фиг. 44] Фиг. 44 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством процессора прогнозирования декодера.
[Фиг. 45] Фиг. 45 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего прогнозирования в нормальном внешнем режиме в декодере.
[Фиг. 46] Фиг. 46 является блок-схемой, иллюстрирующей пример монтажа видеодекодера.
[Фиг. 47] Фиг. 47 является блок-схемой последовательности операций способа, указывающей один пример внешнего прогнозирования согласно BIO.
[Фиг. 48] Фиг. 48 является схемой, иллюстрирующей один пример функциональной конфигурации модуля внешнего прогнозирования, который выполняет внешнее прогнозирование согласно BIO.
[Фиг. 49] Фиг. 49 является блок-схемой последовательности операций способа, указывающей первый конкретный пример процесса декодирования на основе BIO согласно варианту осуществления.
[Фиг. 50] Фиг. 50 является концептуальной схемой, иллюстрирующей пример вычисления значений горизонтального градиента согласно варианту осуществления.
[Фиг. 51] Фиг. 51 является концептуальной схемой, иллюстрирующей пример вычисления значений вертикального градиента согласно варианту осуществления.
[Фиг. 52] Фиг. 52 является блок-схемой последовательности операций способа, указывающей третий конкретный пример процесса декодирования на основе BIO согласно варианту осуществления.
[Фиг. 53] Фиг. 53 является блок-схемой последовательности операций способа, указывающей четвертый конкретный пример процесса декодирования на основе BIO согласно варианту осуществления.
[Фиг. 54] Фиг. 54 является блок-схемой последовательности операций способа, указывающей операцию, выполняемую посредством кодера согласно варианту осуществления.
[Фиг. 55] Фиг. 55 является блок-схемой последовательности операций способа, указывающей операцию, выполняемую посредством декодера согласно варианту осуществления.
[Фиг. 56] Фиг. 56 является блок-схемой, иллюстрирующей общую конфигурацию системы предоставления контента для реализации услуги распространения контента.
[Фиг. 57] Фиг. 57 является концептуальной схемой, иллюстрирующей один пример структуры кодирования при масштабируемом кодировании.
[Фиг. 58] Фиг. 58 является концептуальной схемой, иллюстрирующей один пример структуры кодирования при масштабируемом кодировании.
[Фиг. 59] Фиг. 59 является концептуальной схемой, иллюстрирующей пример экрана отображения веб-страницы.
[Фиг. 60] Фиг. 60 является концептуальной схемой, иллюстрирующей пример экрана отображения веб-страницы.
[Фиг. 61] Фиг. 61 является блок-схемой, иллюстрирующей один пример смартфона.
[Фиг. 62] Фиг. 62 является блок-схемой, иллюстрирующей пример конфигурации смартфона.
Подробное описание вариантов осуществления
[0013] В последние годы, изучается кодирование видео с использованием двунаправленного оптического потока. Двунаправленный оптический поток также называется "BIO" или "BDOF".
[0014] Например, в двунаправленном оптическом потоке, прогнозное изображение формируется на основе уравнения оптического потока. Более конкретно, в двунаправленном оптическом потоке, прогнозное изображение, имеющее прогнозированное значение, отрегулированное для каждого пиксела, формируется с использованием параметра, извлекаемого на основе пиксельного значения опорного изображения для каждого блока и значения градиента опорного изображения для блока. Использование двунаправленного оптического потока предоставляет высокую вероятность того, что формируется высокоточное прогнозное изображение.
[0015] Например, кодер кодирует разностное изображение между прогнозным изображением и исходным изображением. Декодер затем декодирует разностное изображение и суммирует разностное изображение и прогнозное изображение, чтобы формировать восстановленное изображение. Использование высокоточного прогнозного изображения может уменьшать объем кодов разностного изображения. Другими словами, использование двунаправленного оптического потока предоставляет высокую вероятность того, что объем кодов результирующего видео уменьшается.
[0016] С другой стороны, параметр для использования в двунаправленном оптическом потоке извлекается на основе пиксельного значения и значения градиента в каждой пиксельной позиции в опорном изображении. По этой причине, вычисление, выполняемое для каждого пиксела в извлечении параметра, который должен использоваться в двунаправленном оптическом потоке, может увеличивать объем вычислений, что может увеличивать размер схем.
[0017] С учетом этого, например, кодер согласно аспекту настоящего раскрытия представляет собой кодер, включающий в себя схему; и запоминающее устройство, соединенное со схемой. При работе, схема: извлекает абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает, для каждой из множества пар относительных пиксельных позиций, пиксельное разностное значение, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает горизонтально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлекает, в качестве третьего параметра, общую сумму горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает вертикально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве четвертого параметра, общую сумму множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве пятого параметра, общую сумму вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирует прогнозное изображение, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.
[0018] Таким образом, существенное умножение, которое требует большого объема вычислений при вычислении, выполняемом для каждой пиксельной позиции, может уменьшаться, что позволяет извлекать множество параметров для формирования прогнозного изображения с небольшим объемом вычислений. Соответственно, объем обработки при кодировании может уменьшаться. Помимо этого, прогнозное изображение может формироваться надлежащим образом, на основе множества параметров, включающих в себя параметр, связанный со значениями горизонтального градиента, параметр, связанный со значениями вертикального градиента, и параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента.
[0019] Например, схема извлекает: первый параметр согласно выражению (11.1), описанному ниже: второй параметр согласно выражению (11.2), описанному ниже: третий параметр согласно выражению (11.3), описанному ниже: четвертый параметр согласно выражению (11.4), описанному ниже; и пятый параметр согласно выражению (11.5), описанному ниже. В выражениях: Ω обозначает набор из множества пар относительных пиксельных позиций; [i, j] обозначает каждую из относительных пиксельных позиций, включенных во множество пар относительных пиксельных позиций; для каждой из множества пар относительных пиксельных позиций, Ix0 обозначает значение горизонтального градиента в относительной пиксельной позиции в первом диапазоне, и Ix1 обозначает значение горизонтального градиента в относительной пиксельной позиции во втором диапазоне; для каждой из множества пар относительных пиксельных позиций, Iy0 обозначает значение вертикального градиента в относительной пиксельной позиции в первом диапазоне, и Iy1 обозначает значение вертикального градиента в относительной пиксельной позиции во втором диапазоне; I0 обозначает пиксельное значение в относительной пиксельной позиции в первом диапазоне; I1 обозначает пиксельное значение в относительной пиксельной позиции во втором диапазоне; abs (Ix1+ Ix0) обозначает абсолютное значение Ix1+Ix0; sign (Ix1+Ix0) обозначает знак "плюс" или "минус" Ix1+Ix0; abs (Iy1+Iy0) обозначает абсолютное значение Iy1+Iy0; и sign (Iy1+Iy0) обозначает знак "плюс" или "минус" Iy1+Iy0.
[0020] Таким образом, множество параметров могут извлекаться с небольшим объемом вычислений с использованием пиксельных значений, значений горизонтального градиента и значений вертикального градиента.
[0021] Помимо этого, например, схема: извлекает шестой параметр посредством деления третьего параметра на первый параметр; извлекает седьмой параметр посредством вычитания произведения пятого параметра и шестого параметра из четвертого параметра и деления результата вычитания на второй параметр; и формирует прогнозное изображение с использованием шестого параметра и седьмого параметра.
[0022] Таким образом, множество параметров могут надлежащим образом сужаться до двух параметров, соответствующих горизонтальному направлению и вертикальному направлению. Параметр, связанный со значениями горизонтального градиента, может быть надлежащим образом включен в параметр, соответствующий горизонтальному направлению. Параметр, связанный со значениями вертикального градиента, параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента, и параметр, соответствующий горизонтальному направлению, могут быть надлежащим образом включены в параметр, соответствующий вертикальному направлению. Прогнозное изображение может надлежащим образом формироваться с использованием двух параметров.
[0023] Помимо этого, например, схема извлекает: шестой параметр согласно выражению (10.8), описанному ниже; и седьмой параметр согласно выражению (10.9), описанному ниже. В выражениях: sGx обозначает первый параметр; sGy обозначает второй параметр; sGxdI обозначает третий параметр; sGydI обозначает четвертый параметр; sGxGy обозначает пятый параметр; u обозначает шестой параметр; и Bits является функцией, которая возвращает значение, получаемое посредством округления в большую сторону двоичного логарифма аргумента до целого числа.
[0024] Таким образом, два параметра, соответствующие горизонтальному направлению и вертикальному направлению, могут извлекаться с небольшим объемом вычислений.
[0025] Помимо этого, например, схема формирует прогнозное изображение посредством извлечения прогнозного пиксельного значения в позиции текущего пиксела, включенного в текущий блок, с использованием: первого пиксельного значения в первой пиксельной позиции, соответствующей позиции текущего пиксела в первом опорном блоке; первого значения горизонтального градиента в первой пиксельной позиции; первого значения вертикального градиента в первой пиксельной позиции; второго пиксельного значения во второй пиксельной позиции, соответствующей позиции текущего пиксела во втором опорном блоке; второго значения горизонтального градиента во второй пиксельной позиции; второго значения вертикального градиента во второй пиксельной позиции; шестого параметра; и седьмого параметра.
[0026] Это предоставляет вероятность того, что прогнозное изображение формируется с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению, и два параметра, соответствующие горизонтальному направлению и вертикальному направлению, надлежащим образом отражаются в прогнозном изображении.
[0027] Помимо этого, например, схема извлекает прогнозное пиксельное значение посредством деления, на 2, суммы первого пиксельного значения, второго пиксельного значения, первого значения коррекции и второго значения коррекции. Первое значение коррекции соответствует произведению разности между первым значением горизонтального градиента и вторым значением горизонтального градиента и шестого параметра, и второе значение коррекции соответствует произведению разности между первым значением вертикального градиента и вторым значением вертикального градиента и седьмого параметра.
[0028] Таким образом, прогнозное изображение может надлежащим образом формироваться с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению.
[0029] Помимо этого, например, схема извлекает: прогнозное пиксельное значение согласно выражению (10.10). В выражении: I0 обозначает первое пиксельное значение; I1 обозначает второе пиксельное значение; u обозначает шестой параметр; Ix0 обозначает первое значение горизонтального градиента; Ix1 обозначает второе значение горизонтального градиента; v обозначает седьмой параметр; Iy0 обозначает первое значение вертикального градиента; и Iy1 обозначает второе значение вертикального градиента.
[0030] Таким образом, прогнозное изображение может надлежащим образом формироваться согласно выражению, связанному, например, с двумя параметрами, соответствующими горизонтальному направлению и вертикальному направлению.
[0031] Кроме того, например, декодер согласно аспекту настоящего раскрытия представляет собой декодер, включающий в себя схему и запоминающее устройство, соединенное со схемой. При работе, схема: извлекает абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает, для каждой из множества пар относительных пиксельных позиций, пиксельное разностное значение, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает горизонтально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлекает, в качестве третьего параметра, общую сумму горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает вертикально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве четвертого параметра, общую сумму множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве пятого параметра, общую сумму вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирует прогнозное изображение, которое должно использоваться для того, чтобы декодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.
[0032] Таким образом, существенное умножение, которое требует большого объема вычислений при вычислении, выполняемом для каждой пиксельной позиции, может уменьшаться, что позволяет извлекать множество параметров для формирования прогнозного изображения с небольшим объемом вычислений. Соответственно, объем обработки при декодировании может уменьшаться. Помимо этого, прогнозное изображение может формироваться надлежащим образом, на основе множества параметров, включающих в себя параметр, связанный со значениями горизонтального градиента, параметр, связанный со значениями вертикального градиента, и параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента.
[0033] Помимо этого, например, схема извлекает: первый параметр согласно выражению (11.1), описанному ниже: второй параметр согласно выражению (11.2), описанному ниже: третий параметр согласно выражению (11.3), описанному ниже: четвертый параметр согласно выражению (11.4), описанному ниже; и пятый параметр согласно выражению (11.5), описанному ниже. В выражениях: Ω обозначает набор из множества пар относительных пиксельных позиций; [i, j] обозначает каждую из относительных пиксельных позиций, включенных во множество пар относительных пиксельных позиций; для каждой из множества пар относительных пиксельных позиций, Ix0 обозначает значение горизонтального градиента в относительной пиксельной позиции в первом диапазоне, и Ix1 обозначает значение горизонтального градиента в относительной пиксельной позиции во втором диапазоне; для каждой из множества пар относительных пиксельных позиций, Iy0 обозначает значение вертикального градиента в относительной пиксельной позиции в первом диапазоне, и Iy1 обозначает значение вертикального градиента в относительной пиксельной позиции во втором диапазоне; I0 обозначает пиксельное значение в относительной пиксельной позиции в первом диапазоне; I1 обозначает пиксельное значение в относительной пиксельной позиции во втором диапазоне; abs (Ix1+Ix0) обозначает абсолютное значение Ix1+Ix0; sign (Ix1+Ix0) обозначает знак "плюс" или "минус" Ix1+Ix0; abs (Iy1+Iy0) обозначает абсолютное значение Iy1+Iy0; и sign (Iy1+Iy0) обозначает знак "плюс" или "минус" Iy1+Iy0.
[0034] Таким образом, множество параметров могут извлекаться с небольшим объемом вычислений с использованием пиксельных значений, значений горизонтального градиента и значений вертикального градиента.
[0035] Помимо этого, например, схема: извлекает шестой параметр посредством деления третьего параметра на первый параметр; извлекает седьмой параметр посредством вычитания произведения пятого параметра и шестого параметра из четвертого параметра и деления результата вычитания на второй параметр; и формирует прогнозное изображение с использованием шестого параметра и седьмого параметра.
[0036] Таким образом, множество параметров могут надлежащим образом интегрироваться в два параметра, соответствующие горизонтальному направлению и вертикальному направлению. Параметр, связанный со значениями горизонтального градиента, может быть надлежащим образом включен в параметр, соответствующий горизонтальному направлению. Параметр, связанный со значениями вертикального градиента, параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента, и параметр, соответствующий горизонтальному направлению, могут быть надлежащим образом включены в параметр, соответствующий вертикальному направлению. Прогнозное изображение может надлежащим образом формироваться с использованием двух параметров.
[0037] Помимо этого, например, схема извлекает: шестой параметр согласно выражению (10.8), описанному ниже; и седьмой параметр согласно выражению (10.9), описанному ниже. В выражениях: sGx обозначает первый параметр; sGy обозначает второй параметр; sGxdI обозначает третий параметр; sGydI обозначает четвертый параметр; sGxGy обозначает пятый параметр; u обозначает шестой параметр; и Bits является функцией, которая возвращает значение, получаемое посредством округления в большую сторону двоичного логарифма аргумента до целого числа.
[0038] Таким образом, два параметра, соответствующие горизонтальному направлению и вертикальному направлению, могут извлекаться с небольшим объемом вычислений.
[0039] Помимо этого, например, схема формирует прогнозное изображение посредством извлечения прогнозного пиксельного значения в позиции текущего пиксела, включенного в текущий блок, с использованием: первого пиксельного значения в первой пиксельной позиции, соответствующей позиции текущего пиксела в первом опорном блоке; первого значения горизонтального градиента в первой пиксельной позиции; первого значения вертикального градиента в первой пиксельной позиции; второго пиксельного значения во второй пиксельной позиции, соответствующей позиции текущего пиксела во втором опорном блоке; второго значения горизонтального градиента во второй пиксельной позиции; второго значения вертикального градиента во второй пиксельной позиции; шестого параметра; и седьмого параметра.
[0040] Это предоставляет вероятность того, что прогнозное изображение формируется с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению, и два параметра, соответствующие горизонтальному направлению и вертикальному направлению, надлежащим образом отражаются в прогнозном изображении.
[0041] Помимо этого, например, схема извлекает прогнозное пиксельное значение посредством деления, на 2, суммы первого пиксельного значения, второго пиксельного значения, первого значения коррекции и второго значения коррекции. Первое значение коррекции соответствует произведению разности между первым значением горизонтального градиента и вторым значением горизонтального градиента и шестого параметра, и второе значение коррекции соответствует произведению разности между первым значением вертикального градиента и вторым значением вертикального градиента и седьмого параметра.
[0042] Таким образом, прогнозное изображение может надлежащим образом формироваться с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению.
[0043] Помимо этого, например, схема извлекает: прогнозное пиксельное значение согласно выражению (10.10). В выражении: I0 обозначает первое пиксельное значение; I1 обозначает второе пиксельное значение; u обозначает шестой параметр; Ix0 обозначает первое значение горизонтального градиента; Ix1 обозначает второе значение горизонтального градиента; v обозначает седьмой параметр; Iy0 обозначает первое значение вертикального градиента; и Iy1 обозначает второе значение вертикального градиента.
[0044] Таким образом, прогнозное изображение может надлежащим образом формироваться согласно выражению, связанному, например, с двумя параметрами, соответствующими горизонтальному направлению и вертикальному направлению.
[0045] Кроме того, например, способ кодирования согласно аспекту настоящего раскрытия представляет собой способ кодирования, включающий в себя: извлечение абсолютного значения суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлечение, в качестве первого параметра, общей суммы множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение абсолютного значения суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлечение, в качестве второго параметра, общей суммы множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение, для каждой из множества пар относительных пиксельных позиций, пиксельного разностного значения, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение горизонтально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлечение, в качестве третьего параметра, общей суммы горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение вертикально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве четвертого параметра, общей суммы множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлечение вертикально-связанной суммы значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве пятого параметра, общей суммы вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирование прогнозного изображения, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.
[0046] Таким образом, существенное умножение, которое требует большого объема вычислений при вычислении, выполняемом для каждой пиксельной позиции, может уменьшаться, что позволяет извлекать множество параметров для формирования прогнозного изображения с небольшим объемом вычислений. Соответственно, объем обработки при кодировании может уменьшаться. Помимо этого, прогнозное изображение может формироваться надлежащим образом, на основе множества параметров, включающих в себя параметр, связанный со значениями горизонтального градиента, параметр, связанный со значениями вертикального градиента, и параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента.
[0047] Кроме того, например, способ декодирования согласно аспекту настоящего раскрытия представляет собой способ декодирования, включающий в себя: извлечение абсолютного значения суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлечение, в качестве первого параметра, общей суммы множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение абсолютного значения суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлечение, в качестве второго параметра, общей суммы множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение, для каждой из множества пар относительных пиксельных позиций, пиксельного разностного значения, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение горизонтально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлечение, в качестве третьего параметра, общей суммы горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение вертикально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве четвертого параметра, общей суммы множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлечение вертикально-связанной суммы значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве пятого параметра, общей суммы вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирование прогнозного изображения, которое должно использоваться для того, чтобы декодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.
[0048] Таким образом, существенное умножение, которое требует большого объема вычислений при вычислении, выполняемом для каждой пиксельной позиции, может уменьшаться, что позволяет извлекать множество параметров для формирования прогнозного изображения с небольшим объемом вычислений. Соответственно, объем обработки при декодировании может уменьшаться. Помимо этого, прогнозное изображение может формироваться надлежащим образом, на основе множества параметров, включающих в себя параметр, связанный со значениями горизонтального градиента, параметр, связанный со значениями вертикального градиента, и параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента.
[0049] Альтернативно, кодер согласно аспекту настоящего раскрытия представляет собой кодер, который включает в себя модуль разбиения, модуль внутреннего (intra) прогнозирования, модуль внешнего (inter) прогнозирования, преобразователь, квантователь и энтропийный кодер.
[0050] Модуль разбиения разбивает текущий кадр, который должен кодироваться, включенный в видео, на множество блоков. Модуль внутреннего прогнозирования выполняет внутреннее прогнозирование для формирования прогнозного изображения для текущего блока, который должен кодироваться в текущем кадре, с использованием опорного изображения в текущем кадре. Модуль внешнего прогнозирования выполняет внешнее прогнозирование для формирования прогнозного изображения для текущего блока, который должен кодироваться, с использованием опорного изображения в опорном кадре, отличающемся от текущего кадра.
[0051] Преобразователь преобразует сигнал ошибки прогнозирования между (i) либо прогнозным изображением, сформированным посредством модуля внутреннего прогнозирования, либо прогнозным изображением, сформированным посредством модуля внешнего прогнозирования, и (ii) изображением текущего блока, чтобы формировать сигнал коэффициентов преобразования текущего блока. Квантователь квантует сигнал коэффициентов преобразования. Энтропийный кодер кодирует сигнал квантованных коэффициентов преобразования.
[0052] Кроме того, например, модуль внешнего прогнозирования: извлекает абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает, для каждой из множества пар относительных пиксельных позиций, пиксельное разностное значение, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает горизонтально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлекает, в качестве третьего параметра, общую сумму горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает вертикально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве четвертого параметра, общую сумму множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве пятого параметра, общую сумму вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирует прогнозное изображение, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.
[0053] Альтернативно, например, декодер согласно аспекту настоящего раскрытия включает в себя энтропийный декодер, обратный квантователь, обратный преобразователь, модуль внутреннего прогнозирования, модуль внешнего прогнозирования и сумматор (модуль восстановления).
[0054] Энтропийный декодер декодирует сигнал квантованных коэффициентов преобразования текущего блока, который должен декодироваться, в текущем кадре, который должен декодироваться в видео. Обратный квантователь обратно квантует сигнал квантованных коэффициентов преобразования. Обратный преобразователь обратно преобразует сигнал коэффициентов преобразования, чтобы получать сигнал ошибки прогнозирования текущего блока.
[0055] Модуль внутреннего прогнозирования выполняет внутреннее прогнозирование для формирования прогнозного изображения для текущего блока, который должен декодироваться, с использованием опорного изображения в текущем кадре, который должен декодироваться. Модуль внешнего прогнозирования выполняет внешнее прогнозирование для формирования прогнозного изображения для текущего блока, который должен декодироваться, с использованием опорного изображения в опорном кадре, отличающемся от текущего кадра. Сумматор суммирует сигнал ошибки прогнозирования и либо прогнозное изображение, сформированное посредством модуля внутреннего прогнозирования, либо прогнозное изображение, сформированное посредством модуля внешнего прогнозирования, чтобы восстанавливать изображение текущего блока.
[0056] Кроме того, например, модуль внешнего прогнозирования: извлекает абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлекает, для каждой из множества пар относительных пиксельных позиций, пиксельное разностное значение, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает горизонтально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлекает, в качестве третьего параметра, общую сумму горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлекает вертикально-связанное пиксельное разностное значение, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве четвертого параметра, общую сумму множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инвертирует или сохраняет знак "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлекает, в качестве пятого параметра, общую сумму вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирует прогнозное изображение, которое должно использоваться для того, чтобы декодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.
[0057] Кроме того, эти общие или конкретные аспекты могут реализовываться с использованием системы, устройства, способа, интегральной схемы, компьютерной программы или энергонезависимого считываемого компьютером носителя записи, такого как CD-ROM, либо любой комбинации систем, устройств, способов, интегральных схем, компьютерных программ или считываемых компьютером носителей записи.
[0058] В дальнейшем в этом документе описываются варианты осуществления со ссылкой на чертежи. Следует отметить, что варианты осуществления, описанные ниже, показывают общий или конкретный пример. Числовые значения, формы, материалы, компоненты, компоновка и соединение компонентов, этапов, взаимосвязь и порядок этапов и т.д., указываемых в нижеприведенных вариантах осуществления, представляют собой просто примеры и в силу этого не имеют намерение ограничивать объем формулы изобретения.
[0059] Ниже описываются варианты осуществления кодера и декодера. Варианты осуществления представляют собой примеры кодера и декодера, к которым являются применимыми процессы и/или конфигурации, представленные в описании аспектов настоящего раскрытия. Процессы и/или конфигурации также могут реализовываться в кодере и декодере, отличающихся от кодера и декодера согласно вариантам осуществления. Например, относительно процессов и/или конфигураций, применяемых к вариантам осуществления, может реализовываться любое из следующего:
[0060] (1) Любой из компонентов кодера или декодера согласно вариантам осуществления, представленным в описании аспектов настоящего раскрытия, может заменяться или комбинироваться с другим компонентом, представленным в любом месте в описании аспектов настоящего раскрытия.
[0061] (2) В кодере или декодере согласно вариантам осуществления, дискреционные изменения могут вноситься в функции или процессы, выполняемые посредством одного или более компонентов кодера или декодера, такие как добавление, замена, удаление и т.д. функций или процессов. Например, любая функция или процесс может заменяться или комбинироваться с другой функцией или процессом, представленным в любом месте в описании аспектов настоящего раскрытия.
[0062] (3) В способах, реализованных посредством кодера или декодера согласно вариантам осуществления, могут вноситься дискреционные изменения, такие как добавление, замена и удаление одного или более процессов, включенных в способ. Например, любой процесс в способе может заменяться или комбинироваться с другим процессом, представленным в любом месте в описании аспектов настоящего раскрытия.
[0063] (4) Один или более компонентов, включенных в кодер или декодер согласно вариантам осуществления, могут комбинироваться с компонентом, представленным в любом месте в описании аспектов настоящего раскрытия, могут комбинироваться с компонентом, включающим в себя одну или более функций, представленных в любом месте в описании аспектов настоящего раскрытия, и могут комбинироваться с компонентом, который реализует один или более процессов, реализованных посредством компонента, представленного в описании аспектов настоящего раскрытия.
[0064] (5) Компонент, включающий в себя одну или более функций кодера или декодера согласно вариантам осуществления, либо компонент, который реализует один или более процессов кодера или декодера согласно вариантам осуществления, может комбинироваться или заменяться компонентом, представленным в любом месте в описании аспектов настоящего раскрытия, компонентом, включающим в себя одну или более функций, представленных в любом месте в описании аспектов настоящего раскрытия, либо компонентом, который реализует один или более процессов, представленных в любом месте в описании аспектов настоящего раскрытия.
[0065] (6) В способах, реализованных посредством кодера или декодера согласно вариантам осуществления, любой из процессов, включенных в способ, может заменяться или комбинироваться с процессом, представленным в любом месте в описании аспектов настоящего раскрытия, либо с любым соответствующим или эквивалентным процессом.
[0066] (7) Один или более процессов, включенных в способы, реализованные посредством кодера или декодера согласно вариантам осуществления, могут комбинироваться с процессом, представленным в любом месте в описании аспектов настоящего раскрытия.
[0067] (8) Реализация процессов и/или конфигураций, представленных в описании аспектов настоящего раскрытия, не ограничена кодером или декодером согласно вариантам осуществления. Например, процессы и/или конфигурации могут реализовываться в устройстве, используемом для цели, отличающейся от кодера движущихся кадров или декодера движущихся кадров, раскрытого в вариантах осуществления.
[0068] Кодер
Во-первых, описывается кодер согласно варианту осуществления. Фиг. 1 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера 100 согласно варианту осуществления. Кодер 100 представляет собой видеокодер, который кодирует видео в единицах блоков.
[0069] Как проиллюстрировано на фиг. 1, кодер 100 представляет собой устройство, которое кодирует изображение в единицах блоков, и включает в себя модуль 102 разбиения, вычитатель 104, преобразователь 106, квантователь 108, энтропийный кодер 110, обратный квантователь 112, обратный преобразователь 114, сумматор 116, запоминающее устройство 118 блоков, контурный фильтр 120, запоминающее устройство 122 кадров, модуль 124 внутреннего прогнозирования, модуль 126 внешнего прогнозирования и контроллер 128 прогнозирования.
[0070] Кодер 100 реализуется, например, в качестве общего процессора и запоминающего устройства. В этом случае, когда программно-реализованная программа, сохраненная в запоминающем устройстве, выполняется посредством процессора, процессор функционирует в качестве модуля 102 разбиения, вычитателя 104, преобразователя 106, квантователя 108, энтропийного кодера 110, обратного квантователя 112, обратного преобразователя 114, сумматора 116, контурного фильтра 120, модуля 124 внутреннего прогнозирования, модуля 126 внешнего прогнозирования и контроллера 128 прогнозирования. Альтернативно, кодер 100 может реализовываться в качестве одной или более специализированных электронных схем, соответствующих модулю 102 разбиения, вычитателю 104, преобразователю 106, квантователю 108, энтропийному кодеру 110, обратному квантователю 112, обратному преобразователю 114, сумматору 116, контурному фильтру 120, модулю 124 внутреннего прогнозирования, модулю 126 внешнего прогнозирования и контроллеру 128 прогнозирования.
[0071] В дальнейшем в этом документе описывается полная последовательность операций процессов, выполняемых посредством кодера 100, и после этого описывается каждый из составляющих элементов, включенных в кодер 100.
[0072] Общая последовательность операций процесса кодирования
Фиг. 2 является блок-схемой последовательности операций способа, указывающей один пример полного процесса декодирования, выполняемого посредством кодера 100.
[0073] Во-первых, модуль 102 разбиения кодера 100 разбивает каждый из кадров, включенных во входное изображение, которое представляет собой видео, на множество блоков, имеющих фиксированный размер (например, 128×128 пикселов) (этап Sa_1). Модуль 102 разбиения затем выбирает шаблон разбиения для блока фиксированного размера (также называется "формой блока") (этап Sa_2). Другими словами, модуль 102 разбиения дополнительно разбивает блок фиксированного размера на множество блоков, которые формируют выбранный шаблон разбиения. Кодер 100 выполняет, для каждого из множества блоков, этапы Sa_3-Sa_9 для блока (который представляет собой текущий блок, который должен кодироваться).
[0074] Другими словами, процессор прогнозирования, который включает в себя все или часть модуля 124 внутреннего прогнозирования, модуля 126 внешнего прогнозирования и контроллера 128 прогнозирования, формирует прогнозный сигнал (также называется "блоком прогнозирования") текущего блока, который должен кодироваться (также называется "текущим блоком") (этап Sa_3).
[0075] Затем, вычитатель 104 формирует разность между текущим блоком и блоком прогнозирования в качестве остатка прогнозирования (также называется "разностным блоком") (этап Sa_4).
[0076] Затем, преобразователь 106 преобразует разностный блок, и квантователь 108 квантует результат для того, чтобы формировать множество квантованных коэффициентов (этап Sa_5). Следует отметить, что блок, имеющий множество квантованных коэффициентов, также называется "блоком коэффициентов".
[0077] Затем, энтропийный кодер 110 кодирует (в частности, энтропийно кодирует) блок коэффициентов и параметр прогнозирования, связанный с формированием прогнозного сигнала, чтобы формировать кодированный сигнал (этап Sa_6). Следует отметить, что кодированный сигнал также называется "кодированным потоком битов", "сжатым потоком битов" или "потоком".
[0078] Затем, обратный квантователь 112 выполняет обратное квантование блока коэффициентов, и обратный преобразователь 114 выполняет обратное преобразование результата для того, чтобы восстанавливать множество остатков прогнозирования (т.е. разностный блок) (этап Sa_7).
[0079] Затем, сумматор 116 суммирует блок прогнозирования с восстановленным разностным блоком для того, чтобы восстанавливать текущий блок в качестве восстановленного изображения (также называется "восстановленным блоком" или "декодированным блоком изображений") (этап Sa_8). Таким образом, восстановленное изображение формируется.
[0080] Когда восстановленное изображение формируется, контурный фильтр 120 выполняет фильтрацию восстановленного изображения при необходимости (этап Sa_9).
[0081] Кодер 100 затем определяет то, закончено или нет кодирование всего кадра (этап Sa_10). При определении того, что кодирование еще не закончено ("Нет" на этапе Sa_10), процессы с этапа Sa_2 многократно выполняются.
[0082] Хотя кодер 100 выбирает один шаблон разбиения для блока фиксированного размера и кодирует каждый блок согласно шаблону разбиения в вышеописанном примере, следует отметить что, каждый блок может кодироваться согласно соответствующему одному из множества шаблонов разбиения. В этом случае, кодер 100 может оценивать затраты для каждого из множества шаблонов разбиения и, например, может выбирать кодированный сигнал, получаемый посредством кодирования согласно шаблону разбиения, который дает в результате наименьшие затраты, в качестве кодированного сигнала, который выводится.
[0083] Как проиллюстрировано, процессы на этапах Sa_1-Sa_10 выполняются последовательно посредством кодера 100. Альтернативно, два или более из процессов могут выполняться параллельно, процессы могут переупорядочиваться и т.д.
[0084] Модуль разбиения
Модуль 102 разбиения разбивает каждый из кадров, включенных во входное видео, на множество блоков и выводит каждый блок в вычитатель 104. Например, модуль 102 разбиения сначала разбивает кадр на блоки фиксированного размера (например, 128×128). Могут использоваться другие фиксированные размеры блоков. Блок фиксированного размера также называется "единицей дерева кодирования (CTU)". Модуль 102 разбиения затем разбивает каждый блок фиксированного размера на блоки переменных размеров (например, 64×64 или меньше), на основе рекурсивного разбиения на блоки дерева квадрантов и/или двоичного дерева. Другими словами, модуль 102 разбиения выбирает шаблон разбиения. Блок переменного размера также называется "единицей кодирования (CU)", "единицей прогнозирования (PU)" или "единицей преобразования (TU)". Следует отметить, что, в различных видах примеров обработки, нет необходимости различать между CU, PU и TU; все или некоторые блоки в кадре могут обрабатываться в единицах CU, PU или TU.
[0085] Фиг. 3 является концептуальной схемой, иллюстрирующей один пример разбиения на блоки согласно варианту осуществления. На фиг. 3, сплошные линии представляют границы блоков для блоков, разбитых посредством разбиения на блоки дерева квадрантов, и пунктирные линии представляют границы блоков для блоков, разбитых посредством разбиения на блоки двоичного дерева.
[0086] Здесь, блок 10 представляет собой квадратный блок, имеющий 128×128 пикселов (блок 128×128). Это блок 10 128×128 сначала разбивается на четыре квадратных блока 64×64 (разбиение на блоки дерева квадрантов).
[0087] Верхний левый блок 64×64 дополнительно вертикально разбивается на два прямоугольных блока 32×64, и левый блок 32×64 дополнительно вертикально разбивается на два прямоугольных блока 16×64 (разбиение на блоки двоичного дерева). Как результат, верхний левый блок 64×64 разбивается на два блока 11 и 12 16×64 и один блок 13 32×64.
[0088] Верхний правый блок 64×64 горизонтально разбивается на два прямоугольных блока 14 и 15 64×32 (разбиение на блоки двоичного дерева).
[0089] Левый нижний блок 64×64 сначала разбивается на четыре квадратных блока 32×32 (разбиение на блоки дерева квадрантов). Верхний левый блок и нижний правый блок из четырех блоков 32×32 дополнительно разбиваются. Верхний левый блок 32×32 вертикально разбивается на два прямоугольных блока 16×32, и правый блок 16×32 дополнительно горизонтально разбивается на два блока 16×16 (разбиение на блоки двоичного дерева). Правый нижний блок 32×32 горизонтально разбивается на два блока 32×16 (разбиение на блоки двоичного дерева). Как результат, левый нижний блок 64×64 разбивается на блок 16 16×32, два блока 17 и 18 16×16, два блока 19 и 20 32×32 и два блока 21 и 22 32×16.
[0090] Правый нижний блок 23 64×64 не разбивается.
[0091] Как описано выше, на фиг. 3, блок 10 разбивается на тринадцать блоков 11-23 переменного размера на основе рекурсивного разбиения на блоки дерева квадрантов и двоичного дерева. Этот тип разбиения также называется "разбиением на дерево квадрантов плюс двоичное дерево (QTBT)".
[0092] Следует отметить, что, на фиг. 3, один блок разбивается на четыре или два блока (разбиение на блоки дерева квадрантов или двоичного дерева), но разбиение не ограничено этими примерами. Например, один блок может разбиваться на три блока (разбиение на троичные блоки). Разбиение, включающее в себя такое разбиение на троичные блоки, также называется "разбиением на многотипное дерево (MBT)".
[0093] Структура кадра: слайс (slice)/тайл (tile)
Кадр может быть сконфигурирован в единицах одного или более слайсов или тайлов, чтобы декодировать кадр параллельно. Кадр, сконфигурированный в единицах одного или более слайсов или тайлов, может быть сконфигурирован посредством модуля 102 разбиения.
[0094] Слайсы представляют собой базовые единицы кодирования, включенные в кадр. Кадр может включать в себя, например, один или более слайсов. Помимо этого, слайс включает в себя одну или боле последовательных единиц дерева кодирования (CTU).
[0095] Фиг. 4A является концептуальной схемой, иллюстрирующей один пример конфигурации слайсов. Например, кадр включает в себя CTU 11×8 и разбивается на четыре слайса (слайсы 1-4). Слайс 1 включает в себя шестнадцать CTU, слайс 2 включает в себя двадцать одну CTU, слайс 3 включает в себя двадцать девять CTU, и слайс 4 включает в себя двадцать две CTU. Здесь, каждая CTU в кадре принадлежит одному из слайсов. Форма каждого слайса представляет собой форму, получаемую посредством разбиения кадра горизонтально. Граница каждого слайса не должна обязательно совпадать с концом изображения и может совпадать с любой из границ между CTU в изображении. Порядок обработки CTU в слайсе (порядок кодирования или порядок декодирования), например, представляет собой порядок растрового сканирования. Слайс включает в себя информацию заголовка и кодированные данные. Признаки слайса могут описываться в информации заголовка. Признаки включают в себя CTU-адрес верхней CTU в слайсе, тип слайса и т.д.
[0096] Тайл представляет собой единицу прямоугольной области, включенной в кадр. Каждой из тайлов может назначаться номер, называемый "TileId" в порядке растрового сканирования.
[0097] Фиг. 4B является концептуальной схемой, указывающей пример конфигурации тайлов. Например, кадр включает в себя CTU 11×8 и разбивается на четыре тайла прямоугольных областей (тайлы 1-4). Когда тайлы используются, порядок обработки CTU изменяется относительно порядка обработки в случае, если тайлы не используются. Когда тайлы не используются, CTU в кадре обрабатываются в порядке растрового сканирования. Когда тайлы используются, по меньшей мере одна CTU в каждом из тайлов обрабатывается в порядке растрового сканирования. Например, как проиллюстрировано на фиг. 4B, порядок обработки CTU, включенных в тайл 1, представляет собой порядок, который начинается с левого конца первой строки тайла 1 к правому концу первой строки тайла 1 и затем начинается с левого конца второй строки тайла 1 к правому концу второй строки тайла 1.
[0098] Следует отметить, что один тайл может включать в себя один или более слайсов, и один слайс может включать в себя один или более тайлов.
[0099] Вычитатель
Вычитатель 104 вычитает прогнозный сигнал (прогнозную выборку, которая вводится из контроллера 128 прогнозирования, указываемого ниже) из исходного сигнала (исходной выборки), в единицах блока, вводимого из модуля 102 разбиения и разбитого посредством модуля 102 разбиения. Другими словами, вычитатель 104 вычисляет ошибки прогнозирования (также называются "остатками") блока, который должен кодироваться (в дальнейшем также называется "текущим блоком"). Вычитатель 104 затем выводит вычисленные ошибки прогнозирования (остатки) в преобразователь 106.
[0100] Исходный сигнал представляет собой сигнал, который введен в кодер 100, и представляет изображение каждого кадра, включенного в видео (например, сигнал яркости и два сигнала цветности). В дальнейшем в этом документе, сигнал, представляющий изображение, также называется "выборкой".
[0101] Преобразователь
Преобразователь 106 преобразует ошибки прогнозирования в пространственной области в коэффициенты преобразования в частотной области и выводит коэффициенты преобразования в квантователь 108. Более конкретно, преобразователь 106 применяет, например, заданное дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST) к ошибкам прогнозирования в пространственной области. Заданное DCT или DST может быть предварительно задано.
[0102] Следует отметить, что преобразователь 106 может адаптивно выбирать тип преобразования из множества типов преобразования и преобразовывать ошибки прогнозирования в коэффициенты преобразования посредством использования базисной функции преобразования, соответствующей выбранному типу преобразования. Этот вид преобразования также называется "явным множественным базовым преобразованием (EMT)" или "адаптивным множественным преобразованием (AMT)".
[0103] Типы преобразования включают в себя, например, DCT-II, DCT-V, DCT-VIII, DST-I и DST-VII. Фиг. 5A является диаграммой, указывающей базисные функции преобразования для примерных типов преобразования. На фиг. 5A, N указывает число входных пикселов. Например, выбор типа преобразования из множества типов преобразования может зависеть от типа прогнозирования (одно из внутреннего прогнозирования и внешнего прогнозирования) и может зависеть от режима внутреннего прогнозирования.
[0104] Информация, указывающая то, следует или нет применять такое EMT или AMT (называется, например, "EMT-флагом" или "AMT-флагом"), и информация, указывающая выбранный тип преобразования, нормально передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не обязательно должна выполняться на уровне CU и может выполняться на другом уровне (например, на уровне битовой последовательности, уровне кадра, уровне слайса, уровне тайла или уровне CTU).
[0105] Помимо этого, преобразователь 106 может повторно преобразовывать коэффициенты преобразования (результат преобразования). Такое повторное преобразование также называется "адаптивным вторичным преобразованием (AST)" или "неразделимым вторичным преобразованием (NSST)". Например, преобразователь 106 выполняет повторное преобразование в единицах субблока (например, субблока 4×4), включенного в блок коэффициентов преобразования, соответствующий ошибке внутреннего прогнозирования. Информация, указывающая то, следует или нет применять NSST, и информация, связанная с матрицей преобразования для использования в NSST, нормально передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне слайса, уровне тайла или уровне CTU).
[0106] Преобразователь 106 может использовать разделимое преобразование и неразделимое преобразование. Разделимое преобразование представляет собой способ, в котором преобразование выполняется многократно посредством отдельного выполнения преобразования для каждого из определенного числа направлений согласно числу размерностей вводов. Неразделимое преобразование представляет собой способ выполнения коллективного преобразования, в котором две или более размерностей в многомерных вводах совместно рассматриваются в качестве одной размерности.
[0107] В одном примере неразделимого преобразования, когда ввод представляет собой блок 4×4, блок 4×4 рассматривается в качестве единого массива, включающего в себя шестнадцать элементов, и преобразование применяет матрицу преобразования 16×16 к массиву.
[0108] В другом примере неразделимого преобразования, входной блок 4×4 рассматривается в качестве единого массива, включающего в себя шестнадцать элементов, и после этого может выполняться преобразование (гиперкубическое преобразование Гивенса), в котором вращение Гивенса выполняется для массива многократно.
[0109] При преобразовании в преобразователе 106, могут переключаться типы базисов, которые должны преобразовываться в частотную область согласно областям в CU. Примеры включают в себя пространственно варьирующиеся преобразования (SVT). В SVT, как проиллюстрировано на фиг. 5B, CU разбиваются на две равных области горизонтально или вертикально, и только одна из областей преобразуется в частотную область. Базисный тип преобразования может задаваться для каждой области. Например, используются DST7 и DST8. В этом примере, только одна из двух областей в CU преобразуется, а другая не преобразуется. Тем не менее, обе из этих двух областей могут преобразовываться. Помимо этого, способ разбиения не ограничен разбиением на две равных области и может быть более гибким. Например, CU может разбиваться на четыре равных области, или информация, указывающая разбиение, может кодироваться отдельно и передаваться в служебных сигналах идентично CU-разбиению. Следует отметить, что SVT также называется "субблочным преобразованием (SBT)".
[0110] Квантователь
Квантователь 108 квантует коэффициенты преобразования, выводимые из преобразователя 106. Более конкретно, квантователь 108 сканирует, в определенном порядке сканирования, коэффициенты преобразования текущего блока и квантует сканированные коэффициенты преобразования на основе параметров квантования (QP), соответствующих коэффициентам преобразования. Квантователь 108 затем выводит квантованные коэффициенты преобразования (в дальнейшем также называются "квантованными коэффициентами") текущего блока в энтропийный кодер 110 и обратный квантователь 112. Определенный порядок сканирования может быть предварительно определен.
[0111] Определенный порядок сканирования представляет собой порядок для квантования/обратного квантования коэффициентов преобразования. Например, определенный порядок сканирования может задаваться как порядок по возрастанию частоты (от низкой к высокой частоте) или порядок по убыванию частоты (от высокой к низкой частоте).
[0112] Параметр квантования (QP) представляет собой параметр, задающий шаг квантования (ширину квантования). Например, когда значение параметра квантования увеличивается, размер шага квантования также увеличивается. Другими словами, когда значение параметра квантования увеличивается, ошибка квантования увеличивается.
[0113] Помимо этого, матрица квантования может использоваться для квантования. Например, несколько видов матриц квантования могут использоваться, соответственно, чтобы выполнять преобразование частоты для размеров, таких как 4×4 и 8×8, режимов прогнозирования, таких как внутреннее прогнозирование и внешнее прогнозирование, и пиксельных компонентов, таких как пиксельные компоненты сигнала яркости и сигнала цветности. Следует отметить, что квантование означает оцифровку значений, дискретизированных с определенными интервалами, соответственно, в определенные уровни. В этой области техники, квантование может упоминаться с использованием других выражений, таких как округление и масштабирование, и может использовать округление и масштабирование. Определенные интервалы и уровни могут быть предварительно определены.
[0114] Способы с использованием матриц квантования включают в себя способ с использованием матрицы квантования, которая задана непосредственно на стороне кодера, и способ с использованием матрицы квантования, которая задана в качестве значения по умолчанию (матрицы по умолчанию). На стороне кодера, матрица квантования, подходящая для признаков изображения, может задаваться посредством прямого задания матрицы квантования. Тем не менее, этот случай имеет недостаток увеличения объема кодирования для кодирования матрицы квантования.
[0115] Предусмотрен способ для квантования высокочастотного коэффициента и низкочастотного коэффициента без использования матрицы квантования. Следует отметить, что этот способ является эквивалентным способу с использованием матрицы квантования (плоской матрицы), коэффициенты которой имеют идентичное значение.
[0116] Матрица квантования может указываться с использованием, например, набора параметров последовательности (SPS) или набора параметров кадра (PPS). SPS включает в себя параметр, который используется для последовательности, и PPS включает в себя параметр, который используется для кадра. Каждый из SPS и PPS может называться просто "набором параметров".
[0117] Энтропийный кодер
Энтропийный кодер 110 формирует кодированный сигнал (кодированный поток битов) на основе квантованных коэффициентов, которые введены из квантователя 108. Более конкретно, энтропийный кодер 110, например, преобразует в двоичную форму квантованные коэффициенты и арифметически кодирует двоичный сигнал и выводит сжатый поток битов или последовательность.
[0118] Обратный квантователь
Обратный квантователь 112 обратно квантует квантованные коэффициенты, которые введены из квантователя 108. Более конкретно, обратный квантователь 112 обратно квантует, в определенном порядке сканирования, квантованные коэффициенты текущего блока. Обратный квантователь 112 затем выводит обратно квантованные коэффициенты преобразования текущего блока в обратный преобразователь 114. Определенный порядок сканирования может быть предварительно определен.
[0119] Обратный преобразователь
Обратный преобразователь 114 восстанавливает ошибки прогнозирования (остатки) посредством обратного преобразования коэффициентов преобразования, которые введены из обратного квантователя 112. Более конкретно, обратный преобразователь 114 восстанавливает ошибки прогнозирования текущего блока посредством применения обратного преобразования, соответствующего преобразованию, применяемому посредством преобразователя 106, к коэффициентам преобразования. Обратный преобразователь 114 затем выводит восстановленные ошибки прогнозирования в сумматор 116.
[0120] Следует отметить, что поскольку информация потеряна в квантовании, восстановленные ошибки прогнозирования не совпадают с ошибками прогнозирования, вычисленными посредством вычитателя 104. Другими словами, восстановленные ошибки прогнозирования нормально включают в себя ошибки квантования.
[0121] Сумматор
Сумматор 116 восстанавливает текущий блок посредством суммирования ошибок прогнозирования, которые введены из обратного преобразователя 114, и прогнозных выборок, которые введены из контроллера 128 прогнозирования. Сумматор 116 затем выводит восстановленный блок в запоминающее устройство 118 блоков и контурный фильтр 120. Восстановленный блок также называется "локальным декодированным блоком".
[0122] Запоминающее устройство блоков
Запоминающее устройство 118 блоков, например, представляет собой устройство хранения данных для сохранения блоков в кадре, который должен кодироваться (далее называется "текущим кадром"), на который ссылаются при внутреннем прогнозировании. Более конкретно, запоминающее устройство 118 блоков сохраняет восстановленные блоки, выводимые из сумматора 116.
[0123] Запоминающее устройство кадров
Запоминающее устройство 122 кадров, например, представляет собой устройство хранения данных для сохранения опорных кадров для использования при внешнем прогнозировании, и также называется "буфером кадров". Более конкретно, запоминающее устройство 122 кадров сохраняет восстановленные блоки, фильтрованные посредством контурного фильтра 120.
[0124] Контурный (loop) фильтр
Контурный фильтр 120 применяет контурный фильтр к блокам, восстановленным посредством сумматора 116, и выводит фильтрованные восстановленные блоки в запоминающее устройство 122 кадров. Контурный фильтр представляет собой фильтр, используемый в контуре кодирования (внутриконтурный фильтр), и включает в себя, например, фильтр удаления блочности (DF или DBF), дискретизированное адаптивное смещение (SAO) и адаптивный контурный фильтр (ALF).
[0125] В ALF, применяется фильтр ошибок по методу наименьших квадратов для удаления артефактов сжатия. Например, один фильтр, выбранный из множества фильтров на основе направления и активности локальных градиентов, применяется для каждого из субблоков 2×2 в текущем блоке.
[0126] Более конкретно, сначала каждый субблок (например, каждый субблок 2×2) классифицируются на один из множества классов (например, пятнадцать или двадцать пять классов). Классификация субблока основана на направленности и активности градиентов. Например, классификационный индекс C (например, C=5D+A) извлекается на основе направленности D градиентов (например, 0-2 или 0-4) и активности A градиентов (например, 0-4). Затем на основе классификационного индекса C каждый субблок классифицируется на один из множества классов.
[0127] Например, направленность D градиентов вычисляется посредством сравнения градиентов множества направлений (например, горизонтального, вертикального и двух диагональных направлений). Кроме того, например, активность A градиентов вычисляется посредством суммирования градиентов множества направлений и квантования результата суммирования.
[0128] Фильтр, который должен использоваться для каждого субблока, определяется из множества фильтров на основе результата такой классификации.
[0129] Форма фильтра, который должен использоваться в ALF, например, представляет собой круглую симметричную форму фильтра. Фиг. 6A-6C иллюстрирует примеры форм фильтра, используемых в ALF. Фиг. 6A иллюстрирует фильтр ромбовидной формы 5×5, фиг. 6B иллюстрирует фильтр ромбовидной формы 7×7, и фиг. 6C иллюстрирует фильтр ромбовидной формы 9×9. Информация, указывающая форму фильтра, нормально передается в служебных сигналах на уровне кадра. Следует отметить, что передача в служебных сигналах этой информации, указывающей форму фильтра, не обязательно должна выполняться на уровне кадра и может выполняться на другом уровне (например, на уровне последовательности, уровне слайса, уровне тайла, уровне CTU или уровне CU).
[0130] Включение или выключение ALF определяется, например, на уровне кадра или на уровне CU. Например, решение касательно того, следует или нет применять ALF к сигналу яркости, может приниматься на уровне CU, и решение касательно того, следует или нет применять ALF к сигналу цветности, может приниматься на уровне кадра. Информация, указывающая включение или выключение ALF, нормально передается в служебных сигналах на уровне кадра или на уровне CU. Следует отметить, что передача в служебных сигналах информации, указывающей включение или выключение ALF, не обязательно должна выполняться на уровне кадра или на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне слайса, уровне тайла или уровне CTU).
[0131] Набор коэффициентов для множества выбираемых фильтров (например, для пятнадцати или вплоть до двадцати пяти фильтров) нормально передается в служебных сигналах на уровне кадра. Следует отметить, что передача в служебных сигналах набора коэффициентов не должна обязательно выполняться на уровне кадра и может выполняться на другом уровне (например, на уровне последовательности, уровне слайса, уровне тайла, уровне CTU, уровне CU или уровне субблока).
[0132] Контурный фильтр > фильтр удаления блочности
В фильтре удаления блочности, контурный фильтр 120 выполняет процесс фильтрации для границы блока в восстановленном изображении таким образом, чтобы уменьшать искажение, которое возникает на границе блока.
[0133] Фиг. 7 является блок-схемой, иллюстрирующей один пример конкретной конфигурации контурного фильтра 120, который функционирует в качестве фильтра удаления блочности.
[0134] Контурный фильтр 120 включает в себя: модуль 1201 определения границ; модуль 1203 определения фильтрации; модуль 1205 выполнения фильтрации; модуль 1208 определения обработки; модуль 1207 определения характеристик фильтра; и переключатели 1202, 1204 and 1206.
[0135] Модуль 1201 определения границ определяет то, присутствует или нет пиксел, который должен фильтроваться для удаления блочности (т.е. текущий пиксел), около границы блока. Модуль 1201 определения границ затем выводит результат определения в переключатель 1202 и модуль 1208 определения обработки.
[0136] В случае если модуль 1201 определения границ определяет то, что текущий пиксел присутствует около границы блока, переключатель 1202 выводит нефильтрованное изображение в переключатель 1204. В противоположном случае, в котором модуль 1201 определения границ определяет то, что текущий пиксел не присутствует около границы блока, переключатель 1202 выводит нефильтрованное изображение в переключатель 1206.
[0137] Модуль 1203 определения фильтрации определяет то, следует или нет выполнять фильтрацию для удаления блочности текущего пиксела, на основе пиксельного значения по меньшей мере одного окружающего пиксела, расположенного около текущего пиксела. Модуль 1203 определения фильтрации затем выводит результат определения в переключатель 1204 и модуль 1208 определения обработки.
[0138] В случае если определено то, что модуль 1203 определения фильтрации выполняет фильтрацию для удаления блочности текущего пиксела, переключатель 1204 выводит нефильтрованное изображение, полученное через переключатель 1202, в модуль 1205 выполнения фильтрации. В противоположном случае, в котором определено то, что модуль 1203 определения фильтрации не выполняет фильтрацию для удаления блочности текущего пиксела, переключатель 1204 выводит нефильтрованное изображение, полученное через переключатель 1202, в переключатель 1206.
[0139] При получении нефильтрованного изображения через переключатели 1202 и 1204, модуль 1205 выполнения фильтрации выполняет, для текущего пиксела, фильтрацию для удаления блочности с характеристикой фильтра, определенной посредством модуля 1207 определения характеристик фильтра. Модуль 1205 выполнения фильтрации затем выводит фильтрованный пиксел в переключатель 1206.
[0140] Под управлением модуля 1208 определения обработки, переключатель 1206 избирательно выводит пиксел, который не фильтруется для удаления блочности, и пиксел, который фильтруется для удаления блочности посредством модуля 1205 выполнения фильтрации.
[0141] Модуль 1208 определения обработки управляет переключателем 1206 на основе результатов определений, выполняемых посредством модуля 1201 определения границ и модуля 1203 определения фильтрации. Другими словами, модуль 1208 определения обработки инструктирует переключателю 1206 выводить пиксел, который фильтруется для удаления блочности, когда модуль 1201 определения границ определяет то, что текущий пиксел присутствует около границы блока, и определено то, что модуль 1203 определения фильтрации выполняет фильтрацию для удаления блочности текущего пиксела. Помимо этого, помимо вышеописанного случая, модуль 1208 определения обработки инструктирует переключателю 1206 выводить пиксел, который не фильтруется для удаления блочности. Фильтрованное изображение выводится из переключателя 1206 посредством повторения вывода пиксела таким образом.
[0142] Фиг. 8 является концептуальной схемой, указывающей пример фильтра удаления блочности, имеющего симметричную характеристику фильтрации относительно границы блока.
[0143] В процессе фильтрации для удаления блочности, один из двух фильтров удаления блочности, имеющих различные характеристики, т.е. сильного фильтра и слабого фильтра, выбирается с использованием пиксельных значений и параметров квантования. В случае сильного фильтра, пикселы p0-p2 и пикселы q0-q2 присутствуют на границе блока, как проиллюстрировано на фиг. 8, пиксельные значения соответствующего пиксела q0-q2 изменяются на пиксельные значения q'0-q'2 посредством выполнения, например, вычисления согласно нижеприведенным выражениям.
[0144] q'0=(p1+2xp0+2xq0+2xq1+q2+4)/8
q'1=(p0+q0+q1+q2+2)/4
q'2=(p0+q0+q1+3xq2+2xq3+4)/8
[0145] Следует отметить, что, в вышеприведенных выражениях, p0-p2 и q0-q2 представляют собой пиксельные значения соответствующих пикселов p0-p2 и пикселов q0-q2. Помимо этого, q3 представляет собой пиксельное значение соседнего пиксела q3, расположенного в противоположной стороне пиксела q2 относительно границы блока. Помимо этого, в правой стороне каждого из выражений, коэффициенты, которые умножаются на соответствующие пиксельные значения пикселов, которые должны использоваться для фильтрации для удаления блочности, представляют собой коэффициенты фильтрации.
[0146] Кроме того, при фильтрации для удаления блочности, отсечение может выполняться таким образом, что вычисленные пиксельные значения не задаются выше порогового значения. В процессе отсечения, пиксельные значения, вычисленные согласно вышеприведенным выражениям, отсекаются до значения, полученного согласно "вычисленное пиксельное значение ± 2 x пороговое значение" с использованием порогового значения, определенного на основе параметра квантования. Таким образом, можно предотвращать чрезмерное сглаживание.
[0147] Фиг. 9 является концептуальной схемой для иллюстрации границы блока, для которой выполняется процесс фильтрации для удаления блочности. Фиг. 10 является концептуальной схемой, указывающей примеры Bs-значений.
[0148] Граница блока, для которой выполняется процесс фильтрации для удаления блочности, например, представляет собой границу между единицами прогнозирования (PU), имеющими пиксельные блоки 8×8, как проиллюстрировано на фиг. 9, или границу между единицами преобразования (TU). Процесс фильтрации для удаления блочности может выполняться в единицах из четырех строк или четырех столбцов. Во-первых, значения граничной интенсивности (Bs) определяются, как указано на фиг. 10 для блока P и блока Q, проиллюстрированных на фиг. 9.
[0149] Согласно Bs-значениям на фиг. 10, определяется то, следует или нет выполнять процессы фильтрации для удаления блочности границ блоков, принадлежащих идентичному изображению, с использованием различных интенсивностей. Процесс фильтрации для удаления блочности для сигнала цветности выполняется, когда Bs-значение равно 2. Процесс фильтрации для удаления блочности для сигнала яркости выполняется, когда Bs-значение равно 1 или более, и определенное условие удовлетворяется. Определенное условие может быть предварительно определено. Следует отметить, что условия для определения Bs-значений не ограничены условиями, указываемыми на фиг. 10, и Bs-значение может определяться на основе другого параметра.
[0150] Процессор прогнозирования (модуль внутреннего прогнозирования, модуль внешнего прогнозирования, контроллер прогнозирования)
Фиг. 11 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством процессора прогнозирования кодера 100. Следует отметить, что процессор прогнозирования включает в себя все или часть следующих составляющих элементов: модуль 124 внутреннего прогнозирования; модуль 126 внешнего прогнозирования; и контроллер 128 прогнозирования.
[0151] Процессор прогнозирования формирует прогнозное изображение текущего блока (этап Sb_1). Это прогнозное изображение также называется "прогнозным сигналом" или "блоком прогнозирования". Следует отметить, что прогнозный сигнал, например, представляет собой внутренний прогнозный сигнал или внешний прогнозный сигнал. В частности, процессор прогнозирования формирует прогнозное изображение текущего блока с использованием восстановленного изображения, которое уже получено через формирование блока прогнозирования, формирование разностного блока, формирование блока коэффициентов, восстановление разностного блока и формирование декодированного блока изображений.
[0152] Восстановленное изображение, например, может представлять собой изображение в опорном кадре или изображение кодированного блока в текущем кадре, который представляет собой кадр, включающий в себя текущий блок. Кодированный блок в текущем кадре, например, представляет собой соседний блок относительно текущего блока.
[0153] Фиг. 12 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством процессора прогнозирования кодера 100.
[0154] Процессор прогнозирования формирует прогнозное изображение с использованием первого способа (этап Sc_1a), формирует прогнозное изображение с использованием второго способа (этап Sc_1b) и формирует прогнозное изображение с использованием третьего способа (этап Sc_1c). Первый способ, второй способ и третий способ могут представлять собой взаимно различные способы для формирования прогнозного изображения. Каждый из первого-третьего способов может представлять собой способ внешнего прогнозирования, способ внутреннего прогнозирования или другой способ прогнозирования. Вышеописанное восстановленное изображение может использоваться в этих способах прогнозирования.
[0155] Затем, процессор прогнозирования выбирает любой из множества способов прогнозирования, сформированных на этапах Sc_1a, Sc_1b и Sc_1c (этап Sc_2). Выбор прогнозного изображения, который представляет собой выбор способа или режима для получения конечного прогнозного изображения, может осуществляться посредством вычисления затрат для каждого из сформированных прогнозных изображений и на основе затрат. Альтернативно, выбор прогнозного изображения может осуществляться на основе параметра, который используется в процессе кодирования. Кодер 100 может преобразовывать информацию для идентификации выбранного прогнозного изображения, способа или режима в кодированный сигнал (также называется "кодированным потоком битов"). Информация, например, может представлять собой флаг и т.п. Таким образом, декодер допускает формирование прогнозного изображения согласно способу или режиму, выбранному на основе информации в кодере 100. Следует отметить, что, в примере, проиллюстрированном на фиг. 12, процессор прогнозирования выбирает любое из прогнозных изображений после того, как прогнозные изображения формируются с использованием соответствующих способов. Тем не менее, процессор прогнозирования может выбирать способ или режим на основе параметра для использования в вышеописанном процессе кодирования до формирования прогнозных изображений и может формировать прогнозное изображение согласно выбранному способу или режиму.
[0156] Например, первый способ и второй способ могут представлять собой внутренне прогнозирование и внешнее прогнозирование, соответственно, и процессор прогнозирования может выбирать конечное прогнозное изображение для текущего блока из прогнозных изображений, сформированных согласно способам прогнозирования.
[0157] Фиг. 13 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством процессора прогнозирования кодера 100.
[0158] Во-первых, процессор прогнозирования формирует прогнозное изображение с использованием внутреннего прогнозирования (этап Sd_1a) и формирует прогнозное изображение с использованием внешнего прогнозирования (этап Sd_1b). Следует отметить, что прогнозное изображение, сформированное посредством внутреннего прогнозирования, также называется "внутренним прогнозным изображением", и прогнозное изображение, сформированное посредством внешнего прогнозирования, также называется "внешним прогнозным изображением".
[0159] Затем, процессор прогнозирования оценивает каждое из внутреннего прогнозного изображения и внешнего прогнозного изображения (этап Sd_2). Затраты могут использоваться при оценке. Другими словами, процессор прогнозирования вычисляет затраты C для каждого из внутреннего прогнозного изображения и внешнего прогнозного изображения. Затраты C могут вычисляться согласно выражению модели R-D-оптимизации, например, C=D+λ*R. В этом выражении, D указывает искажение при кодировании прогнозного изображения и представляется, например, как сумма абсолютных разностей между пиксельным значением текущего блока и пиксельным значением прогнозного изображения. Помимо этого, R указывает прогнозированный объем кодирования прогнозного изображения, а именно, объем кодирования, требуемый для того, чтобы кодировать информацию движения для формирования прогнозного изображения, и т.д. Помимо этого, λ указывает, например, множитель согласно способу множителя Лагранжа.
[0160] Процессор прогнозирования затем выбирает прогнозное изображение, для которого наименьшие затраты C вычислены из внутреннего прогнозного изображения и внешнего прогнозного изображения, в качестве конечного прогнозного изображения для текущего блока (этап Sd_3). Другими словами, выбирается способ или режим прогнозирования для формирования прогнозного изображения для текущего блока.
[0161] Модуль внутреннего прогнозирования
Модуль 124 внутреннего прогнозирования формирует прогнозный сигнал (внутренний прогнозный сигнал) посредством выполнения внутреннего прогнозирования (также называется "внутрикадровым прогнозированием") текущего блока посредством ссылки на блок или блоки в текущем кадре, сохраненном в запоминающем устройстве 118 блоков. Более конкретно, модуль 124 внутреннего прогнозирования формирует внутренний прогнозный сигнал посредством выполнения внутреннего прогнозирования посредством ссылки на выборки (например, значения сигнала яркости и/или сигнала цветности) блока или блоков, соседних с текущим блоком, и затем выводит внутренний прогнозный сигнал в контроллер 128 прогнозирования.
[0162] Например, модуль 124 внутреннего прогнозирования выполняет внутреннее прогнозирование посредством использования одного режима из множества режимов внутреннего прогнозирования, которые задаются. Режимы внутреннего прогнозирования включают в себя один или более режимов ненаправленного прогнозирования и множество режимов направленного прогнозирования. Заданные режимы могут быть предварительно заданы.
[0163] Один или более режимов ненаправленного прогнозирования включают в себя, например, режим планарного прогнозирования и режим DC-прогнозирования, заданные в стандарте H.265/высокоэффективного кодирования видео (HEVC).
[0164] Множество режимов направленного прогнозирования включают в себя, например, тридцать три режима направленного прогнозирования, заданные в H.265/HEVC-стандарте. Следует отметить, что множество режимов направленного прогнозирования дополнительно могут включать в себя тридцать два режима направленного прогнозирования в дополнение к тридцати трем режимам направленного прогнозирования (в сумме шестьдесят пять режимов направленного прогнозирования). Фиг. 14 является концептуальной схемой, иллюстрирующей шестьдесят семь режимов внутреннего прогнозирования в сумме, которые могут использоваться при внутреннем прогнозировании (два режима ненаправленного прогнозирования и шестьдесят пять режимов направленного прогнозирования). Сплошные стрелки представляют тридцать три направления, заданные в H.265/HEVC-стандарте, и пунктирные стрелки представляют дополнительные тридцать два направления (два режима ненаправленного прогнозирования не проиллюстрированы на фиг. 14).
[0165] В различных видах примеров обработки, на блок сигналов яркости можно ссылаться при внутреннем прогнозировании блока сигналов цветности. Другими словами, компонент сигнала цветности текущего блока может прогнозироваться на основе компонента сигнала яркости текущего блока. Такое внутреннее прогнозирование также называется "прогнозированием на основе кросскомпонентной линейной модели (CCLM)". Режим внутреннего прогнозирования для блока сигналов цветности, в котором на такой блок сигналов яркости ссылаются (также называется, например, "CCLM-режимом"), может добавляться в качестве одного из режимов внутреннего прогнозирования для блоков сигналов цветности.
[0166] Модуль 124 внутреннего прогнозирования может корректировать внутренне прогнозированные пиксельные значения на основе горизонтальных/вертикальных опорных пиксельных градиентов. Внутреннее прогнозирование, сопровождаемое посредством этого вида коррекции, также называется "позиционно-зависимой комбинацией с внутренним прогнозированием (PDPC)". Информация, указывающая то, следует или нет применять PDPC (называется, например, "PDPC-флагом"), нормально передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне слайса, уровне тайла или уровне CTU).
[0167] Модуль внешнего прогнозирования
Модуль 126 внешнего прогнозирования формирует прогнозный сигнал (внешний прогнозный сигнал) посредством выполнения внешнего прогнозирования (также называется "межкадровым прогнозированием") текущего блока посредством ссылки на блок или блоки в опорном кадре, который отличается от текущего кадра и сохраняется в запоминающем устройстве 122 кадров. Внешнее прогнозирование выполняется в единицах текущего блока или текущего субблока (например, блок 4×4) в текущем блоке. Например, модуль 126 внешнего прогнозирования выполняет оценку движения в опорном кадре для текущего блока или текущего субблока и узнает опорный блок или субблок, который имеет наилучшее совпадение с текущим блоком или текущим субблоком. Модуль 126 внешнего прогнозирования затем получает информацию движения (например, вектор движения), которая компенсирует движение или изменение с опорного блока или субблока на текущий блок или субблок. Модуль 126 внешнего прогнозирования формирует внешний прогнозный сигнал текущего блока или субблока посредством выполнения компенсации движения (или прогнозирования движения) на основе информации движения. Модуль 126 внешнего прогнозирования выводит сформированный внешний прогнозный сигнал в контроллер 128 прогнозирования.
[0168] Информация движения, используемая при компенсации движения, может передаваться в служебных сигналах в качестве внешних прогнозных сигналов в различных формах. Например, вектор движения может передаваться в служебных сигналах. Другими словами, разность между вектором движения и предиктором вектора движения может передаваться в служебных сигналах.
[0169] Базовая последовательность операций внешнего прогнозирования
Фиг. 15 является блок-схемой последовательности операций способа, иллюстрирующей примерную базовую последовательность операций обработки внешнего прогнозирования.
[0170] Во-первых, модуль 126 внешнего прогнозирования формирует прогнозный сигнал (этапы Se_1-Se_3). Затем, вычитатель 104 формирует разность между текущим блоком и прогнозным изображением в качестве остатка прогнозирования (этап Se_4).
[0171] Здесь, при формировании прогнозного изображения, модуль 126 внешнего прогнозирования формирует прогнозное изображение посредством определения вектора движения (MV) текущего блока (этапы Se_1 и Se_2) и компенсации движения (этап Se_3). Кроме того, при определении MV, модуль 126 внешнего прогнозирования определяет MV посредством выбора возможного варианта вектора движения (возможного MV-варианта) (этап Se_1) и извлечения MV (этап Se_2). Выбор возможного MV-варианта осуществляется, например, посредством выбора по меньшей мере одного возможного MV-варианта из списка возможных MV-вариантов. Альтернативно, при извлечении MV, модуль 126 внешнего прогнозирования дополнительно может выбирать по меньшей мере один возможный MV-вариант по меньшей мере из одного возможного MV-варианта и определять выбранный по меньшей мере один возможный MV-вариант в качестве MV для текущего блока. Альтернативно, модуль 126 внешнего прогнозирования может определять MV для текущего блока посредством выполнения оценки в области опорного кадра, указываемой посредством каждого из выбранного по меньшей мере одного возможного MV-варианта. Следует отметить, что оценка в области опорного кадра может называться "оценкой движения".
[0172] Помимо этого, хотя этапы Se_1-Se_3 выполняются посредством модуля 126 внешнего прогнозирования в вышеописанном примере, процесс, который, например, представляет собой этап Se_1, этап Se_2 и т.п., может выполняться посредством другого составляющего элемента, включенного в кодер 100.
[0173] Последовательность операций извлечения векторов движения
Фиг. 16 является блок-схемой последовательности операций способа, иллюстрирующей один пример извлечения векторов движения.
[0174] Модуль 126 внешнего прогнозирования извлекает MV текущего блока в режиме для кодирования информации движения (например, MV). В этом случае, например, информация движения кодируется как параметр прогнозирования и передается в служебных сигналах. Другими словами, кодированная информация движения включается в кодированный сигнал (также называется "кодированным потоком битов").
[0175] Альтернативно, модуль 126 внешнего прогнозирования извлекает MV в режиме, в котором информация движения не кодируется. В этом случае, информация движения не включается в кодированный сигнал.
[0176] Здесь, режимы MV-извлечения могут включать в себя нормальный внешний режим, режим объединения (merge), FRUC-режим, аффинный режим и т.д., которые описываются ниже. Режимы, в которых информация движения кодируется, из числа режимов, включают в себя нормальный внешний режим, режим объединения, аффинный режим (в частности, аффинный внешний режим и аффинный режим объединения) и т.д. Следует отметить, что информация движения может включать в себя не только MV, но также и информацию выбора предиктора вектора движения, которая описывается ниже. Режимы, в которых информация движения не кодируется, включают в себя FRUC-режим и т.д. Модуль 126 внешнего прогнозирования выбирает режим для извлечения MV текущего блока из режимов и извлекает MV текущего блока с использованием выбранного режима.
[0177] Фиг. 17 является блок-схемой последовательности операций способа, иллюстрирующей другой пример извлечения векторов движения.
[0178] Модуль 126 внешнего прогнозирования извлекает MV текущего блока в режиме, в котором MV-разность кодируется. В этом случае, например, MV-разность кодируется как параметр прогнозирования и передается в служебных сигналах. Другими словами, кодированная MV-разность включается в кодированный сигнал. MV-разность представляет собой разность между MV текущего блока и MV-предиктором.
[0179] Альтернативно, модуль 126 внешнего прогнозирования извлекает MV в режиме, в котором MV-разность не кодируется. В этом случае, кодированная MV-разность не включается в кодированный сигнал.
[0180] Здесь, как описано выше, режимы MV-извлечения включают в себя нормальный внешний режим, режим объединения, FRUC-режим, аффинный режим и т.д., которые описываются ниже. Режимы, в которых MV-разность кодируется, из числа режимов, включают в себя нормальный внешний режим, аффинный режим (в частности, аффинный внешний режим) и т.д. Режимы, в которых MV-разность не кодируется, включают в себя FRUC-режим, режим объединения, аффинный режим (в частности, аффинный режим объединения) и т.д. Модуль 126 внешнего прогнозирования выбирает режим для извлечения MV текущего блока из множества режимов и извлекает MV текущего блока с использованием выбранного режима.
[0181] Последовательность операций извлечения векторов движения
Фиг. 18 является блок-схемой последовательности операций способа, иллюстрирующей другой пример извлечения векторов движения. Режимы MV-извлечения, которые представляют собой режимы внешнего прогнозирования, включают в себя множество режимов и приблизительно разделяются на режимы, в которых MV-разность кодируется, и режимы, в которых разность векторов движения не кодируется. Режимы, в которых MV-разность не кодируется, включают в себя режим объединения, FRUC-режим, аффинный режим (в частности, аффинный режим объединения) и т.д. Эти режимы подробно описываются далее. Просто, режим объединения представляет собой режим для извлечения MV текущего блока посредством выбора вектора движения из кодированного окружающего блока, и FRUC-режим представляет собой режим для извлечения MV текущего блока посредством выполнения оценки между кодированными областями. Аффинный режим представляет собой режим для извлечения, в качестве MV текущего блока, вектора движения каждого из множества субблоков, включенных в текущий блок, при условии аффинного преобразования.
[0182] Более конкретно, как проиллюстрировано, когда информация режима внешнего прогнозирования указывает 0 (0 на Sf_1), модуль 126 внешнего прогнозирования извлекает вектор движения с использованием режима объединения (Sf_2). Когда информация режима внешнего прогнозирования указывает 1 (1 на Sf_1), модуль 126 внешнего прогнозирования извлекает вектор движения с использованием FRUC-режима (Sf_3). Когда информация режима внешнего прогнозирования указывает 2 (2 на Sf_1), модуль 126 внешнего прогнозирования извлекает вектор движения с использованием аффинного режима (в частности, аффинного режима объединения) (Sf_4). Когда информация режима внешнего прогнозирования указывает 3 (3 на Sf_1), модуль 126 внешнего прогнозирования извлекает вектор движения с использованием режима, в котором MV-разность кодируется (например, нормального внешнего режима (Sf_5)).
[0183] MV-извлечение > нормальный внешний режим
Нормальный внешний режим представляет собой режим внешнего прогнозирования для извлечения MV текущего блока на основе блока, аналогичного изображению текущего блока, из области опорного кадра, указываемой посредством возможного MV-варианта. В этом нормальном внешнем режиме, MV-разность кодируется.
[0184] Фиг. 19 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего прогнозирования в нормальном внешнем режиме.
[0185] Во-первых, модуль 126 внешнего прогнозирования получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества кодированных блоков, временно или пространственно окружающих текущий блок (этап Sg_1). Другими словами, модуль 126 внешнего прогнозирования формирует список возможных MV-вариантов.
[0186] Затем, модуль 126 внешнего прогнозирования извлекает N (целое число в 2 или более) возможных MV-вариантов из множества возможных MV-вариантов, полученных на этапе Sg_1, в качестве возможных вариантов предикторов векторов движения (также называются "возможными вариантами MV-предикторов") согласно определенному порядку приоритетов (этап Sg_2). Следует отметить, что порядок приоритетов может определяться заранее для каждого из N возможных MV-вариантов.
[0187] Затем, модуль 126 внешнего прогнозирования выбирает один возможный вариант предиктора вектора движения из возможных вариантов предикторов векторов движения N, в качестве предиктора вектора движения (также называется "MV-предиктором") текущего блока (этап Sg_3). В это время, модуль 126 внешнего прогнозирования кодирует, в потоке, информацию выбора предиктора вектора движения для идентификации выбранного предиктора вектора движения. Следует отметить, что поток представляет собой кодированный сигнал или кодированный поток битов, как описано выше.
[0188] Затем, модуль 126 внешнего прогнозирования извлекает MV текущего блока посредством ссылки на кодированный опорный кадр (этап Sg_4). В это время, модуль 126 внешнего прогнозирования дополнительно кодирует, в потоке, значение разности между извлеченным MV и предиктором вектора движения в качестве MV-разности. Следует отметить, что кодированный опорный кадр представляет собой кадр, включающий в себя множество блоков, которые восстановлены после кодирования.
[0189] В завершение, модуль 126 внешнего прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и кодированного опорного кадра (этап Sg_5). Следует отметить, что прогнозное изображение представляет собой внешний прогнозный сигнал, как описано выше.
[0190] Помимо этого, информация, указывающая режим внешнего прогнозирования (нормальный внешний режим в вышеприведенном примере), используемый для того чтобы, формировать прогнозное изображение, например, кодируется в качестве параметра прогнозирования.
[0191] Следует отметить, что список возможных MV-вариантов также может использоваться в качестве списка для использования в другом режиме. Помимо этого, процессы, связанные со списком возможных MV-вариантов, могут применяться к процессам, связанным со списком для использования в другом режиме. Процессы, связанные со списком возможных MV-вариантов, включают в себя, например, извлечение или выбор возможного MV-варианта из списка возможных MV-вариантов, переупорядочение возможных MV-вариантов или удаление возможного MV-варианта.
[0192] MV-извлечение > режим объединения
Режим объединения представляет собой режим внешнего прогнозирования для выбора возможного MV-варианта из списка возможных MV-вариантов в качестве MV текущего блока, за счет этого извлекая MV.
[0193] Фиг. 20 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего прогнозирования в режиме объединения.
[0194] Во-первых, модуль 126 внешнего прогнозирования получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества кодированных блоков, временно или пространственно окружающих текущий блок (этап Sh_1). Другими словами, модуль 126 внешнего прогнозирования формирует список возможных MV-вариантов.
[0195] Затем, модуль 126 внешнего прогнозирования выбирает один возможный MV-вариант из множества возможных MV-вариантов, полученных на этапе Sh_1, за счет этого извлекая MV текущего блока (этап Sh_2). В это время, модуль 126 внешнего прогнозирования кодирует, в потоке, информацию MV-выбора для идентификации выбранного возможного MV-варианта.
[0196] В завершение, модуль 126 внешнего прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и кодированного опорного кадра (этап Sh_3).
[0197] Помимо этого, информация, указывающая режим внешнего прогнозирования (режим объединения в вышеприведенном примере), используемый для того, чтобы формировать прогнозное изображение, и включенная в кодированный сигнал, например, кодируется в качестве параметра прогнозирования.
[0198] Фиг. 21 является концептуальной схемой для иллюстрации одного примера процесса извлечения векторов движения текущего кадра в режиме объединения.
[0199] Во-первых, список возможных MV-вариантов, в котором регистрируются возможные варианты MV-предикторов, формируется. Примеры возможных вариантов MV-предикторов включают в себя: пространственно соседние MV-предикторы, которые представляют собой MV множества кодированных блоков, расположенных пространственно окружающими текущий блок; временно соседние MV-предикторы, которые представляют собой MV окружающих блоков, на которые проецируется позиция текущего блока в кодированном опорном кадре; комбинированные MV-предикторы, которые представляют собой MV, сформированные посредством комбинирования MV-значения пространственно соседнего MV-предиктора и MV временно соседнего MV-предиктора; и нулевой MV-предиктор, который представляет собой MV, имеющий нулевое значение.
[0200] Затем, один MV-предиктор выбирается из множества MV-предикторов, зарегистрированных в списке MV-предикторов, и выбранный MV-предиктор определяется в качестве MV текущего блока.
[0201] Кроме того, кодер переменной длины описывает и кодирует, в потоке, merge_idx, который представляет собой сигнал, указывающий то, какой MV-предиктор выбран.
[0202] Следует отметить, что MV-предикторы, зарегистрированные в списке MV-предикторов, описанном на фиг. 21, представляют собой примеры. Число MV-предикторов может отличаться от числа MV-предикторов на схеме, список MV-предикторов может быть сконфигурирован таким образом, что некоторые виды MV-предикторов на схеме могут не включаться, либо таким образом, что один или более MV-предикторов, отличных от видов MV-предикторов на схеме, включаются.
[0203] Конечный MV может определяться посредством выполнения процесса детализации векторов движения в декодере (DMVR), который описывается ниже, с использованием MV текущего блока, извлекаемого в режиме объединения.
[0204] Следует отметить, что возможные варианты MV-предикторов представляют собой возможные MV-варианты, описанные выше, и список MV-предикторов представляет собой список возможных MV-вариантов, описанный выше. Следует отметить, что список возможных MV-вариантов может называться "списком возможных вариантов". Помимо этого, merge_idx представляет собой информацию MV-выбора.
[0205] MV-извлечение > FRUC-режим
Информация движения может извлекаться на стороне декодера без передачи в служебных сигналах из стороны кодера. Следует отметить, что, как описано выше, может использоваться режим объединения, заданный в H.265/HEVC-стандарте. Помимо этого, например, информация движения может извлекаться посредством выполнения оценки движения на стороне декодера. В варианте осуществления, на стороне декодера оценка движения выполняется без использования пиксельных значений в текущем блоке.
[0206] Здесь описывается режим для выполнения оценки движения на стороне декодера. Режим для выполнения оценки движения на стороне декодера может называться "режимом извлечения векторов движения на основе сопоставления с шаблоном (PMMVD)" или "режимом преобразования с повышением частоты кадров (FRUC)".
[0207] Один пример FRUC-процесса в форме блок-схемы последовательности операций способа проиллюстрирован на фиг. 22. Во-первых, список множества возможных вариантов, имеющих предиктор вектора движения (MV) (т.е. список возможных MV-вариантов, который также может использоваться в качестве списка объединения), формируется посредством ссылки на вектор движения в кодированном блоке, который является пространственно или временно соседним с текущим блоком (этап Si_1). Затем, наилучший возможный MV-вариант выбирается из множества возможных MV-вариантов, зарегистрированных в списке возможных MV-вариантов (этап Si_2). Например, значения оценки соответствующих возможных MV-вариантов, включенных в список возможных MV-вариантов, вычисляются, и один возможный MV-вариант выбирается на основе значений оценки. На основе выбранных возможных вариантов векторов движения, вектор движения для текущего блока затем извлекается (этап Si_4). Более конкретно, например, выбранный возможный вариант вектора движения (наилучший возможный MV-вариант) извлекается непосредственно в качестве вектора движения для текущего блока. Помимо этого, например, вектор движения для текущего блока может извлекаться с использованием сопоставления с шаблоном в окружающей области позиции в опорном кадре, при этом позиция в опорном кадре соответствует выбранному возможному варианту вектора движения. Другими словами, оценка с использованием сопоставления с шаблоном и значений оценки может выполняться в окружающей области наилучшего возможного MV-варианта, и когда имеется MV, который дает в результате лучшее значение оценки, наилучший возможный MV-вариант может обновляться на MV, который дает в результате лучшее значение оценки, и обновленный MV может определяться в качестве конечного MV для текущего блока. Также возможна конфигурация, в которой не выполняется такой процесс для обновления наилучшего возможного MV-варианта на MV, имеющий лучшее значение оценки.
[0208] В завершение, модуль 126 внешнего прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и кодированного опорного кадра (этап Si_5).
[0209] Аналогичный процесс может выполняться в единицах субблоков.
[0210] Значения оценки могут вычисляться согласно различным видам способов. Например, сравнение проводится между восстановленным изображением в области в опорном кадре, соответствующей вектору движения, и восстановленным изображением в определенной области (область, например, может представлять собой область в другом опорном кадре или область в соседнем блоке текущего кадра, как указано ниже). Определенная область может быть предварительно определена.
[0211] Разность между пиксельными значениями двух восстановленных изображений может использоваться для значения оценки векторов движения. Следует отметить, что значение оценки может вычисляться с использованием информации, отличной от значения разности.
[0212] Далее подробно описывается пример сопоставления с шаблоном. Во-первых, один возможный MV-вариант, включенный в список возможных MV-вариантов (например, список объединения), выбирается в качестве начальной точки оценки посредством сопоставления с шаблоном. Например, в качестве сопоставления с шаблоном, может использоваться первое сопоставление с шаблоном или второе сопоставление с шаблоном. Первое сопоставление с шаблоном и второе сопоставление с шаблоном также называются "билатеральным сопоставлением" и "сопоставлением с эталоном", соответственно.
[0213] MV-извлечение > FRUC > билатеральное сопоставление
При первом сопоставлении с шаблоном, сопоставление с шаблоном выполняется между двумя блоками вдоль траектории движения текущего блока, которые представляют собой два блока в различных двух опорных кадрах. Соответственно, при первом сопоставлении с шаблоном, область в другом опорном кадре вдоль траектории движения текущего блока используется в качестве определенной области для вычисления значения оценки вышеописанного возможного варианта. Определенная область может быть предварительно определена.
[0214] Фиг. 23 является концептуальной схемой для иллюстрации одного примера первого сопоставления с шаблоном (билатерального сопоставления) между двумя блоками в двух опорных кадрах вдоль траектории движения. Как проиллюстрировано на фиг. 23, при первом сопоставлении с шаблоном, два вектора (MV0, MV1) движения извлекаются посредством оценки пары, которая имеет наилучшее совпадение, из числа пар в двух блоках в двух различных опорных кадрах (Ref0, Ref1), которые представляют собой два блока вдоль траектории движения текущего блока (Cur block). Более конкретно, разность между восстановленным изображением в указанном местоположении в первом кодированном опорном кадре (Ref0), указываемом посредством возможного MV-варианта, и восстановленным изображением в указанном местоположении во втором кодированном опорном кадре (Ref1), указываемом посредством симметричного MV, полученная посредством масштабирования возможного MV-варианта во временном интервале отображения, извлекается для текущего блока, и значение оценки вычисляется с использованием значения полученной разности. Можно выбирать, в качестве конечного MV, возможный MV-вариант, который дает в результате наилучшее значение оценки из множества возможных MV-вариантов и который с большой вероятностью должен приводить к хорошим результатам.
[0215] При допущении относительно траектории непрерывного движения, векторы (MV0, MV1) движения, указывающие два опорных блока, являются пропорциональными временным расстояниям (TD0, TD1) между текущим кадром (Cur Pic) и двумя опорными кадрами (Ref0, Ref1). Например, когда текущий кадр временно находится между двумя опорными кадрами, и временные расстояния от текущего кадра до соответствующих двух опорных кадров равны друг другу, зеркально-симметричные двунаправленные векторы движения извлекаются при первом сопоставлении с шаблоном.
[0216] MV-извлечение > FRUC > сопоставление с эталоном
При втором сопоставлении с шаблоном (сопоставлении с эталоном), сопоставление с шаблоном выполняется между блоком в опорном кадре и эталоном в текущем кадре (эталон представляет собой блок, соседний с текущим блоком в текущем кадре (соседний блок, например, представляет собой верхний и/или левый соседний блок(и))). Следовательно, при втором сопоставлении с шаблоном, блок, соседний с текущим блоком в текущем кадре, используется в качестве предварительно определенной области для вышеописанного вычисления значения оценки возможного варианта.
[0217] Фиг. 24 является концептуальной схемой для иллюстрации одного примера сопоставления с шаблоном (сопоставления с эталоном) между эталоном в текущем кадре и блоком в опорном кадре. Как проиллюстрировано на фиг. 24, при втором сопоставлении с шаблоном, вектор движения текущего блока (Cur block) извлекается посредством оценки, в опорном кадре (Ref0), блока, который имеет наилучшее совпадение с блоком, соседним с текущим блоком в текущем кадре (Cur Pic). Более конкретно, возможно то, что извлекается разность между восстановленным изображением в кодированной области, который является соседним как слева, так и выше либо слева или выше, и восстановленным изображением, которое находится в соответствующей области в кодированном опорном кадре (Ref0) и указывается посредством возможного MV-варианта, значение оценки вычисляется с использованием значения полученной разности, и возможный MV-вариант, который дает в результате наилучшее значение оценки из множества возможных MV-вариантов, выбирается в качестве наилучшего возможного MV-варианта.
[0218] Эта информация, указывающая то, следует или нет применять FRUC-режим (называется, например, "FRUC-флагом"), может передаваться в служебных сигналах на уровне CU. Помимо этого, когда FRUC-режим применяется (например, когда FRUC-флаг является истинным), информация, указывающая применимый способ сопоставления с шаблоном (первое сопоставление с шаблоном или второе сопоставление с шаблоном), может передаваться в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне слайса, уровне тайла, уровне CTU или уровне субблока).
[0219] MV-извлечение > аффинный режим
Далее описывается аффинный режим для извлечения вектора движения в единицах субблоков на основе векторов движения множества соседних блоков. Этот режим также называется "аффинным режимом прогнозирования с компенсацией движения".
[0220] Фиг. 25A является концептуальной схемой для иллюстрации одного примера извлечения вектора движения каждого субблока на основе векторов движения множества соседних блоков. На фиг. 25A текущий блок включает в себя шестнадцать субблоков 4×4. Здесь, вектор V0 движения в верхней левой угловой управляющей точке в текущем блоке извлекается на основе вектора движения соседнего блока, и аналогично, вектор V1 движения в верхней правой угловой управляющей точке в текущем блоке извлекается на основе вектора движения соседнего субблока. Два вектора v0 и v1 движения могут проецироваться согласно выражению (1A), указываемому ниже, и векторы (vx, vy) движения для соответствующих субблоков в текущем блоке могут извлекаться.
[0221] Математическое выражение 1
[0222] Здесь, x и y указывают горизонтальную позицию и вертикальную позицию субблока, соответственно, и w указывает определенный весовой коэффициент. Определенный весовой коэффициент может быть предварительно определен.
[0223] Эта информация, указывающая аффинный режим (например, называется "аффинным флагом"), может передаваться в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах информации, указывающей аффинный режим, не обязательно должна выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне кадра, уровне слайса, уровне тайла, уровне CTU или уровне субблока).
[0224] Помимо этого, аффинный режим может включать в себя несколько режимов для различных способов для извлечения векторов движения в верхней левой и верхней правой угловых управляющих точках. Например, аффинный режим включает в себя два режима, которые представляют собой аффинный внешний режим (также называется "аффинным нормальным внешним режимом") и аффинный режим объединения.
[0225] MV-извлечение > аффинный режим
Фиг. 25B является концептуальной схемой для иллюстрации одного примера извлечения вектора движения каждого субблока в аффинном режиме, в котором используются три управляющих точки. На фиг. 25B, текущий блок включает в себя шестнадцать блоков 4×4. Здесь, вектор V0 движения в верхней левой угловой управляющей точке для текущего блока извлекается на основе вектора движения соседнего блока, и аналогично, вектор V1 движения в верхней правой угловой управляющей точке для текущего блока извлекается на основе вектора движения соседнего блока, и вектор V2 движения в нижней левой угловой управляющей точке для текущего блока извлекается на основе вектора движения соседнего блока. Три вектора v0, v1 и v2 движения могут проецироваться согласно выражению (1B), указываемому ниже, и векторы (vx, vy) движения для соответствующих субблоков в текущем блоке могут извлекаться.
[0226] Математическое выражение 2
[0227] Здесь, x и y указывают горизонтальную позицию и вертикальную позицию центра субблока, соответственно, w указывает ширину текущего блока, и h указывает высоту текущего блока.
[0228] Аффинные режимы, в которых используются различные числа управляющих точек (например, две и три управляющих точки), могут переключаться и передаваться в служебных сигналах на уровне CU. Следует отметить, что информация, указывающая число управляющих точек в аффинном режиме, используемом на уровне CU, может передаваться в служебных сигналах на другом уровне (например, на уровне последовательности, уровне кадра, уровне слайса, уровне тайла, уровне CTU или уровне субблока).
[0229] Помимо этого, такой аффинный режим, в котором используются три управляющих точки, может включать в себя различные способы для извлечения векторов движения в верхней левой, верхней правой и нижней левой угловых управляющих точках. Например, аффинные режимы включают в себя два режима, которые представляют собой аффинный внешний режим (также называется "аффинным нормальным внешним режимом") и аффинный режим объединения.
[0230] MV-извлечение > аффинный режим объединения
Фиг. 26A, фиг. 26B и фиг. 26C является концептуальными схемами для иллюстрации аффинного режима объединения.
[0231] Как проиллюстрировано на фиг. 26A, в аффинном режиме объединения, например, предикторы векторов движения в соответствующих управляющих точках текущего блока вычисляются на основе множества векторов движения, соответствующих блокам, кодированным согласно аффинному режиму, из кодированного блока A (левого), блока B (верхнего), блока C (верхнего правого), блока D (нижнего левого) и блока E (верхнего левого), которые являются соседними с текущим блоком. Более конкретно, кодированный блок A (левый), блок B (верхний), блок C (верхний правый), блок D (нижний левый) и блок E (верхний левый) проверяются в перечисленном порядке, и первый эффективный блок, кодированный согласно аффинному режиму, идентифицируется. Предикторы векторов движения в управляющих точках текущего блока вычисляются на основе множества векторов движения, соответствующих идентифицированному блоку.
[0232] Например, как проиллюстрировано на фиг. 26B, когда блок A, который является соседним слева от текущего блока, кодирован согласно аффинному режиму, в котором используются две управляющих точки, векторы v3 и v4 движения, проецируемые в верхней левой угловой позиции и верхней правой угловой позиции кодированного блока, включающего в себя блок A, извлекаются. Предиктор v0 вектора движения в верхней левой угловой управляющей точке текущего блока и предиктор v1 вектора движения в верхней правой угловой управляющей точке текущего блока затем вычисляются из извлеченных векторов v3 и v4 движения.
[0233] Например, как проиллюстрировано на фиг. 26C, когда блок A, который является соседним слева от текущего блока, кодирован согласно аффинному режиму, в котором используются три управляющих точки, векторы v3, v4 и v5 движения, проецируемые в верхней левой угловой позиции, верхней правой угловой позиции и нижней левой угловой позиции кодированного блока, включающего в себя блок A, извлекаются. Предиктор v0 вектора движения в верхней левой угловой управляющей точке текущего блока, предиктор v1 вектора движения в верхней правой угловой управляющей точке текущего блока и предиктор v2 вектора движения в нижней левой угловой управляющей точке текущего блока затем вычисляются из извлеченных векторов v3, v4 и v5 движения.
[0234] Следует отметить, что этот способ для извлечения предикторов векторов движения может использоваться для того, чтобы извлекать предикторы векторов движения соответствующих управляющих точек текущего блока на этапе Sj_1 на фиг. 29, описанном далее.
[0235] Фиг. 27 является блок-схемой последовательности операций способа, иллюстрирующей один пример аффинного режима объединения.
[0236] В аффинном режиме объединения, как проиллюстрировано, сначала, модуль 126 внешнего прогнозирования извлекает MV-предикторы соответствующих управляющих точек текущего блока (этап Sk_1). Управляющие точки представляют собой верхнюю левую угловую точку текущего блока и верхнюю правую угловую точку текущего блока, как проиллюстрировано на фиг. 25A, либо верхнюю левую угловую точку текущего блока, верхнюю правую угловую точку текущего блока и нижнюю левую угловую точку текущего блока, как проиллюстрировано на фиг. 25B.
[0237] Другими словами, как проиллюстрировано на фиг. 26A, модуль 126 внешнего прогнозирования проверяет кодированный блок A (левый), блок B (верхний), блок C (верхний правый), блок D (нижний левый) и блок E (верхний левый) в перечисленном порядке и идентифицирует первый эффективный блок, кодированный согласно аффинному режиму.
[0238] Когда блок A идентифицируется, и блок A имеет две управляющих точки, как проиллюстрировано на фиг. 26B, модуль 126 внешнего прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока и вектор v1 движения в верхней правой угловой управляющей точке текущего блока из векторов v3 и v4 движения в верхнем левом углу и верхнем правом углу кодированного блока, включающего в себя блок A. Например, модуль 126 внешнего прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока и вектор v1 движения в верхней правой угловой управляющей точке текущего блока посредством проецирования векторов v3 и v4 движения в верхнем левом углу и верхнем правом углу кодированного блока на текущий блок.
[0239] Альтернативно, когда блок A идентифицируется, и блок A имеет три управляющих точки, как проиллюстрировано на фиг. 26C, модуль 126 внешнего прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока, вектор v1 движения в верхней правой угловой управляющей точке текущего блока и вектор v2 движения в нижней левой угловой управляющей точке текущего блока из векторов v3, v4 и v5 движения в верхнем левом углу, верхнем правом углу и нижнем левом углу кодированного блока, включающего в себя блок A. Например, модуль 126 внешнего прогнозирования вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока, вектор v1 движения в верхней правой угловой управляющей точке текущего блока и вектор v2 движения в нижней левой угловой управляющей точке текущего блока посредством проецирования векторов v3, v4 и v5 движения в верхнем левом углу, верхнем правом углу и нижнем левом углу кодированного блока на текущий блок.
[0240] Затем, модуль 126 внешнего прогнозирования выполняет компенсацию движения каждого из множества субблоков, включенных в текущий блок. Другими словами, модуль 126 внешнего прогнозирования вычисляет, для каждого из множества субблоков, вектор движения субблока в качестве аффинного MV, посредством использования либо (i) двух предикторов v0 и v1 векторов движения и выражения (1A), описанного выше, либо (ii) трех предикторов v0, v1 и v2 векторов движения и выражения (1B), описанного выше (этап Sk_2). Модуль 126 внешнего прогнозирования затем выполняет компенсацию движения субблоков с использованием этих аффинных MV и кодированных опорных кадров (этап Sk_3). Как результат, компенсация движения текущего блока выполняется для того, чтобы формировать прогнозное изображение текущего блока.
[0241] MV-извлечение > аффинный внешний режим
Фиг. 28A является концептуальной схемой для иллюстрации аффинного внешнего режима, в котором используются две управляющих точки.
[0242] В аффинном внешнем режиме, как проиллюстрировано на фиг. 28A, вектор движения, выбранный из векторов движения кодированного блока A, блока B и блока C, которые являются соседними с текущим блоком, используется в качестве предиктора v0 вектора движения в верхней левой угловой управляющей точке текущего блока. Аналогично, вектор движения, выбранный из векторов движения кодированного блока D и блока E, которые являются соседними с текущим блоком, используется в качестве предиктора v1 вектора движения в верхней правой угловой управляющей точке текущего блока.
[0243] Фиг. 28B является концептуальной схемой для иллюстрации аффинного внешнего режима, в котором используются три управляющих точки.
[0244] В аффинном внешнем режиме, как проиллюстрировано на фиг. 28B, вектор движения, выбранный из векторов движения кодированного блока A, блока B и блока C, которые являются соседними с текущим блоком, используется в качестве предиктора v0 вектора движения в верхней левой угловой управляющей точке текущего блока. Аналогично, вектор движения, выбранный из векторов движения кодированного блока D и блока E, которые являются соседними с текущим блоком, используется в качестве предиктора v1 вектора движения в верхней правой угловой управляющей точке текущего блока. Кроме того, вектор движения, выбранный из векторов движения кодированного блока F и блока G, которые являются соседними с текущим блоком, используется в качестве предиктора v2 вектора движения в нижней левой угловой управляющей точке текущего блока.
[0245] Фиг. 29 является блок-схемой последовательности операций способа, иллюстрирующей один пример аффинного внешнего режима.
[0246] В аффинном внешнем режиме, как проиллюстрировано, сначала, модуль 126 внешнего прогнозирования извлекает MV-предикторы (v0, v1) или (v0, v1, v2) соответствующих двух или трех управляющих точек текущего блока (этап Sj_1). Управляющие точки представляют собой верхнюю левую угловую точку текущего блока и верхнюю правую угловую точку текущего блока, как проиллюстрировано на фиг. 25A, либо верхнюю левую угловую точку текущего блока, верхнюю правую угловую точку текущего блока и нижнюю левую угловую точку текущего блока, как проиллюстрировано на фиг. 25B.
[0247] Другими словами, модуль 126 внешнего прогнозирования извлекает предикторы (v0, v1) или (v0, v1, v2) векторов движения соответствующих двух или трех управляющих точек текущего блока посредством выбора векторов движения любого из блоков из числа кодированных блоков около соответствующих управляющих точек текущего блока, проиллюстрированного на любом из фиг. 28A или фиг. 28B. В это время, модуль 126 внешнего прогнозирования кодирует, в потоке, информацию выбора предиктора вектора движения для идентификации выбранных двух векторов движения.
[0248] Например, модуль 126 внешнего прогнозирования может определять то, с использованием оценки затрат и т.п., блок, из которого выбирается вектор движения в качестве предиктора вектора движения в управляющей точке, из числа кодированных блоков, соседних с текущим блоком, и может описывать, в потоке битов, флаг, указывающий то, какой предиктор вектора движения выбран.
[0249] Затем, модуль 126 внешнего прогнозирования выполняет оценку движения (этап Sj_3 и Sj_4) при обновлении предиктора вектора движения, выбранного или извлеченного на этапе Sj_1 (этап Sj_2). Другими словами, модуль 126 внешнего прогнозирования вычисляет, в качестве аффинного MV, вектор движения каждого из субблоков, который соответствует обновленному предиктору вектора движения, с использованием либо выражения (1A), либо выражения (1B), описанных выше (этап Sj_3). Модуль 126 внешнего прогнозирования затем выполняет компенсацию движения субблоков с использованием этих аффинных MV и кодированных опорных кадров (этап Sj_4). Как результат, например, модуль 126 внешнего прогнозирования определяет предиктор вектора движения, который дает в результате наименьшие затраты, в качестве вектора движения в управляющей точке в контуре оценки движения (этап Sj_5). В это время, модуль 126 внешнего прогнозирования дополнительно кодирует, в потоке, значение разности между определенным MV и предиктором вектора движения в качестве MV-разности.
[0250] В завершение, модуль 126 внешнего прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием определенного MV и кодированного опорного кадра (этап Sj_6).
[0251] MV-извлечение > аффинный внешний режим
Когда аффинные режимы, в которых используются различные числа управляющих точек (например, двух и трех управляющих точек), могут переключаться и передаваться в служебных сигналах на уровне CU, число управляющих точек в кодированном блоке и число управляющих точек в текущем блоке могут отличаться друг от друга. Фиг. 30A и фиг. 30B являются концептуальными схемами для иллюстрации способов для извлечения предикторов векторов движения в управляющих точках, когда число управляющих точек в кодированном блоке и число управляющих точек в текущем блоке отличаются друг от друга.
[0252] Например, как проиллюстрировано на фиг. 30A, когда текущий блок имеет три управляющих точки в верхнем левом углу, верхнем правом углу и нижнем левом углу, и блок A, который является соседним слева от текущего блока, кодирован согласно аффинному режиму, в котором используются две управляющих точки, векторы v3 и v4 движения, проецируемые в верхней левой угловой позиции и верхней правой угловой позиции в кодированном блоке, включающем в себя блок A, извлекаются. Предиктор v0 вектора движения в верхней левой угловой управляющей точке текущего блока и предиктор v1 вектора движения в верхней правой угловой управляющей точке текущего блока затем вычисляются из извлеченных векторов v3 и v4 движения. Кроме того, предиктор v2 вектора движения в нижней левой угловой управляющей точке вычисляется из извлеченных векторов v0 и v1 движения.
[0253] Например, как проиллюстрировано на фиг. 30B, когда текущий блок имеет две управляющих точки в верхнем левом углу и верхнем правом углу, и блок A, который является соседним слева от текущего блока, кодирован согласно аффинному режиму, в котором используются три управляющих точки, векторы v3, v4 и v5 движения, проецируемые в верхней левой угловой позиции, верхней правой угловой позиции и нижней левой угловой позиции в кодированном блоке, включающем в себя блок A, извлекаются. Предиктор v0 вектора движения в верхней левой угловой управляющей точке текущего блока и предиктор v1 вектора движения в верхней правой угловой управляющей точке текущего блока затем вычисляются из извлеченных векторов v3, v4 и v5 движения.
[0254] Следует отметить, что этот способ для извлечения предикторов векторов движения может использоваться для того, чтобы извлекать предикторы векторов движения соответствующих управляющих точек текущего блока на этапе Sj_1 на фиг. 29.
[0255] MV-извлечение > DMVR
Фиг. 31A является блок-схемой последовательности операций способа, иллюстрирующей взаимосвязь между режимом объединения и DMVR.
[0256] Модуль 126 внешнего прогнозирования извлекает вектор движения текущего блока согласно режиму объединения (этап Sl_1). Затем, модуль 126 внешнего прогнозирования определяет то, следует или нет выполнять оценку вектора движения, т.е. оценку движения (этап Sl_2). Здесь, при определении не выполнять оценку движения ("Нет" на этапе Sl_2), модуль 126 внешнего прогнозирования определяет вектор движения, извлекаемый на этапе Sl_1, в качестве конечного вектора движения для текущего блока (этап Sl_4). Другими словами, в этом случае, вектор движения текущего блока определяется согласно режиму объединения.
[0257] При определении выполнять оценку движения на этапе Sl_1 ("Да" на этапе Sl_2), модуль 126 внешнего прогнозирования извлекает конечный вектор движения для текущего блока посредством оценки окружающей области опорного кадра, указываемого посредством вектора движения, извлекаемого на этапе Sl_1 (этап Sl_3). Другими словами, в этом случае, вектор движения текущего блока определяется согласно DMVR.
[0258] Фиг. 31B является концептуальной схемой для иллюстрации одного примера DMVR-процесса для определения MV.
[0259] Во-первых (например, в режиме объединения), наилучший MVP, который задан в качестве текущего блока, определяется в качестве возможного MV-варианта. Опорный пиксел идентифицируется из первого опорного кадра (L0), который представляет собой кодированный кадр в направлении L0 согласно возможному MV-варианту (L0). Аналогично, опорный пиксел идентифицируется из второго опорного кадра (L1), который представляет собой кодированный кадр в направлении L1 согласно возможному MV-варианту (L1). Эталон формируется посредством вычисления среднего этих опорных пикселов.
[0260] Затем, каждая из окружающих областей возможных MV-вариантов первого опорного кадра (L0) и второго опорного кадра (L1) оценивается, и MV, который дает в результате наименьшие затраты, определяется в качестве конечного MV. Следует отметить, что значение затрат может вычисляться, например, с использованием значения разности между каждым из пиксельных значений в эталоне и соответствующим одним из пиксельных значений в области оценки, значений возможных MV-вариантов и т.д.
[0261] Следует отметить, что процессы, конфигурации и операции, описанные здесь, типично являются, по существу, общими между кодером и декодером, которые описываются ниже.
[0262] Совершенно идентичные примерные процессы, описанные здесь, не всегда должны обязательно выполняться. Любой процесс для обеспечения возможности извлечения конечного MV посредством оценки в окружающих областях возможных MV-вариантов может использоваться.
[0263] Компенсация движения > BIO/OBMC
Компенсация движения заключает в себе режим для формирования прогнозного изображения и коррекции прогнозного изображения. Режим, например, представляет собой BIO и OBMC, которые описываются ниже.
[0264] Фиг. 32 является блок-схемой последовательности операций способа, иллюстрирующей один пример формирования прогнозного изображения.
[0265] Модуль 126 внешнего прогнозирования формирует прогнозное изображение (этап Sm_1) и корректирует прогнозное изображение, например, согласно любому из режимов, описанных выше (этап Sm_2).
[0266] Фиг. 33 является блок-схемой последовательности операций способа, иллюстрирующей другой пример формирования прогнозного изображения.
[0267] Модуль 126 внешнего прогнозирования определяет вектор движения текущего блока (этап Sn_1). Затем, модуль 126 внешнего прогнозирования формирует прогнозное изображение (этап Sn_2) и определяет то, следует или нет выполнять процесс коррекции (этап Sn_3). Здесь, при определении выполнять процесс коррекции ("Да" на этапе Sn_3), модуль 126 внешнего прогнозирования формирует конечное прогнозное изображение посредством коррекции прогнозного изображения (этап Sn_4). При определении не выполнять процесс коррекции ("Нет" на этапе Sn_3), модуль 126 внешнего прогнозирования выводит прогнозное изображение в качестве конечного прогнозного изображения без коррекции прогнозного изображения (этап Sn_5).
[0268] Помимо этого, компенсация движения заключает в себе режим для коррекции яркости прогнозного изображения при формировании прогнозного изображения. Режимом, например, представляет собой LIC, который описывается ниже.
[0269] Фиг. 34 является блок-схемой последовательности операций способа, иллюстрирующей другой пример формирования прогнозного изображения.
[0270] Модуль 126 внешнего прогнозирования извлекает вектор движения текущего блока (этап So_1). Затем, модуль 126 внешнего прогнозирования определяет то, следует или нет выполнять процесс коррекции яркости (этап So_2). Здесь, при определении выполнять процесс коррекции яркости ("Да" на этапе So_2), модуль 126 внешнего прогнозирования формирует прогнозное изображение при выполнении процесса коррекции яркости (этап So_3). Другими словами, прогнозное изображение формируется с использованием LIC. При определении не выполнять процесс коррекции яркости ("Нет" на этапе So_2), модуль 126 внешнего прогнозирования формирует прогнозное изображение посредством выполнения нормальной компенсации движения без выполнения процесса коррекции яркости (этап So_4).
[0271] Компенсация движения > OBMC
Следует отметить, что внешний прогнозный сигнал может формироваться с использованием информации движения для соседнего блока в дополнение к информации движения для текущего блока, полученной из оценки движения. Более конкретно, внешний прогнозный сигнал может формироваться в единицах субблоков в текущем блоке посредством выполнения суммирования со взвешиванием прогнозного сигнала на основе информации движения, полученной из оценки движения (в опорном кадре), и прогнозного сигнала на основе информации движения для соседнего блока (в текущем кадре). Такое внешнее прогнозирование (компенсация движения) также называется "перекрывающейся блочной компенсацией движения (OBMC)".
[0272] В OBMC-режиме, информация, указывающая размер субблока для OBMC (называется, например, "размером OBMC-блока"), может передаваться в служебных сигналах на уровне последовательности. Кроме того, информация, указывающая то, следует или нет применять OBMC-режим (называется, например, "OBMC-флагом"), передается в служебных сигналах на уровне CU. Следует отметить, что передача в служебных сигналах этой информации не должна обязательно выполняться на уровне последовательности и уровне CU и может выполняться на другом уровне (например, на уровне кадра, уровне слайса, уровне тайла, уровне CTU или уровне субблока).
[0273] В дальнейшем подробнее описываются примеры OBMC-режима. Фиг. 35 и 36 являются блок-схемой последовательности операций способа и концептуальной схемой для иллюстрации краткого представления процесса коррекции прогнозных изображений, выполняемого посредством OBMC-процесса.
[0274] Во-первых, как проиллюстрировано на фиг. 36, прогнозное изображение (Pred) получается через нормальную компенсацию движения с использованием вектора движения (MV), назначенного целевому (текущему) блоку обработки. На фиг. 36, стрелка "MV" указывает на опорный кадр и указывает то, на что ссылается текущий блок текущего кадра, чтобы получать прогнозное изображение.
[0275] Затем, прогнозное изображение (Pred_L) получается посредством применения вектора (MV_L) движения, который уже извлечен для кодированного блока, соседнего слева от текущего блока, к текущему блоку (многократного использования вектора движения для текущего блока). Вектор (MV_L) движения указывается посредством стрелки "MV_L", указывающей опорный кадр из текущего блока. Первая коррекция прогнозного изображения выполняется посредством перекрытия двух прогнозных изображений Pred и Pred_L. Это предоставляет преимущество смешивания границы между соседними блоками.
[0276] Аналогично, прогнозное изображение (Pred_U) получается посредством применения вектора (MV_U) движения, который уже извлечен для кодированного блока, соседнего выше текущего блока, к текущему блоку (многократного использования вектора движения для текущего блока). Вектор (MV_U) движения указывается посредством стрелки "MV_U", указывающей опорный кадр из текущего блока. Вторая коррекция прогнозного изображения выполняется посредством перекрытия прогнозного изображения Pred_U с прогнозными изображениями (например, Pred и Pred_L), для которых выполнена первая коррекция. Это предоставляет преимущество смешивания границы между соседними блоками. Прогнозное изображение, полученное посредством второй коррекции, представляет собой прогнозное изображение, в котором граница между соседними блоками смешивается (сглаживается), и в силу этого представляет собой конечное прогнозное изображение текущего блока.
[0277] Хотя вышеприведенный пример представляет собой способ коррекции с двумя трактами с использованием левого и верхнего соседних блоков, следует отметить, что способ коррекции может представлять собой способ коррекции с тремя или более трактов с использованием также правого соседнего блока и/или нижнего соседнего блока.
[0278] Следует отметить, что область, в которой выполняется такое перекрытие, может составлять только часть области около границы блока вместо пиксельной области всего блока.
[0279] Следует отметить, что выше описывается процесс коррекции прогнозных изображений согласно OBMC для получения одного прогнозного изображения Pred из одного опорного кадра посредством перекрытия дополнительного прогнозного изображения Pred_L и Pred_U. Тем не менее, когда прогнозное изображение корректируется на основе множества опорных изображений, аналогичный процесс может применяться к каждому из множества опорных кадров. В таком случае, после того, как скорректированные прогнозные изображения получаются из соответствующих опорных кадров посредством выполнения OBMC-коррекции изображений на основе множества опорных кадров, полученные скорректированные прогнозные изображения дополнительно перекрываются, чтобы получать конечное прогнозное изображение.
[0280] Следует отметить, что, в OBMC, единица текущего блока может представлять собой единицу блока прогнозирования или единицу субблока, полученного посредством дополнительного разбиения блока прогнозирования.
[0281] Один пример способа для определения того, следует или нет применять OBMC-процесс, представляет собой способ для использования obmc_flag, который представляет собой сигнал, указывающий то, следует или нет применять OBMC-процесс. В качестве одного конкретного примера, кодер определяет то, принадлежит или нет текущий блок области, имеющей усложненное движение. Кодер задает obmc_flag равным значению "1", когда блок принадлежит области, имеющей усложненное движение, и применяет OBMC-процесс при кодировании и задает obmc_flag равным значению "0", когда блок не принадлежит области, имеющей усложненное движение, и кодирует блок без применения OBMC-процесса. Декодер переключается между применением и неприменением OBMC-процесса посредством декодирования obmc_flag, записываемого в потоке (например, сжатой последовательности), и декодирования блока посредством переключения между применением и неприменением OBMC-процесса в соответствии со значением флага.
[0282] Модуль 126 внешнего прогнозирования формирует одно прямоугольное прогнозное изображение для прямоугольного текущего блока в вышеприведенном примере. Тем не менее, модуль 126 внешнего прогнозирования может формировать множество прогнозных изображений, имеющих форму, отличающуюся от прямоугольника, для прямоугольного текущего блока, и может комбинировать множество прогнозных изображений для того, чтобы формировать конечное прямоугольное прогнозное изображение. Форма, отличающаяся от прямоугольника, например, может представлять собой треугольник.
[0283] Фиг. 37 является концептуальной схемой для иллюстрации формирования двух треугольных прогнозных изображений.
[0284] Модуль 126 внешнего прогнозирования формирует треугольное прогнозное изображение посредством выполнения компенсации движения первого сегмента, имеющего треугольную форму в текущем блоке, посредством использования первого MV первого сегмента для того, чтобы формировать треугольное прогнозное изображение. Аналогично, модуль 126 внешнего прогнозирования формирует треугольное прогнозное изображение посредством выполнения компенсации движения второго сегмента, имеющего треугольную форму в текущем блоке, посредством использования второго MV второго сегмента для того, чтобы формировать треугольное прогнозное изображение. Модуль 126 внешнего прогнозирования затем формирует прогнозное изображение, имеющее прямоугольную форму, идентичную прямоугольной форме текущего блока, посредством комбинирования этих прогнозных изображений.
[0285] Следует отметить, что хотя первый сегмент и второй сегмент представляют собой треугольники в примере, проиллюстрированном на фиг. 37, первый сегмент и второй сегмент могут представлять собой быть трапеции или другие формы, отличающиеся друг от друга. Кроме того, хотя текущий блок включает в себя два сегмента в примере, проиллюстрированном на фиг. 37, текущий блок может включать в себя три или более сегментов.
[0286] Помимо этого, первый сегмент и второй сегмент могут перекрываться между собой. Другими словами, первый сегмент и второй сегмент могут включать в себя идентичную пиксельную область. В этом случае, прогнозное изображение для текущего блока может формироваться с использованием прогнозного изображения в первом сегменте и прогнозного изображения во втором сегменте.
[0287] Помимо этого, хотя пример, в котором прогнозное изображение формируется для каждого из двух сегментов с использованием внешнего прогнозирования, прогнозное изображение может формироваться для по меньшей мере одного сегмента с использованием внутреннего прогнозирования.
[0288] Компенсация движения > BIO
Далее описывается способ для извлечения вектора движения. Сначала, в дальнейшем описывается режим для извлечения вектора движения на основе модели при условии равномерного прямолинейного движения. Этот режим также называется "режимом двунаправленного оптического потока (BIO)".
[0289] Фиг. 38 является концептуальной схемой для иллюстрации модели при условии равномерного прямолинейного движения. На фиг. 38, (vx, vy) указывает вектор скорости, и τ0 и τ1 указывают временные расстояния между текущим кадром (Cur Pic) и двумя опорными кадрами (Ref0, Ref1). (MVx0, MVy0), указывают векторы движения, соответствующие опорному кадру Ref0 и (MVx1, MVy1) указывают векторы движения, соответствующие опорному кадру Ref0.
[0290] Здесь, согласно допущению относительно равномерного прямолинейного движения, демонстрируемого посредством векторов (vx, vy) скорости, (MVx0, MVy0) и (MVx1, MVy1), представляются как (vxτ0, vyτ0) и (-vxτ1, -vyτ1), соответственно, и может использоваться следующее уравнение оптического потока:
[0291] Математическое выражение 3
[0292] Здесь, I(k) указывает значение сигнала яркости с компенсацией движения опорного кадра k (k=0, 1). Это уравнение оптического потока показывает то, что сумма (i) производной по времени значения сигнала яркости, (ii) произведения горизонтальной скорости и горизонтального компонента пространственного градиента опорного изображения и (iii) произведения вертикальной скорости и вертикального компонента пространственного градиента опорного изображения равна нулю. Вектор движения каждого блока, полученный, например, из списка объединения, может корректироваться в единицах пиксела, на основе комбинации уравнения оптического потока и эрмитовой интерполяции.
[0293] Следует отметить, что вектор движения может извлекаться на стороне декодера с использованием способа, отличного от извлечения вектора движения, на основе модели при условии равномерного прямолинейного движения. Например, вектор движения может извлекаться в единицах субблока на основе векторов движения соседних блоков.
[0294] Компенсация движения > LIC
Далее описывается пример режима, в котором прогнозное изображение (прогнозирование) формируется посредством использования процесса компенсации локальной освещенности (LIC).
[0295] Фиг. 39 является концептуальной схемой для иллюстрации одного примера способа формирования прогнозных изображений с использованием процесса коррекции яркости, выполняемого посредством LIC-процесса.
[0296] Во-первых, MV извлекается из кодированного опорного кадра, и опорное изображение, соответствующее текущему блоку, получается.
[0297] Затем, информация, указывающая то, как значение сигнала яркости изменено между опорным кадром и текущим кадром, извлекается для текущего блока. Это извлечение выполняется на основе пиксельных значений сигнала яркости для кодированной левой соседней опорной области (окружающей опорной области) и кодированной верхней соседней опорной области (окружающей опорной области) и пиксельного значения сигнала яркости в соответствующей позиции в опорном кадре, указываемом посредством извлеченного MV. Параметр коррекции яркости вычисляется посредством использования информации, указывающей то, как изменено значение сигнала яркости.
[0298] Прогнозное изображение для текущего блока формируется посредством выполнения процесса коррекции яркости, в котором параметр коррекции яркости применяется к опорному изображению в опорном кадре, указываемом посредством MV.
[0299] Следует отметить, что форма окружающей опорной области, проиллюстрированной на фиг. 39, представляет собой всего один пример; окружающая опорная область может иметь другую форму.
[0300] Кроме того, хотя здесь описывается процесс, в котором прогнозное изображение формируется из одного опорного кадра, идентично могут описываться случаи, в которых прогнозное изображение формируется из множества опорных кадров. Прогнозное изображение может формироваться после выполнения процесса коррекции яркости опорных изображений, полученных из опорных кадров, идентично вышеописанному.
[0301] Один пример способа для определения того, следует или нет применять LIC-процесс, представляет собой способ для использования lic_flag, который представляет собой сигнал, указывающий то, следует или нет применять LIC-процесс. В качестве одного конкретного примера, кодер определяет то, принадлежит или нет текущий блок области, имеющей изменение яркости. Кодер задает lic_flag равным значению "1", когда блок принадлежит области, имеющей изменение яркости, и применяет LIC-процесс при кодировании и задает lic_flag равным значению "0", когда блок не принадлежит области, имеющей изменение яркости, и кодирует текущий блок без применения LIC-процесса. Декодер может декодировать lic_flag, записываемый в потоке, и декодировать текущий блок посредством переключения между применением и неприменением LIC-процесса в соответствии со значением флага.
[0302] Один пример другого способа определения того, следует или нет применять LIC-процесс, представляет собой способ определения в соответствии с тем, применен или нет LIC-процесс к окружающему блоку. В одном конкретном примере, когда режим объединения используется в текущем блоке, определяется то, применен или нет LIC-процесс при кодировании окружающего кодированного блока, выбранного после извлечения MV в процессе в режиме объединения. Согласно результату, кодирование выполняется посредством переключения между применением и неприменением LIC-процесса. Следует отметить, что также в этом примере, идентичные процессы применяются в процессах на стороне декодера.
[0303] Ниже подробно описывается вариант осуществления процесса коррекции яркости (LIC), описанного со ссылкой на фиг. 39.
[0304] Во-первых, модуль 126 внешнего прогнозирования извлекает вектор движения для получения опорного изображения, соответствующего текущему блоку, который должен кодироваться, из опорного кадра, который представляет собой кодированный кадр.
[0305] Затем, модуль 126 внешнего прогнозирования извлекает информацию, указывающую то, как значение сигнала яркости опорного кадра изменено на значение сигнала яркости текущего кадра, с использованием пиксельного значения сигнала яркости кодированной окружающей опорной области, которая является соседней слева от или выше текущего блока, и значения сигнала яркости в соответствующей позиции в опорном кадре, указываемом посредством вектора движения, и вычисляет параметр коррекции яркости. Например, предполагается, что пиксельное значение сигнала яркости данного пиксела в окружающей опорной области в текущем кадре составляет p0, и что пиксельное значение сигнала яркости пиксела, соответствующего данному пикселу в окружающей опорной области в опорном кадре, составляет p1. Модуль 126 внешнего прогнозирования вычисляет коэффициенты A и B для оптимизации A*p1+B=p0 в качестве параметра коррекции яркости для множества пикселов в окружающей опорной области.
[0306] Затем, модуль 126 внешнего прогнозирования выполняет процесс коррекции яркости с использованием параметра коррекции яркости для опорного изображения в опорном кадре, указываемом посредством вектора движения, чтобы формировать прогнозное изображение для текущего блока. Например, предполагается, что пиксельное значение сигнала яркости в опорном изображении составляет p2, и что скорректированное по яркости пиксельное значение сигнала яркости прогнозного изображения составляет p3. Модуль 126 внешнего прогнозирования формирует прогнозное изображение после подвергания процессу коррекции яркости посредством вычисления A*p2+B=p3 для каждого из пикселов в опорном изображении.
[0307] Следует отметить, что форма окружающей опорной области, проиллюстрированной на фиг. 39, представляет собой один пример; может использоваться другая форма, отличная от формы окружающей опорной области. Помимо этого, может использоваться часть окружающей опорной области, проиллюстрированной на фиг. 39. Например, область, имеющая определенное число пикселов, извлеченных из каждого из верхнего соседнего пиксела и левого соседнего пиксела, может использоваться в качестве окружающей опорной области. Определенное число пикселов может быть предварительно определено.
[0308] Помимо этого, окружающая опорная область не ограничена областью, которая является соседней с текущим блоком, и может представлять собой область, которая не является соседней с текущим блоком. В примере, проиллюстрированном на фиг. 39, окружающая опорная область в опорном кадре представляет собой область, указываемую посредством вектора движения в текущем кадре, из окружающей опорной области в текущем кадре. Тем не менее, также возможна область, указываемая посредством другого вектора движения. Например, другой вектор движения может представлять собой вектор движения в окружающей опорной области в текущем кадре.
[0309] Хотя здесь описываются операции, выполняемые посредством кодера 100, следует отметить, что декодер 200 типично выполняет аналогичные операции.
[0310] Следует отметить, что LIC-процесс может применяться не только к сигналу яркости, но также и к сигналу цветности. В это время, параметр коррекции может извлекаться отдельно для каждого из Y, Cb и Cr, или общий параметр коррекции может использоваться для любого из Y, Cb и Cr.
[0311] Помимо этого, LIC-процесс может применяться в единицах субблоков. Например, параметр коррекции может извлекаться с использованием окружающей опорной области в текущем субблоке и окружающей опорной области в опорном субблоке в опорном кадре, указываемом посредством MV текущего субблока.
[0312] Контроллер прогнозирования
Модуль 128 внешнего прогнозирования выбирает один из внутреннего прогнозного сигнала (сигнала, выводимого из модуля 124 внутреннего прогнозирования) и внешнего прогнозного сигнала (сигнала, выводимого из модуля 126 внешнего прогнозирования) и выводит выбранный сигнал в вычитатель 104 и сумматор 116 в качестве прогнозного сигнала.
[0313] Как проиллюстрировано на фиг. 1, в различных видах примеров кодера, контроллер 128 прогнозирования может выводить параметр прогнозирования, который вводится в энтропийный кодер 110. Энтропийный кодер 110 может формировать кодированный поток битов (или последовательность), на основе параметра прогнозирования, который вводится из контроллера 128 прогнозирования, и квантованных коэффициентов, которые вводятся из квантователя 108. Параметр прогнозирования может использоваться в декодере. Декодер может принимать и декодировать кодированный поток битов и выполнять процессы, идентичные процессам прогнозирования, выполняемым посредством модуля 124 внутреннего прогнозирования, модуля 126 внешнего прогнозирования и контроллера 128 прогнозирования. Параметр прогнозирования может включать в себя (i) прогнозный сигнал выбора (например, вектор движения, тип прогнозирования или режим прогнозирования, используемый посредством модуля 124 внутреннего прогнозирования или модуля 126 внешнего прогнозирования) или (ii) необязательный индекс, флаг или значение, которое основано на процессе прогнозирования, выполняемом в каждом из модуля 124 внутреннего прогнозирования, модуля 126 внешнего прогнозирования и контроллера 128 прогнозирования, или которое указывает процесс прогнозирования.
[0314] Пример монтажа кодера
Фиг. 40 является блок-схемой, иллюстрирующей пример монтажа кодера 100. Кодер 100 включает в себя процессор a1 и запоминающее устройство a2. Например, множество составляющих элементов кодера 100, проиллюстрированного на фиг. 1, смонтированы в процессоре a1 и запоминающем устройстве a2, проиллюстрированных на фиг. 40.
[0315] Процессор a1 представляет собой схему, которая выполняет обработку информации, и является доступным для запоминающего устройства a2. Например, процессор a1 представляет собой специализированную или общую электронную схему, которая кодирует видео. Процессор a1 может представлять собой процессор, такой как CPU. Помимо этого, процессор a1 может представлять собой совокупность множества электронных схем. Помимо этого, например, процессор a1 может выполнять роли двух или более составляющих элементов из множества составляющих элементов кодера 100, проиллюстрированного на фиг. 1 и т.д.
[0316] Запоминающее устройство a2 представляет собой специализированное или общее запоминающее устройство для сохранения информации, которая используется посредством процессора a1 для того, чтобы кодировать видео. Запоминающее устройство a2 может представлять собой электронную схему и может соединяться с процессором a1. Помимо этого, запоминающее устройство a2, может включаться в процессор a1. Помимо этого, запоминающее устройство a2 может представлять собой совокупность множества электронных схем. Помимо этого, запоминающее устройство a2 может представлять собой магнитный диск, оптический диск и т.п. либо может представляться как устройство хранения данных, носитель записи и т.п. Помимо этого, запоминающее устройство a2 может представлять собой энергонезависимое запоминающее устройство или энергозависимое запоминающее устройство.
[0317] Например, запоминающее устройство a2 может сохранять видео, которое должно кодироваться, или поток битов, соответствующий кодированному видео. Помимо этого, запоминающее устройство a2 может сохранять программу для инструктирования процессору a1 кодировать видео.
[0318] Помимо этого, например, запоминающее устройство a2 может выполнять роли двух или более составляющих элементов для сохранения информации из множества составляющих элементов кодера 100, проиллюстрированного на фиг. 1 и т.д. Например, запоминающее устройство a2 может выполнять роли запоминающего устройства 118 блоков и запоминающего устройства 122 кадров, проиллюстрированных на фиг. 1. Более конкретно, запоминающее устройство a2 может сохранять восстановленный блок, восстановленный кадр и т.д.
[0319] Следует отметить, что, в кодере 100, все из множества составляющих элементов, указываемых на фиг. 1 и т.д., могут не реализовываться, и все процессы, описанные выше, могут не выполняться. Часть составляющих элементов, указываемых на фиг. 1 и т.д., может включаться в другое устройство, или часть процессов, описанных выше, может выполняться посредством другого устройства.
[0320] Декодер
Далее описывается декодер, допускающий декодирование кодированного сигнала (кодированного потока битов), выводимого, например, из кодера 100, описанного выше. Фиг. 41 является блок-схемой, иллюстрирующей функциональную конфигурацию декодера 200 согласно варианту осуществления. Декодер 200 представляет собой видеодекодер, который декодирует видео в единицах блоков.
[0321] Как проиллюстрировано на фиг. 41, декодер 200 включает в себя энтропийный декодер 202, обратный квантователь 204, обратный преобразователь 206, сумматор 208, запоминающее устройство 210 блоков, контурный фильтр 212, запоминающее устройство 214 кадров, модуль 216 внутреннего прогнозирования, модуль 218 внешнего прогнозирования и контроллер 220 прогнозирования.
[0322] Декодер 200 реализуется, например, в качестве общего процессора и запоминающего устройства. В этом случае, когда программно-реализованная программа, сохраненная в запоминающем устройстве, выполняется посредством процессора, процессор функционирует в качестве энтропийного декодера 202, обратного квантователя 204, обратного преобразователя 206, сумматора 208, контурного фильтра 212, модуля 216 внутреннего прогнозирования, модуля 218 внешнего прогнозирования и контроллера 220 прогнозирования. Альтернативно, декодер 200 может реализовываться в качестве одной или более специализированных электронных схем, соответствующих энтропийному декодеру 202, обратному квантователю 204, обратному преобразователю 206, сумматору 208, контурному фильтру 212, модулю 216 внутреннего прогнозирования, модулю 218 внешнего прогнозирования и контроллеру 220 прогнозирования.
[0323] В дальнейшем в этом документе описывается полная последовательность операций процессов, выполняемых посредством декодера 200, и после этого описывается каждый из составляющих элементов, включенных в декодер 200.
[0324] Общая последовательность операций процесса декодирования
Фиг. 42 является блок-схемой последовательности операций способа, иллюстрирующей один пример полного процесса декодирования, выполняемого посредством декодера 200.
[0325] Во-первых, энтропийный декодер 202 декодера 200 идентифицирует шаблон разбиения блока, имеющего фиксированный размер (например, 128×128 пикселов) (этап Sp_1). Этот шаблон разбиения представляет собой шаблон разбиения, выбранный посредством кодера 100. Декодер 200 затем выполняет процессы этапа Sp_2-Sp_6 для каждого из множества блоков шаблона разбиения.
[0326] Другими словами, энтропийный декодер 202 декодирует (в частности, энтропийно декодирует) кодированные квантованные коэффициенты и параметр прогнозирования текущего блока, который должен декодироваться (также называется "текущим блоком") (этап Sp_2).
[0327] Затем, обратный квантователь 204 выполняет обратное квантование множества квантованных коэффициентов, и обратный преобразователь 206 выполняет обратное преобразование результата для того, чтобы восстанавливать множество остатков прогнозирования (т.е. разностный блок) (этап Sp_3).
[0328] Затем, процессор прогнозирования, включающий в себя все или часть модуля 216 внутреннего прогнозирования, модуля 218 внешнего прогнозирования и контроллера 220 прогнозирования, формирует прогнозный сигнал (также называется "блоком прогнозирования") текущего блока (этап Sp_4).
[0329] Затем, сумматор 208 суммирует блок прогнозирования с разностным блоком для того, чтобы формировать восстановленное изображение (также называется "декодированным блоком изображений") текущего блока (этап Sp_5).
[0330] Когда восстановленное изображение формируется, контурный фильтр 212 выполняет фильтрацию восстановленного изображения (этап Sp_6).
[0331] Декодер 200 затем определяет то, закончено или нет декодирование всего кадра (этап Sp_7). При определении того, что декодирование еще не закончено ("Нет" на этапе Sp_7), декодер 200 многократно выполняет процессы, начиная с этапа Sp_1.
[0332] Как проиллюстрировано, процессы этапов Sp_1-Sp_7 выполняются последовательно посредством декодера 200. Альтернативно, два или более из процессов могут выполняться параллельно, порядок обработки двух или более из процессов может модифицироваться, и т.д.
[0333] Энтропийный декодер
Энтропийный декодер 202 энтропийно декодирует кодированный поток битов. Более конкретно, например, энтропийный декодер 202 арифметически декодирует кодированный поток битов в двоичный сигнал. Энтропийный декодер 202 затем отменяет преобразование в двоичную форму двоичного сигнала. Вследствие этого, энтропийный декодер 202 выводит квантованные коэффициенты каждого блока в обратный квантователь 204. Энтропийный декодер 202 может выводить параметр прогнозирования, включенный в кодированный поток битов (см. фиг. 1), в модуль 216 внутреннего прогнозирования, модуль 218 внешнего прогнозирования и контроллер 220 прогнозирования. Модуль 216 внутреннего прогнозирования, модуль 218 внешнего прогнозирования и контроллер 220 прогнозирования в варианте осуществления допускают выполнение процессов прогнозирования, идентичных процессам прогнозирования, выполняемым посредством модуля 124 внутреннего прогнозирования, модуля 126 внешнего прогнозирования и контроллера 128 прогнозирования на стороне кодера.
[0334] Обратный квантователь
Обратный квантователь 204 обратно квантует квантованные коэффициенты блока, который должен декодироваться (в дальнейшем называется "текущим блоком"), которые представляют собой вводы из энтропийного декодера 202. Более конкретно, обратный квантователь 204 обратно квантует квантованные коэффициенты текущего блока на основе параметров квантования, соответствующих квантованным коэффициентам. Обратный квантователь 204 затем выводит обратно квантованные коэффициенты преобразования текущего блока в обратный преобразователь 206.
[0335] Обратный преобразователь
Обратный преобразователь 206 восстанавливает ошибки прогнозирования посредством обратного преобразования коэффициентов преобразования, которые представляют собой вводы из обратного квантователя 204.
[0336] Например, когда информация, синтаксически проанализированная из кодированного потока битов, указывает то, что EMT или AMT должно применяться (например, когда AMT-флаг является истинным), обратный преобразователь 206 обратно преобразует коэффициенты преобразования текущего блока на основе информации, указывающей синтаксически проанализированный тип преобразования.
[0337] Кроме того, например, когда информация, синтаксически проанализированная из кодированного потока битов, указывает то, что NSST должно применяться, обратный преобразователь 206 применяет вторичное обратное преобразование к коэффициентам преобразования.
[0338] Сумматор
Сумматор 208 восстанавливает текущий блок посредством суммирования ошибок прогнозирования, которые представляют собой вводы из обратного преобразователя 206, и прогнозных выборок, которые представляют собой вводы из контроллера 220 прогнозирования. Сумматор 208 затем выводит восстановленный блок в запоминающее устройство 210 блоков и контурный фильтр 212.
[0339] Запоминающее устройство блоков
Запоминающее устройство 210 блоков представляет собой устройство хранения данных для сохранения блоков в кадре, который должен декодироваться (в дальнейшем называется "текущим кадром"), и на который следует ссылаться при внутреннем прогнозировании. Более конкретно, запоминающее устройство 210 блоков сохраняет восстановленные блоки, выводимые из сумматора 208.
[0340] Контурный фильтр
Контурный фильтр 212 применяет контурный фильтр к блокам, восстановленным посредством сумматора 208, и выводит фильтрованные восстановленные блоки в запоминающее устройство 214 кадров, устройство отображения и т.д.
[0341] Когда информация, указывающая включение или выключение ALF, синтаксически проанализированная из кодированного потока битов, указывает то, что ALF включен, один фильтр из множества фильтров выбирается на основе направления и активности локальных градиентов, и выбранный фильтр применяется к восстановленному блоку.
[0342] Запоминающее устройство кадров
Запоминающее устройство 214 кадров, например, представляет собой устройство хранения данных для сохранения опорных кадров для использования при внешнем прогнозировании, и также называется "буфером кадров". Более конкретно, запоминающее устройство 214 кадров сохраняет восстановленный блок, фильтрованный посредством контурного фильтра 212.
[0343] Процессор прогнозирования (модуль внутреннего прогнозирования, модуль внешнего прогнозирования, контроллер прогнозирования)
Фиг. 43 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством процессора прогнозирования декодера 200. Следует отметить, что процессор прогнозирования включает в себя все или часть следующих составляющих элементов: модуль 216 внутреннего прогнозирования; модуль 218 внешнего прогнозирования; и контроллер 220 прогнозирования.
[0344] Процессор прогнозирования формирует прогнозное изображение текущего блока (этап Sq_1). Это прогнозное изображение также называется "прогнозным сигналом" или "блоком прогнозирования". Следует отметить, что прогнозный сигнал, например, представляет собой внутренний прогнозный сигнал или внешний прогнозный сигнал. В частности, процессор прогнозирования формирует прогнозное изображение текущего блока с использованием восстановленного изображения, которое уже получено через формирование блока прогнозирования, формирование разностного блока, формирование блока коэффициентов, восстановление разностного блока и формирование декодированного блока изображений.
[0345] Восстановленное изображение, например, может представлять собой изображение в опорном кадре или изображение декодированного блока в текущем кадре, который представляет собой кадр, включающий в себя текущий блок. Декодированный блок в текущем кадре, например, представляет собой соседний блок относительно текущего блока.
[0346] Фиг. 44 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством процессора прогнозирования декодера 200.
[0347] Процессор прогнозирования определяет способ или режим для формирования прогнозного изображения (этап Sr_1). Например, способ или режим может определяться, например, на основе параметра прогнозирования и т.д.
[0348] При определении первого способа в качестве режима для формирования прогнозного изображения, процессор прогнозирования формирует прогнозное изображение согласно первому способу (этап Sr_2a). При определении второго способа в качестве режима для формирования прогнозного изображения, процессор прогнозирования формирует прогнозное изображение согласно второму способу (этап Sr_2b). При определении третьего способа в качестве режима для формирования прогнозного изображения, процессор прогнозирования формирует прогнозное изображение согласно третьему способу (этап Sr_2c).
[0349] Первый способ, второй способ и третий способ могут представлять собой взаимно различные способы для формирования прогнозного изображения. Каждый из первого-третьего способов может представлять собой способ внешнего прогнозирования, способ внутреннего прогнозирования или другой способ прогнозирования. Вышеописанное восстановленное изображение может использоваться в этих способах прогнозирования.
[0350] Модуль внутреннего прогнозирования
Модуль 216 внутреннего прогнозирования формирует прогнозный сигнал (внутренний прогнозный сигнал) посредством выполнения внутреннего прогнозирования посредством ссылки на блок или блоки в текущем кадре, сохраненном в запоминающем устройстве 210 блоков, на основе режима внутреннего прогнозирования, синтаксически проанализированного из кодированного потока битов. Более конкретно, модуль 216 внутреннего прогнозирования формирует внутренний прогнозный сигнал посредством выполнения внутреннего прогнозирования посредством ссылки на выборки (например, значения сигнала яркости и/или сигнала цветности) блока или блоков, соседних с текущим блоком, и затем выводит внутренний прогнозный сигнал в контроллер 220 прогнозирования.
[0351] Следует отметить, что, когда выбирается режим внутреннего прогнозирования, в котором ссылаются на блок сигналов яркости при внутреннем прогнозировании блока сигналов цветности, модуль 216 внутреннего прогнозирования может прогнозировать компонент сигнала цветности текущего блока на основе компонента сигнала яркости текущего блока.
[0352] Кроме того, когда информация, синтаксически проанализированная из кодированного потока битов, указывает то, что PDPC должна применяться, модуль 216 внутреннего прогнозирования корректирует внутренне прогнозированные пиксельные значения на основе горизонтальных/вертикальных опорных пиксельных градиентов.
[0353] Модуль внешнего прогнозирования
Модуль 218 внешнего прогнозирования прогнозирует текущий блок посредством ссылки на опорный кадр, сохраненный в запоминающем устройстве 214 кадров. Внешнее прогнозирование выполняется в единицах текущего блока или субблока (например, блок 4×4) в текущем блоке. Например, модуль 218 внешнего прогнозирования формирует внешний прогнозный сигнал текущего блока или субблока посредством выполнения компенсации движения посредством использования информации движения (например, вектора движения), синтаксически проанализированной из кодированного потока битов (например, параметра прогнозирования, выводимого из энтропийного декодера 202), и выводит внешний прогнозный сигнал в контроллер 220 прогнозирования.
[0354] Следует отметить, что, когда информация, синтаксически проанализированная из кодированного потока битов, указывает то, что OBMC-режим должен применяться, модуль 218 внешнего прогнозирования формирует внешний прогнозный сигнал с использованием информации движения соседнего блока в дополнение к информации движения текущего блока, полученной из оценки движения.
[0355] Кроме того, когда информация, синтаксически проанализированная из кодированного потока битов, указывает применение FRUC-режима, модуль 218 внешнего прогнозирования извлекает информацию движения посредством выполнения оценки движения в соответствии со способом сопоставления с шаблоном (билатеральное сопоставление или сопоставление с эталоном), синтаксически проанализированным из кодированного потока битов. Модуль 218 внешнего прогнозирования затем выполняет компенсацию движения (прогнозирование) с использованием извлеченной информации движения.
[0356] Кроме того, когда BIO-режим должен применяться, модуль 218 внешнего прогнозирования извлекает вектор движения на основе модели при условии равномерного прямолинейного движения. Кроме того, когда информация, синтаксически проанализированная из кодированного потока битов, указывает то, что аффинный режим прогнозирования с компенсацией движения должен применяться, модуль 218 внешнего прогнозирования извлекает вектор движения каждого субблока на основе векторов движения соседних блоков.
[0357] MV-извлечение > нормальный внешний режим
Когда информация, синтаксически проанализированная из кодированного потока битов, указывает то, что нормальный внешний режим должен применяться, модуль 218 внешнего прогнозирования извлекает MV на основе информации, синтаксически проанализированной из кодированного потока битов, и выполняет компенсацию движения (прогнозирование) с использованием MV.
[0358] Фиг. 45 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего прогнозирования в нормальном внешнем режиме в декодере 200.
[0359] Модуль 218 внешнего прогнозирования декодера 200 выполняет компенсацию движения для каждого блока. Модуль 218 внешнего прогнозирования получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества декодированных блоков, временно или пространственно окружающих текущий блок (этап Ss_1). Другими словами, модуль 218 внешнего прогнозирования формирует список возможных MV-вариантов.
[0360] Затем, модуль 218 внешнего прогнозирования извлекает N (целое число в 2 или более) возможных MV-вариантов из множества возможных MV-вариантов, полученных на этапе Ss_1, в качестве возможных вариантов предикторов векторов движения (также называются "возможными вариантами MV-предикторов") согласно определенному порядку приоритетов (этап Ss_2). Следует отметить, что порядок приоритетов может определяться заранее для каждого из N возможных вариантов MV-предикторов.
[0361] Затем, модуль 218 внешнего прогнозирования декодирует информацию выбора предиктора вектора движения из входного потока (т.е. кодированного потока битов) и выбирает один возможный вариант MV-предиктора из N возможных вариантов MV-предикторов с использованием декодированной информации выбора предиктора вектора движения, в качестве вектора движения (также называется "MV-предиктором") текущего блока (этап Ss_3).
[0362] Затем, модуль 218 внешнего прогнозирования декодирует MV-разность из входного потока и извлекает MV для текущего блока посредством суммирования значения разности, которое представляет собой декодированную MV-разность, и выбранного предиктора вектора движения (этап Ss_4).
[0363] В завершение, модуль 218 внешнего прогнозирования формирует прогнозное изображение для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и декодированного опорного кадра (этап Ss_5).
[0364] Контроллер прогнозирования
Контроллер 220 прогнозирования выбирает внутренний прогнозный сигнал или внешний прогнозный сигнал и выводит выбранный прогнозный сигнал в сумматор 208. В целом, конфигурации, функции и процессы контроллера 220 прогнозирования, модуля 216 внутреннего прогнозирования и модуля 218 внешнего прогнозирования на стороне декодера могут соответствовать конфигурациям, функциям и процессам контроллера 128 прогнозирования, модуля 124 внутреннего прогнозирования и модуля 126 внешнего прогнозирования на стороне кодера.
[0365] Пример монтажа декодера
Фиг. 46 является блок-схемой, иллюстрирующей пример монтажа декодера 200. Декодер 200 включает в себя процессор b1 и запоминающее устройство b2. Например, множество составляющих элементов декодера 200, проиллюстрированного на фиг. 41, смонтированы в процессоре b1 и запоминающем устройстве b2, проиллюстрированных на фиг. 46.
[0366] Процессор b1 представляет собой схему, которая выполняет обработку информации, и является доступным для запоминающего устройства b2. Например, процессор b1 представляет собой специализированную или общую электронную схему, которая декодирует видео (т.е. кодированный поток битов). Процессор b1 может представлять собой процессор, такой как CPU. Помимо этого, процессор b1 может представлять собой совокупность множества электронных схем. Помимо этого, например, процессор b1 может выполнять роли двух или более составляющих элементов из множества составляющих элементов декодера 200, проиллюстрированного на фиг. 41 и т.д.
[0367] Запоминающее устройство b2 представляет собой специализированное или общее запоминающее устройство для сохранения информации, которая используется посредством процессора b1 для того, чтобы декодировать кодированный поток битов. Запоминающее устройство b2 может представлять собой электронную схему и может соединяться с процессором b1. Помимо этого, запоминающее устройство b2, может включаться в процессор b1. Помимо этого, запоминающее устройство b2 может представлять собой совокупность множества электронных схем. Помимо этого, запоминающее устройство b2 может представлять собой магнитный диск, оптический диск и т.п. либо может представляться как устройство хранения данных, носитель записи и т.п. Помимо этого, запоминающее устройство b2 может представлять собой энергонезависимое запоминающее устройство или энергозависимое запоминающее устройство.
[0368] Например, запоминающее устройство b2 может сохранять видео или поток битов. Помимо этого, запоминающее устройство b2 может сохранять программу для инструктирования процессору b1 декодировать кодированный поток битов.
[0369] Помимо этого, например, запоминающее устройство b2 может выполнять роли двух или более составляющих элементов для сохранения информации из множества составляющих элементов декодера 200, проиллюстрированного на фиг. 41 и т.д. В частности, запоминающее устройство b2 может выполнять роли запоминающего устройства 210 блоков и запоминающего устройства 214 кадров, проиллюстрированных на фиг. 41. Более конкретно, запоминающее устройство b2 может сохранять восстановленный блок, восстановленный кадр и т.д.
[0370] Следует отметить, что, в декодере 200, все из множества составляющих элементов, проиллюстрированных на фиг. 41 и т.д., могут не реализовываться, и все процессы, описанные выше, могут не выполняться. Часть составляющих элементов, указываемых на фиг. 41 и т.д., может включаться в другое устройство, или часть процессов, описанных выше, может выполняться посредством другого устройства.
[0371] Определения терминов
Соответствующие термины могут задаваться так, как указано ниже в качестве примеров.
[0372] Кадр представляет собой массив выборок сигнала яркости в монохромном формате либо массив выборок сигнала яркости и два соответствующих массива выборок сигнала цветности в цветовом формате 4:2:0, 4:2:2 и 4:4:4. Кадр может представлять собой либо кадр, либо поле.
[0373] Кадр представляет собой композицию верхнего поля и нижнего поля, при этом строки 0, 2, 4,..., выборок инициируются из верхнего поля, и строки 1, 3, 5,..., выборок инициируются из нижнего поля.
[0374] Слайс представляет собой целое число единиц дерева кодирования, содержащихся в одном независимом сегменте слайсов и всех последующих зависимых сегментах слайсов (если таковые имеются), которые предшествуют следующему независимому сегменту слайсов (если таковые имеются) в идентичной единице доступа.
[0375] Тайл представляет собой прямоугольную область блоков дерева кодирования в конкретном столбце тайлов и конкретной строке тайлов в кадре. Тайл может представлять собой прямоугольную область кадра, которая должна иметь возможность декодироваться и кодироваться независимо, хотя по-прежнему может применяться контурная фильтрация по краям тайлов.
[0376] Блок представляет собой массив MXN (M столбцов на N строк) выборок или массив MXN коэффициентов преобразования. Блок может представлять собой квадратную или прямоугольную область пикселов, включающую в себя одну матрицу сигналов яркости и две матрицы сигналов цветности.
[0377] Единица дерева кодирования (CTU) может представлять собой блок дерева кодирования выборок сигнала яркости кадра, который имеет три массива выборок, или два соответствующих блока дерева кодирования выборок сигнала цветности. Альтернативно, CTU может представлять собой блок дерева кодирования выборок одного из монохромного кадра и кадра, который кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для того, чтобы кодировать выборки.
[0378] Суперблок может представлять собой квадратный блок в 64×64 пикселов, который состоит из или 1 или 2 блоков информации режима или рекурсивно сегментируется на четыре блока 32×32, которые сами дополнительно могут сегментироваться.
[0379] Описание структуры BDOF(BIO)-процесса
Структура BDOF(BIO)-процесса описывается снова со ссылкой на фиг. 38, 47 и 48.
[0380] Фиг. 47 является блок-схемой последовательности операций способа, указывающей один пример внешнего прогнозирования согласно BIO. Помимо этого, фиг. 48 является схемой, иллюстрирующей один пример функциональной конфигурации модуля 126 внешнего прогнозирования, который выполняет внешнее прогнозирование согласно BIO.
[0381] Как проиллюстрировано на фиг. 48, модуль 126 внешнего прогнозирования включает в себя, например, запоминающее устройство 126a, модуль 126b извлечения интерполированных изображений, модуль 126c извлечения градиентных изображений, модуль 126d извлечения оптических потоков, модуль 126e извлечения значений коррекции и корректор 126f прогнозных изображений. Следует отметить, что запоминающее устройство 126a может представлять собой запоминающее устройство 122 кадров.
[0382] Модуль 126 внешнего прогнозирования извлекает два вектора (M0, M1) движения с использованием двух опорных кадров (Ref0, Ref1), отличающихся от кадра (Cur Pic), включающего в себя текущий блок. Модуль 126 внешнего прогнозирования затем извлекает прогнозное изображение для текущего блока с использованием двух векторов (M0, M1) движения (этап Sy_1). Следует отметить, что вектор M0 движения представляет собой вектор (MVx0, MVy0) движения, соответствующий опорному кадру Ref0, и вектор M1 движения представляет собой вектор (MVx1, MVy1) движения, соответствующий опорному кадру Ref0.
[0383] Затем, модуль 126b извлечения интерполированных изображений извлекает интерполированное изображение I0 для текущего блока с использованием вектора M0 движения и опорного кадра L0 со ссылкой на запоминающее устройство 126a. Помимо этого, модуль 126b извлечения интерполированных изображений извлекает интерполированное изображение I1 для текущего блока с использованием вектора M1 движения и опорного кадра L1 со ссылкой на запоминающее устройство 126a (этап Sy_2). Здесь, интерполированное изображение I0 представляет собой изображение, включенное в опорный кадр Ref0, и которое должно извлекаться для текущего блока, и интерполированное изображение I1 представляет собой изображение, включенное в опорный кадр Ref0, и которое должно извлекаться для текущего блока. Каждое из интерполированного изображения I0 и интерполированного изображения I1 может иметь размер, идентичный размеру текущего блока. Альтернативно, каждое из интерполированного изображения I0 и интерполированного изображения I1 может представлять собой изображение, большее текущего блока, чтобы надлежащим образом извлекать градиентное изображение, которое описывается ниже. Кроме того, интерполированное изображение I0 и интерполированное изображение I1 могут включать в себя векторы (M0, M1) движения, опорные кадры (L0, L1) и прогнозное изображение, извлекаемые посредством применения фильтра для компенсации движения.
[0384] Помимо этого, модуль 126c извлечения градиентных изображений извлекает градиентные изображения (Ix0, Ix1, Iy0, Iy1) текущего блока из интерполированного изображения I0 и интерполированного изображения I1 (этап Sy_3). Следует отметить, что градиентные изображения в горизонтальном направлении представляют собой (Ix0, Ix1), и градиентные изображения в вертикальном направлении представляют собой (Iy0, Iy1). Модуль 126c извлечения градиентных изображений может извлекать градиентные изображения, например, посредством применения градиентного фильтра к интерполированным изображениям. Градиентные изображения могут представлять собой градиентные изображения, каждое из которых указывает величину пространственного изменения пиксельного значения вдоль горизонтального направления или вертикального направления.
[0385] Затем, модуль 126d извлечения оптических потоков извлекает, для каждого субблока текущего блока, оптический поток (vx, vy), который представляет собой вышеописанный вектор скорости, с использованием интерполированных изображений (I0, I1) и градиентных изображений (Ix0, Ix1, Iy0, Iy1) (этап Sy_4). Оптический поток представляет собой коэффициент для коррекции величины пространственного пиксельного перемещения и может называться "локальным оцененным значением движения", "скорректированным вектором движения" или "скорректированным весовым вектором". В качестве одного примера, субблок может представлять собой пиксельную суб-CU 4×4. Следует отметить, что оптический поток может извлекаться не в единицах субблоков, а в других единицах, например, в единицах пиксела.
[0386] Затем, модуль 126 внешнего прогнозирования корректирует прогнозное изображение для текущего блока с использованием оптического потока (vx, vy). Например, модуль 126e извлечения значений коррекции извлекает значение коррекции для значения пиксела, включенного в текущий блок, с использованием оптического потока (vx, vy) (этап Sy_5). Корректор 126f прогнозных изображений затем может корректировать прогнозное изображение для текущего блока с использованием значения коррекции (этап Sy_6). Следует отметить, что значение коррекции может извлекаться в единицах пиксела либо может извлекаться в единицах множества пикселов или в единицах субблоков.
[0387] Следует отметить, что поток BIO-процесса не ограничен процессом, раскрытым на фиг. 47. Только часть процессов, раскрытая на фиг. 47, может выполняться, либо другой процесс может добавляться или использоваться в качестве замены, либо процессы могут выполняться в другом порядке обработки.
[0388] Например, BDOF(BIO) может задаваться как процесс формирования скорректированного прогнозного изображения с использованием градиента опорного блока. Альтернативно, BDOF может задаваться как процесс формирования прогнозного изображения с использованием градиентов двух опорных блоков. Альтернативно, BDOF может задаваться как процесс формирования прогнозного изображения с использованием градиента в режиме, отличающемся от аффинного режима. Альтернативно, BDOF может задаваться как процесс оптического потока в режиме, отличающемся от аффинного режима. Здесь, градиент означает пространственный градиент пиксельного значения.
[0389] Первый конкретный пример BIO
Далее описывается первый конкретный пример процесса декодирования на основе BIO со ссылкой на фиг. 49, 50 и 51. Например, декодер 200 вычисляет BIO-параметр из двух опорных блоков, которые подвергаются компенсации движения, и декодирует текущий блок с использованием вычисленного BIO-параметра. BIO-параметр представляет собой параметр, соответствующий оптическому потоку, описанному выше. BIO-параметр также называться "локальным оцененным значением движения", "скорректированным вектором движения", "скорректированным MV-значением", "скорректированным взвешенным вектором движения" или "значением BIO-коррекции".
[0390] Фиг. 49 является блок-схемой последовательности операций способа, указывающей первый конкретный пример процесса декодирования на основе BIO. Фиг. 50 является концептуальной схемой, иллюстрирующей пример вычисления значений горизонтального градиента, которые представляют собой значения градиентов в горизонтальном направлении. Фиг. 51 является концептуальной схемой, иллюстрирующей пример вычисления значений вертикального градиента, которые представляют собой значения градиентов в вертикальном направлении.
[0391] Во-первых, декодер 200 вычисляет первую сумму для текущего блока, с использованием значения горизонтального градиента первого опорного блока и значения горизонтального градиента второго опорного блока (S1001). Текущий блок может представлять собой субблок текущей единицы кодирования (текущая CU), как проиллюстрировано на фиг. 50 и 51.
[0392] Первый опорный блок представляет собой блок, на который необходимо ссылаться при декодировании текущего блока, и задается в опорном кадре L0 посредством текущего блока или первого вектора движения текущей CU. Второй опорный блок представляет собой блок, на который необходимо ссылаться при декодировании текущего блока, и задается в опорном кадре L1 посредством текущего блока или второго вектора движения текущей CU.
[0393] По существу, опорный кадр L0 и опорный кадр L1 представляют собой два различных опорных кадра, и первый опорный блок и второй опорный блок представляют собой два различных опорных блока. Помимо этого, здесь, первый опорный блок и второй опорный блок, используемые здесь, регулируются, соответственно, с субпиксельной точностью с использованием фильтра для компенсации движения и имеют размер, идентичный размеру текущего блока.
[0394] Когда текущий блок представляет собой субблок в текущей единице кодирования, каждый из первого опорного блока и второго опорного блока может представлять собой субблок опорного блока в текущей единице кодирования.
[0395] Другими словами, множество пиксельных значений в опорном кадре L0 на фиг. 50 и 51 могут представлять собой множество пиксельных значений в блоке, заданном в качестве опорного блока в текущей единице кодирования, для опорного кадра L0. Аналогично, множество пиксельных значений в опорном кадре L1 на фиг. 50 и 51 могут представлять собой множество пиксельных значений в блоке, заданном в качестве опорного блока в текущей единице кодирования, для опорного кадра L1.
[0396] Декодер 200 вычисляет первую сумму с использованием значения горизонтального градиента вышеуказанного первого опорного блока и значения горизонтального градиента вышеуказанного второго опорного блока. Декодер 200 может вычислять первую сумму с использованием не только значения горизонтального градиента первого опорного блока и значения горизонтального градиента второго опорного блока, но также и значения горизонтального градиента соседней зоны, которая граничит с первым опорным блоком, и значения горизонтального градиента соседней зоны, которая граничит со вторым опорным блоком. Выражения (3.1) и (3.2), указываемые ниже, указывают пример способа для процесса вычисления второй суммы.
[0397] Математическое выражение 4
[0398] Математическое выражение 5
[0399] Здесь, x обозначает умножение, и+обозначает суммирование. Помимо этого, знак обозначает знак "плюс" или "минус". В частности, знак обозначает a в качестве значения со знаком "плюс" и -1 в качестве значения со знаком "минус". В частности, знак обозначает, например, следующее.
[0400] Математическое выражение 6
[0401] Как результат, sign (Gx[i, j]) x Gx[i, j] становится Gx[i, j] без изменения знака, когда Gx[i, j] представляет собой значение со знаком "плюс", и становится -Gx[i, j], когда Gx[i, j] представляет собой значение со знаком "минус". Таким образом, вычисление является эквивалентным извлечению абсолютного значения (abs) Gx[i, j]).
[0402] В выражении (3.1), Ix0 обозначает значение горизонтального градиента в первом опорном блоке в опорном кадре L0, и Ix1 обозначает значение горизонтального градиента во втором опорном блоке в опорном кадре L1.
[0403] Пример фильтра горизонтального градиента для получения значений горизонтального градиента представляет собой трехотводный фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1]. Значение горизонтального градиента в первом опорном блоке вычисляется посредством применения фильтра горизонтального градиента ко множеству опорных пикселов в первом опорном блоке. Значение горизонтального градиента во втором опорном блоке вычисляется посредством применения фильтра горизонтального градиента ко множеству опорных пикселов во втором опорном блоке.
[0404] В примере, проиллюстрированном на фиг. 50, значение Ix0 горизонтального градиента пиксела, расположенного в позиции [3, 2] в первом опорном блоке, вычисляется как матричное произведение [-1, 0, 1]T[2, 3, 5], и результирующее значение равно 3. Значение Ix1 горизонтального градиента пиксела, расположенного в позиции [3, 2] во втором опорном блоке, вычисляется как матричное произведение [-1, 0, 1]T[5, 3, 2], и результирующее значение равно -2. Следует отметить, что [a, b, c] обозначает матрицу, имеющую три строки и один столбец.
[0405] В выражении (3.2), sGx обозначает первую сумму и вычисляется как сумма абсолютных значений Gx для окна, обозначаемого в качестве Ω. Размер окна Ω может быть идентичным размеру текущего блока. Альтернативно, размер окна Ω может быть больше размера текущего блока. Во втором случае, значение Gx в позиции, граничащей с текущим блоком, включается в процесс вычисления первой суммы.
[0406] Как и в случае первой суммы, которая представляет собой сумму значений горизонтального градиента, декодер 200 вычисляет вторую сумму для текущего блока, с использованием значения вертикального градиента первого опорного блока и значения вертикального градиента второго опорного блока (S1002). Выражения (3.3) и (3.4), указываемые ниже, указывают пример способа для процесса вычисления второй суммы.
[0407] Математическое выражение 7
[0408] Математическое выражение 8
[0409] В выражении (3.3), Iy0 обозначает значение вертикального градиента в первом опорном блоке в опорном кадре L0, и Iy1 обозначает значение вертикального градиента во втором опорном блоке в опорном кадре L1.
[0410] Пример фильтра вертикального градиента для получения значений вертикального градиента представляет собой трехотводный фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1]. Значение вертикального градиента в первом опорном блоке вычисляется посредством применения фильтра вертикального градиента ко множеству опорных пикселов в первом опорном блоке. Значение вертикального градиента во втором опорном блоке вычисляется посредством применения фильтра вертикального градиента ко множеству опорных пикселов во втором опорном блоке.
[0411] В примере, проиллюстрированном на фиг. 51, значение Iy0 вертикального градиента пиксела, расположенного в позиции [3, 2] в первом опорном блоке, вычисляется как матричное произведение [-1, 0, 1]T[2, 3, 5], и результирующее значение равно 3. Значение Iy1 вертикального градиента пиксела, расположенного в позиции [3, 2] во втором опорном блоке, вычисляется как матричное произведение [-1, 0, 1]T[5, 3, 2], и результирующее значение равно -2.
[0412] В выражении (3.4), sGy обозначает вторую сумму и вычисляется как сумма абсолютных значений Gy для окна, обозначаемого в качестве Ω. Когда размер окна Ω больше значения текущего блока, значение, Gy в позиции, граничащей с текущим блоком, включается в процесс вычисления второй суммы.
[0413] Затем, декодер 200 проводит оценку в отношении того, больше или нет первая сумма второй суммы (S1003). При проведении такой оценки, что первая сумма больше второй суммы ("Да" на S1003), декодер 200 определяет BIO-параметр для текущего блока вообще без использования значения вертикального градиента (S1004). Выражения (3.5)-(3.9) указывают пример процесса вычисления для определения BIO-параметра в этом случае. Согласно этим выражениям, BIO-параметр, обозначаемый в качестве u, вычисляется с использованием значений горизонтального градиента.
[0414] Математическое выражение 9
[0415] Математическое выражение 10
[0416] Математическое выражение 11
[0417] Математическое выражение 12
[0418] Математическое выражение 13
[0419] Здесь, "-" обозначает вычитание, и ">>" обозначает вычисление сдвига. Например, "a>>b" означает то, что a сдвигается вправо на b битов. Помимо этого, Bits, BIOShift и Clip, соответственно, указывают следующее. Следует отметить, что в нижеприведенном описании, ceil и floor обозначают десятичное округление в большую сторону и десятичное округление в меньшую сторону, соответственно.
[0420] Математическое выражение 14
[0421] Согласно выражению (3.5), sGxdI вычисляется как сумма произведений разностей между I0i, j и I1i, j и sign (Gx[i, j]) для окна Ω. Здесь, I0i, j обозначает пиксельное значение в позиции [i, j] в первом опорном блоке в опорном кадре L0, и I1i, j обозначает пиксельное значение в позиции [i, j] во втором опорном блоке в опорном кадре L1. I0i, j и I1i, j могут представляться просто в качестве I0 и I1. BIO-параметр u вычисляется с использованием sGxdI и sGx согласно выражениям (3.6)-(3.9).
[0422] При проведении такой оценки, что первая сумма не превышает вторую сумму ("Нет" на S1003), декодер 200 определяет BIO-параметр u для текущего блока вообще без использования значения горизонтального градиента (S1005). Выражения (3.10)-(3.14) указывают пример процесса вычисления для определения BIO-параметра u в этом случае. Выражения (3.10)-(3.14) являются по существу идентичными выражениями (3.5)-(3.9) за исключением того, что BIO-параметр u вычисляется с использованием значений вертикального градиента в выражении (3.10)-(3.14).
[0423] Математическое выражение 15
[0424] Математическое выражение 16
[0425] Математическое выражение 17
[0426] Математическое выражение 18
[0427] Математическое выражение 19
[0428] Согласно выражению (3.10), sGydI вычисляется как сумма произведений разностей между I0i, j и I1i, j и sign (Gy[i, j]) для окна Ω. BIO-параметр u вычисляется с использованием sGydI и sGy согласно выражениям (3.11)-(3.14).
[0429] Декодер 200 затем декодирует текущий блок с использованием BIO-параметра u (S1006). В частности, декодер 200 формирует прогнозную выборку с использованием BIO-параметра u и декодирует текущий блок с использованием прогнозной выборки. Выражения (3.15) и (3.16) указывают пример процесса вычисления для формирования прогнозной выборки.
[0430] Математическое выражение 20
[0431] Математическое выражение 21
[0432] Когда определяется то, что первая сумма больше второй суммы ("Да" на S1003), выражение (3.15) используется. Когда определяется то, что первая сумма не превышает вторую сумму ("Нет" на S1003), выражение (3.16) используется.
[0433] Декодер 200 может повторять процессы (S1001-S1006) для всех субблоков в каждой из текущих CU.
[0434] Декодер 200 допускает повышение точности прогнозной выборки в текущем блоке с использованием BIO. Декодер 200 дополнительно допускает уменьшение увеличения объема вычислений, поскольку декодер 200 использует только одно из значений горизонтального градиента и значений вертикального градиента при вычислении BIO-параметра.
[0435] Вышеприведенные выражения представляют собой примеры. Выражения для вычисления BIO-параметра не ограничены вышеприведенными выражениями. Например, знак "плюс" или "минус", включенный в каждое выражение, может изменяться, или выражение, эквивалентное любому из вышеприведенных выражений, может использоваться. В частности, в качестве выражения, соответствующего выражениям (3.1) и (3.2), описанным выше, следующее выражение (4.1) может использоваться.
[0436] Математическое выражение 22
[0437] Помимо этого, например, в качестве выражения, соответствующего выражению (3.5), описанному выше, следующее выражение (4.2) может использоваться.
[0438] Математическое выражение 23
[0439] Например, в качестве выражения, соответствующего выражению (3.15), описанному выше, следующее выражение (4.3) может использоваться.
[0440] Математическое выражение 24
[0441] Выражения (3.6)-(3.9) фактически указывают деление и в силу этого могут представляться как выражение (4.4).
[0442] Математическое выражение 25
[0443] Выражения (4.1)-(4.4) являются практически идентичными выражениям (3.1), (3.2), (3.5)-(3.9) и (3.15), описанным выше.
[0444] Аналогично, в частности, в качестве выражения, соответствующего выражениям (3,3) и (3.4), описанным выше, следующее выражение (4.5) может использоваться.
[0445] Математическое выражение 26
[0446] Например, в качестве выражения, соответствующего выражению (3.10), описанному выше, следующее выражение (4.6) может использоваться.
[0447] Математическое выражение 27
[0448] Например, в качестве выражения, соответствующего выражению (3.16), описанному выше, следующее выражение (4.7) может использоваться.
[0449] Математическое выражение 28
[0450] Выражения (3.11)-(3.14) фактически указывают деление и в силу этого могут представляться как выражение (4.8).
[0451] Математическое выражение 29
[0452] Выражения (4.5)-(4.8) являются практически идентичными выражениям (3.3), (3.4), (3.10)-(3.14) и (3.16), описанным выше.
[0453] В вышеуказанной последовательности операций, значение горизонтального градиента или значение вертикального градиента используется на основе сравнения между первой суммой и второй суммой. Тем не менее, последовательности операций процесса декодирования не ограничены последовательностью операций, описанной выше. То, следует использовать значение горизонтального градиента или значение вертикального градиента, может определяться заранее посредством другого параметра кодирования и т.п. BIO-параметр может извлекаться с использованием значений горизонтального градиента, и BIO-параметр может извлекаться с использованием значений вертикального градиента без сравнения первой суммы и второй суммы. Альтернативно, только одна из первой суммы и второй суммы может вычисляться.
[0454] Даже без сравнения первой суммы и второй суммы, декодер 200 допускает уменьшение существенного умножения, которое требует большого объема вычислений в вычислениях, выполняемых для соответствующих пиксельных позиций, и извлечение множества параметров для формирования прогнозного изображения с небольшим объемом вычислений. В частности, хотя знаки "плюс" или "минус" в выражениях (3.2), (3.4), (3.5), (3.10), (4.1), (4.2), (4.5), (4.6) и т.д. изменяются, существенное умножение не используется. Соответственно, число существенных умножений в BIO-обработке может значительно уменьшаться.
[0455] Другими словами, декодер 200 допускает вычисление sGx, sGxdI, sGy и sGydI с небольшим объемом вычислений. Соответственно, декодер 200 допускает уменьшение объема обработки при декодировании.
[0456] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.
[0457] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.
[0458] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.
[0459] Второй конкретный пример BIO
Далее описывается второй конкретный пример процесса декодирования на основе BIO. Например, аналогично первому конкретному примеру, декодер 200 вычисляет BIO-параметр из двух опорных блоков, которые подвергаются компенсации движения, и декодирует текущий блок с использованием вычисленного BIO-параметра.
[0460] В этом конкретном примере, прогнозная выборка для декодирования текущего блока формируется согласно выражениям (5.1)-(5.8), указываемым ниже.
[0461] Математическое выражение 30
[0462] Математическое выражение 31
[0463] Математическое выражение 32
[0464] Математическое выражение 33
[0465] Математическое выражение 34
[0466] Математическое выражение 35
[0467] Математическое выражение 36
[0468] Математическое выражение 37
[0469] S1 в выражении (5.1) в этом конкретном примере соответствует sGx в выражении (3.2) в первом конкретном примере. Помимо этого, S2 в выражении (5.2) в этом конкретном примере соответствует sGy в выражении (3.4) в первом конкретном примере. Помимо этого, S3 в выражении (5.3) в этом конкретном примере соответствует sGxdI в выражении (3.5) в первом конкретном примере. Помимо этого, S4 в выражении (5.4) в этом конкретном примере соответствует sGydI в выражении (3.10) в конкретном примере.
[0470] Кроме того, vx и vy в выражениях (5.5)-(5.7) в этом конкретном примере соответствуют BIO-параметру и соответствуют u в выражениях (3.9) и (3.14) в первом конкретном примере.
[0471] В первом конкретном примере, изменение не вносится в знак "плюс" или "минус", и существенное умножение не выполняется при вычислении sGx, sGy, sGxdI и sGydI. В конкретном примере, существенное умножение выполняется при вычислении S1, S2, S3 и S4. Таким образом, хотя объем вычислений увеличивается, прогнозная выборка формируется с большей точностью. С другой стороны, объем вычислений уменьшается в первом конкретном примере.
[0472] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.
[0473] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.
[0474] Третий конкретный пример BIO
Далее описывается третий конкретный пример процесса декодирования на основе BIO со ссылкой на фиг. 52. Например, аналогично первому конкретному примеру, декодер 200 вычисляет по меньшей мере один BIO-параметр из двух опорных блоков, которые подвергаются компенсации движения, и декодирует текущий блок с использованием по меньшей мере одного вычисленного BIO-параметра.
[0475] Фиг. 52 является блок-схемой последовательности операций способа, указывающей третий конкретный пример процесса декодирования на основе BIO.
[0476] Во-первых, декодер 200 вычисляет первую сумму для текущего блока, с использованием значения горизонтального градиента первого опорного блока и значения горизонтального градиента второго опорного блока (S2001). Процесс вычисления первых сумм (S2001) в конкретном примере может быть идентичным процессу вычисления первых сумм (S1001) в первом конкретном примере. В частности, декодер 200 вычисляет sGx в качестве первой суммы согласно выражениям (6.1) и (6.2), которые являются идентичными выражениям (3.1) и (3.2) в первом конкретном примере.
[0477] Математическое выражение 38
[0478] Математическое выражение 39
[0479] Помимо этого, декодер 200 вычисляет вторую сумму для текущего блока, с использованием значения вертикального градиента первого опорного блока и значения вертикального градиента второго опорного блока (S2002). Процесс вычисления вторых сумм (S2002) в конкретном примере может быть идентичным процессу вычисления вторых сумм (S1002) в первом конкретном примере. В частности, декодер 200 вычисляет sGy в качестве второй суммы согласно выражениям (6.3) и (6.4), которые являются идентичными выражениям (3.3) и (3.4) в первом конкретном примере.
[0480] Математическое выражение 40
[0481] Математическое выражение 41
[0482] Затем, декодер 200 проводит оценку в отношении того, удовлетворяется или нет по меньшей мере одно из следующих условий: первая сумма и вторая сумма больше первого значения; и первая сумма и вторая сумма меньше второго значения (S2003). Первое значение может быть больше второго значения, меньше второго значения или идентичным второму значению. Первое значение и второе значение могут представляться как первое пороговое значение и второе пороговое значение, соответственно.
[0483] Например, когда первое значение=100 и второе значение=100 удовлетворяется, результаты проведения оценки на основе первой суммы и второй суммы являются такими, как указано ниже.
[0484] Первая сумма=300 и вторая сумма=50: Результат проведения оценки представляет собой "ложь".
Первая сумма=50 и вторая сумма=50: Результат проведения оценки представляет собой "истина".
Первая сумма=300 и вторая сумма=300: Результат проведения оценки представляет собой "истина".
Первая сумма=50 и вторая сумма=300: Результат проведения оценки представляет собой "ложь".
[0485] Когда результат проведения оценки представляет собой "истина" ("Да" на S2003), декодер 200 определяет два BIO-параметра для текущего блока с использованием значений горизонтального градиента и значений вертикального градиента (S2004). Выражения (6.5)-(6,8) указывают пример процесса вычисления для определения двух BIO-параметров в этом случае. Согласно этим выражениям, два BIO-параметра, обозначаемые в качестве u и v, вычисляются с использованием значений горизонтального градиента и значений вертикального градиента.
[0486] Математическое выражение 42
[0487] Математическое выражение 43
[0488] Математическое выражение 44
[0489] Математическое выражение 45
[0490] Выражения (6.5) и (6.6) являются идентичными выражениям (3.5) и (3.10) в первом конкретном примере, соответственно. BIO-параметр u извлекается с использованием sGxdI и sGx согласно выражению (6.7). BIO-параметр v вычисляется с использованием sGydI и sGy согласно выражению (6.8). BIO-параметры u и v могут вычисляться с использованием выражений (6.9) и (6.10), указываемых ниже, соответственно, вместо использования выражений (6.7) и (6.8), соответственно.
[0491] Математическое выражение 46
[0492] Математическое выражение 47
[0493] Когда результат проведения оценки представляет собой "ложь" ("Нет" на S2003), декодер 200 определяет один BIO-параметр для текущего блока без использования либо значения горизонтального градиента, либо значения вертикального градиента (S2005). Пример процесса вычисления для определения одного BIO-параметра в этом случае указывается ниже.
[0494] Например, декодер 200 проводит оценку в отношении того, больше или нет первая сумма второй суммы. В случае если первая сумма больше второй суммы, декодер 200 вычисляет только "u" в качестве BIO-параметра согласно выражениям (6.5) и (6.7) (или (6.9)). Другими словами, в этом случае, декодер 200 определяет BIO-параметр для текущего блока без использования значений вертикального градиента.
[0495] В противоположном случае, в котором первая сумма не превышает вторую сумму, декодер 200 вычисляет только "v" в качестве BIO-параметра согласно выражениям (6.6) и (6.8) (или (6.10)). Другими словами, в этом случае, декодер 200 определяет BIO-параметр для текущего блока без использования значений горизонтального градиента.
[0496] Альтернативно, например, декодер 200 может проводить оценку в отношении того, больше или нет первая сумма первого значения, и меньше или нет вторая сумма второго значения.
[0497] Когда первая сумма больше первого значения, и вторая сумма меньше второго значения, декодер 200 затем может определять только "u" в качестве BIO-параметра для текущего блока без использования значений вертикального градиента. Когда первая сумма не больше первого значения, и вторая сумма не меньше второго значения, декодер 200 затем может определять только "v" в качестве BIO-параметра для текущего блока без использования значений горизонтального градиента.
[0498] В завершение, декодер 200 затем декодирует текущий блок с использованием по меньшей мере одного BIO-параметра (S2006). В частности, декодер 200 формирует прогнозную выборку с использованием по меньшей мере одного из BIO-параметров u и v и декодирует текущий блок с использованием прогнозной выборки. Выражения (6.11)-(6.13) указывают пример процесса вычисления для формирования прогнозной выборки.
[0499] Математическое выражение 48
[0500] Математическое выражение 49
[0501] Математическое выражение 50
[0502] Когда результат проведения оценки на основе первой суммы, второй суммы, первого значения и второго значения (S2003) представляет собой "истина", выражение (6.11) используется. В случае если только "u" вычисляется, когда результат проведения оценки (S2003) представляет собой "ложь", выражение (6.12) используется. В случае если только "v" вычисляется, когда результат проведения оценки (S2003) представляет собой "ложь", выражение (6.13) используется.
[0503] Декодер 200 может повторять процессы (S2001-S2006) для всех субблоков в каждой из текущих CU.
[0504] Помимо этого, процесс проведения оценки, отличающийся от процесса проведения оценки (S2003), описанного выше, может использоваться. Например, декодер 200 может проводить оценку в отношении того, больше или нет первая сумма и вторая сумма первого значения.
[0505] В случае если первая сумма и вторая сумма больше первого значения, декодер 200 затем может определять два BIO-параметра для текущего блока с использованием значений горизонтального градиента и значений вертикального градиента. В случае если по меньшей мере одна из первой суммы и второй суммы не больше первого значения, декодер 200 может определять один BIO-параметр для текущего блока вообще без использования значения горизонтального градиента и значения вертикального градиента.
[0506] Альтернативно, например, декодер 200 может проводить оценку в отношении того, больше или нет первая сумма первого значения, и меньше или нет вторая сумма второго значения.
[0507] В случае если первая сумма больше первого значения, и вторая сумма больше второго значения, декодер 200 затем может определять два BIO-параметра для текущего блока с использованием значений горизонтального градиента и значений вертикального градиента. В случае если первая сумма не больше первого значения, или вторая сумма не больше второго значения, декодер 200 затем может определять один BIO-параметр для текущего блока вообще без использования значения горизонтального градиента или любого значения вертикального градиента.
[0508] Альтернативно, например, декодер 200 может определять то, удовлетворяется или нет по меньшей мере одно из следующих условий: первая сумма больше первого значения, и вторая сумма больше второго значения; и первая сумма меньше третьего значения, и вторая сумма меньше четвертого значения.
[0509] Когда по меньшей мере одно из двух условий удовлетворяется, декодер 200 затем может определять два BIO-параметра для текущего блока с использованием значений горизонтального градиента и значений вертикального градиента. Когда любое из двух условий не удовлетворяется, декодер 200 может определять один BIO-параметр для текущего блока без использования либо любого значения горизонтального градиента, либо любого значения вертикального градиента.
[0510] Декодер 200 допускает повышение точности прогнозной выборки в текущем блоке с использованием BIO. Помимо этого, декодер 200 может использовать только одно из значений горизонтального градиента и значений вертикального градиента на основе условия. Таким образом, декодер 200 допускает уменьшение увеличения объема вычислений.
[0511] Вышеприведенные выражения представляют собой примеры, и выражения для вычисления BIO-параметра не ограничены вышеприведенными выражениями. Например, знак "плюс" или "минус", включенный в каждое выражение, может изменяться, или выражение, эквивалентное любому из вышеприведенных выражений, может использоваться. В частности, в качестве выражения, соответствующего выражениям (6.1) и (6.2), описанным выше, следующее выражение (7.1) может использоваться.
[0512] Математическое выражение 51
[0513] Помимо этого, например, в качестве выражения, соответствующего выражению (6.5), описанному выше, следующее выражение (7.2) может использоваться.
[0514] Математическое выражение 52
[0515] Например, в качестве выражения, соответствующего выражению (6.12), описанному выше, следующее выражение (7.3) может использоваться.
[0516] Математическое выражение 53
[0517] Выражения (6.7) и (6.9) фактически указывают деление и в силу этого могут представляться как следующее выражение (7.4).
[0518] Математическое выражение 54
[0519] Выражения (7.1)-(7.4) являются практически идентичными выражениям (6.1), (6.2), (6.5), (6.7), (6.9) и (6.12), описанным выше.
[0520] Аналогично, в частности, в качестве выражения, соответствующего выражениям (6.3) и (6.4), описанным выше, следующее выражение (7.5) может использоваться.
[0521] Математическое выражение 55
[0522] Помимо этого, например, в качестве выражения, соответствующего выражению (6.6), описанному выше, следующее выражение (7.6) может использоваться.
[0523] Математическое выражение 56
[0524] Например, в качестве выражения, соответствующего выражению (6.13), описанному выше, следующее выражение (7.7) может использоваться.
[0525] Математическое выражение 57
[0526] Выражения (6.8) и (6.10) фактически указывают деление и в силу этого могут представляться как следующее выражение (7.8).
[0527] Математическое выражение 58
[0528] Выражения (7.5)-(7,8) являются практически идентичными выражениям (6.3), (6.4), (6.6), (6.8), (6.10) и (6.13), описанным выше. Например, в качестве выражения, соответствующего выражению (6.11), описанному выше, следующее выражение (7.9) может использоваться. Следующее выражение (7.9) является практически идентичным выражению (6.11), описанному выше.
[0529] Математическое выражение 59
[0530] Помимо этого, в вышеуказанной последовательности операций по меньшей мере одно из значений горизонтального градиента и значений вертикального градиента используется на основе первой суммы и второй суммы в вышеуказанной последовательности операций, последовательности операций процесса декодирования не ограничены вышеописанным последовательностью операций. Также целесообразно то, что то, следует или нет использовать значения горизонтального градиента, значения вертикального градиента либо как значения горизонтального градиента, так и значения вертикального градиента, может задаваться посредством другого параметра кодирования и т.п.
[0531] Независимо от первой суммы и второй суммы, по меньшей мере один BIO-параметр может извлекаться с использованием значений горизонтального градиента, значений вертикального градиента либо как значений горизонтального градиента, так и значений вертикального градиента.
[0532] Независимо от первой суммы и второй суммы, согласно выражениям, описанным выше, декодер 200 допускает уменьшение существенного умножения, которое требует большого объема вычислений в вычислениях, выполняемых для соответствующих пиксельных позиций, и извлечение множества параметров для формирования прогнозного изображения с небольшим объемом вычислений. В частности, хотя знаки "плюс" или "минус" в выражениях (6.2), (6.4), (6.5), (6.6), (7.1), (7.2), (7.5), (7.6) и т.д. изменяются, существенное умножение не используется. Соответственно, число существенных умножений в BIO-обработке может значительно уменьшаться.
[0533] Другими словами, декодер 200 допускает вычисление sGx, sGxdI, sGy и sGydI с небольшим объемом вычислений. Соответственно, декодер 200 допускает уменьшение объема обработки при декодировании. В частности, независимо от первой суммы и второй суммы, декодер 200 может извлекать по меньшей мере один BIO-параметр с использованием значений горизонтального градиента и значений вертикального градиента. Таким образом, декодер 200 допускает надлежащее формирование прогнозного изображения с использованием как значения горизонтального градиента, так и значения вертикального градиента при уменьшении объема обработки при декодировании.
[0534] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.
[0535] Следует отметить, что выражения для вычисления BIO-параметра могут заменяться другими выражениями при условии, что другие выражения используются для того, чтобы вычислять BIO-параметр с использованием либо значений горизонтального градиента, либо значений вертикального градиента.
[0536] Например, в третьем конкретном примере, выражения для вычисления BIO-параметра Вы не ограничены выражениями (6.7), (6.9), (7.4) и т.д., и могут быть предусмотрены другие выражения при условии, что другие выражения используются для того, чтобы вычислять BIO-параметр u на основе значений горизонтального градиента и без основы на значениях вертикального градиента. Помимо этого, выражения для вычисления v BIO-параметра не ограничены выражениями (6.8), (6.10), (7.8) и т.д., и могут быть предусмотрены другие выражения при условии, что другие выражения используются для того, чтобы вычислять v BIO-параметра на основе значений вертикального градиента и без основы на значениях горизонтального градиента.
[0537] Помимо этого, в первом конкретном примере и третьем конкретном примере, первая сумма соответствует значениям горизонтального градиента, и вторая сумма соответствует значениям вертикального градиента. Тем не менее, порядок может изменяться на противоположный. Другими словами, первая сумма может соответствовать значениям вертикального градиента, и вторая сумма может соответствовать значениям горизонтального градиента.
[0538] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.
[0539] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.
[0540] Четвертый конкретный пример BIO
Процессы вычисления BIO-параметра и процессы формирования прогнозных изображений в первом конкретном примере, втором конкретном примере и третьем конкретном примере представляют собой примеры, и другие процессы вычисления и другие процессы формирования могут применяться. Например, процесс, указываемый на блок-схеме последовательности операций способа на фиг. 53, может применяться.
[0541] Фиг. 53 является блок-схемой последовательности операций способа, указывающей четвертый конкретный пример процесса декодирования на основе BIO. Во множестве конкретных примеров, описанных выше, декодер 200 переключает способы извлечения прогнозной выборки на основе абсолютной величины первой суммы и абсолютной величины второй суммы, как указано на фиг. 49 и 52. Для сравнения, в этом конкретном примере, декодер 200 всегда вычисляет компонент оптических потоков в вертикальном направлении и горизонтальном направлении, чтобы извлекать прогнозную выборку. Это формирует возможность дополнительного повышения точности прогнозирования.
[0542] В частности, в примере на фиг. 53, аналогично примеру на фиг. 49 и примеру на фиг. 52, декодер 200 вычисляет первую сумму для текущего блока, с использованием значения горизонтального градиента первого опорного блока и значения горизонтального градиента второго опорного блока (S2001). Помимо этого, декодер 200 вычисляет вторую сумму для текущего блока, с использованием значения вертикального градиента первого опорного блока и значения вертикального градиента второго опорного блока (S2002).
[0543] В примере по фиг. 53, декодер 200 затем определяет BIO-параметр для текущего блока с использованием как значений горизонтального градиента, так и значений вертикального градиента независимо от абсолютной величины первой суммы и абсолютной величины второй суммы (S2004). Операция для определения BIO-параметра для текущего блока с использованием как значений горизонтального градиента, так и значений вертикального градиента может быть идентичной операции в третьем конкретном примере. Например, декодер 200 может использовать выражения (6.1)-(6.10), описанные в третьем конкретном примере, в качестве вычислительных выражений для определения BIO-параметра.
[0544] Декодер 200 затем декодирует текущий блок с использованием BIO-параметра (S2006). Например, декодер 200 формирует прогнозную выборку с использованием двух BIO-параметров u и v. В это время, декодера 200 может извлекать прогнозную выборку согласно выражению (6.11) и т.д. Декодер 200 может использовать выражения, описанные в первом конкретном примере, или другие выражения. Декодер 200 затем декодирует текущий блок с использованием прогнозной выборки.
[0545] Помимо этого, знак (x), появляющийся в выражениях (6.2), (6.4), (6.5), (6.6) и т.д., может задаваться посредством двоичного выражения (a), описанного выше, или может задаваться посредством следующего выражения (b).
[0546] Математическое выражение 60
[0547] В выражении (a), функция sign возвращает значение, указывающее то, представляет собой аргумент, предоставленный в функцию sign, значение со знаком "плюс" или значение со знаком "минус". В выражении (b), функция sign возвращает значение, указывающее то, представляет собой аргумент, предоставленный в функцию sign, значение со знаком "плюс", значение со знаком "минус" или 0.
[0548] В исходных выражениях для извлечения оптических потоков, sign (Gx[i, j]) и sign (Gy[i, j]) в выражениях (6.2), (6.4), (6.5) и (6.6) представляют собой Gx[i, j] и Gy[i, j], соответственно. Соответственно, например, Gx[i, j] x (I0i, j-I1i, j)=0 вычисляется как промежуточное значение, когда Gx[i, j]=0 удовлетворяется и Gy[i, j] x (I0i, j-I1i, j)=0 вычисляется как промежуточное значение, когда удовлетворяется Gy[i, j]=0.
[0549] Тем не менее, в упрощенных выражениях для извлечения оптических потоков, любое соответствующее промежуточное значение может получаться, когда sign (0)=1 удовлетворяется. Например, в выражении (6.5), sign (Gx[i, j]), x (I0i, j-I1i, j)=(I0i, j-I1i, j) вычисляется как промежуточное значение, когда Gx[i, j]=0 удовлетворяется. Например, в выражении (6.6), sign (Gy[i, j]), x (I0i, j-I1i, j)=(I0i, j-I1i, j) вычисляется как промежуточное значение, когда Gy[i, j]=0 удовлетворяется. Другими словами, промежуточное значение не равно 0, и значение, отличающееся от 0, остается.
[0550] При определении знака в выражении (b), описанном выше, sign (Gx[i, j]) x (I0i, j-I1i, j)=(I0i, j-I1i, j) вычисляется как промежуточное значение, когда Gx[i, j]=0 удовлетворяется, и sign (Gy[i, j]) x (I0i, j-I1i, j)=(I0i, j-I1i, j) вычисляется как промежуточное значение, когда Gy[i, j]=0 удовлетворяется. Соответственно, в этих случаях, идентичные промежуточные значения с исходными выражениями для извлечения оптических потоков вычисляются.
[0551] Таким образом, знак, заданный посредством выражения (b), описанного выше, имеет значение, более близкое к значению, получаемому в исходном выражении оптического потока, чем знак, заданный посредством выражения (a), описанного выше. Соответственно, это формирует возможность дополнительного повышения точности дополнительного повышения точности прогнозирования.
[0552] Следует отметить, что вышеуказанные модификации могут комбинироваться полностью в настоящем раскрытии. Например, определение знака (x) в первом конкретном примере может заменяться выражением (b), описанным выше, или определение знака (x) в третьем конкретном примере может заменяться выражением (b), описанным выше.
[0553] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.
[0554] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, например, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.
[0555] Выражение (b) представляет собой один пример функции sign, которая возвращает значение, указывающее то, указывает аргумент значение со знаком "плюс", значение со знаком "минус" или 0. Функция sign, которая предоставляет значение, указывающее то, указывает аргумент значение со знаком "плюс", значение со знаком "минус" или 0, может представляться согласно другому выражению, которое может принимать значение в зависимости от того, указывает аргумент значение со знаком "плюс", значение со знаком "минус" или 0 из числа трех возможных значений.
[0556] Пятый конкретный пример BIO
Далее описывается пятый конкретный пример процесса декодирования на основе BIO. В пятом конкретном примере, компонент оптических потоков всегда вычисляется в вертикальном направлении и горизонтальном направлении таким образом, что прогнозная выборка вычисляется в четвертом конкретном примере. Следующие вычислительные выражения представляют собой вычислительные выражения в пятом конкретном примере.
[0557] Математическое выражение 61
[0558] Математическое выражение 62
[0559] Математическое выражение 63
[0560] Математическое выражение 64
[0561] Математическое выражение 65
[0562] Математическое выражение 66
[0563] Математическое выражение 67
[0564] Математическое выражение 68
[0565] Математическое выражение 69
[0566] Математическое выражение 70
[0567] Выражения (8.1)-(8,6), (8.8) и (8.10) являются идентичными выражениям (6.1)-(6.6), (6.9) и (6.11) в третьем конкретном примере. В конкретном примере, выражение (8.7) добавляется, и выражение (6.10) заменяется выражением (8.9). Другими словами, BIO-параметр "v" в направлении по оси Y извлекается посредством процесса вычисления, который зависит от BIO-параметра "u" в направлении по оси X и параметра корреляции "sGxGy", который указывает корреляцию между градиентом в направлении по оси X и градиентом в направлении по оси Y. Это позволяет извлекать BIO-параметр с большей точностью, что увеличивает вероятность способности повышать эффективность кодирования. Следует отметить, что sGxGy может представляться как третья сумма.
[0568] Помимо этого, выражение (b), описанное в четвертом конкретном примере, может использоваться в качестве знака (x). Как задано в выражении (b), имеется вероятность возможности дополнительно повышать эффективность кодирования посредством знака (x), соответствующего трем значениям. Помимо этого, выражение (a), описанное в первом конкретном примере, может использоваться в качестве знака (x). Это упрощает выражение по сравнению со случаем, в котором знак (x) соответствует трем значениям, который формирует вероятность способности повышать эффективность кодирования при снижении нагрузки по обработке.
[0569] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой, третьей суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.
[0570] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.
[0571] Вычислительное выражение может применяться не только к блок-схеме последовательности операций способа на фиг. 53 в четвертом конкретном примере, но также и к блок-схеме последовательности операций способа на фиг. 49 в первом конкретном примере, к блок-схеме последовательности операций способа на фиг. 52 в третьем конкретном примере и к другим блок-схемам последовательности операций способа.
[0572] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.
[0573] Шестой конкретный пример BIO
Далее описывается шестой конкретный пример процесса декодирования на основе BIO. В шестом конкретном примере, компонент оптических потоков всегда вычисляется в вертикальном направлении и горизонтальном направлении таким образом, что прогнозная выборка вычисляется в четвертом конкретном примере и т.д. Следующие вычислительные выражения представляют собой вычислительные выражения в шестом конкретном примере.
[0574] Математическое выражение 71
[0575] Математическое выражение 72
[0576] Математическое выражение 73
[0577] Математическое выражение 74
[0578] Математическое выражение 75
[0579] Математическое выражение 76
[0580] Математическое выражение 77
[0581] Математическое выражение 78
[0582] Математическое выражение 79
[0583] Выражения (9.1), (9.3) и (9.7)-(9.9) являются идентичными выражениям (6.1), (6.3) и (6.9)-(6.11) в третьем конкретном примере. В этом конкретном примере, выражения (6.2) и (6.4)-(6.6) заменяются выражениями (9.2) и (9.4)-(9.6), соответственно.
[0584] Например, в выражениях (6.2) и (6.4)-(6.6), sign (Gx[i, j]) и sign (Gy[i, j]), используется вместо Gx[i, j] и Gy[i, j], и существенное умножение удаляется. Напротив, в выражениях (9.2) и (9.4)-(9.6), sign (Gx[i, j]) и sign (Gy[i, j]) не используются, и значения Gx[i, j] и Gy[i, j] непосредственно используются. Другими словами, существенное умножение используется.
[0585] Это увеличивает объем вычислительной обработки. Тем не менее, это позволяет извлекать BIO-параметр с большей точностью, что увеличивает вероятность способности повышать эффективность кодирования.
[0586] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой, третьей суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.
[0587] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.
[0588] Вычислительное выражение, соответствующее этому конкретному примеру, может применяться не только к блок-схеме последовательности операций способа на фиг. 53 в четвертом конкретном примере, но также и к блок-схеме последовательности операций способа на фиг. 49 в первом конкретном примере, к блок-схеме последовательности операций способа на фиг. 52 в третьем конкретном примере и к другим блок-схемам последовательности операций способа.
[0589] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.
[0590] Седьмой конкретный пример BIO
Далее описывается седьмой конкретный пример процесса декодирования на основе BIO. В седьмом конкретном примере, компонент оптических потоков всегда вычисляется в вертикальном направлении и горизонтальном направлении таким образом, что прогнозная выборка вычисляется в четвертом конкретном примере и т.д. Следующие вычислительные выражения представляют собой вычислительные выражения в седьмом конкретном примере.
[0591] Математическое выражение 80
[0592] Математическое выражение 81
[0593] Математическое выражение 82
[0594] Математическое выражение 83
[0595] Математическое выражение 84
[0596] Математическое выражение 85
[0597] Математическое выражение 86
[0598] Математическое выражение 87
[0599] Математическое выражение 88
[0600] Математическое выражение 89
[0601] Выражения (10.1), (10.3) и (10.5)-(10.10) являются идентичными выражениям (8.1), (8.3) и (8.5)-(8.10) в пятом конкретном примере. В этом конкретном примере, выражения (8.2) и (8.4) заменяются выражениями (10.2) и (10.4), соответственно. В частности, функция abs используется вместо функции sign для преобразования знака "плюс" или "минус".
[0602] Результаты, получаемые с использованием функций abs, аналогичных выражениям (10.2) и (10.4), являются идентичными результатам, получаемым посредством преобразования функций "плюс" или "минус" с использованием функций sign, аналогичных выражениям (8.2) и (8.4). Другими словами, эта конкретная функция является практически идентичной пятому конкретному примеру.
[0603] В пятом конкретном примере, произведение знака "плюс" или "минус" Gx и Gx используется, и произведение знака "плюс" или "минус" Gy и Gy используется. В этом конкретном примере, части произведения заменяются абсолютными значениями. Это позволяет достигать обработки с низким объемом.
[0604] Например, знак "плюс" или "минус", включенный в каждое выражение, может изменяться при необходимости, или выражение, эквивалентное любому из вышеприведенных выражений, может использоваться. В частности, в качестве выражений, соответствующих выражениям (10.1)-(10.7), описанным выше, следующее выражение (11.1)-(11.5) может использоваться.
[0605] Математическое выражение 90
[0606] Математическое выражение 91
[0607] Математическое выражение 92
[0608] Математическое выражение 93
[0609] Математическое выражение 94
[0610] Выражения (10.8) и (10.9) фактически указывают деление и в силу этого могут представляться как следующие выражения (11.6) и (11.7).
[0611] Математическое выражение 95
[0612] Математическое выражение 96
[0613] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой, третьей суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.
[0614] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.
[0615] Вычислительное выражение, соответствующее этому конкретному примеру, может применяться не только к блок-схеме последовательности операций способа на фиг. 53 в четвертом конкретном примере, но также и к блок-схеме последовательности операций способа на фиг. 49 в первом конкретном примере, к блок-схеме последовательности операций способа на фиг. 52 в третьем конкретном примере и к другим блок-схемам последовательности операций способа.
[0616] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.
[0617] Восьмой конкретный пример BIO
Далее описывается восьмой конкретный пример процесса декодирования на основе BIO. В восьмом конкретном примере, компонент оптических потоков всегда вычисляется в вертикальном направлении и горизонтальном направлении таким образом, что прогнозная выборка вычисляется в четвертом конкретном примере и т.д. Следующие вычислительные выражения представляют собой вычислительные выражения в восьмом конкретном примере.
[0618] Математическое выражение 97
[0619] Математическое выражение 98
[0620] Математическое выражение 99
[0621] Математическое выражение 100
[0622] Математическое выражение 101
[0623] Математическое выражение 102
[0624] Математическое выражение 103
[0625] Математическое выражение 104
[0626] Математическое выражение 105
[0627] Математическое выражение 106
[0628] Выражения (12.1), (12.3) и (12.8)-(12.10) являются идентичными выражениям (8.1), (8.3) и (8.8)-(8.10) в пятом конкретном примере.
[0629] С другой стороны, относительно выражений (8.2) и (8.4)-(8.7): значения, указывающие знаки "плюс" или "минус" Gx и Gy, всегда допускаются равными 1; и выражения (8.2) и (8.4)-(8.7) заменяются выражениями (12.2) и (12.4)-(12,7), соответственно. Это основано на таком допущении, что как абсолютные значения значений градиентов пиксельных значений, так и знаки "плюс" или "минус" являются постоянными в младшей зоне Ω.
[0630] Поскольку предполагается, что знаки "плюс" или "минус" являются постоянными, процесс вычисления знаков "плюс" или "минус" Gx и Gy для каждой пары пикселов может уменьшаться. Помимо этого, вычислительное выражение sGx и вычислительное выражение sGxGy равны друг другу. Это обеспечивает дополнительное уменьшение обработки.
[0631] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой, третьей суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.
[0632] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.
[0633] Вычислительное выражение может применяться не только к блок-схеме последовательности операций способа на фиг. 53 в четвертом конкретном примере, но также и к блок-схеме последовательности операций способа на фиг. 49 в первом конкретном примере, к блок-схеме последовательности операций способа на фиг. 52 в третьем конкретном примере и к другим блок-схемам последовательности операций способа.
[0634] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.
[0635] Девятый конкретный пример BIO
Далее описывается девятый конкретный пример процесса декодирования на основе BIO. В девятом конкретном примере, компонент оптических потоков всегда вычисляется в вертикальном направлении и горизонтальном направлении таким образом, что прогнозная выборка вычисляется в четвертом конкретном примере и т.д. Следующие вычислительные выражения представляют собой вычислительные выражения в девятом конкретном примере.
[0636] Математическое выражение 107
[0637] Математическое выражение 108
[0638] Математическое выражение 109
[0639] Математическое выражение 110
[0640] Математическое выражение 111
[0641] Математическое выражение 112
[0642] Математическое выражение 113
[0643] Математическое выражение 114
[0644] Математическое выражение 115
[0645] Выражения (13.1)-(13.9) являются идентичными выражениям (12.1)-(12.6) и (12.8)-(12.10) в восьмом конкретном примере. На основе равенства вычислительного выражения sGx и вычислительного выражения sGxGy в восьмом конкретном примере, процесс извлечения взаимной корреляции в третьей сумме удаляется в этом конкретном примере. Чтобы извлекать v, sGx используется.
[0646] Следует отметить, что вычислительные выражения, описанные здесь, представляют собой примеры. Вычислительные выражения могут частично модифицироваться, части выражений могут удаляться, или части могут добавляться в выражения, при условии, что результирующие выражения служат для выполнения аналогичной обработки. Например, одно или более из множества выражений, связанных с первой суммой, второй суммой или BIO-параметром, могут заменяться одним или более выражений в других конкретных примерах либо могут заменяться другими одним или более выражений, отличающихся от выражений в других конкретных примерах.
[0647] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.
[0648] Вычислительное выражение, соответствующее этому конкретному примеру, может применяться не только к блок-схеме последовательности операций способа на фиг. 53 в четвертом конкретном примере, но также и к блок-схеме последовательности операций способа на фиг. 49 в первом конкретном примере, к блок-схеме последовательности операций способа на фиг. 52 в третьем конкретном примере и к другим блок-схемам последовательности операций способа.
[0649] Хотя процесс декодирования описывается в вышеприведенном описании, идентичные процессы, включенные в процесс декодирования, могут применяться также в процессе кодирования. Другими словами, декодирование в вышеприведенном описании может читаться в качестве кодирования.
[0650] Десятый конкретный пример BIO
Этот конкретный пример указывает пример варьирования, который является применимым к другим конкретным примерам. Например, таблица поиска может использоваться для деления в каждом конкретном примере. Например, 6-битовая таблица поиска, имеющая 64 записи (divSigTable), может использоваться. Выражения (8.8) и (8.9) в пятом конкретном примере могут заменяться следующими выражениями (14.1) и (14.2), соответственно. Выражения идентичного вида в других конкретных примерах могут заменяться идентичным способом.
[0651] Математическое выражение 116
[0652] Математическое выражение 117
[0653] Upper6digits в выражениях (14.1) и (14.2), описанных выше, представляет следующее.
[0654] Математическое выражение 118
[0655] Помимо этого, градиентное изображение получается посредством вычисления значений градиентов множества пикселов. Значения градиентов могут извлекаться, например, посредством применения градиентного фильтра ко множеству пикселов. Увеличение числа отводов градиентного фильтра может повышать точность значений градиентов, повышать точность прогнозного изображения и повышать эффективность кодирования.
[0656] С другой стороны, поскольку обработка выполняется для каждой пары пиксельных позиций, объем вычислений увеличивается, когда число пар пиксельных позиций, которые должны обрабатываться, является большим. Таким образом, двухотводный фильтр может использоваться в качестве градиентного фильтра. Другими словами, значение градиента может представлять собой разностное значение между двумя пикселами, расположенными выше или ниже либо справа или слева от целевой пары пикселов, для которых должно вычисляться значение градиента. Альтернативно, значение градиента может представлять собой разностное значение между каждым из целевой пары пикселов, для которых значение градиента должно вычисляться, и соседнего пиксела, который граничит с целевым пикселом (соседний пиксел, в частности, представляет собой пиксел, расположенный выше или ниже либо справа или слева от целевого пиксела). Это может формировать возможность уменьшения объема обработки по сравнению со случаем, в котором число отводов является большим.
[0657] Следует отметить, что множество пикселов, для которых должны вычисляться значения градиентов, могут представлять собой множество целочисленных пикселов или могут включать в себя субпикселы.
[0658] Помимо этого, хотя фильтр, имеющий набор коэффициентов фильтрации [-1, 0, 1], используется в качестве примера фильтра для вычисления значения горизонтального градиента и значения вертикального градиента в вышеприведенном описании, фильтр, имеющий набор коэффициентов фильтрации [1, 0, -1], может использоваться вместо этого.
[0659] Характерные примеры конфигураций и обработки
Ниже приводятся описания характерных примеров конфигураций и процессов, выполняемых посредством кодера 100 и декодера 200, описанных выше. Эти характерные примеры главным образом соответствуют пятому конкретному примеру и седьмому конкретному примеру, описанным выше.
[0660] Фиг. 54 является блок-схемой последовательности операций способа, указывающей операцию, выполняемую посредством кодера 100. Например, кодер 100 включает в себя схему и запоминающее устройство, соединенное со схемой. Схема и запоминающее устройство, включенные в кодер 100, могут соответствовать процессору a1 и запоминающему устройству a2, проиллюстрированным на фиг. 40. Схема кодера 100 выполняет следующие этапы при работе.
[0661] Например, схема кодера 100 может извлекать, для каждой из множества пар относительных пиксельных позиций, абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне (S3101).
[0662] Здесь, первый диапазон включает в себя первый опорный блок в текущем блоке, и второй диапазон включает в себя второй опорный блок в текущем блоке. Каждая из множества пар относительных пиксельных позиций определяется обычно и относительно как для первого диапазона, так и для второго диапазона, и каждая пара относительных пиксельных позиций состоит из пиксельной позиции в первом диапазоне и пиксельной позиции во втором диапазоне.
[0663] Помимо этого, пиксельная позиция, определяемая обычно и относительно как для первого диапазона, так и для второго диапазона, означает пиксельную позицию, определенную как для первого диапазона, так и для второго диапазона относительно идентичным способом. Например, когда одно абсолютное значение суммы значений горизонтального градиента вычисляется, значения горизонтального градиента в пиксельных позициях, которые являются относительно идентичными в первом диапазоне и втором диапазоне, используются. Более конкретно, например, одно абсолютное значение суммы значений горизонтального градиента извлекается с использованием значения горизонтального градиента в самой левой верхней пиксельной позиции в первом диапазоне и значения горизонтального градиента в самой левой верхней пиксельной позиции во втором диапазоне.
[0664] Схема кодера 100 затем извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций (S3102).
[0665] Кроме того, схема кодера 100 извлекает, для каждой из множества пар относительных пиксельных позиций, абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне (S3103).
[0666] Схема кодера 100 затем извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций (S3104).
[0667] Кроме того, схема кодера 100 извлекает, для каждой из множества пар относительных пиксельных позиций, пиксельное разностное значение, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне (S3105). Например, в это время, схема кодера 100 извлекает пиксельное разностное значение со знаком "плюс" или "минус" посредством вычитания одного из пиксельного значения в относительной пиксельной позиции в первом диапазоне и пиксельного значения в относительной пиксельной позиции во втором диапазоне в каждой из множества пар относительных пиксельных позиций из другого.
[0668] Схема кодера 100 затем инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для пары относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, и извлекает горизонтально-связанное пиксельное разностное значение (S3106). Здесь, сумма значений горизонтального градиента в каждой паре относительных пиксельных позиций указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне. Горизонтально-связанное пиксельное разностное значение указывает пиксельное разностное значение, имеющее знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента.
[0669] Схема кодера 100 затем извлекает, в качестве третьего параметра, общую сумму множества горизонтально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных позиций (S3107).
[0670] Кроме того, схема кодера 100 затем инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой пары относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанное пиксельное разностное значение (S3108). Здесь, сумма значений вертикального градиента в паре относительных пиксельных позиций указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне. Вертикально-связанное пиксельное разностное значение указывает пиксельное разностное значение, имеющее знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента.
[0671] Схема кодера 100 затем извлекает, в качестве четвертого параметра, общую сумму множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций (S3109).
[0672] Помимо этого, схема кодера 100 инвертирует или сохраняет знак "плюс" или "минус" суммы значений вертикального градиента, извлекаемых для пары относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента (S3110). Здесь, вертикально-связанная сумма значений горизонтального градиента указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента.
[0673] Схема кодера 100 затем извлекает, в качестве пятого параметра, общую сумму множества вертикально-связанных сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций (S3111).
[0674] Схема кодера 100 затем формирует прогнозное изображение, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра (S3112).
[0675] Таким образом, существенное умножение, которое требует большого объема вычислений при вычислении, выполняемом для каждой пиксельной позиции, может уменьшаться, что позволяет извлекать множество параметров для формирования прогнозного изображения с небольшим объемом вычислений. Соответственно, объем обработки при кодировании может уменьшаться. Помимо этого, прогнозное изображение может формироваться надлежащим образом, на основе множества параметров, включающих в себя параметр, связанный со значениями горизонтального градиента, параметр, связанный со значениями вертикального градиента, и параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента.
[0676] Помимо этого, например, схема кодера 100 может извлекать первый параметр согласно выражению (11.1), описанному выше, и второй параметр согласно выражению (11.2), описанному выше. Помимо этого, например, схема кодера 100 может извлекать третий параметр согласно выражению (11.3), описанному выше, и четвертый параметр согласно выражению (11.4), описанному выше. Помимо этого, например, схема кодера 100 может извлекать пятый параметр согласно выражению (11.5), описанному выше.
[0677] Здесь, Ω обозначает набор относительных пиксельных позиций, и [i, j] обозначает каждую из относительных пиксельных позиций. Для каждой из множества пар относительных пиксельных позиций, Ix0 обозначает значение горизонтального градиента в относительной пиксельной позиции в первом диапазоне, и Ix1 обозначает значение горизонтального градиента в относительной пиксельной позиции во втором диапазоне. Для каждой из множества пар относительных пиксельных позиций, Iy0 обозначает значение вертикального градиента в относительной пиксельной позиции в первом диапазоне, и Iy1 обозначает значение вертикального градиента в относительной пиксельной позиции во втором диапазоне.
[0678] Для каждой из множества пар относительных пиксельных позиций, I0 обозначает пиксельное значение в относительной пиксельной позиции в первом диапазоне, и I1 обозначает пиксельное значение в относительной пиксельной позиции во втором диапазоне. Помимо этого, abs (Ix1+Ix0) обозначает абсолютное значение Ix1+Ix0, и sign (Ix1+Ix0) обозначает знак "плюс" или "минус" Ix1+Ix0. Кроме того, abs (Iy1+Iy0) обозначает абсолютное значение Iy1+Iy0, и sign (Iy1+Iy0) обозначает знак "плюс" или "минус" Iy1+Iy0.
[0679] Таким образом, множество параметров могут извлекаться с небольшим объемом вычислений с использованием пиксельных значений, значений горизонтального градиента и значений вертикального градиента.
[0680] Помимо этого, например, схема кодера 100 может извлекать шестой параметр посредством деления третьего параметра на первый параметр. Помимо этого, схема кодера 100 может извлекать седьмой параметр посредством вычитания произведения пятого параметра и шестого параметра из четвертого параметра и деления результата вычитания на второй параметр. Схема кодера 100 затем может формировать прогнозное изображение с использованием шестого параметра и седьмого параметра.
[0681] Таким образом, множество параметров могут надлежащим образом сужаться до двух параметров, соответствующих горизонтальному направлению и вертикальному направлению. Параметр, связанный со значениями горизонтального градиента, может быть надлежащим образом включен в параметр, соответствующий горизонтальному направлению. Параметр, связанный со значениями вертикального градиента, параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента, и параметр, связанный со значениями горизонтального градиента, могут быть надлежащим образом включены в параметр, соответствующий вертикальному направлению. Прогнозное изображение может надлежащим образом формироваться с использованием двух параметров.
[0682] Помимо этого, например, схема кодера 100 может извлекать шестой параметр согласно выражению (10.8), описанному выше. Помимо этого, например, схема кодера 100 может извлекать седьмой параметр согласно выражению (10.9), описанному выше.
[0683] Здесь, sGx обозначает первый параметр, sGy обозначает второй параметр, sGxdI обозначает третий параметр, sGydI обозначает четвертый параметр, sGxGy обозначает пятый параметр, и u обозначает шестой параметр. Bits является функцией, которая возвращает значение, получаемое посредством округления в большую сторону двоичного логарифма аргумента до целого числа.
[0684] Таким образом, два параметра, соответствующие горизонтальному направлению и вертикальному направлению, могут извлекаться с небольшим объемом вычислений.
[0685] Помимо этого, схема кодера 100 может формировать прогнозное изображение посредством извлечения прогнозного пиксельного значения, с использованием: первого пиксельного значения; первого значения горизонтального градиента; первого значения вертикального градиента; второго пиксельного значения; второго значения горизонтального градиента; второго значения вертикального градиента; шестого параметра; и седьмого параметра.
[0686] Здесь, прогнозное пиксельное значение представляет собой прогнозное пиксельное значение в позиции текущего пиксела, включенного в текущий блок. Первое пиксельное значение представляет собой первое пиксельное значение в первой пиксельной позиции, соответствующей позиции текущего пиксела в первом опорном блоке. Первое значение горизонтального градиента представляет собой значение горизонтального градиента в первой пиксельной позиции. Первое значение вертикального градиента представляет собой значение вертикального градиента в первой пиксельной позиции. Второе пиксельное значение представляет собой пиксельное значение во второй пиксельной позиции, соответствующей позиции текущего пиксела во втором опорном блоке. Второе значение горизонтального градиента представляет собой значение горизонтального градиента во второй пиксельной позиции. Второе значение вертикального градиента представляет собой значение вертикального градиента во второй пиксельной позиции.
[0687] Это предоставляет вероятность того, что прогнозное изображение формируется с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению, и два параметра, соответствующие горизонтальному направлению и вертикальному направлению, надлежащим образом отражаются в прогнозном изображении.
[0688] Помимо этого, например, схема кодера 100 может извлекать прогнозное пиксельное значение посредством деления, на 2, суммы первого пиксельного значения, второго пиксельного значения, первого значения коррекции и второго значения коррекции. Здесь, первое значение коррекции соответствует произведению разности между первым значением горизонтального градиента и вторым значением горизонтального градиента и шестого параметра, и второе значение коррекции соответствует произведению разности между первым значением вертикального градиента и вторым значением вертикального градиента и седьмого параметра.
[0689] Таким образом, прогнозное изображение может надлежащим образом формироваться с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению.
[0690] Помимо этого, например, схема кодера 100 может извлекать прогнозное пиксельное значение согласно выражению (10.10), описанному выше. Здесь, I0 обозначает первое пиксельное значение, I1 обозначает второе пиксельное значение, u обозначает шестой параметр, Ix0 обозначает первое значение горизонтального градиента, Ix1 обозначает второе значение горизонтального градиента, v обозначает седьмой параметр, Iy0 обозначает первое значение вертикального градиента, и Iy1 обозначает второе значение вертикального градиента. Таким образом, прогнозное изображение может надлежащим образом формироваться согласно выражению, связанному, например, с двумя параметрами, соответствующими горизонтальному направлению и вертикальному направлению.
[0691] Помимо этого, например, схема кодера 100 может извлекать параметр в двунаправленном оптическом потоке с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра и формировать прогнозное изображение с использованием по меньшей мере одного из параметров в двунаправленном оптическом потоке и двунаправленном оптическом потоке. Таким образом, кодер 100 допускает надлежащее формирование прогнозного изображения.
[0692] По меньшей мере, один параметр в двунаправленном оптическом потоке может представлять собой одно из шестого параметра и седьмого параметра, описанных выше.
[0693] Следует отметить, что модуль 126 внешнего прогнозирования кодера 100 может выполнять операцию, описанную выше в качестве схемы кодера 100.
[0694] Фиг. 55 является блок-схемой последовательности операций способа, указывающей операцию, выполняемую посредством декодера 200. Например, декодер 200 включает в себя схему и запоминающее устройство, соединенное со схемой. Схема и запоминающее устройство, включенные в декодер 200, могут соответствовать процессору b1 и запоминающему устройству b2, проиллюстрированным на фиг. 46. Схема декодера 200 выполняет следующее при работе.
[0695] Например, схема декодера 200 может вычислять, для каждой из множества пар относительных пиксельных позиций, абсолютное значение суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне (S3201).
[0696] Здесь, первый диапазон включает в себя первый опорный блок в текущем блоке, и второй диапазон включает в себя второй опорный блок в текущем блоке. Каждая из множества пар относительных пиксельных позиций определяется обычно и относительно как для первого диапазона, так и для второго диапазона, и каждая пара относительных пиксельных позиций состоит из пиксельной позиции в первом диапазоне и пиксельной позиции во втором диапазоне.
[0697] Схема декодера 200 затем извлекает, в качестве первого параметра, общую сумму множества абсолютных значений сумм значений градиентов, извлекаемых, соответственно, для множества пар относительных позиций (S3202).
[0698] Кроме того, схема декодера 200 вычисляет, для каждой из множества пар относительных пиксельных позиций, абсолютное значение суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне (S3203).
[0699] Схема декодера 200 затем извлекает, в качестве второго параметра, общую сумму множества абсолютных значений сумм значений градиентов, извлекаемых, соответственно, для множества пар относительных позиций (S3204).
[0700] Помимо этого, схема декодера 200 извлекает пиксельное разностное значение, которое представляет собой разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций (S3205). Например, в это время, схема декодера 200 извлекает пиксельное разностное значение со знаком "плюс" или "минус" посредством вычитания одного из пиксельного значения в относительной пиксельной позиции в первом диапазоне и пиксельного значения в относительной пиксельной позиции во втором диапазоне в каждой из множества пар относительных пиксельных позиций из другого.
[0701] Схема декодера 200 затем инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для пары относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, и извлекает горизонтально-связанное пиксельное разностное значение (S3206). Здесь, сумма значений горизонтального градиента в каждой паре относительных пиксельных позиций указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне. Горизонтально-связанное пиксельное разностное значение указывает пиксельное разностное значение, имеющее знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента.
[0702] Схема декодера 200 затем извлекает, в качестве третьего параметра, общую сумму множества горизонтально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных позиций (S3207).
[0703] Кроме того, схема декодера 200 затем инвертирует или сохраняет знак "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой пары относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанное пиксельное разностное значение (S3208). Здесь, сумма значений вертикального градиента в паре относительных пиксельных позиций указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне. Вертикально-связанное пиксельное разностное значение представляет собой пиксельное разностное значение, имеющее знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента.
[0704] Схема декодера 200 затем извлекает, в качестве четвертого параметра, общую сумму множества горизонтально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных позиций (S3209).
[0705] Помимо этого, схема декодера 200 инвертирует или сохраняет знак "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для пары относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлекает вертикально-связанную сумму значений горизонтального градиента (S3210). Здесь, вертикально-связанная сумма значений горизонтального градиента указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента.
[0706] Схема декодера 200 затем извлекает, в качестве пятого параметра, общую сумму множества вертикально-связанных сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций (S3211).
[0707] Схема декодера 200 затем формирует прогнозное изображение, которое должно использоваться для того, чтобы декодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра (S3212).
[0708] Таким образом, существенное умножение, которое требует большого объема вычислений при вычислении, выполняемом для каждой пиксельной позиции, может уменьшаться, что позволяет извлекать множество параметров для формирования прогнозного изображения с небольшим объемом вычислений. Соответственно, объем обработки при декодировании может уменьшаться. Помимо этого, прогнозное изображение может формироваться надлежащим образом, на основе множества параметров, включающих в себя параметр, связанный со значениями горизонтального градиента, параметр, связанный со значениями вертикального градиента, и параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента.
[0709] Помимо этого, например, схема декодера 200 может извлекать второй параметр согласно выражению (11.1), описанному выше, и второй параметр согласно выражению (11.2), описанному выше. Помимо этого, например, схема декодера 200 может извлекать третий параметр согласно выражению (11.3), описанному выше, и четвертый параметр согласно выражению (11.4), описанному выше. Помимо этого, например, схема декодера 200 может извлекать пятый параметр согласно выражению (11.5), описанному выше.
[0710] Здесь, Ω обозначает набор относительных пиксельных позиций, и [i, j] обозначает каждую из относительных пиксельных позиций. Для каждой из множества пар относительных пиксельных позиций, Ix0 обозначает значение горизонтального градиента в относительной пиксельной позиции в первом диапазоне, и Ix1 обозначает значение горизонтального градиента в относительной пиксельной позиции во втором диапазоне. Для каждой из множества пар относительных пиксельных позиций, Iy0 обозначает значение вертикального градиента в относительной пиксельной позиции в первом диапазоне, и Iy1 обозначает значение вертикального градиента в относительной пиксельной позиции во втором диапазоне.
[0711] Для каждой из множества пар относительных пиксельных позиций, I0 обозначает пиксельное значение в относительной пиксельной позиции в первом диапазоне, и I1 обозначает пиксельное значение в относительной пиксельной позиции во втором диапазоне. Помимо этого, abs (Ix1+Ix0) обозначает абсолютное значение Ix1+Ix0, и sign (Ix1+Ix0) обозначает знак "плюс" или "минус" Ix1+Ix0. Кроме того, abs (Iy1+Iy0) обозначает абсолютное значение Iy1+Iy0, и sign (Iy1+Iy0) обозначает знак "плюс" или "минус" Iy1+Iy0.
[0712] Таким образом, множество параметров могут извлекаться с небольшим объемом вычислений с использованием пиксельных значений, значений горизонтального градиента и значений вертикального градиента.
[0713] Помимо этого, например, схема декодера 200 может извлекать шестой параметр посредством деления третьего параметра на первый параметр. Помимо этого, схема декодера 200 может извлекать седьмой параметр посредством вычитания произведения пятого параметра и шестого параметра из четвертого параметра и деления результата вычитания на второй параметр. Схема декодера 200 затем может формировать прогнозное изображение с использованием шестого параметра и седьмого параметра.
[0714] Таким образом, множество параметров могут надлежащим образом интегрироваться в два параметра, соответствующие горизонтальному направлению и вертикальному направлению. Параметр, связанный со значениями горизонтального градиента, может быть надлежащим образом включен в параметр, соответствующий горизонтальному направлению. Параметр, связанный со значениями вертикального градиента, параметр, связанный как со значениями горизонтального градиента, так и со значениями вертикального градиента, и параметр, связанный со значениями горизонтального градиента, могут быть надлежащим образом включены в параметр, соответствующий вертикальному направлению. Прогнозное изображение может надлежащим образом формироваться с использованием двух параметров.
[0715] Помимо этого, например, схема декодера 200 может извлекать шестой параметр согласно выражению (10.8), описанному выше. Помимо этого, например, схема декодера 200 может извлекать седьмой параметр согласно выражению (10.9), описанному выше.
[0716] Здесь, sGx обозначает первый параметр, sGy обозначает второй параметр, sGxdI обозначает третий параметр, sGydI обозначает четвертый параметр, sGxGy обозначает пятый параметр, и u обозначает шестой параметр. Bits является функцией, которая возвращает значение, получаемое посредством округления в большую сторону двоичного логарифма аргумента до целого числа.
[0717] Таким образом, два параметра, соответствующие горизонтальному направлению и вертикальному направлению, могут извлекаться с небольшим объемом вычислений.
[0718] Помимо этого, схема декодера 200 может формировать прогнозное изображение посредством извлечения прогнозного пиксельного значения, с использованием: первого пиксельного значения; первого значения горизонтального градиента; первого значения вертикального градиента; второго пиксельного значения; второго значения горизонтального градиента; второго значения вертикального градиента; шестого параметра; и седьмого параметра.
[0719] Здесь, прогнозное пиксельное значение представляет собой прогнозное пиксельное значение в позиции текущего пиксела, включенного в текущий блок. Первое пиксельное значение представляет собой пиксельное значение в первой пиксельной позиции, соответствующей позиции текущего пиксела в первом опорном блоке. Первое значение горизонтального градиента представляет собой значение горизонтального градиента в первой пиксельной позиции. Второе значение вертикального градиента представляет собой значение вертикального градиента во второй пиксельной позиции. Второе пиксельное значение представляет собой пиксельное значение во второй пиксельной позиции, соответствующей позиции текущего пиксела во втором опорном блоке. Второе значение горизонтального градиента представляет собой значение горизонтального градиента во второй пиксельной позиции. Второе значение вертикального градиента представляет собой значение вертикального градиента во второй пиксельной позиции.
[0720] Это предоставляет вероятность того, что прогнозное изображение формируется с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению, и два параметра, соответствующие горизонтальному направлению и вертикальному направлению, надлежащим образом отражаются в прогнозном изображении.
[0721] Помимо этого, например, схема декодера 200 может извлекать прогнозное пиксельное значение посредством деления, на 2, суммы первого пиксельного значения, второго пиксельного значения, первого значения коррекции и второго значения коррекции. Здесь, первое значение коррекции соответствует произведению разности между первым значением горизонтального градиента и вторым значением горизонтального градиента и шестого параметра, и второе значение коррекции соответствует произведению разности между первым значением вертикального градиента и вторым значением вертикального градиента и седьмого параметра.
[0722] Таким образом, прогнозное изображение может надлежащим образом формироваться с использованием, например, двух параметров, соответствующих горизонтальному направлению и вертикальному направлению.
[0723] Помимо этого, например, схема декодера 200 может извлекать прогнозное пиксельное значение согласно выражению (10.10), описанному выше. Здесь, I0 обозначает первое пиксельное значение, I1 обозначает второе пиксельное значение, u обозначает шестой параметр, Ix0 обозначает первое значение горизонтального градиента, Ix1 обозначает второе значение горизонтального градиента, v обозначает седьмой параметр, Iy0 обозначает первое значение вертикального градиента, и Iy1 обозначает второе значение вертикального градиента. Таким образом, прогнозное изображение может надлежащим образом формироваться согласно выражению, связанному, например, с двумя параметрами, соответствующими горизонтальному направлению и вертикальному направлению.
[0724] Помимо этого, например, схема декодера 200 может извлекать по меньшей мере один параметр в двунаправленном оптическом потоке с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра и формировать прогнозное изображение с использованием по меньшей мере одного параметра в двунаправленном оптическом потоке и двунаправленном оптическом потоке. Таким образом, декодер 200 допускает надлежащее формирование прогнозного изображения.
[0725] По меньшей мере, один параметр в двунаправленном оптическом потоке может представлять собой одно из шестого параметра и седьмого параметра, описанных выше.
[0726] Следует отметить, что модуль 218 внешнего прогнозирования декодера 200 может выполнять операцию, описанную выше в качестве схемы декодера 200.
[0727] Другие примеры
Кодер 100 и декодер 200 в каждом из вышеописанных примеров могут использоваться в качестве кодера изображений и декодера изображений, соответственно, либо могут использоваться в качестве видеокодера и видеодекодера, соответственно.
[0728] Альтернативно, каждый из кодера 100 и декодера 200 может использоваться в качестве устройства прогнозирования. Другими словами, кодер 100 и декодер 200 могут соответствовать только модулю 126 внешнего прогнозирования и модулю 218 внешнего прогнозирования, соответственно. Другие составляющие элементы могут включаться в другие устройства.
[0729] Помимо этого по меньшей мере часть каждого из примеров, описанных выше, может использоваться в качестве способа кодирования или способа декодирования, может использоваться в качестве способа прогнозирования либо может использоваться в качестве другого способа.
[0730] Помимо этого, каждый составляющий элемент может быть сконфигурирован со специализированными аппаратными средствами или может реализовываться посредством выполнения программно-реализованной программы, подходящей для составляющего элемента. Каждый составляющий элемент может реализовываться посредством модуля выполнения программ, такого как CPU, либо процессора, считывающего и выполняющего программно-реализованную программу, записанную на носителе записи, таком как жесткий диск или полупроводниковое запоминающее устройство.
[0731] Более конкретно, каждый из кодера 100 и декодера 200 может включать в себя схему обработки и устройство хранения данных, которое электрически соединяется со схемой обработки и является доступным из схемы обработки. Например, схема обработки соответствует процессору a1 или b1, и устройство хранения данных соответствует запоминающему устройству a2 или b2.
[0732] Схема обработки включает в себя по меньшей мере одно из специализированных аппаратных средств и модуля выполнения программ и выполняет обработку с использованием устройства хранения данных. Помимо этого, устройство хранения данных сохраняет программу, которая выполнена посредством модуля выполнения программ, когда схема обработки включает в себя модуль выполнения программ.
[0733] Здесь, программное обеспечение, которое реализует кодер 100, декодер 200 и т.п., описанные выше, представляет собой программу, указываемую ниже.
[0734] Например, программа может инструктировать компьютеру осуществлять способ кодирования, включающий в себя: извлечение абсолютного значения суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлечение, в качестве первого параметра, общей суммы множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение абсолютного значения суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлечение, в качестве второго параметра, общей суммы множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение, для каждой из множества пар относительных пиксельных позиций, пиксельного разностного значения, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение горизонтально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлечение, в качестве третьего параметра, общей суммы горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение вертикально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве четвертого параметра, общей суммы множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлечение вертикально-связанной суммы значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве пятого параметра, общей суммы вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирование прогнозного изображения, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.
[0735] Например, программа инструктирует компьютеру осуществлять способ декодирования, включающий в себя: извлечение абсолютного значения суммы значений горизонтального градиента, которое указывает абсолютное значение суммы значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительной пиксельной позиции в первом диапазоне и относительной пиксельной позиции во втором диапазоне из множества пар относительных пиксельных позиций, причем первый диапазон включает в себя первый опорный блок для текущего блока, причем второй диапазон включает в себя второй опорный блок для текущего блока, причем множество пар относительных пиксельных позиций определяются обычно и относительно для первого диапазона и второго диапазона; извлечение, в качестве первого параметра, общей суммы множества абсолютных значений сумм значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение абсолютного значения суммы значений вертикального градиента, которое указывает абсолютное значение суммы значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, для каждой из множества пар относительных пиксельных позиций; извлечение, в качестве второго параметра, общей суммы множества абсолютных значений сумм значений вертикального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; извлечение, для каждой из множества пар относительных пиксельных позиций, пиксельного разностного значения, которое указывает разность между пиксельным значением в относительной пиксельной позиции в первом диапазоне и пиксельным значением в относительной пиксельной позиции во втором диапазоне; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений горизонтального градиента, которая указывает сумму значения горизонтального градиента в относительной пиксельной позиции в первом диапазоне и значения горизонтального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение горизонтально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем горизонтально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений горизонтального градиента; извлечение, в качестве третьего параметра, общей суммы горизонтально-связанных пиксельных разностных значений множества, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" пиксельного разностного значения, извлекаемого для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, которая указывает сумму значения вертикального градиента в относительной пиксельной позиции в первом диапазоне и значения вертикального градиента в относительной пиксельной позиции во втором диапазоне, и извлечение вертикально-связанного пиксельного разностного значения, которое указывает пиксельное разностное значение, извлекаемое для пары относительных пиксельных позиций, причем вертикально-связанное пиксельное разностное значение имеет знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве четвертого параметра, общей суммы множества вертикально-связанных пиксельных разностных значений, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; инверсию или сохранение знака "плюс" или "минус" суммы значений горизонтального градиента, извлекаемых для каждой из множества пар относительных пиксельных позиций, согласно знаку "плюс" или "минус" суммы значений вертикального градиента, и извлечение вертикально-связанной суммы значений горизонтального градиента, которая указывает сумму значений горизонтального градиента, имеющих знак "плюс" или "минус", инвертированный или сохраненный согласно знаку "плюс" или "минус" суммы значений вертикального градиента; извлечение, в качестве пятого параметра, общей суммы вертикально-связанных сумм множества значений горизонтального градиента, извлекаемых, соответственно, для множества пар относительных пиксельных позиций; и формирование прогнозного изображения, которое должно использоваться для того, чтобы декодировать текущий блок с использованием первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра.
[0736] Помимо этого, каждый составляющий элемент может представлять собой схему, как описано выше. Схемы могут составлять схему в целом или могут представлять собой отдельные схемы. Альтернативно, каждый составляющий элемент может реализовываться как общий процессор или может реализовываться как специализированный процессор.
[0737] Помимо этого, процесс, который выполняется посредством конкретного составляющего элемента, может выполняться посредством другого составляющего элемента. Помимо этого, порядок выполнения обработки может модифицироваться, или множество процессов могут выполняться параллельно. Помимо этого, кодер и декодер могут включать в себя кодер 100 и декодер 200.
[0738] Помимо этого, порядковые числа, к примеру, "первый" и "второй", используемые для пояснения, могут изменяться надлежащим образом. Новое порядковое число может присоединяться к составляющему элементу, или порядковое число, присоединенное к составляющему элементу, может удаляться.
[0739] Хотя аспекты кодера 100 и декодера 200 описываются на основе множества примеров, аспекты кодера 100 и декодера 200 не ограничены этими примерами. Объем аспектов кодера 100 и декодера 200 может охватывать варианты осуществления, получаемые посредством добавления, в любой из этих вариантов осуществления, различных видов модификаций, которые должны быть очевидными для специалистов в данной области техники без отступления от объема настоящего раскрытия, и вариантов осуществления, конфигурируемых посредством комбинирования составляющих элементов в различных вариантах осуществления.
[0740] Один или более аспектов, раскрытых в данном документе, могут выполняться посредством комбинирования по меньшей мере части других аспектов в настоящем раскрытии. Помимо этого, один или более аспектов, раскрытых в данном документе, могут выполняться посредством комбинирования, с другими аспектами, части процессов, указываемых на любой из блок-схем последовательности операций способа согласно аспектам, части конфигурации любого из устройств, части синтаксисов и т.д.
[0741] Реализации и варианты применения
Как описано в каждом из вышеописанных вариантов осуществления, каждый функциональный или рабочий блок типично может реализовываться, например, в качестве MPU (микропроцессора) и запоминающего устройства. Кроме того, процессы, выполняемые посредством каждого из функциональных блоков, могут реализовываться в качестве модуля выполнения программ, такого как процессор, который считывает и выполняет программное обеспечение (программу), записанное на носителе записи, таком как ROM. Программное обеспечение может быть распределенным. Программное обеспечение может записываться на множестве носителей записи, таких как полупроводниковое запоминающее устройство. Следует отметить, что каждый функциональный блок также может реализовываться в качестве аппаратных средств (специализированной схемы). Могут использоваться различные комбинации аппаратных средств и программного обеспечения.
[0742] Кроме того, обработка, описанная в каждом из вариантов осуществления, может реализовываться через интегрированную обработку с использованием одного устройства (системы) и, альтернативно, может реализовываться через децентрализованную обработку с использованием множества устройств. Кроме того, процессор, который выполняет вышеописанную программу, может представлять собой один процессор или множество процессоров. Другими словами, может выполняться интегрированная обработка, и, альтернативно, может выполняться децентрализованная обработка.
[0743] Варианты осуществления настоящего раскрытия не ограничены вышеуказанными примерными вариантами осуществления; различные модификации могут вноситься в примерные варианты осуществления, результаты которых также включаются в пределы объема вариантов осуществления настоящего раскрытия.
[0744] Далее описываются примеры вариантов применения способа кодирования движущихся кадров (способа кодирования изображений) и способа декодирования движущихся кадров (способа декодирования изображений), описанных в каждом из вышеуказанных вариантов осуществления, а также различных систем, которые реализуют примеры вариантов применения. Такая система может характеризоваться как включающая в себя кодер изображений, который использует способ кодирования изображений, декодер изображений, который использует способ декодирования изображений, и кодер-декодер изображений, который включает в себя как кодер изображений, так и декодер изображений. Другие конфигурации такой системы могут модифицироваться для каждого отдельного случая.
[0745] Примеры использования
Фиг. 56 иллюстрирует общую конфигурацию системы ex100 предоставления контента, подходящей для реализации услуги распространения контента. Зона, в которой предоставляется услуга связи, разделяется на соты требуемых размеров, и базовые станции ex106, ex107, ex108, ex109 и ex110, которые представляют собой стационарные беспроводные станции в проиллюстрированном примере, расположены в соответствующих сотах.
[0746] В системе ex100 предоставления контента, устройства, включающие в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114 и смартфон ex115, соединяются с Интернетом ex101 через поставщика ex102 Интернет-услуг или сеть ex104 связи и базовые станции ex106-ex110. Система ex100 предоставления контента может комбинировать и соединять любую комбинацию вышеуказанных устройств. В различных реализациях, устройства могут прямо или косвенно соединяться между собой через телефонную сеть или связь ближнего радиуса действия, а не через базовые станции ex106-ex110. Дополнительно, потоковый сервер ex103 может соединяться с устройствами, включающими в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114 и смартфон ex115, например, через Интернет ex101. Потоковый сервер ex103 также может соединяться, например, с терминалом в публичной точке доступа в самолете ex117 через спутник ex116.
[0747] Следует отметить, что вместо базовых станций ex106-ex110, могут использоваться точки беспроводного доступа или публичные точки доступа. Потоковый сервер ex103 может соединяться с сетью ex104 связи непосредственно, а не через Интернет ex101 или поставщика ex102 Интернет-услуг, и может соединяться с самолетом ex117 непосредственно, а не через спутник ex116.
[0748] Камера ex113 представляет собой устройство, допускающее захват неподвижных изображений и видео, к примеру, цифровую камеру. Смартфон ex115 представляет собой смартфон, сотовый телефон или телефон по стандарту системы персональных мобильных телефонов (PHS), который может работать согласно стандартам системы мобильной связи для 2G-, 3G-, 3,9G- и 4G-систем, а также 5G-системы следующего поколения.
[0749] Бытовой прибор ex114, например, представляет собой холодильник или устройство, включенное в домашнюю систему совместной выработки тепла и электроэнергии на топливных элементах.
[0750] В системе ex100 предоставления контента, терминал, включающий в себя функцию захвата изображений и/или видео, допускает, например, потоковую передачу вживую посредством соединения с потоковым сервером ex103, например, через базовую станцию ex106. При потоковой передаче вживую, терминал (например, компьютер ex111, игровое устройство ex112, камера ex113, бытовой прибор ex114, смартфон ex115 или терминал в самолете ex117) может выполнять обработку кодирования, описанную в вышеприведенных вариантах осуществления, для контента неподвижных изображений или видеоконтента, захваченного пользователем через терминал, может мультиплексировать видеоданные, полученные через кодирование, и аудиоданные, полученные посредством кодирования аудио, соответствующего видео, и может передавать полученные данные на потоковый сервер ex103. Другими словами, терминал функционирует в качестве кодера изображений согласно одному аспекту настоящего раскрытия.
[0751] Потоковый сервер ex103 передает в потоковом режиме передаваемые данные контента в клиенты, которые запрашивают поток. Примеры клиента включают в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114, смартфон ex115 и терминалы в самолете ex117, которые допускают декодирование вышеописанных кодированных данных. Устройства, которые принимают передаваемые в потоковом режиме данные, могут декодировать и воспроизводить принимаемые данные. Другими словами, устройства могут функционировать в качестве декодера изображений согласно одному аспекту настоящего раскрытия.
[0752] Децентрализованная обработка
Потоковый сервер ex103 может реализовываться в качестве множества серверов или компьютеров, между которыми разделяются такие задачи, как обработка, запись и потоковая передача данных. Например, потоковый сервер ex103 может реализовываться в качестве сети доставки контента (CDN), которая передает в потоковом режиме контент через сеть, соединяющую несколько краевых серверов, расположенных по всему миру. В CDN, краевой сервер физически около клиента может динамически назначаться клиенту. Контент кэшируется и передается в потоковом режиме на краевой сервер, чтобы уменьшать время загрузки. В случае, например, определенного типа ошибки или изменения подключения, например, вследствие пика в трафике, можно передавать в потоковом режиме данные стабильно на высоких скоростях, поскольку можно избегать затрагиваемых частей сети, например, посредством разделения обработки между множеством краевых серверов или переключения нагрузок потоковой передачи на другой краевой сервер и продолжения потоковой передачи.
[0753] Децентрализация не ограничена просто разделением обработки для потоковой передачи; кодирование захваченных данных может разделяться между и выполняться посредством терминалов, на серверной стороне либо обоими способами. В одном примере, при типичном кодировании, обработка выполняется в двух контурах. Первый контур служит для обнаружения того, насколько усложненным является изображение, на покадровой или посценовой основе либо для обнаружения нагрузки при кодировании. Второй контур служит для обработки, которая сохраняет качество изображений и повышает эффективность кодирования. Например, можно снижать нагрузку по обработке терминалов и повышать качество и эффективность кодирования контента за счет инструктирования терминалам выполнять первый контур кодирования и инструктирования серверной стороне, которая принимает контент, выполнять второй контур кодирования. В таком случае, при приеме запроса на декодирование, кодированные данные, получающиеся в результате первого контура, выполняемого посредством одного терминала, могут приниматься и воспроизводиться на другом терминале приблизительно в реальном времени. Это позволяет реализовывать плавную потоковую передачу в режиме реального времени.
[0754] В другом примере, камера ex113 и т.п. извлекает количество признаков (количество признаков или характеристик) из изображения, сжимает данные, связанные с количеством признаков, в качестве метаданных, и передает сжатые метаданные на сервер. Например, сервер определяет значимость объекта на основе количества признаков и изменяет точность квантования, соответственно, чтобы выполнять сжатие, подходящее для смыслового значения (или значимости контента) изображения. Данные количества признаков являются, в частности, эффективными при повышении точности и эффективности прогнозирования векторов движения во время второго прохода сжатия, выполняемого посредством сервера. Кроме того, кодирование, которое имеет относительно низкую нагрузку по обработке, такое как кодирование переменной длины (VLC), может обрабатываться посредством терминала, и кодирование, которое имеет относительно высокую нагрузку по обработке, такое как контекстно-адаптивное двоичное арифметическое кодирование (CABAC), может обрабатываться посредством сервера.
[0755] В еще одном другом примере, возникают случаи, в которых множество видео приблизительно идентичной сцены захватываются посредством множества терминалов, например, на стадионе, в торговом центре или на фабрике. В таком случае, например, кодирование может быть децентрализовано посредством разделения задач обработки между множеством терминалов, которые захватывают видео, и, при необходимости, другими терминалами, которые не захватывают видео, и сервером в расчете на единицу. Единицы, например, могут представлять собой группы кадров (GOP), кадры или тайлы, получающиеся в результате разделения кадра. Это позволяет уменьшать время загрузки и достигать потоковой передачи, которая находится ближе к реальному времени.
[0756] Поскольку видео имеют приблизительно идентичную сцену, управление и/или инструкции могут выполняться посредством сервера таким образом, что на видео, захваченные посредством терминалов, можно перекрестно ссылаться. Кроме того, сервер может принимать кодированные данные из терминалов, изменять опорную взаимосвязь между элементами данных либо корректировать или заменять непосредственно кадры и затем выполнять кодирование. Это позволяет формировать поток с увеличенным качеством и эффективностью для отдельных элементов данных.
[0757] Кроме того, сервер может передавать в потоковом режиме видеоданные после выполнения транскодирования, чтобы преобразовывать формат кодирования видеоданных. Например, сервер может преобразовывать формат кодирования из MPEG в VP (например, VP9), может преобразовывать H.264 в H.265 и т.д.
[0758] Таким образом, кодирование может выполняться посредством терминала или одного или более серверов. Соответственно, хотя устройство, которое выполняет кодирование, называется "сервером" или "терминалом" в нижеприведенном описании, некоторые или все процессы, выполняемые посредством сервера, могут выполняться посредством терминала, и аналогично некоторые или все процессы, выполняемые посредством терминала, могут выполняться посредством сервера. Это также применяется к процессам декодирования.
[0759] Трехмерный многоракурсный режим
Происходит увеличение использования изображений или видео, комбинированных из изображений или видео различных сцен, параллельно захваченных, либо идентичной сцены, захваченной из различных углов посредством множества терминалов, таких как камера ex113 и/или смартфон ex115. Видео, захваченное посредством терминалов, может комбинироваться, например, на основе отдельно полученной относительной позиционной взаимосвязи между терминалами или областями в видео, имеющими совпадающие характерные точки.
[0760] В дополнение к кодированию двумерных движущихся кадров, сервер может кодировать неподвижное изображение на основе анализа сцен движущегося кадра, автоматически либо в момент времени, указываемый пользователем, и передавать кодированное неподвижное изображение в приемный терминал. Кроме того, когда сервер может получать относительную позиционную взаимосвязь между терминалами захвата видео, в дополнение к двумерным движущимся кадрам, сервер может формировать трехмерную геометрию сцены на основе видео идентичной сцены, захваченной из различных углов. Сервер может отдельно кодировать трехмерные данные, сформированные, например, из облака точек, и, на основе результата распознавания или отслеживания человека или объекта с использованием трехмерных данных, может выбирать или восстанавливать и формировать видео, которые должно передаваться в приемный терминал, из видео, захваченных посредством множества терминалов.
[0761] Это обеспечивает возможность пользователю пользоваться сценой посредством свободного выбора видео, соответствующих терминалам захвата видео, и обеспечивает возможность пользователю пользоваться контентом, полученным посредством извлечения видео в выбранной точке обзора из трехмерных данных, восстановленных из множества изображений или видео, видео. Кроме того, аналогично видео, звук может записываться из относительно различных углов, и сервер может мультиплексировать аудио из конкретного угла или пространства с соответствующим видео и передавать мультиплексированное видео и аудио.
[0762] В последние годы, также становится популярным контент, который представляет собой составной объект из реального мира и виртуального мира, к примеру, контент в стиле виртуальной реальности (VR) и дополненной реальности (AR). В случае VR-изображений, сервер может создавать изображения из точек обзора левого и правого глаза и выполнять кодирование, которое допускает ссылку между двумя изображениями точек обзора, такое как многовидовое кодирование (MVC), и альтернативно, может кодировать изображения в качестве отдельных потоков без ссылки. Когда изображения декодируются в качестве отдельных потоков, потоки могут синхронизироваться при воспроизведении таким образом, чтобы воссоздавать виртуальное трехмерное пространство в соответствии с точкой обзора пользователя.
[0763] В случае AR-изображений, сервер может накладывать информацию виртуальных объектов, существующую в виртуальном пространстве, на информацию камеры, представляющую пространство реального мира, на основе трехмерной позиции или перемещения с точки зрения пользователя. Декодер может получать или сохранять информацию виртуальных объектов и трехмерные данные, формировать двумерные изображения на основе перемещения с точки зрения пользователя и затем формировать наложенные данные посредством прозрачного соединения изображений. Альтернативно, декодер может передавать, в сервер, движение с точки зрения пользователя в дополнение к запросу на информацию виртуальных объектов. Сервер может формировать наложенные данные на основе трехмерных данных, сохраненных на сервере в соответствии с принимаемым движением, и кодировать и передавать в потоковом режиме сформированные наложенные данные в декодер. Следует отметить, что наложенные данные типично включают в себя, в дополнение к RGB-значениям, значение α, указывающее прозрачность, и сервер задает значение α для секций, отличных от объекта, сформированного из трехмерных данных, например, равным 0, и может выполнять кодирование в то время, когда эти секции являются прозрачными. Альтернативно, сервер может задавать фон как определенное RGB-значение, такое как цветовая рирпроекция, и формировать данные, в которых зоны, отличные от объекта, задаются в качестве фона. Определенное RGB-значение может быть предварительно определено.
[0764] Декодирование аналогично передаваемых в потоковом режиме данных может выполняться посредством клиента (к примеру, терминалов), на серверной стороне либо разделяться между ними. В одном примере, один терминал может передавать запрос на прием на сервер, запрошенный контент может приниматься и декодироваться посредством другого терминала, и декодированный сигнал может передаваться в устройство, имеющее дисплей. Можно воспроизводить данные с высоким качеством изображений посредством децентрализации обработки и надлежащего выбора контента независимо от характеристик обработки непосредственно терминала связи. В еще одном другом примере, в то время как телевизор, например, принимает данные изображений, которые имеют большой размер, область кадра, такая как тайл, полученная посредством разделения кадра, может декодироваться и отображаться на персональном терминале или терминалах зрителя или зрителей телевизора. Это позволяет зрителям совместно использовать вид с большими кадрами, а также каждому зрителю проверять свою назначенную зону или обследовать область более подробно крупным планом.
[0765] В ситуациях, в которых множество беспроводных соединений являются возможными на небольшие, средние и большие расстояния, в помещениях или вне помещений, может быть возможным прозрачно принимать контент с использованием стандарта системы потоковой передачи, такого как MPEG DASH. Пользователь может переключаться между данными в реальном времени при свободном выборе декодера или устройства отображения, включающего в себя терминал пользователя, дисплеи, размещаемые в помещениях или вне помещений, и т.д. Кроме того, с использованием, например, информации относительно позиции пользователя, декодирование может выполняться при переключении того, какой терминал обрабатывает декодирование, и какой терминал обрабатывает отображение контента. Это позволяет преобразовывать и отображать информацию в то время, когда пользователь находится в движении на маршруте в пункт назначения, на стене близлежащего здания, в которое встраивается устройство, допускающее отображение контента, или на части земли. Кроме того, также можно переключать скорость передачи битов принимаемых данных на основе достижимости для кодированных данных по сети, к примеру, когда кодированные данные кэшируются на сервере, быстро доступном из приемного терминала, либо когда кодированные данные копируются на краевой сервер в службе доставки контента.
[0766] Масштабируемое кодирование
В дальнейшем описывается переключение контента со ссылкой на масштабируемый поток, проиллюстрированный на фиг. 57, который кодируется со сжатием через реализацию способа кодирования движущихся кадров, описанного в вышеприведенных вариантах осуществления. Сервер может иметь конфигурацию, в которой контент переключается при использовании временной и/или пространственной масштабируемости потока, которая достигается посредством разделения на и кодирования слоев, как проиллюстрировано на фиг. 57. Следует отметить, что может быть предусмотрено множество отдельных потоков, которые имеют идентичный контент, но различное качество. Другими словами, посредством определения того, какой слой следует декодировать, на основе внутренних факторов, таких как характеристики обработки на стороне декодера, и внешних факторов, таких как полоса пропускания линий связи, сторона декодера может свободно переключаться между контентом низкого разрешения и контентом высокого разрешения при декодировании. Например, в случае, в котором пользователь хочет продолжать просмотр, например, дома на устройстве, таком как телевизор, соединенный с Интернетом, видео, которое пользователь ранее смотрел на смартфоне ex115 в движении, устройство может просто декодировать идентичный поток вплоть до другого слоя, что уменьшает нагрузку на серверной стороне.
[0767] Кроме того, в дополнение к конфигурации, описанной выше, в которой масштабируемость достигается в результате кодирования кадров в расчете на слой, при этом улучшающий слой находится выше базового слоя, улучшающий слой может включать в себя метаданные, например, на основе статистической информации относительно изображения. Сторона декодера может формировать контент с высоким качеством изображений посредством выполнения формирования изображений со сверхразрешением для кадра в базовом слое на основе метаданных. Формирование изображений со сверхразрешением может улучшать SN-отношение при поддержании разрешения и/или увеличении разрешения. Метаданные включают в себя информацию для идентификации коэффициента линейной или нелинейной фильтрации, используемого при обработке на основе сверхразрешения, либо информацию, идентифицирующую значение параметра при обработке с помощью фильтра, машинном обучении или методе наименьших квадратов, используемом при обработке на основе сверхразрешения.
[0768] Альтернативно, может предоставляться конфигурация, в которой кадр разделяется, например, на тайлы, например, в соответствии со смысловым значением объекта в изображении. На стороне декодера, только частичная область декодируется посредством выбора тайла для декодирования. Дополнительно, посредством сохранения атрибута объекта (человека, автомобиля, мяча и т.д.) и позиции объекта в видео (координат в идентичных изображениях) в качестве метаданных, сторона декодера может идентифицировать позицию требуемого объекта на основе метаданных и определять то, какой тайл или тайлы включают в себя этот объект. Например, как проиллюстрировано на фиг. 58, метаданные могут сохраняться с использованием структуры хранения данных, отличающейся от пиксельных данных, такой как сообщение с SEI (дополнительной улучшающей информацией) в HEVC. Эти метаданные указывают, например, позицию, размер или цвет основного объекта.
[0769] Метаданные могут сохраняться в единицах множества кадров, таких как поток, последовательность или единицы произвольного доступа. Сторона декодера может получать, например, время, в которое конкретный человек появляется в видео, и посредством подгонки информации времени к информации единицы кадров, может идентифицировать кадр, в котором присутствует объект, и может определять позицию объекта в кадре.
[0770] Оптимизация веб-страниц
Фиг. 59, например, иллюстрирует пример экрана отображения веб-страницы на компьютере ex111. Фиг. 60, например, иллюстрирует пример экрана отображения веб-страницы на смартфоне ex115. Как проиллюстрировано на фиг. 59 и фиг. 60, веб-страница может включать в себя множество ссылок на изображения, которые представляют собой ссылки на контент изображений, и внешний вид веб-страницы может отличаться в зависимости от устройства, используемого для того, чтобы просматривать веб-страницу. Когда множество ссылок на изображения являются просматриваемыми на экране до тех пор, пока пользователь явно не выбирает ссылку на изображение, либо до тех пор, пока ссылка на изображение не находится в аппроксимированном центре экрана, или полная ссылка на изображение не вписывается в экран, устройство отображения (декодер) может отображать, в качестве ссылок на изображения, неподвижные изображения, включенные в контент, или I-кадры, может отображать видео, такое как анимированный GIF-файл с использованием множества неподвижных изображений или I-кадров, например, либо может принимать только базовый слой и декодировать и отображать видео.
[0771] Когда ссылка на изображение выбирается пользователем, устройство отображения выполняет декодирование, например, при предоставлении наивысшего приоритета для базового слоя. Следует отметить, что если имеется информация в HTML-коде веб-страницы, указывающая то, что контент является масштабируемым, устройство отображения может декодировать вплоть до улучшающего слоя. Дополнительно, чтобы гарантировать воспроизведение в реальном времени, до того, как осуществляется выбор, либо когда полоса пропускания сильно ограничивается, устройство отображения может уменьшать задержку между моментом времени, в который декодируется опережающий кадр, и моментом времени, в который отображается декодированный кадр (т.е. задержку от начала декодирования контента до отображения контента) посредством декодирования и отображения только прямых опорных кадров (I-кадра, P-кадра, прямого опорного B-кадра). Еще дополнительно, устройство отображения может намеренно игнорировать опорную взаимосвязь между кадрами и приблизительно декодировать все B- и P- кадры в качестве прямых опорных кадров и затем выполнять нормальное декодирование по мере того, как число кадров, принимаемых во времени, увеличивается.
[0772] Автономное вождение
При передаче и приеме в данных неподвижных изображений или видеоданных, таких как двух- или трехмерная картографическая информация для автономного вождения или вождения с использованием помощи автомобиля, приемный терминал может принимать, в дополнение к данным изображений, принадлежащим одному или более слоев, информацию, например, относительно погоды или дорожных работ в качестве метаданных, и ассоциировать метаданные с данными изображений при декодировании. Следует отметить, что метаданные могут назначаться в расчете на слой и, альтернативно, могут просто мультиплексироваться с данными изображений.
[0773] В таком случае, поскольку автомобиль, беспилотный аппарат, самолет и т.д., содержащий приемный терминал, является мобильным, приемный терминал может прозрачно принимать и выполнять декодирование при переключении между базовыми станциями из числа базовых станций ex106-ex110 посредством передачи информации, указывающей позицию приемного терминала. Кроме того, в соответствии с выбором, осуществленным пользователем, ситуацией пользователя и/или полосой пропускания соединения, приемный терминал может динамически выбирать то, до какой степени принимаются метаданные, либо то, до какой степени, например, обновляется картографическая информация.
[0774] В системе ex100 предоставления контента, клиент может принимать, декодировать и воспроизводить, в реальном времени, кодированную информацию, передаваемую пользователем.
[0775] Потоковая передача контента от людей
В системе ex100 предоставления контента, в дополнение к длительному контенту с высоким качеством изображений, распространяемому посредством объекта распространения видео, одноадресная или многоадресная потоковая передача короткого контента с низким качеством изображений от человека также является возможной. Популярность такого контента от людей с большой вероятностью должна еще более возрастать. Сервер может сначала выполнять обработку редактирования для контента перед обработкой кодирования, чтобы уточнять контент от людей. Это может достигаться, например, с использованием следующей конфигурации.
[0776] В реальном времени, при захвате видеоконтента или контента изображений либо после того, как контент захвачен и накоплен, сервер выполняет обработку распознавания на основе необработанных данных или кодированных данных, такую как обработка ошибок при захвате, обработка поиска сцен, анализ смысловых значений и/или обработка обнаружения объектов. После этого, на основе результата обработки распознавания сервер (при указании или автоматически) редактирует контент, примеры чего включают в себя: коррекцию, такую как коррекция фокуса и/или размытости при движении; удаление сцен с низким приоритетом, таких как сцены, которые имеют низкую яркость по сравнению с другими кадрами или находятся не в фокусе; регулирование краев объектов; и регулирование цветовых тонов. Сервер кодирует отредактированные данные на основе результата редактирования. Известно, что чрезмерно длительные видео имеют тенденцию принимать меньшее число видов. Соответственно, чтобы сохранять контент в пределах конкретной продолжительности, которая масштабируется с продолжительностью исходного видео, сервер может, в дополнение к сценам с низким приоритетом, описанным выше, автоматически вырезать сцены с незначительным перемещением на основе результата обработки изображений. Альтернативно, сервер может формировать и кодировать видеодайджест на основе результата анализа смыслового значения сцены.
[0777] Могут возникать случаи, в которых контент от людей может включать в себя контент, который нарушает авторское право, моральное право, книжные права и т.д. Такой случай может приводить к непредпочтительной ситуации для создателя, к примеру, когда контент совместно используется за пределами объема, намеченного создателем. Соответственно, перед кодированием, сервер, например, может редактировать изображения таким образом, чтобы, например, размывать лица людей на периферии экрана или размывать внутреннюю часть дома. Дополнительно, сервер может быть выполнен с возможностью распознавать лица людей, отличных от зарегистрированного человека, в изображениях, которые должны кодироваться, и когда такие лица появляются в изображении, может применять мозаичный фильтр, например, к лицу человека. Альтернативно, в качестве предварительной обработки или постобработки для кодирования, пользователь может указывать, по причинам авторского права, область изображения, включающую в себя человека, или область фона, которая должна обрабатываться. Сервер может обрабатывать указанную область, например, посредством замены области другим изображением или размытия области. Если область включает в себя человека, человек может отслеживаться в движущемся кадре, и область головы пользователя может заменяться другим изображением по мере того, как человек перемещается.
[0778] Поскольку имеется спрос на просмотр в реальном времени контента, сформированного людьми, который зачастую имеет небольшой размер данных, декодер сначала может принимать базовый слой в качестве наивысшего приоритета и выполнять декодирование и воспроизведение, хотя это может отличаться в зависимости от полосы пропускания. Когда контент воспроизводится два или более раз, к примеру, когда декодер принимает улучшающий слой во время декодирования и воспроизведения базового слоя и циклично выполняет воспроизведение, декодер может воспроизводить видео с высоким качеством изображений, включающее в себя улучшающий слой. Если поток кодируется с использованием такого масштабируемого кодирования, видео может быть низкокачественным в невыбранном состоянии или в начале видео, но оно может предлагать восприятие, в котором качество изображений потока постепенно увеличивается интеллектуальным способом. Это не ограничено просто масштабируемым кодированием; идентичное восприятие может предлагаться посредством конфигурирования одного потока из низкокачественного потока, воспроизведенного в первый раз, и второго потока, кодированного с использованием первого потока в качестве опорного.
[0779] Другие примеры реализации и вариантов применения
Кодирование и декодирование может выполняться посредством LSI ex500 (большой интегральной схемы) (см. фиг. 56), которая типично включается в каждый терминал. LSI ex500 может быть сконфигурирована из одной микросхемы или множества микросхем. Программное обеспечение для кодирования и декодирования движущихся кадров может интегрироваться в некоторый тип носителя записи (такой как CD-ROM, гибкий диск или жесткий диск), который является считываемым, например, посредством компьютера ex111, и кодирование и декодирование могут выполняться с использованием программного обеспечения. Кроме того, когда смартфон ex114 оснащен камерой, могут передаваться видеоданные, полученные посредством камеры. В этом случае, видеоданные могут кодироваться посредством LSI ex500, включенной в смартфон ex115.
[0780] Следует отметить, что LSI ex500 может быть выполнена с возможностью загружать и активировать приложение. В таком случае, терминал сначала определяет то, является он или нет совместимым со схемой, используемой для того, чтобы кодировать контент, либо то, допускает он или нет выполнение конкретной услуги. Когда терминал не является совместимым со схемой кодирования контента, либо когда терминал не допускает выполнение конкретной услуги, терминал сначала может загружать кодек или прикладное программное обеспечение, а затем получать и воспроизводить контент.
[0781] Помимо примера системы ex100 предоставления контента, которая использует Интернет ex101, по меньшей мере, кодер движущихся кадров (кодер изображений) или декодер движущихся кадров (декодер изображений), описанные в вышеприведенных вариантах осуществления, могут реализовываться в цифровой широковещательной системе. Идентичная обработка кодирования и обработка декодирования могут применяться для того, чтобы передавать и принимать широковещательные радиоволны, накладываемые с мультиплексированными аудио- и видеоданными, с использованием, например, спутника, даже если она приспосабливается к многоадресной передаче, тогда как одноадресная передача осуществляется проще с системой ex100 предоставления контента.
[0782] Аппаратная конфигурация
Фиг. 61 иллюстрирует дополнительные сведения относительно смартфона ex115, показанного на фиг. 56. Фиг. 62 иллюстрирует пример конфигурации смартфона ex115. Смартфон ex115 включает в себя антенну ex450 для передачи и приема радиоволн в/из базовой станции ex110, камеру ex465, допускающую захват видео и неподвижных изображений, и дисплей ex458, который отображает декодированные данные, такие как видео, захваченное посредством камеры ex465, и видео, принимаемое посредством антенны ex450. Смартфон ex115 дополнительно включает в себя пользовательский интерфейс ex466, такой как сенсорная панель, модуль ex457 аудиовывода, такой как динамик для вывода речи или другого аудио, модуль ex456 аудиоввода, такой как микрофон для аудиоввода, запоминающее устройство ex467, допускающее сохранение декодированных данных, таких как захваченные видео или неподвижные изображения, записанное аудио, принимаемые видео или неподвижные изображения и почтовые сообщения, а также декодированные данные, и гнездо ex464, которое представляет собой интерфейс для SIM-карты ex468 для авторизации доступа к сети и различным данным. Следует отметить, что внешнее запоминающее устройство может использоваться вместо запоминающего устройства ex467.
[0783] Главный контроллер ex460, который может всесторонне управлять дисплеем ex458 и пользовательским интерфейсом ex466, схема ex461 подачи мощности, контроллер ex462 ввода из пользовательского интерфейса, процессор ex455 видеосигналов, интерфейс ex463 камеры, контроллер ex459 отображения, модулятор/демодулятор ex452, мультиплексор/демультиплексор ex453, процессор ex454 аудиосигналов, гнездо ex464 и запоминающее устройство ex467 соединяются через шину ex470.
[0784] Когда пользователь включает кнопку питания схемы ex461 подачи мощности, смартфон ex115 включается в работоспособное состояние, и каждый компонент снабжается мощностью из аккумуляторного блока.
[0785] Смартфон ex115 выполняет обработку, например, для вызовов и передачи данных, на основе управления, выполняемого посредством главного контроллера ex460, который включает в себя CPU, ROM и RAM. При выполнении вызовов, аудиосигнал, записанный посредством модуля ex456 аудиоввода, преобразуется в цифровой аудиосигнал посредством процессора ex454 аудиосигналов, к которому применяется обработка с расширенным спектром посредством модулятора/демодулятора ex452 и применяется обработка цифро-аналогового преобразования и преобразования частоты посредством приемо-передающего устройства ex451, и результирующий сигнал передается через антенну ex450. Принимаемые данные усиливаются, преобразуются по частоте и подвергаются аналого-цифровому преобразованию, подвергаются обратной обработке с расширенным спектром посредством модулятора/демодулятора ex452, преобразуются в аналоговый аудиосигнал посредством процессора ex454 аудиосигналов и затем выводятся из модуля ex457 аудиовывода. В режиме передачи данных, текст, данные неподвижных изображений или видеоданные могут передаваться, например, под управлением главного контроллера ex460 через контроллер ex462 ввода из пользовательского интерфейса на основе операции пользовательского интерфейса ex466 основного корпуса. Аналогичная обработка передачи и приема выполняется. В режиме передачи данных, при отправке видео, неподвижного изображения или видео и аудио, процессор ex455 видеосигналов кодирует со сжатием, через способ кодирования движущихся кадров, описанный в вышеприведенных вариантах осуществления, видеосигнал, сохраненный в запоминающем устройстве ex467, или видеосигнал, вводимый из камеры ex465, и передает кодированные видеоданные в мультиплексор/демультиплексор ex453. Процессор ex454 аудиосигналов кодирует аудиосигнал, записанный посредством модуля ex456 аудиоввода, в то время как камера ex465 захватывает видео или неподвижное изображение, и передает кодированные аудиоданные в мультиплексор/демультиплексор ex453. Мультиплексор/демультиплексор ex453 мультиплексирует кодированные видеоданные и кодированные аудиоданные с использованием определенной схемы, модулирует и преобразует данные с использованием модулятора/демодулятора ex452 (схемы модулятора/демодулятора) и приемо-передающего устройства ex451 и передает результат через антенну ex450. Определенная схема может быть предварительно определена.
[0786] Когда видео, вложенное в почтовом сообщении или в чате, или видео, содержащее ссылку из веб-страницы, принимается, например, для того чтобы декодировать мультиплексированные данные, принимаемые через антенну ex450, мультиплексор/демультиплексор ex453 демультиплексирует мультиплексированные данные, чтобы разделять мультиплексированные данные на поток битов видеоданных и поток битов аудиоданных, предоставляет кодированные видеоданные в процессор ex455 видеосигналов через синхронную шину ex470 и предоставляет кодированные аудиоданные в процессор ex454 аудиосигналов через синхронную шину ex470. Процессор ex455 видеосигналов декодирует видеосигнал с использованием способа декодирования движущихся кадров, соответствующего способу кодирования движущихся кадров, описанному в вышеприведенных вариантах осуществления, и видео или неподвижное изображение, включенное в связанный файл движущихся кадров, отображается на дисплее ex458 через контроллер ex459 отображения. Процессор ex454 аудиосигналов декодирует аудиосигнал и выводит аудио из модуля ex457 аудиовывода. Поскольку потоковая передача в режиме реального времени становится все более популярной, могут возникать случаи, в которых воспроизведение аудио может быть социально нецелесообразным, в зависимости от окружения пользователя. Соответственно, в качестве начального значения, может быть предпочтительной конфигурация, в которой только видеоданные воспроизводятся, т.е. аудиосигнал не воспроизводится; аудио может синхронизироваться и воспроизводиться только тогда, когда принимается ввод, к примеру, когда пользователь щелкает видеоданные.
[0787] Хотя смартфон ex115 использован в вышеприведенном примере, другие реализации возможны: приемо-передающий терминал, включающий в себя как кодер, так и декодер; передающий терминал, включающий в себя только кодер; и приемный терминал, включающий в себя только декодер. В описании цифровой широковещательной системы, приводится пример, в котором мультиплексированные данные, полученные в результате мультиплексирования видеоданных с аудиоданными, принимаются или передаются. Тем не менее, мультиплексированные данные могут представлять собой видеоданные, мультиплексированные с данными, отличными от аудиоданных, такими как текстовые данные, связанные с видео. Дополнительно, непосредственно видеоданные, а не мультиплексированные данные могут приниматься или передаваться.
[0788] Хотя главный контроллер ex460, включающий в себя CPU, описывается как управляющий процессами кодирования или декодирования, различные терминалы зачастую включают в себя GPU. Соответственно, является приемлемой конфигурация, в которой большая зона обрабатывается сразу посредством использования характеристик с точки зрения производительности GPU через запоминающее устройство, совместно используемое посредством CPU и GPU, либо через запоминающее устройство, включающее в себя адрес, которое управляется таким образом, чтобы обеспечивать возможность широкого использования посредством CPU и GPU. Это позволяет сокращать время кодирования, поддерживать характер реального времени потока и уменьшать задержку. В частности, обработка, связанная с оценкой движения, фильтрацией для удаления блочности, дискретизированным адаптивным смещением (SAO) и преобразованием/квантованием, может эффективно выполняться посредством GPU вместо CPU, например, в единицах кадров, одновременно.
Промышленная применимость
[0789] Настоящее раскрытие является применимым, например, к телевизионным приемникам, цифровым записывающим видеоустройствам, автомобильным навигационным системам, мобильным телефонам, цифровым камерам, цифровым видеокамерам, системам телеконференц-связи, электронным зеркалам и т.д.
Список номеров ссылок
[0790] 100 - кодер
102 - модуль разбиения
104 - вычитатель
106 - преобразователь
108 - квантователь
110 - энтропийный кодер
112, 204 - обратный квантователь
114, 206 - обратный преобразователь
116, 208 - сумматор
118, 210 - запоминающее устройство блоков
120, 212 - контурный фильтр
122, 214 - запоминающее устройство кадров
124, 216 - модуль внутреннего прогнозирования
126, 218 - модуль внешнего прогнозирования
126a, a2, b2 - запоминающее устройство
126b - модуль извлечения интерполированных изображений
126c - модуль извлечения градиентных изображений
126d - модуль извлечения оптических потоков
126e - модуль извлечения значений коррекции
126f - корректор прогнозных изображений
128, 220 - контроллер прогнозирования
200 - декодер
202 - энтропийный декодер
1201 - модуль определения границ
1202, 1204, 1206 - переключатель
1203 - модуль определения фильтрации
1205 - модуль выполнения фильтрации
1207 - модуль определения характеристик фильтра
1208 - модуль определения обработки
a1, b1 - процессор
название | год | авторы | номер документа |
---|---|---|---|
КОДЕР, ДЕКОДЕР, СПОСОБ КОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ | 2020 |
|
RU2825824C2 |
КОДЕР, ДЕКОДЕР, СПОСОБ КОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ | 2020 |
|
RU2808454C1 |
КОДЕР, ДЕКОДЕР, СПОСОБ КОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ | 2020 |
|
RU2821010C2 |
КОДЕР, ДЕКОДЕР, СПОСОБ КОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ | 2019 |
|
RU2808005C2 |
ДЕКОДЕР, СПОСОБ КОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ | 2019 |
|
RU2795260C2 |
СИСТЕМА И СПОСОБ ДЛЯ КОДИРОВАНИЯ ВИДЕО | 2020 |
|
RU2817290C2 |
СИСТЕМА И СПОСОБ ДЛЯ КОДИРОВАНИЯ ВИДЕО | 2020 |
|
RU2819086C2 |
КОДЕР, ДЕКОДЕР, СПОСОБ КОДИРОВАНИЯ, СПОСОБ ДЕКОДИРОВАНИЯ И ПРОГРАММА СЖАТИЯ КАДРОВ | 2019 |
|
RU2784381C2 |
СПОСОБ ДЕКОДИРОВАНИЯ ВИДЕО И ИЗОБРАЖЕНИЙ С ИСПОЛЬЗОВАНИЕМ СЕГМЕНТАЦИИ НА БЛОКИ | 2019 |
|
RU2808103C2 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ НА ОСНОВЕ СУБКАДРОВ И СПОСОБ ДЛЯ ПЕРЕДАЧИ ПОТОКА БИТОВ | 2020 |
|
RU2803197C1 |
Изобретение относится к средствам для кодирования изображения. Технический результат заключается в повышении эффективности кодирования изображений. Извлекают, в качестве первого параметра, общую сумму абсолютных значений сумм значений горизонтального градиента, соответственно, для пар относительных пиксельных позиций. Извлекают, в качестве второго параметра, общую сумму абсолютных значений сумм значений вертикального градиента, соответственно, для пар относительных пиксельных позиций. Извлекают, в качестве третьего параметра, общую сумму горизонтально-связанных пиксельных разностных значений, соответственно, для пар относительных пиксельных позиций. Извлекают, в качестве четвертого параметра, общую сумму вертикально-связанных пиксельных разностных значений, соответственно, для пар относительных пиксельных позиций. Извлекают, в качестве пятого параметра, общую сумму вертикально-связанных сумм значений горизонтального градиента, соответственно, для пар относительных пиксельных позиций. Формируют прогнозное изображение, которое должно использоваться для того, чтобы кодировать текущий блок с использованием первого, второго, третьего, четвертого и пятого параметров. 72 ил.
Кодер, содержащий
запоминающее устройство;
процессор, соединенный с запоминающим устройством и выполненный с возможностью формировать прогнозное изображение, чтобы кодировать текущий блок на основе первого параметра, второго параметра, третьего параметра, четвертого параметра и пятого параметра, которые извлекаются в процессе извлечения двунаправленных оптических потоков (BDOF), при этом:
первый параметр извлекается на основе следующего выражения:
;
второй параметр извлекается на основе следующего выражения:
;
третий параметр извлекается на основе следующего выражения:
;
четвертый параметр извлекается на основе следующего выражения:
;
пятый параметр извлекается на основе следующего выражения,
,
где Ω указывает набор относительных пиксельных позиций;
[i, j] указывает относительную пиксельную позицию в наборе Ω, заданную посредством горизонтальной позиции i и вертикальной позиции j;
Ix0 указывает значение горизонтального градиента в первой пиксельной позиции в первом градиентном изображении, и Ix1 обозначает значение горизонтального градиента в первой пиксельной позиции во втором градиентном изображении, причем первая пиксельная позиция определяется на основе относительной пиксельной позиции [i, j], первого градиентного изображения и второго градиентного изображения, соответствующих текущему блоку;
Iy0 указывает значение вертикального градиента в первой пиксельной позиции в первом градиентном изображении, и Iy1 обозначает значение вертикального градиента в первой пиксельной позиции во втором градиентном изображении;
I0 указывает пиксельное значение в первой пиксельной позиции в первом интерполированном изображении, соответствующем текущему блоку;
I1 указывает пиксельное значение в первой пиксельной позиции во втором интерполированном изображении, соответствующем текущему блоку;
функция abs выводит абсолютное значение аргумента;
функция sign выводит знак аргумента, который равен -1, 0 или 1.
CA 3065492 A1, 22.11.2018 | |||
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
Станок для придания концам круглых радиаторных трубок шестигранного сечения | 1924 |
|
SU2019A1 |
Станок для придания концам круглых радиаторных трубок шестигранного сечения | 1924 |
|
SU2019A1 |
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ИНФОРМАЦИИ ДВИЖЕНИЯ, А ТАКЖЕ СПОСОБ И УСТРОЙСТВО ДЛЯ ЕЕ ДЕКОДИРОВАНИЯ | 2017 |
|
RU2682303C1 |
Авторы
Даты
2023-12-26—Публикация
2020-06-15—Подача