Устройство кодирования, устройство декодирования, способ кодирования и способ декодирования
Иллюстрации
Показать всеИзобретение относится к способам кодирования и декодирования информации. Технический результат изобретения заключается в повышении эффективности кодирования информации. Способ кодирования включает в себя этап установки индекса, этап прогнозирования и этап кодирования. Этап установки индекса устанавливает индекс, который представляет информацию опорного изображения и весового коэффициента. Этап прогнозирования прогнозирует таким образом, что опорное значение весового коэффициента, когда изменение пиксельного значения между по меньшей мере одним опорным изображением и целевым изображением, которое должно быть кодировано, является конкретной опорой или меньше, выводится в качестве прогнозируемого значения. Этап кодирования кодирует значение разности между весовым и прогнозируемым значениями. 3 н.п. ф-лы, 28 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ
[0001] Вариант осуществления настоящего изобретения относится к способу кодирования и способу декодирования.
УРОВЕНЬ ТЕХНИКИ
[0002] В последние годы, способ кодирования изображения со значительно повышенной эффективностью кодирования рекомендуется как ITU-T REC. H.264 и ISO/IEC 14496-10 (далее именуемый “H.264”) в кооперации с ITU-T (International Telecommunication Union Telecommunication Standardization Sector) и ISO (International Organization for Standardization)/IEC (International Electrotechnical Commission).
[0003] В H.264 раскрыта система кодирования с внешним прогнозированием, в которой избыточность во временном направлении устраняется для достижения высокой эффективности кодирования за счет осуществления прогнозирования с компенсацией движения дробной точности с использованием кодированного изображения в качестве опорного изображения.
[0004] Кроме того, предложена система, в которой движущееся изображение, включающее в себя эффект затухания или расплывания, кодируется с более высокой эффективностью, чем в системе кодирования с внешним прогнозированием согласно ISO/IEC MPEG (Moving Picture Experts Group)-1, 2, 4. В этой системе, прогнозирование с компенсацией движения дробной точности производится для входного движущегося изображения, имеющего яркость и две цветоразности, в качестве кадров для прогнозирования изменения светлоты во временном направлении. Затем, с использованием индекса, представляющего комбинацию опорного изображения, весового коэффициента для каждого из яркости и двух цветоразностей, и смещения для каждого из яркости и двух цветоразностей, прогнозируемое изображение умножается на весовой коэффициент, и смещение суммируется с ним.
СПИСОК ЦИТИРОВАНИЯ
ПАТЕНТНАЯ ЛИТЕРАТУРА
[0005] Патентная литература 1: японская выложенная патентная публикация № 2004-7377
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ПРОБЛЕМА
[0006] Однако, в традиционной технологии, как описано выше, поскольку индекс кодируется, будучи поддерживаемым в виде прямых значений, эффективность кодирования снижается. Задачей настоящего изобретения является обеспечение способа кодирования и способа декодирования, способного повышать эффективность кодирования.
РЕШЕНИЕ ПРОБЛЕМЫ
[0007] Устройство кодирования согласно варианту осуществления включает в себя блок установки индекса, блок переконфигурирования индекса и блок энтропийного кодирования. Блок установления индекса устанавливает индекс, который представляет информацию опорного изображения и весового коэффициента. Блок переконфигурирования индекса прогнозирует опорное значение весового коэффициента, причем опорное значение указывает коэффициент, который должен быть установлен, если разность пиксельного значения между опорным изображением и целевым изображением, которое должно быть кодировано, меньше или равна конкретному значению. Блок энтропийного кодирования кодирует значение разности между весовым коэффициентом и опорным значением.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0008] Фиг. 1 - блок-схема, иллюстрирующая пример устройства кодирования согласно первому варианту осуществления.
Фиг. 2 - пояснительная схема, которая иллюстрирует пример прогнозируемой последовательности кодирования для пиксельного блока согласно первому варианту осуществления.
Фиг. 3A - схема, которая иллюстрирует пример размера блока для блока дерева кодирования согласно первому варианту осуществления.
Фиг. 3B - схема, которая иллюстрирует конкретный пример блока дерева кодирования согласно первому варианту осуществления.
Фиг. 3C - схема, которая иллюстрирует конкретный пример блока дерева кодирования согласно первому варианту осуществления.
Фиг. 3D - схема, которая иллюстрирует конкретный пример блока дерева кодирования согласно первому варианту осуществления.
Фиг. 4 - блок-схема, иллюстрирующая пример блока генерирования прогнозируемого изображения согласно первому варианту осуществления.
Фиг. 5 - схема, которая иллюстрирует пример соотношения между векторами движения для прогнозирования с компенсацией движения в двунаправленном прогнозировании согласно первому варианту осуществления.
Фиг. 6 - блок-схема, иллюстрирующая пример блока многокадровой компенсации движения согласно первому варианту осуществления.
Фиг. 7 - пояснительная схема, которая иллюстрирует пример точности фиксированной запятой весового коэффициента согласно первому варианту осуществления.
Фиг. 8A - схема, которая иллюстрирует пример информации параметра WP согласно первому варианту осуществления.
Фиг. 8B - схема, которая иллюстрирует пример информации параметра WP согласно первому варианту осуществления.
Фиг. 9 - схема, которая иллюстрирует пример синтаксиса согласно первому варианту осуществления.
Фиг. 10 - схема, которая иллюстрирует пример синтаксиса набора параметров изображения согласно первому варианту осуществления.
Фиг. 11 - схема, которая иллюстрирует пример синтаксиса заголовка слайса согласно первому варианту осуществления.
Фиг. 12 - схема, которая иллюстрирует пример синтаксиса таблицы весов pred согласно первому варианту осуществления.
Фиг. 13 - схема, которая иллюстрирует пример конфигурации синтаксиса, в явном виде представляющей способ прогнозирования согласно первому варианту осуществления.
Фиг. 14 - блок-схема операций, которая иллюстрирует пример процесса прогнозирования точности фиксированной запятой согласно первому варианту осуществления.
Фиг. 15 - блок-схема операций, которая иллюстрирует пример процесса восстановления точности фиксированной запятой согласно первому варианту осуществления.
Фиг. 16 - блок-схема операций, которая иллюстрирует пример процесса прогнозирования весового коэффициента согласно первому варианту осуществления.
Фиг. 17 - блок-схема операций, которая иллюстрирует пример процесса восстановления весового коэффициента согласно первому варианту осуществления.
Фиг. 18 - блок-схема операций, которая иллюстрирует другой пример процесса прогнозирования весового коэффициента согласно первому варианту осуществления.
Фиг. 19 - блок-схема операций, которая иллюстрирует другой пример процесса восстановления весового коэффициента согласно первому варианту осуществления.
Фиг. 20 - блок-схема операций, которая иллюстрирует пример процесса прогнозирования цветоразностного сигнала согласно первому варианту осуществления.
Фиг. 21 - блок-схема операций, которая иллюстрирует пример процесса восстановления цветоразностного сигнала согласно первому варианту осуществления.
Фиг. 22 - блок-схема операций, которая иллюстрирует другой пример процесса прогнозирования весового коэффициента согласно первому варианту осуществления.
Фиг. 23 - блок-схема операций, которая иллюстрирует другой пример процесса восстановления весового коэффициента согласно первому варианту осуществления.
Фиг. 24 - блок-схема, иллюстрирующая пример конфигурации устройства декодирования согласно второму варианту осуществления.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0009] Далее следует подробное описание вариантов осуществления со ссылкой на прилагаемые чертежи. Устройство кодирования и устройство декодирования согласно каждому варианту осуществления, представленному ниже, можно реализовать аппаратными средствами, например, БИС (большой интегральной схемы), DSP (цифрового сигнального процессора) или FPGA (вентильной матрицы, программируемой пользователем). Кроме того, устройство кодирования и устройство декодирования согласно каждому варианту осуществления, представленному ниже, можно реализовать, предписывая компьютеру выполнять программу, другими словами, программными средствами. В нижеприведенном описании, термин “изображение” можно надлежащим образом заменить таким термином, как “видео”, “пиксель”, “сигнал изображения”, “картинка” или “данные изображения ”.
[0010] ПЕРВЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
В первом варианте осуществления будет описано устройство кодирования, кодирующее движущееся изображение.
[0011] На фиг. 1 показана блок-схема, иллюстрирующая пример конфигурации устройства 100 кодирования согласно первому варианту осуществления.
[0012] Устройство 100 кодирования делит каждый кадр или каждое поле, конфигурирующий(ее) входное изображение, на множество пиксельных блоков и осуществляет кодирование с прогнозированием разделенных пиксельных блоков с использованием параметров кодирования, поступающих от блока 111 управления кодированием, таким образом, генерируя прогнозируемое изображение. Затем устройство 100 кодирования генерирует ошибку прогнозирования путем вычитания прогнозируемого изображения из входного изображения, разделенного на множество пикселей, генерирует кодированные данные путем осуществления ортогонального преобразования и квантования, с последующим энтропийным кодированием сгенерированной ошибки прогнозирования, и выводит сгенерированные кодированные данные.
[0013] Устройство 100 кодирования осуществляет кодирование с прогнозированием, избирательно применяя множество режимов прогнозирования, которые отличаются друг от друга по меньшей мере одним из размера блока пиксельного блока и способа генерирования прогнозируемого изображения. Способ генерирования прогнозируемого изображения можно, в основном, подразделить на два типа, включающие в себя внутреннее прогнозирование, в котором прогнозирование производится в целевом кадре кодирования и внешнее прогнозирование, в котором прогнозирование с компенсацией движения производится с использованием одного или более опорных кадров разных моментов времени. Внутреннее прогнозирование также называется внутриэкранным прогнозированием, внутрикадровым прогнозированием и т.п., и внешнее прогнозирование также называется межэкранным прогнозированием, межкадровым прогнозированием, прогнозированием с компенсацией движения и т.п.
[0014] На фиг. 2 показана пояснительная схема, которая иллюстрирует пример прогнозируемой последовательности кодирования для пиксельного блока согласно первому варианту осуществления. В примере, представленном на фиг. 2, устройство 100 кодирования осуществляет кодирование с прогнозированием от верхней левой стороны к нижней правой стороне в пиксельном блоке. Таким образом, в целевом кадре обработки кодирования f, на левой стороне и верхней стороне целевого пиксельного блока кодирования c, располагаются пиксельные блоки p, кодирование которых закончено. Далее, для упрощения описания, хотя предполагается, что устройство 100 кодирования осуществляет кодирование с прогнозированием в порядке, представленном на фиг. 2, порядок в кодировании с прогнозированием этим не ограничивается.
[0015] Пиксельный блок представляет единицу для обработки изображения, и, например, блок, имеющий размер M×N (здесь, M и N - натуральные числа), блок дерева кодирования, макроблок, подблок, пиксель и т.п., соответствует ему. В нижеприведенном описании пиксельный блок, в основном, используется в значении блока дерева кодирования, но может использоваться в другом значении. Например, в описании единицы прогнозирования, пиксельный блок используется в значении пиксельного блока единицы прогнозирования. Блок может именоваться единицей и т.п. Например, блок кодирования может именоваться единицей кодирования.
[0016] На фиг. 3A показана схема, которая иллюстрирует пример размера блока дерева кодирования согласно первому варианту осуществления. Блок дерева кодирования обычно является пиксельным блоком размером 64×64 как показано на фиг. 3A. Однако блок дерева кодирования не ограничивается этим, но может представлять собой пиксельный блок размером 32×32, пиксельный блок размером 16×16, пиксельный блок размером 8×8, пиксельный блок размером 4×4, и т.п. Здесь, блок дерева кодирования может не быть квадратным но, например, может быть пиксельным блоком размером M×N (здесь, M≠N).
[0017] На фиг. 3B-3D показаны схемы, представляющие конкретные примеры блока дерева кодирования согласно первому варианту осуществления. Фиг. 3B представляет блок дерева кодирования имеющий размер блока 64×64 (N=32). Здесь, N представляет размер опорного блока дерева кодирования. Размер в случае, когда блок дерева кодирования делится, задается как N, и размер в случае, когда блок дерева кодирования не делится, задается как 2N. Фиг. 3C представляет блок дерева кодирования, полученный делением блока дерева кодирования, представленного на фиг. 3B на квадродерево. Блок дерева кодирования, как показано на фиг. 3C, имеет структуру квадродерева. В случае, когда блок дерева кодирования делится, как показано на фиг. 3C, номера присваиваются (назначаются) четырем пиксельным блокам после разделения в порядке сканирования по Z.
[0018] Кроме того, в каждом номере квадродерева, блок дерева кодирования может дополнительно делиться на квадродерево. Соответственно, блок дерева кодирования может делиться иерархическим образом. В таком случае, глубина разделения задается как Depth. Фиг. 3D представляет один из блоков дерева кодирования, полученных делением блока дерева кодирования, представленного на фиг. 3B, на квадродерево, и его размер блока равен 32×32 (N=16). Глубина блока дерева кодирования, представленного на фиг. 3B, равна “0”, и глубина блока дерева кодирования, представленного на фиг. 3D, равна “1”. Кроме того, блок дерева кодирования, имеющий наибольшую единицу, называется большим блоком дерева кодирования, и входной сигнал изображения кодируется в такой единице в растровом порядке сканирования.
[0019] В нижеследующем описании, кодированный целевой блок или блок дерева кодирования входного изображения может именоваться целевым блоком прогнозирования или пиксельным блоком прогнозирования. Кроме того, блок кодирования не ограничивается пиксельным блоком, но по меньшей мере один из кадра, поля, слайса, линии и пикселя может использоваться в качестве блока кодирования.
[0020] Устройство 100 кодирования, как показано на фиг. 1, включает в себя: блок 101 вычитания; блок 102 ортогонального преобразования; блок 103 квантования; блок 104 обратного квантования; блок 105 обратного ортогонального преобразования; блок 106 суммирования; блок 107 генерирования прогнозируемого изображения; блок 108 установки индекса; блок 109 оценивания движения; и блок 110 кодирования. Кроме того, блок 111 управления кодированием, представленный на фиг. 1, управляет устройством 100 кодирования и может быть реализован, например, с использованием ЦП (центрального процессора) и т.п.
[0021] Блок 101 вычитания получает ошибку прогнозирования путем вычитания соответствующего прогнозируемого изображения из входного изображения, разделенного на пиксельные блоки. Блок 101 вычитания выводит ошибку прогнозирования для ввода в блок 102 ортогонального преобразования.
[0022] Блок 102 ортогонального преобразования осуществляет ортогональное преобразование, например, дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST) для ошибки прогнозирования, поступающей от блока 101 вычитания, таким образом, получая коэффициент преобразования. Блок 102 ортогонального преобразования выводит коэффициент преобразования для ввода в блок 103 квантования.
[0023] Блок 103 квантования осуществляет процесс квантования для коэффициента преобразования, поступающего от блока 102 ортогонального преобразования, таким образом, получая коэффициент преобразования квантования. В частности, блок 103 квантования осуществляет квантование на основании параметра квантования, назначенного блоком 111 управления кодированием, и информации квантования, например, матрицы квантования. Описанный более подробно, блок 103 квантования получает коэффициент преобразования квантования делением коэффициента преобразования на размер шага квантования, выведенный на основании информации квантования. Параметр квантования представляет тонкость квантования. Матрица квантования используется для взвешивания тонкости квантования для каждой компоненты коэффициента преобразования. Блок 103 квантования выводит коэффициент преобразования квантования для ввода в блок 104 обратного квантования и блок 110 кодирования.
[0024] Блок 104 обратного квантования осуществляет процесс обратного квантования для коэффициента преобразования квантования, поступающего от блока 103 квантования, таким образом, получая коэффициент преобразования восстановления. В частности, блок 104 обратного квантования осуществляет обратное квантование на основании информации квантования, используемой блоком 103 квантования. Описанный подробно, блок 104 обратного квантования получает коэффициент преобразования восстановления путем умножения коэффициента преобразования квантования на размер шага квантования, выведенный на основании информации квантования. Кроме того, информация квантования, используемая блоком 103 квантования, загружается из внутренней памяти блока 111 управления кодированием, которая не показана на фигуре, и используется. Блок 104 обратного квантования выводит коэффициент преобразования восстановления для ввода в блок 105 обратного ортогонального преобразования.
[0025] Блок 105 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование, например, обратное дискретное косинусное преобразование (IDCT) или обратное дискретное синусное преобразование (IDST) для восстановленного коэффициента преобразования, поступающего от блока 104 обратного квантования, таким образом, получая восстановленную ошибку прогнозирования. Здесь, обратное ортогональное преобразование, осуществляемое блоком 105 обратного ортогонального преобразования, соответствует ортогональному преобразованию, осуществляемому блоком 102 ортогонального преобразования. Блок 105 обратного ортогонального преобразования выводит восстановленную ошибку прогнозирования для ввода в блок 106 суммирования.
[0026] Блок 106 суммирования суммирует восстановленную ошибку прогнозирования, поступающую от блока 105 обратного ортогонального преобразования, и соответствующее прогнозируемое изображение, таким образом, генерируя локальное декодированное изображение. Блок 106 суммирования выводит локальное декодированное изображение для ввода в блок 107 генерирования прогнозируемого изображения.
[0027] Блок 107 генерирования прогнозируемого изображения сохраняет локальное декодированное изображение, поступающее от блока 106 суммирования, в памяти (не представленной на фиг. 1) в качестве опорного изображения и выводит опорное изображение, хранящееся в памяти, для ввода в блок 109 оценивания движения. Кроме того, блок 107 генерирования прогнозируемого изображения генерирует прогнозируемое изображение путем осуществления взвешенного прогнозирования с компенсацией движения на основании информации движения и информации параметра WP, поступающей от блока 109 оценивания движения. Блок 107 генерирования прогнозируемого изображения выводит прогнозируемое изображение для ввода в блок 101 вычитания и блок 106 суммирования.
[0028] На фиг. 4 показана блок-схема, иллюстрирующая пример конфигурации блока 107 генерирования прогнозируемого изображения согласно первому варианту осуществления. Блок 107 генерирования прогнозируемого изображения, как показано на фиг. 4, включает в себя: блок 201 многокадровой компенсации движения; память 202; блок 203 однонаправленной компенсации движения; блок 204 управления параметрами прогнозирования; блок 205 выбора опорного изображения; блок 206 памяти кадров; и блок 207 управления опорным изображением.
[0029] Блок 206 памяти кадров сохраняет локальное декодированное изображение, поступающее от блока 106 суммирования в качестве опорного изображения под управлением блока 207 управления опорным изображением. Блок 206 памяти кадров включает в себя множество блоков FM1-FMN памяти (здесь, N≥2) используемых для временного хранения опорного изображения.
[0030] Блок 204 управления параметрами прогнозирования подготавливает множество комбинаций, каждого из номера опорного изображения и параметра прогнозирования в виде таблицы на основании информации движения, поступающей от блока 109 оценивания движения. Здесь, информация движения представляет информацию вектора движения, представляющего отклонение движения, который используется для прогнозирования с компенсацией движения, номера опорного изображения и режима прогнозирования, например, однонаправленного/двунаправленного прогнозирования. Параметр прогнозирования представляет информацию, относящуюся к вектору движения и режиму прогнозирования. Затем блок 204 управления параметрами прогнозирования выбирает комбинацию ссылочного номера и параметра прогнозирования, используемого для генерирования прогнозируемого изображения, на основании входного изображения и выводит выбранную комбинацию для обеспечения ввода номера опорного изображения в блок 205 выбора опорного изображения и для обеспечения ввода параметра прогнозирования в блок 203 однонаправленной компенсации движения.
[0031] Блок 205 выбора опорного изображения представляет собой переключатель, который меняет один из выходных разъемов блоков FM1-FMN памяти кадров, которые включены в блок 206 памяти кадров, на который нужно переключаться, на основании номера опорного изображения, поступающего от блока 204 управления параметрами прогнозирования. Например, когда номер опорного изображения равен “0”, блок 205 выбора опорного изображения соединяет выходной разъем блока FM1 памяти кадров с выходным разъемом блока 205 выбора опорного изображения, и, когда номер опорного изображения равен N-1, блок 205 выбора опорного изображения соединяет выходной разъем блока FMN памяти кадров с выходным разъемом блока 205 выбора опорного изображения. Блок 205 выбора опорного изображения выводит опорное изображение, хранящееся в блоке памяти кадров, к которому подключен выходной разъем, из блоков FM1-FMN памяти кадров, включенных в блок 206 памяти кадров, для ввода в блок 203 однонаправленной компенсации движения и блок 109 оценивания движения.
[0032] Блок 203 компенсации движения однонаправленного прогнозирования осуществляет процесс прогнозирования с компенсацией движения на основании параметра прогнозирования, поступающего от блока 204 управления параметрами прогнозирования, и опорного изображения, поступающего от блока 205 выбора опорного изображения, таким образом, генерируя однонаправлено прогнозируемое изображение.
[0033] На фиг. 5 показана схема, которая иллюстрирует пример соотношения между векторами движения для прогнозирования с компенсацией движения в двунаправленном прогнозировании согласно первому варианту осуществления. При прогнозировании с компенсацией движения, процесс интерполяции осуществляется с использованием опорного изображения, и однонаправлено прогнозируемое изображение генерируется на основании отклонений движений сгенерированного интерполированного изображения и входного изображения от пиксельного блока, расположенного в позиции цели кодирования. Здесь, отклонение является вектором движения. Как показано на фиг. 5, в слайсе двунаправленного прогнозирования (B-слайсе), прогнозируемое изображение генерируется с использованием двух типов опорных изображений и набора векторов движения. В качестве процесса интерполяции, используется процесс интерполяции полупиксельной точности, процесс интерполяции четвертьпиксельной точности и т.п., и, путем осуществления процесса фильтрации для опорного изображения, генерируется значение интерполированного изображения. Например, в H.264, в котором интерполяция до четвертьпиксельной точности может осуществляться для яркостного сигнала, отклонение представляется как четырехкратная целочисленная пиксельная точность.
[0034] Блок 203 компенсации движения однонаправленного прогнозирования выводит однонаправлено прогнозируемое изображение и временно сохраняет однонаправлено прогнозируемое изображение в памяти 202. Здесь, в случае, когда информация движения (параметр прогнозирования) представляет двунаправленное прогнозирование, блок 201 многокадровой компенсации движения осуществляет взвешенное прогнозирование с использованием двух типов однонаправлено прогнозируемых изображений. Соответственно, блок 203 компенсации движения однонаправленного прогнозирования сохраняет однонаправлено прогнозируемое изображение, соответствующее первому типу, в памяти 202 и непосредственно выводит однонаправлено прогнозируемое изображение, соответствующее второму типу, на блок 201 многокадровой компенсации движения. Здесь, однонаправлено прогнозируемое изображение, соответствующее первому типу, будем именовать первым прогнозируемым изображением, и однонаправлено прогнозируемое изображение, соответствующее второму типу, будем именовать вторым прогнозируемым изображением.
[0035] Кроме того, два блока 203 однонаправленной компенсации движения могут подготавливаться и генерировать два однонаправлено прогнозируемых изображения. В таком случае, когда информация движения (параметр прогнозирования) представляет однонаправленное прогнозирование, блок 203 однонаправленной компенсации движения может непосредственно выводить первое однонаправлено прогнозируемое изображение на блок 201 многокадровой компенсации движения в качестве первого прогнозируемого изображения.
[0036] Блок 201 многокадровой компенсации движения осуществляет взвешенное прогнозирование с использованием первого прогнозируемого изображения, поступающего из памяти 202, второго прогнозируемого изображения, поступающего от блока 203 компенсации движения однонаправленного прогнозирования, и информации параметра WP, поступающей от блока 109 оценивания движения, таким образом, генерируя прогнозируемое изображение. Блок 201 многокадровой компенсации движения выводит прогнозируемое изображение для ввода в блок 101 вычитания и блок 106 суммирования.
[0037] На фиг. 6 показана блок-схема, иллюстрирующая пример конфигурации блока 201 многокадровой компенсации движения согласно первому варианту осуществления. Как показано на фиг. 6, блок 201 многокадровой компенсации движения включает в себя: блок 301 компенсации движения по умолчанию; блок 302 взвешенной компенсации движения; блок 303 управления параметрами WP; и блоки 304 и 305 выбора WP.
[0038] Блок 303 управления параметрами WP выводит флаг применения WP и весовую информацию на основании информации параметра WP, поступающей от блока 109 оценивания движения, для ввода флага применения WP в блоки 304 и 305 выбора WP и ввода весовой информации в блок 302 взвешенной компенсации движения.
[0039] Здесь, информация параметра WP включает в себя информацию точности фиксированной запятой весового коэффициента, первый флаг применения WP, первый весовой коэффициент, и первое смещение, соответствующее первому прогнозируемому изображению, и второй флаг применения WP, второй весовой коэффициент, и второе смещение, соответствующее второму прогнозируемому изображению. Флаг применения WP это параметр, который можно устанавливать для каждого соответствующего опорного изображения и компоненты сигнала, и представляет, производится ли взвешенное прогнозирование с компенсацией движения. Весовая информация включает в себя информацию точности фиксированной запятой весового коэффициента, первый весовой коэффициент, первое смещение, второй весовой коэффициент и второе смещение.
[0040] Как описано подробно, когда информация параметра WP поступает от блока 109 оценивания движения, блок 303 управления параметрами WP выводит информацию параметра WP, которая делится на первый флаг применения WP, второй флаг применения WP и весовую информацию, таким образом, вводя первый флаг применения WP в блок 304 выбора WP, вводя второй флаг применения WP в блок 305 выбора WP, и вводя весовую информацию в блок 302 взвешенной компенсации движения.
[0041] Блоки 304 и 305 выбора WP изменяют соединительные концы прогнозируемых изображений на основании флагов применения WP, поступающих от блока 303 управления параметрами WP. В случае, когда соответствующий флаг применения WP равен “0”, каждый из блоков 304 и 305 выбора WP соединяет его выходной конец с блоком 301 компенсации движения по умолчанию. Затем блоки 304 и 305 выбора WP выводят первое и второе прогнозируемые изображения для ввода в блок 301 компенсации движения по умолчанию. С другой стороны, в случае, когда соответствующий флаг применения WP равен “1”, каждый из блоков 304 и 305 выбора WP соединяет его выходной конец с блоком 302 взвешенной компенсации движения. Затем блоки 304 и 305 выбора WP выводят первое и второе прогнозируемые изображения для ввода в блок 302 взвешенной компенсации движения.
[0042] Блок 301 компенсации движения по умолчанию осуществляет обработку усреднения на основании двух однонаправлено прогнозируемых изображений (первого и второго прогнозируемых изображений), поступающих от блоков 304 и 305 выбора WP, таким образом, генерируя прогнозируемое изображение. В частности, в случае, когда первый и второй флаги применения WP равны “0”, блок 301 компенсации движения по умолчанию осуществляет обработку усреднения на основании численного выражения (1).
[0043] P[x, y]=Clip1((PL0[x, y]+PL1[x, y]+offset2)>>(shift2)) (1)
[0044] Здесь, P[x, y] - прогнозируемое изображение, PL0[x, y] - первое прогнозируемое изображение, и PL1[x, y] - второе прогнозируемое изображение. Кроме того, offset2 и shift2 являются параметрами процесса округления в обработке усреднения и определяются на основании внутренней точности вычисления первого и второго прогнозируемых изображений. Когда битовая точность прогнозируемого изображения равна L, и битовая точность первого и второго прогнозируемых изображений равна M (L≤M), shift2 определяется численным выражением (2), и offset2 определяется численным выражением (3).
[0045] shift2=(M-L+1) (2)
[0046] offset2=(1<<(shift2-1) (3)
[0047] Например, битовая точность прогнозируемого изображения равна “8”, и битовая точность первого и второго прогнозируемых изображений равна “14”, shift2=7 на основании численного выражения (2), и offset2=(1<<6) на основании численного выражения (3).
[0048] Кроме того, в случае, когда режим прогнозирования, представленный информацией движения (параметром прогнозирования), является однонаправленным прогнозированием, блок 301 компенсации движения по умолчанию вычисляет окончательное прогнозируемое изображение с использованием только первого прогнозируемого изображения на основании численного выражения (4).
[0049] P[x, y]=Clip1((PLX[x, y]+offset1)>>(shift1)) (4)
[0050] Здесь, PLX[x, y] представляет однонаправлено прогнозируемое изображение (первое прогнозируемое изображение), и X - идентификатор, представляющий “0” или “1” в качестве опорного списка. Например, PLX[x, y] равен PL0[x, y] в случае, когда опорный список равен “0”, и равен PL1[x, y] в случае, когда опорный список равен “1”. Кроме того, offset1 и shift1 являются параметрами для процесса округления и определяются на основании внутренней точности вычисления первого прогнозируемого изображения. Когда битовая точность прогнозируемого изображения равна L, и битовая точность первого прогнозируемого изображения равна M, shift1 определяется численным выражением (5), и offset1 определяется численным выражением (6).
[0051] shift1=(M-L) (5)
[0052] offset1=(1<<(shift1-1) (6)
[0053] Например, в случае, когда битовая точность прогнозируемого изображения равна “8”, и битовая точность первого прогнозируемого изображения равна “14”, shift1=6 на основании численного выражения (5), и offset1=(1<<5) на основании численного выражения (6).
[0054] Блок 302 взвешенной компенсации движения осуществляет взвешенную компенсацию движения на основании двух однонаправлено прогнозируемых изображений (первого и второго прогнозируемых изображений), поступающих от блоков 304 и 305 выбора WP и весовой информации, поступающей от блока 303 управления параметрами WP. В частности, блок 302 взвешенной компенсации движения осуществляет процесс взвешивания на основании численного выражения (7) в случае, когда первый и второй флаги применения WP равны “1”.
[0055] P[x, y]=Clip1(((PL0[x, y]*w0C+PL1[x, y]*w1C+(1<<logWDC))>>(logWDC+1))+((o0C+o1C+1)>>1)) (7)
[0056] Здесь, w0C представляет весовой коэффициент, соответствующий первому прогнозируемому изображению, w1C представляет весовой коэффициент, соответствующий второму прогнозируемому изображению, o0C представляет смещение, соответствующее первому прогнозируемому изображению, и o1C представляет смещение, соответствующее второму прогнозируемому изображению. Далее, будем именовать их первым весовым коэффициентом, вторым весовым коэффициентом, первым смещением и вторым смещением, соответственно. logWDC это параметр, представляющий точность фиксированной запятой каждого весового коэффициента. Кроме того, переменная C представляет компоненту сигнала. Например, в случае пространственного сигнала YUV, яркостный сигнал представляется в виде C=Y, цветоразностный сигнал Cr представляется в виде C=Cr, и цветоразностная компонента Cb представляется в виде C=Cb.
[0057] Кроме того, в случае, когда точность вычисления первого и второго прогнозируемых изображений и точность вычисления прогнозируемого изображения отличаются друг от друга, блок 302 взвешенной компенсации движения реализует процесс округления, управляя logWDC, который является точностью фиксированной запятой, согласно численному выражению (8).
[0058] logWD’C=logWDC+offset1 (8)
[0059] Процесс округления можно реализовать путем замены logWDC, представленного в численном выражении (7), logWD’C, представленным в численном выражении (8). Например, в случае, когда битовая точность прогнозируемого изображения равна “8”, и битовая точность первого и второго прогнозируемых изображений равна “14”, переустанавливая logWDC, можно реализовать пакетный процесс округления для точности вычисления по аналогии с shift2, представленным в численном выражении (1).
[0060] Кроме того, в случае, когда режим прогнозирования, представленный информацией движения (параметром прогнозирования), является однонаправленным прогнозированием, блок 302 взвешенной компенсации движения вычисляет окончательное прогнозируемое изображение с использованием только первого прогнозируемого изображения на основании численного выражения (9).
[0061] P[x, y]=Clip1((PLX[x, y]*wXC+(1<<logWDC-1))>>(logWDC)) (9)
[0062] Здесь, PLX[x, y] представляет однонаправленно прогнозируемое изображение (первое прогнозируемое изображение), wXC представляет весовой коэффициент, соответствующий однонаправленному прогнозированию, и X - идентификатор, представляющий “0” или “1” в качестве опорного списка. Например, PLX[x, y] и wXC равны PL0[x, y] и w0C в случае, когда опорный список равен “0”, и равны PL1[x, y] и w1C в случае, когда опорный список равен “1”.
[0063] Кроме того, в случае, когда точность вычисления первого и второго прогнозируемых изображений и точность вычисления прогнозируемого изображения отличаются друг от друга, блок 302 взвешенной компенсации движения реализует процесс округления, управляя logWDC, который является точностью фиксированной запятой, согласно численному выражению (8), аналогично случаю двунаправленного прогнозирования.
[0064] Процесс округления можно реализовать путем замены logWDC, представленного в численном выражении (7), logWD’C, представленным в численном выражении (8). Например, в случае, когда битовая точность прогнозируемого изображения равна “8”, и битовая точность первых прогнозируемых изображений равна “14”, переустанавливая logWDC, можно реализовать пакетный процесс округления для точности вычисления, аналогичной shift1, представленного в численном выражении (4).
[0065] На фиг. 7 показана пояснительная схема, которая иллюстрирует пример точности фиксированной запятой весового коэффициента согласно первому варианту осуществления, и схема, которая иллюстрирует пример изменений в движущемся изображении, имеющем изменение светлоты во временном направлении и значение градации серого. В примере, представленном на фиг. 7, целевым кадром кодирования является Frame(t), кадр, который располагается на один кадр раньше во времени целевого кадра кодирования, является Frame(t-1), и кадр, который располагается на один кадр позже во времени целевого кадра кодирования, является Frame(t+1). Как показано на фиг. 7, в затухающем изображении, изменяющемся от белого к черному, светлота (значение градации серого) изображения уменьшается с течением времени. Весовой коэффициент пред