УСТРОЙСТВО КОДИРОВАНИЯ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ, СПОСОБ КОДИРОВАНИЯ И СПОСОБ ДЕКОДИРОВАНИЯ
ENCODING DEVICE, DECODING DEVICE, ENCODING METHOD AND DECODING METHOD

ОБЛАСТЬ ТЕХНИКИ
[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 - блок-схема, иллюстрирующая пример устройства кодирования согласно первому варианту осуществления.
Фиг. 2A - пояснительная схема, которая иллюстрирует пример прогнозируемой последовательности кодирования для пиксельного блока согласно первому варианту осуществления.
Фиг. 2B - пояснительная схема, которая иллюстрирует другой пример прогнозируемой последовательности кодирования для пиксельного блока согласно первому варианту осуществления.
Фиг. 3A - схема, которая иллюстрирует пример размера блока дерева кодирования согласно первому варианту осуществления.
Фиг. 3B - схема, которая иллюстрирует конкретный пример блока дерева кодирования согласно первому варианту осуществления.
Фиг. 3C - схема, которая иллюстрирует другой конкретный пример блока дерева кодирования согласно первому варианту осуществления.
Фиг. 3D - схема, которая иллюстрирует другой конкретный пример блока дерева кодирования согласно первому варианту осуществления.
Фиг. 4 - блок-схема, иллюстрирующая пример блока генерации прогнозируемого изображения согласно первому варианту осуществления.
Фиг. 5 - схема, которая иллюстрирует пример соотношения между векторами движения для прогнозирования с компенсацией движения в двунаправленном прогнозировании согласно первому варианту осуществления.
Фиг. 6 - блок-схема, иллюстрирующая пример блока многокадровой компенсации движения согласно первому варианту осуществления.
Фиг. 7 - ссылочная схема, которая иллюстрирует весовые коэффициенты.
Фиг. 8 - ссылочная схема, которая иллюстрирует диапазон выбора весового коэффициента H.264.
Фиг. 9 - пояснительная схема, которая иллюстрирует пример диапазона выбора весового коэффициента согласно первому варианту осуществления.
Фиг. 10A - пояснительная схема, которая иллюстрирует конкретный пример диапазона выбора весового коэффициента согласно первому варианту осуществления.
Фиг. 10B - пояснительная схема, которая иллюстрирует другой конкретный пример диапазона выбора весового коэффициента согласно первому варианту осуществления.
Фиг. 11 - ссылочная схема, которая иллюстрирует минимальное значение и максимальное значение весовых коэффициентов H.264.
Фиг. 12 - пояснительная схема, которая иллюстрирует пример минимального значения и максимального значения весовых коэффициентов согласно первому варианту осуществления.
Фиг. 13A - схема, которая иллюстрирует пример информации параметра WP согласно первому варианту осуществления.
Фиг. 13B - схема, которая иллюстрирует пример информации параметра WP согласно первому варианту осуществления.
Фиг. 14 - блок-схема операций, которая иллюстрирует пример процесса выведения диапазона выбора весового коэффициента согласно первому варианту осуществления.
Фиг. 15 - схема, которая иллюстрирует пример синтаксиса согласно первому варианту осуществления.
Фиг. 16 - схема, которая иллюстрирует пример синтаксиса набора параметров изображения согласно первому варианту осуществления.
Фиг. 17 - схема, которая иллюстрирует пример синтаксиса заголовка слайса (среза) согласно первому варианту осуществления.
Фиг. 18 - схема, которая иллюстрирует пример синтаксиса весовой таблицы pred согласно первому варианту осуществления.
Фиг. 19 - пояснительная схема, которая иллюстрирует пример соотношения значений элементов синтаксиса согласно первому варианту осуществления.
Фиг. 20 - блок-схема, иллюстрирующая пример конфигурации устройства декодирования согласно второму варианту осуществления.
Фиг. 21 - пояснительная схема, которая иллюстрирует пример диапазона выбора смещения согласно модификации 1.
Фиг. 22 - блок-схема операций, которая иллюстрирует пример процесса выведения диапазона выбора смещения согласно модификации 1.
Фиг. 23 - пояснительная схема, которая иллюстрирует пример диапазона выбора весового коэффициента согласно модификации 2.
Фиг. 24 - блок-схема операций, которая иллюстрирует пример процесса выведения диапазона выбора весового коэффициента согласно модификации 2.
Фиг. 25 - пояснительная схема, которая иллюстрирует пример диапазона значения разности между весовыми коэффициентами цели кодирования согласно модификации 3.
Фиг. 26 - пояснительная схема, которая иллюстрирует пример соотношения между значениями элементов синтаксиса согласно модификации 3.
Фиг. 27 - пояснительная схема, которая иллюстрирует пример диапазона значения разности между весовыми коэффициентами согласно модификации 4.
Фиг. 28 - пояснительная схема, которая иллюстрирует пример диапазона выбора весового коэффициента после декодирования согласно модификации 4.
Фиг. 29 - блок-схема операций, которая иллюстрирует пример процесса свертывания значения разности между весовыми коэффициентами согласно модификации 5.
Фиг. 30 - блок-схема операций, которая иллюстрирует пример процесса восстановления весового коэффициента согласно модификации 5.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0009] Далее следует подробное описание вариантов осуществления со ссылкой на прилагаемые чертежи. Устройство кодирования и устройство декодирования согласно каждому варианту осуществления, представленному ниже, можно реализовать аппаратными средствами, например, БИС (большой интегральной схемы), DSP (цифрового сигнального процессора) или FPGA (вентильной матрицы, программируемой пользователем). Кроме того, устройство кодирования и устройство декодирования согласно каждому варианту осуществления, представленному ниже, можно реализовать, предписывая компьютеру выполнять программу, другими словами, программными средствами. В нижеприведенном описании, термин “изображение” можно надлежащим образом заменить таким термином, как “видео”, “пиксель”, “сигнал изображения”, “картинка” или “данные изображения”.
[0010] ПЕРВЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
В первом варианте осуществления будет описано устройство кодирования, кодирующее движущееся изображение.
[0011] На фиг. 1 показана блок-схема, иллюстрирующая пример конфигурации устройства 100 кодирования согласно первому варианту осуществления.
[0012] Устройство 100 кодирования делит каждый кадр или каждое поле, конфигурирующий(ее) входное изображение, на множество пиксельных блоков и осуществляет кодирование с прогнозированием разделенных пиксельных блоков с использованием параметров кодирования, поступающих от блока 111 управления кодированием, таким образом, генерируя прогнозируемое изображение. Затем устройство 100 кодирования генерирует ошибку прогнозирования путем вычитания прогнозируемого изображения из входного изображения, разделенного на множество пиксельных блоков, генерирует кодированные данные путем осуществления ортогонального преобразования и квантования, с последующим энтропийным кодированием сгенерированной ошибки прогнозирования, и выводит сгенерированные кодированные данные.
[0013] Устройство 100 кодирования осуществляет кодирование с прогнозированием, избирательно применяя множество режимов прогнозирования, которые отличаются друг от друга по меньшей мере одним из размера блока пиксельного блока и способа генерации прогнозируемого изображения. Способ генерации прогнозируемого изображения можно, в основном, подразделить на два типа, включающие в себя внутреннее прогнозирование, в котором прогнозирование производится в целевом кадре кодирования, и внешнее прогнозирование, в котором прогнозирование с компенсацией движения производится с использованием одного или более опорных кадров разных моментов времени. Внутреннее прогнозирование также называется внутриэкранным прогнозированием, внутрикадровым прогнозированием и т.п., и внешнее прогнозирование также называется межэкранным прогнозированием, межкадровым прогнозированием, прогнозированием с компенсацией движения, и т.п.
[0014] На фиг. 2A показана пояснительная схема, которая иллюстрирует пример прогнозируемой последовательности кодирования для пиксельного блока согласно первому варианту осуществления. В примере, представленном на фиг. 2A, устройство 100 кодирования осуществляет кодирование с прогнозированием от верхней левой стороны к нижней правой стороне в пиксельном блоке. Таким образом, в целевом кадре обработки кодирования f, на левой стороне и верхней стороне целевого пиксельного блока кодирования c, располагаются пиксельные блоки p, которые были закодированы.
[0015] На фиг. 2B показана пояснительная схема, которая иллюстрирует другой пример прогнозируемой последовательности кодирования для пиксельного блока согласно первому варианту осуществления. В примере, представленном на фиг. 2B, устройство 100 кодирования делит экран на множество форм тайла или форм слайса, и затем осуществляет кодирование с прогнозированием от верхней левой стороны пиксельного блока в каждом тайле или каждом слайсе к нижней правой стороне. Соответственно, в целевом кадре обработки кодирования f, на левой стороне и верхней стороне целевого пиксельного блока кодирования c, располагаются пиксельные блоки p, которые закодированы. Здесь, тайл представляет область, полученную разрезанием экрана на произвольные прямоугольные области, и слайс представляет область, полученную разрезанием экрана на произвольное количество больших блоков дерева кодирования, которые будут описаны ниже в порядке кодирования с прогнозированием.
[0016] В примере, представленном на фиг. 2B, после разделения экрана на множество форм тайла или множество слайсов, процесс кодирования осуществляется для каждого тайла или каждого слайса, и, соответственно, может осуществляться процесс декодирования для каждого тайла или каждого слайса. Таким образом, путем осуществления процессов декодирования видео высокого разрешения параллельным образом, объем вычислений необходимый для декодирования, можно разделить. Другими словами, в примере, представленном на фиг. 2B, процесс кодирования и процесс декодирования может осуществляться с высокой скоростью.
[0017] Далее, для упрощения описания, хотя предполагается, что устройство 100 кодирования осуществляет кодирование с прогнозированием в порядке, представленном на фиг. 2A, порядок в кодировании с прогнозированием этим не ограничивается.
[0018] Пиксельный блок представляет единицу для обработки изображения, и, например, блок, имеющий размер M×N (здесь, M и N - натуральные числа), блок дерева кодирования, макроблок, подблок, пиксель и т.п., соответствует ему. В нижеприведенном описании пиксельный блок, в основном, используется в значении блока дерева кодирования, но может использоваться в другом значении. Например, в описании единицы прогнозирования, пиксельный блок используется в значении пиксельного блока единицы прогнозирования. Блок может именоваться единицей и т.п. Например, блок кодирования может именоваться единицей кодирования.
[0019] На фиг. 3A показана схема, которая иллюстрирует пример размера блока дерева кодирования согласно первому варианту осуществления. Блок дерева кодирования обычно является пиксельным блоком размером 64×64 как показано на фиг. 3A. Однако блок дерева кодирования не ограничивается этим, но может представлять собой пиксельный блок размером 32×32, пиксельный блок размером 16×16, пиксельный блок размером 8×8, пиксельный блок размером 4×4, и т.п. Здесь, блок дерева кодирования может не быть квадратным но, например, может быть пиксельным блоком размером M×N (здесь, M≠N).
[0020] На фиг. 3B-3D показаны схемы, представляющие конкретные примеры блока дерева кодирования согласно первому варианту осуществления. Фиг. 3B представляет блок дерева кодирования, имеющий размер 64×64 (N=32). Здесь, N представляет размер опорного блока дерева кодирования. Размер в случае, когда блок дерева кодирования делится, задается как N, и размер в случае, когда блок дерева кодирования не делится, задается как 2N. Фиг. 3C представляет блок дерева кодирования, полученный делением блока дерева кодирования, представленного на фиг. 3B на квадродерево. Блок дерева кодирования, как показано на фиг. 3C, имеет структуру квадродерева. В случае, когда блок дерева кодирования делится, как показано на фиг. 3C, номера присваиваются (назначаются) четырем пиксельным блокам после разделения в порядке сканирования по Z.
[0021] Кроме того, в каждом номере квадродерева, блок дерева кодирования может дополнительно делиться на квадродерево. Соответственно, блок дерева кодирования может делиться иерархическим образом. В таком случае, глубина разделения задается как Depth. Фиг. 3D представляет один из блоков дерева кодирования, полученных делением блока дерева кодирования, представленного на фиг. 3B, на квадродерево, и его размер блока равен 32×32 (N=16). Глубина блока дерева кодирования, представленного на фиг. 3B, равна “0”, и глубина блока дерева кодирования, представленного на фиг. 3D, равна “1”. Кроме того, блок дерева кодирования, имеющий наибольшую единицу, называется большим блоком дерева кодирования, и входной сигнал изображения кодируется в такой единице в растровом порядке сканирования.
[0022] В нижеследующем описании, кодированный целевой блок или блок дерева кодирования входного изображения может именоваться целевым блоком прогнозирования или пиксельным блоком прогнозирования. Кроме того, блок кодирования не ограничивается пиксельным блоком, но по меньшей мере одно из кадра, поля, слайса, линии и пикселя может использоваться в качестве блока кодирования.
[0023] Устройство 100 кодирования, как показано на фиг. 1, включает в себя: блок 101 вычитания; блок 102 ортогонального преобразования; блок 103 квантования; блок 104 обратного квантования; блок 105 обратного ортогонального преобразования; блок 106 суммирования; блок 107 генерации прогнозируемого изображения; блок 108 установки индекса; блок 109 оценивания движения; и блок 110 кодирования. Кроме того, блок 111 управления кодированием, представленный на фиг. 1, управляет устройством 100 кодирования и может быть реализован, например, с использованием ЦП (центрального процессора) и т.п.
[0024] Блок 101 вычитания получает ошибку прогнозирования путем вычитания соответствующего прогнозируемого изображения из входного изображения, разделенного на пиксельные блоки. Блок 101 вычитания выводит ошибку прогнозирования для ввода в блок 102 ортогонального преобразования.
[0025] Блок 102 ортогонального преобразования осуществляет ортогональное преобразование, например, дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST) для ошибки прогнозирования, поступающей от блока 101 вычитания, таким образом, получая коэффициент преобразования. Блок 102 ортогонального преобразования выводит коэффициент преобразования для ввода в блок 103 квантования.
[0026] Блок 103 квантования осуществляет процесс квантования для коэффициента преобразования, поступающего от блока 102 ортогонального преобразования, таким образом, получая квантованный коэффициент преобразования. В частности, блок 103 квантования осуществляет квантование на основании параметра квантования, назначенного блоком 111 управления кодированием, и информации квантования, например, матрицы квантования. Описанный более подробно, блок 103 квантования получает квантованный коэффициент преобразования делением коэффициента преобразования на размер шага квантования, выведенный на основании информации квантования. Параметр квантования представляет тонкость квантования. Матрица квантования используется для взвешивания тонкости квантования для каждой компоненты коэффициента преобразования. Блок 103 квантования выводит квантованный коэффициент преобразования для ввода в блок 104 обратного квантования и блок 110 кодирования.
[0027] Блок 104 обратного квантования осуществляет процесс обратного квантования для квантованного коэффициента преобразования, поступающего от блока 103 квантования, таким образом, получая коэффициент преобразования восстановления. В частности, блок 104 обратного квантования осуществляет обратное квантование на основании информации квантования, используемой блоком 103 квантования. Описанный подробно, блок 104 обратного квантования получает коэффициент преобразования восстановления путем умножения квантованного коэффициента преобразования на размер шага квантования, выведенный на основании информации квантования. Кроме того, информация квантования, используемая блоком 103 квантования, загружается из внутренней памяти блока 111 управления кодированием, которая не показана на фигуре, и используется. Блок 104 обратного квантования выводит коэффициент преобразования восстановления для ввода в блок 105 обратного ортогонального преобразования.
[0028] Блок 105 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование, например, обратное дискретное косинусное преобразование (IDCT) или обратное дискретное синусное преобразование (IDST) для восстановленного коэффициента преобразования, поступающего от блока 104 обратного квантования, таким образом, получая восстановленную ошибку прогнозирования. Здесь, обратное ортогональное преобразование, осуществляемое блоком 105 обратного ортогонального преобразования, соответствует ортогональному преобразованию, осуществляемому блоком 102 ортогонального преобразования. Блок 105 обратного ортогонального преобразования выводит восстановленную ошибку прогнозирования для ввода в блок 106 суммирования.
[0029] Блок 106 суммирования суммирует восстановленную ошибку прогнозирования, поступающую от блока 105 обратного ортогонального преобразования, и соответствующее прогнозируемое изображение, таким образом, генерируя локальное декодированное изображение. Блок 106 суммирования выводит локальное декодированное изображение для ввода в блок 107 генерации прогнозируемого изображения.
[0030] Блок 107 генерации прогнозируемого изображения сохраняет локальное декодированное изображение, поступающее от блока 106 суммирования, в памяти (не представленной на фиг. 1) в качестве опорного изображения и выводит опорное изображение, хранящееся в памяти, для ввода в блок 109 оценивания движения. Кроме того, блок 107 генерации прогнозируемого изображения генерирует прогнозируемое изображение путем осуществления взвешенного прогнозирования с компенсацией движения на основании информации движения и информации параметра WP, поступающей от блока 109 оценивания движения. Блок 107 генерации прогнозируемого изображения выводит прогнозируемое изображение для ввода в блок 101 вычитания и блок 106 суммирования.
[0031] На фиг. 4 показана блок-схема, иллюстрирующая пример конфигурации блока 107 генерации прогнозируемого изображения согласно первому варианту осуществления. Блок 107 генерации прогнозируемого изображения, как показано на фиг. 4, включает в себя: блок 201 многокадровой компенсации движения; память 202; блок 203 однонаправленной компенсации движения; блок 204 управления параметрами прогнозирования; блок 205 выбора опорного изображения; блок 206 памяти кадров; и блок 207 управления опорным изображением.
[0032] Блок 206 памяти кадров сохраняет локальное декодированное изображение, поступающее от блока 106 суммирования в качестве опорного изображения под управлением блока 207 управления опорным изображением. Блок 206 памяти кадров включает в себя множество блоков FM1 - FMN памяти (здесь, N≥1) используемых для временного хранения опорного изображения.
[0033] Блок 204 управления параметрами прогнозирования подготавливает множество комбинаций, каждого из номера опорного изображения и параметра прогнозирования в виде таблицы на основании информации движения, поступающей от блока 109 оценивания движения. Здесь, информация движения представляет информацию вектора движения, представляющего отклонение движения, которая используется для прогнозирования с компенсацией движения, номер опорного изображения и режим прогнозирования, например, однонаправленное/двунаправленное прогнозирование. Параметр прогнозирования представляет информацию, относящуюся к вектору движения и режиму прогнозирования. Затем блок 204 управления параметрами прогнозирования выбирает комбинацию ссылочного номера и параметра прогнозирования, используемого для генерации прогнозируемого изображения, на основании входного изображения и выводит выбранную комбинацию для обеспечения ввода номера опорного изображения в блок 205 выбора опорного изображения и для обеспечения ввода параметра прогнозирования в блок 203 однонаправленной компенсации движения.
[0034] Блок 205 выбора опорного изображения представляет собой переключатель, который меняет один из выходных разъемов блоков FM1-FMN памяти кадров, которые включены в блок 206 памяти кадров, на который нужно переключаться, на основании номера опорного изображения, поступающего от блока 204 управления параметрами прогнозирования. Например, когда номер опорного изображения равен “0”, блок 205 выбора опорного изображения соединяет выходной разъем блока FM1 памяти кадров с выходным разъемом блока 205 выбора опорного изображения, и, когда номер опорного изображения равен N-1, блок 205 выбора опорного изображения соединяет выходной разъем блока FMN памяти кадров с выходным разъемом блока 205 выбора опорного изображения. Блок 205 выбора опорного изображения выводит опорное изображение, хранящееся в блоке памяти кадров, к которому подключен выходной разъем, из блоков FM1-FMN памяти кадров, включенных в блок 206 памяти кадров, для ввода в блок 203 однонаправленной компенсации движения и блок 109 оценивания движения.
[0035] Блок 203 однонаправленной компенсации движения осуществляет процесс прогнозирования с компенсацией движения на основании параметра прогнозирования, поступающего от блока 204 управления параметрами прогнозирования и опорного изображения, поступающего от блока 205 выбора опорного изображения, таким образом, генерируя однонаправленно прогнозируемое изображение.
[0036] На фиг. 5 показана схема, которая иллюстрирует пример соотношения между векторами движения для прогнозирования с компенсацией движения в двунаправленном прогнозировании согласно первому варианту осуществления. В прогнозировании с компенсацией движения, процесс интерполяции осуществляется с использованием опорного изображения, и однонаправленно прогнозируемое изображение генерируется на основании отклонений движений сгенерированного интерполированного изображения и входного изображения от пиксельного блока, расположенного в позиции цели кодирования. Здесь, отклонение является вектором движения. Как показано на фиг. 5, в слайсе двунаправленного прогнозирования (B-слайсе), прогнозируемое изображение генерируется с использованием двух типов опорных изображений и набора векторов движения. В качестве процесса интерполяции, используется процесс интерполяции полупиксельной точности, процесс интерполяции четвертьпиксельной точности и т.п., и, путем осуществления процесса фильтрации для опорного изображения, генерируется значение интерполированного изображения. Например, в H.264, в котором интерполяция до четвертьпиксельной точности может осуществляться для яркостного сигнала, отклонение представляется как четырехкратная целочисленная пиксельная точность.
[0037] Блок 203 однонаправленной компенсации движения выводит однонаправленно прогнозируемое изображение и временно сохраняет однонаправленно прогнозируемое изображение в памяти 202. Здесь, в случае, когда информация движения (параметр прогнозирования) представляет двунаправленное прогнозирование, блок 201 многокадровой компенсации движения осуществляет взвешенное прогнозирование с использованием двух типов однонаправленно прогнозируемых изображений. Соответственно, блок 203 однонаправленной компенсации движения сохраняет однонаправленно прогнозируемое изображение, соответствующее первому типу в однонаправленно прогнозируемом изображении, в памяти 202 и непосредственно выводит однонаправленно прогнозируемое изображение, соответствующее второму типу, на блок 201 многокадровой компенсации движения. Здесь, однонаправленно прогнозируемое изображение, соответствующее первому типу, будем именовать первым прогнозируемым изображением, и однонаправленно прогнозируемое изображение, соответствующее второму типу, будем именовать вторым прогнозируемым изображением.
[0038] Кроме того, два блока 203 однонаправленной компенсации движения могут подготавливаться и генерировать два однонаправленно прогнозируемых изображения. В таком случае, когда информация движения (параметр прогнозирования) представляет однонаправленное прогнозирование, блок 203 однонаправленной компенсации движения может непосредственно выводить первое однонаправленно прогнозируемое изображение на блок 201 многокадровой компенсации движения в качестве первого прогнозируемого изображения.
[0039] Блок 201 многокадровой компенсации движения осуществляет взвешенное прогнозирование с использованием первого прогнозируемого изображения, поступающего из памяти 202, второго прогнозируемого изображения, поступающего от блока 203 однонаправленной компенсации движения, и информации параметра WP, поступающей от блока 109 оценивания движения, таким образом, генерируя прогнозируемое изображение. Блок 201 многокадровой компенсации движения выводит прогнозируемое изображение для ввода в блок 101 вычитания и блок 106 суммирования.
[0040] На фиг. 6 показана блок-схема, иллюстрирующая пример конфигурации блока 201 многокадровой компенсации движения согласно первому варианту осуществления. Как показано на фиг. 6, блок 201 многокадровой компенсации движения включает в себя: блок 301 стандартной компенсации движения; блок 302 взвешенной компенсации движения; блок 303 управления параметрами WP; и блоки 304 и 305 выбора WP.
[0041] Блок 303 управления параметрами WP выводит флаг применения WP и весовую информацию на основании информации параметра WP, поступающей от блока 109 оценивания движения, для ввода флага применения WP в блоки 304 и 305 выбора WP и ввода весовой информации в блок 302 взвешенной компенсации движения.
[0042] Здесь, информация параметра WP включает в себя первый флаг применения WP (описанная более подробно, информация флага первого флага применения WP), второй флаг применения WP (описанная более подробно, информация флага второго флага применения WP), и информацию весовой информации. Первый флаг применения WP и второй флаг применения WP являются параметрами, которые можно устанавливать для каждого опорного изображения и каждой компоненты сигнала и включают в себя информацию о том, производится ли стандартное прогнозирование с компенсацией движения или взвешенное прогнозирование с компенсацией движения для первого прогнозируемого изображения и второго прогнозируемого изображения. Здесь, в случае, когда первый флаг применения WP и второй флаг применения WP равны, соответственно, “0”, она представляет, что делаются стандартные прогнозы с компенсацией движения. С другой стороны, в случае, когда первый флаг применения WP и второй флаг применения WP равны, соответственно, “1”, она представляет, что делаются взвешенные прогнозы с компенсацией движения.
0C
1C
0C
1C
[0043] Весовая информация включает в себя информацию значения w первого весового коэффициента, значения w второго весового коэффициента, параметра LWD (здесь, он может именоваться “LWD точности фиксированной запятой”), представляющего точность фиксированной запятой первого и второго весовых коэффициентов, первого смещения o и второго смещения o. Здесь, переменная C представляет компоненту сигнала. Например, в случае пространственного сигнала YUV, яркостный сигнал представляется в виде C=Y, цветоразностный сигнал Cr представляется в виде C=Cr, и цветоразностная компонента Cb представляется в виде C=Cb.
0C
1C
0C
1C
[0044] Первый весовой коэффициент представляет собой весовой коэффициент, соответствующий первому прогнозируемому изображению, и является параметром, имеющим значение, определяемое (изменяемое) в соответствии с LWD точности фиксированной запятой. Второй весовой коэффициент представляет собой весовой коэффициент, соответствующий второму прогнозируемому изображению и является параметром, имеющим значение, определяемое (изменяемое) в соответствии с LWD точности фиксированной запятой. LWD точности фиксированной запятой является параметром, который управляет шириной интервала, соответствующей дробной точности второго весового коэффициента. Хотя можно использовать разные значения LWD точности фиксированной запятой в соответствии с яркостью и цветоразностью, здесь, для упрощения описания, точность фиксированной запятой будет описана без деления в явном виде для каждого цветового сигнала. Например, в случае, когда w равен 1,0 (1 в двоичной системе счисления), будучи представлен как действительное значение, и LWD равно 5, первый весовой коэффициент равен 32 (100000 в двоичной системе счисления). Кроме того, в случае, когда w равен 2,0 (10 в двоичной системе счисления), будучи представлен как действительное значение, и LWD равно 5, второй весовой коэффициент равен 64 (1000000 в двоичной системе счисления). Первое смещение o это смещение, соответствующее первому прогнозируемому изображению, и второе смещение o это смещение, соответствующее второму прогнозируемому изображению.
0C
0C
0C
[0045] Кроме того, при вводе информации параметра WP, блок 303 управления параметрами WP проверяет, находится ли значение весовой информации в регулируемом диапазоне, и переустанавливает значение, которое находится вне диапазона, на значение в диапазоне или изменяет значение флага применения WP. Например, в случае, когда w равен 3,0, будучи представлен как действительное значение, и LWD равно 7, первый весовой коэффициент равен 384. Здесь предполагается, что 384 находится вне диапазона первого весового коэффициента и не может использоваться, и 96 находится в диапазоне первого весового коэффициента и может использоваться. В таком случае, блок 303 управления параметрами WP может переустанавливать первый весовой коэффициент так, чтобы он находился в диапазоне первого весового коэффициента, устанавливая LWD равным 5 и устанавливая первый весовой коэффициент равным 96, при том, что w поддерживается равным 3,0, будучи представлен как действительное значение. Кроме того, при этом, блок 303 управления параметрами WP может осуществлять процесс квантования. Например, в случае, когда LWD равно 7, и первый весовой коэффициент равен 385, блок 303 управления параметрами WP может переустанавливать первый весовой коэффициент на 96, устанавливая первый весовой коэффициент на 384 путем осуществления процесса квантования, и затем устанавливая LWD равным 5 и w равным 3,0, будучи представлен как действительное значение. Кроме того, блок 303 управления параметрами WP может изменять значение первого флага применения WP с 1 на 0, таким образом, взвешенное прогнозирование с компенсацией движения не используется. Хотя метод этим не ограничивается, блок 303 управления параметрами WP осуществляет управление таким образом, что значение весовой информации не выходит за пределы регулируемого диапазона, определенного на основании спецификаций и пр.
[0046] Блоки 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 взвешенной компенсации движения.
[0047] Блок 301 стандартной компенсации движения осуществляет обработку усреднения (стандартное прогнозирование с компенсацией движения) на основании двух однонаправлено прогнозируемых изображений (первого и второго прогнозируемых изображений), поступающих от блоков 304 и 305 выбора WP, таким образом, генерируя прогнозируемое изображение. В частности, в случае, когда первый и второй флаги применения WP равны “0”, блок 301 стандартной компенсации движения осуществляет обработку усреднения на основании численного выражения (1).
[0048] P[x, y]=Clip1((PL0[x, y]+PL1[x, y]+offset2)>>(shift2)) (1)
[0049] Здесь, P[x, y] - прогнозируемое изображение, PL0[x, y] - первое прогнозируемое изображение, и PL1[x, y] - второе прогнозируемое изображение. Кроме того, offset2 и shift2 являются параметрами процесса округления в обработке усреднения и определяются на основании внутренней точности вычисления первого и второго прогнозируемых изображений. Clip1(X) является функцией для ограничения переменной X с конкретной битовой точностью и, здесь, ограничивает переменную X с битовой точностью прогнозируемого изображения. Например, когда битовая точность L прогнозируемого изображения равна 8, значение вне диапазона 0-255 ограничивается значениями от 0 до 255. Описанное более подробно, значение, меньшее или равное 0, устанавливается равным 0, и значение, которое больше 255, устанавливается равным 255.
[0050] Когда битовая точность прогнозируемого изображения равна L, и битовая точность первого и второго прогнозируемых изображений равна M (L≤M), shift2 определяется численным выражением (2), и offset2 определяется численным выражением (3).
[0051] shift2=(M-L+1) (2)
[0052] offset2=(1<<(shift2-1) (3)
[0053] Например, битовая точность прогнозируемого изображения равна “8”, и битовая точность первого и второго прогнозируемых изображений равна “14”, shift2=7 на основании численного выражения (2), и offset2=(1<<6) на основании численного выражения (3).
[0054] Кроме того, в случае, когда режим прогнозирования, представленный информацией движения (параметром прогнозирования), является однонаправленным прогнозированием, блок 301 стандартной компенсации движения вычисляет окончательное прогнозируемое изображение с использованием только первого прогнозируемого изображения на основании численного выражения (4).
[0055] P[x, y]=Clip1((PLX[x, y]+offset1)>>(shift1)) (4)
[0056] Здесь, 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).
[0057] shift1=(M-L) (5)
[0058] offset1=(1<<(shift1-1) (6)
[0059] Например, в случае, когда битовая точность прогнозируемого изображения равна “8”, и битовая точность первого прогнозируемого изображения равна “14”, shift1=6 на основании численного выражения (5), и offset1=(1<<5) на основании численного выражения (6).
[0060] Блок 302 взвешенной компенсации движения осуществляет взвешенную компенсацию движения (взвешенное прогнозирование с компенсацией движения) на основании двух однонаправлено прогнозируемых изображений (первого и второго прогнозируемых изображений), поступающих от блоков 304 и 305 выбора WP и весовой информации, поступающей от блока 303 управления параметрами WP.
[0061] Здесь будет дополнительно описан весовой коэффициент. На Фиг. 7 приведена ссылочная схема для описания весового коэффициента, которая иллюстрирует пример изменения в градации серого движущегося изображения, имеющего изменение в пиксельном значении во временном направлении. В примере, представленном на фиг. 7, целевым кадром кодирования является Frame(t), кадр, который располагается на один кадр раньше во времени целевого кадра кодирования, является Frame(t-1), и кадр, который располагается на один кадр позже во времени целевого кадра кодирования, является Frame(t+1). Как показано на фиг. 7, в затухающем изображении, изменяющемся от белого к черному, светлота (значение градации серого) изображения уменьшается с течением времени. Значение весового коэффициента представляет степень изменения в пиксельном значении, как описано со ссылкой на фиг. 7, и принимает значение “1,0” в случае отсутствия изменений пиксельного значения (в случае, когда изменение в пиксельном значении равно “0”) будучи представлено как действительное значение.
[0062] Здесь будет описан случай, когда изменения в пиксельном значении отсутствуют. Например, если рассматривать случай, когда движущееся изображение, в котором одно и то же неподвижное изображение является непрерывным во времени, изменение яркости между экранами равно нулю. В таком случае, поскольку изменение в пиксельном значении равно нулю, даже когда производится взвешенное прогнозирование с компенсацией движения, случай эквивалентен случаю, когда блок 302 взвешенной компенсации движения осуществляет стандартное прогнозирование с компенсацией движения. В таком случае, другими словами, в случае отсутствия изменений пиксельного значения, блок 302 взвешенной компенсации движения выбирает опорное значение весового коэффициента, благодаря чему, стандартное прогнозирование с компенсацией движения реализуется как взвешенное прогнозирование с компенсацией движения. Здесь, опорное значение весового коэффициента можно вывести на основании точности фиксированной запятой (1<<LWD).
[0063] В общем случае, изменение в пиксельном значении движущегося изображения, например, эффект затухания, эффект расплывания, и т.п. не слишком велик для каждого кадра, и, соответственно, значение весового коэффициента приближается к 1,0 будучи представлено как действительное значение. Кроме того, в первом варианте осуществления, поскольку значение весового коэффициента квантуется с точностью фиксированной запятой, представленной как степень 2, даже при наличии только среднего изменения в пиксельном значении между двумя изображениями, в случае изменения с точностью 1/128 или менее, значение весового коэффициента квантуется до 1/0, будучи представлено как действительное значение. Соответственно, в первом варианте осуществления, даже в случае, когда происходит изменение в пиксельном значении, случай можно рассматривать как случай, когда, по существу, не происходит изменения в пиксельном значении. Далее, для упрощения описания, описание будет представлено, исходя из случая, когда изменения в пиксельном значении отсутствуют, другими словами, случай, когда значение весового коэффициента равно 1,0, будучи представлено как действительное значение. Кроме того, случай, когда отсутствуют изменения в пиксельном значении, соответствует случаю, когда изменение в пиксельном значении является заранее определенным значением или меньше (значению, которое довольно мало по сравнению с точностью весового коэффициента).
[0064] Соответственно, в случае, когда первый флаг применения WP и второй флаг применения WP равны “1”, блок 302 взвешенной компенсации движения осуществляет процесс взвешивания на основании численного выражения (7).
0C
1C
0C
1C
[0065] P[x, y]=Clip1(((PL0[x, y]*w+PL1[x, y]*w+((o+o+1)<<LWD))>>(LWD+1))) (7)
[0066] Кроме того, в случае, когда точность вычисления первого и второго прогнозируемых изображений и точность вычисления прогнозируемого изображения отличаются друг от друга, блок 302 взвешенной компенсации движения реализует процесс округления, управляя LWD согласно численному выражению (8).
[0067] LWD'=LWD+offset1 (8)
[0068] Процесс округления можно реализовать путем замены LWD, представленного в численном выражении (7), LWD’, представленным в численном выражении (8). Например, в случае, когда битовая точность прогнозируемого изображения равна 8, и битовая точность первого и второго прогнозируемых изображений равна 14, переустанавливая LWD, можно реализовать пакетный процесс округления, имеющий такую же точность вычисления, как у shift2, представленного в численном выражении (1).
[0069] Кроме того, в случае, когда режим прогнозирования, представленный информацией движения (параметром прогнозирования), является однонаправленным прогнозированием, блок 302 взвешенной компенсации движения вычисляет окончательное прогнозируемое изображение с использованием только первого прогнозируемого изображения на основании численного выражения (9).
XC
XC
[0070] P[x, y]=Clip1((PLX[x, y]*w+(1<<(LWD-1)))>>(LWD)+o) (9)
XC
XC
XC
0C
0C
1C
1C
[0071] Здесь, PLX[x, y] представляет однонаправленно прогнозируемое изображение (первое прогнозируемое изображение), w представляет весовой коэффициент, соответствующий однонаправленному прогнозированию, X - идентификатор, представляющий “0” или “1” в качестве опорного списка, и o представляет смещение, соответствующее однонаправленному прогнозированию. Например, PLX[x, y], w и смещение равны PL0[x, y], w и o в случае, когда опорный список равен “0”, и равны PL1[x, y], w и o в случае, когда опорный список равен “1”.
[0072] Кроме того, в случае, когда точность вычисления первого и второго прогнозируемых изображений и точность вычисления прогнозируемого изображения отличаются друг от друга, блок 302 взвешенной компенсации движения реализует процесс округления, управляя LWD, согласно численному выражению (8), аналогично случаю двунаправленного прогнозирования.
[0073] Процесс округления можно реализовать путем замены LWD, представленного в численном выражении (9), LWD’, представленным в численном выражении (8). Например, в случае, когда битовая точность прогнозируемого изображения равна “8”, и битовая точность первого прогнозируемого изображения равна “14”, переустанавливая LWD, можно реализовать пакетный процесс округления для точности вычисления, аналогичной shift1, представленного в численном выражении (4).
[0074] Кроме того, в случае однонаправленного прогнозирования, различные параметры (второй флаг применения WP, второй весовой коэффициент и информация второго смещения), соответствующие второму прогнозируемому изображению, не используются и могут быть установлены на определенные заранее начальные значения.
[0075] Возвращаясь к фиг. 1, блок 109 оценивания движения осуществляет оценивание движения между множеством кадров на основании входного изображения и опорного изображения, поступающего от блока 107 генерации прогнозируемого изображения, и выводит информацию движения и информацию параметра WP, таким образом, вводя информацию движения в блок 107 генерации прогнозируемого изображения и блок 110 кодирования и вводя информацию параметра WP в блок 107 генерации прогнозируемого изображения и блок 108 установки индекса.
[0076] Блок 109 оценивания движения вычисляет ошибку, например, путем вычисления разности между входным изображением целевого пиксельного блока прогнозирования и множеством опорных изображений, соответствующих той же позиции, что и начальная точка, сдвигает позицию с дробной точностью, и вычисляет оптимальную информацию движения с использованием такого метода, как согласование блоков, для нахождения блока минимальной ошибки и т.п. В случае двунаправленного прогнозирования, блок 109 оценивания движения осуществляет согласование блоков, включающее в себя стандартное прогнозирование с компенсацией движения, представленное в численных выражениях (1) и (4), с использованием информации движения, выведенной из однонаправленного прогнозирования, таким образом, вычисляя информацию движения двунаправленного прогнозирования.
[0077] При этом блок 109 оценивания движения может вычислять информацию параметра WP путем осуществления согласования блоков, включающего в себя взвешенное прогнозирование с компенсацией движения, представленное в численных выражениях (7) и (9). Кроме того, для вычисления информации параметра WP, способ вычисления весового коэффициента или смещения с использованием пиксельного градиента входного изображения, может использоваться способ вычисления весового коэффициента или смещения в соответствии с накоплением ошибки прогнозирования в момент времени кодирования, и т.п. Кроме того, в качестве информации параметра WP, может использоваться фиксированное значение, определяемое заранее для каждого устройства кодирования.
[0078] Здесь, способ вычисления весового коэффициента, точности фиксированной запятой весового коэффициента и смещения от движущегося изображения, имеющего изменение в пиксельном значении во времени, будет описано снова со ссылкой на фиг. 7. Как описано выше, в затухающем изображении, изменяющемся от белого к черному, как показано на фиг. 7, пиксельное значение (значение градации серого) уменьшается с течением времени. Блок 109 оценивания движения может вычислять весовой коэффициент путем вычисления его наклона.
[0079] Точность фиксированной запятой весового коэффициента это информация, представляющая точность наклона, и блок 109 оценивания движения может вычислять оптимальное значение на основании расстояния до опорного изображения во времени и степени изменения значения изображения. Например, на фиг. 7, в случае, когда значение весового коэффициента между Frame(t-1) и Frame(t+1) равно 0,75, будучи представлено с точностью, выраженной действительным значением, 3/4 можно представить в случае точности 1/4, и, соответственно, блок 109 оценивания движения устанавливает точность фиксированной запятой на 2 (1<<2). Поскольку значение точности фиксированной запятой влияет на объем кода случая, когда весовой коэффициент кодируется, в качестве значения точности фиксированной запятой, оптимальное значение можно выбирать с учетом объема кода и точности прогнозирования. Кроме того, значение точности фиксированной запятой может быть фиксированным значением, определяемым заранее.
[0080] Кроме того, в случае, когда наклон не согласуется, блок 109 оценивания движения может вычислять значение смещения, получая значение коррекции (величину отклонения), соответствующее пересечению линейной функции. Например, на фиг. 7, в случае, когда весовой коэффициент между Frame(t-1) и Frame(t+1) равен 0,60, будучи представлен с действительной точностью, и точность фиксированной запятой равна “1” (1<<1), высока вероятность того, что весовой коэффициент устанавливается равным “1” (что соответствует 0,50, когда значение весового коэффициента представляется с действительной точностью). В таком случае, поскольку дробная точность весового коэффициента отклоняется от 0,60, которое является оптимальным значением, на 0,10, блок 109 оценивания движения вычисляет соответствующее значение коррекции на основании максимального значения пикселя и устанавливает значение коррекции как значение смещения. В случае, когда максимальное значение пикселя равно 255, блок 109 оценивания движения может устанавливать значение, например, 25 (255×0,1).
[0081] В первом варианте осуществления, хотя блок 109 оценивания движения представляется, в порядке примера, как одна функция устройства 100 кодирования, блок 109 оценивания движения не является существенной конфигурацией устройства 100 кодирования, и, например, блок 109 оценивания движения может быть устройством, отличным от устройства 100 кодирования. В таком случае, информация движения и информация параметра WP, вычисленная блоком 109 оценивания движения, может загружаться в устройство 100 кодирования.
[0082] Блок 108 установки индекса принимает информацию параметра WP, поступающую от блока 109 оценивания движения, проверяет опорный список (номер по списку) и опорное изображение (ссылочный номер), и выводит информацию индекса для ввода в блок 110 кодирования. Блок 108 установки индекса генерирует информацию индекса путем отображения информации параметра WP, поступающей от блока 109 оценивания движения, в элемент синтаксиса, который будет описан ниже. В это время блок 108 установки индекса выводит диапазон выбора весового коэффициента и удостоверяется в том, что весовой коэффициент включен в диапазон выбора.
[0083] Здесь будет описано выведение диапазона выбора весового коэффициента.
[0084] В первом варианте осуществления, как описано выше, рассматривается случай, когда отсутствуют изменения в пиксельном значении, и значение весового коэффициента равно 1,0, будучи представлено как действительное значение. В таком случае, справедливо, что весовой коэффициент/опорное значение весового коэффициента =1. Как описано выше, поскольку опорное значение весового коэффициента равно (1<<LWD), весовой коэффициент равен (1<<LWD) и имеет такое же значение, как опорное значение весового коэффициента в первом варианте осуществления.
[0085] Между тем, в H.264 и пр., каждый индекс весового коэффициента, смещение, и т.п. задается так, чтобы принимать 8-битовое значение со знаком от -128 до 127, и точность фиксированной запятой задается так, чтобы принимать значение от 0 до 7. Таким образом, согласно первому варианту осуществления, возможны случаи, когда весовой коэффициент выходит за пределы заданного диапазона.
[0086] На фиг. 8 показана ссылочная схема, которая иллюстрирует диапазон выбора весового коэффициента H.264 и представляет весовые коэффициенты (1<<LWD) случая, когда LWD точности фиксированной запятой принимает значения от 0 до 7. Как следует из фиг. 8, весовой коэффициент принимает положительное значение вблизи нуля, когда значение LWD точности фиксированной запятой уменьшается. Однако, когда значение LWD точности фиксированной запятой равно 7, весовой коэффициент равен 128, что находится вне диапазона, заданного в H.264.
[0087] Как описано выше, в регуляции H.264, диапазон весового коэффициента, который желательно использовать, выходит за пределы регулируемого диапазона, который не подчиняется практическим применениям. Кроме того, в однонаправленном прогнозировании, даже при выборе весового коэффициента, соответствующего отрицательному направлению, высока вероятность того, что прогнозируемое пиксельное значение, выводимое однонаправленным прогнозированием, можно ограничивать нулем на основании диапазона ограничения входного изображения, и весовой коэффициент, соответствующий отрицательному направлению, по существу, нельзя выбрать. С другой стороны, в двунаправленном прогнозировании, для реализации прогнозирования внешней вставки, можно применять способ использования, в котором весовой коэффициент однонаправленного прогнозирования с одной стороны устанавливается равным отрицательному значению, и весовой коэффициент с другой стороны устанавливается равным положительному значению. Однако, во многих случаях значение отрицательной стороны не требует такой же точности, как значение положительной стороны в качестве диапазона весового коэффициента.
[0088] По этой причине, согласно первому варианту осуществления, блок 108 установки индекса выводит диапазон выбора весового коэффициента, присваивая значения в отрицательном и положительном направлениях, причем опорное значение весового коэффициента устанавливается как приблизительный центр и удостоверяется в том, что весовой коэффициент включен в выведенный диапазон выбора весового коэффициента.
[0089] На фиг. 9 показана пояснительная схема, которая иллюстрирует пример диапазона выбора весового коэффициента согласно первому варианту осуществления. В примере, представленном на фиг. 9, в отличие от диапазона выбора весового коэффициента, описанного со ссылкой на фиг. 8, опорное значение (1<<LWD) весового коэффициента устанавливается так, чтобы размещаться в приблизительном центре диапазона выбора, значение (-128+(1<<LWD)) полученное путем вычитания 128 из опорного значения весового коэффициента, является минимальным значением диапазона выбора, и значение (127+(1<<LWD)) полученное путем суммирования 127 с опорным значением весового коэффициента, является максимальным значением диапазона выбора.
[0090] Блок 108 установки индекса устанавливает диапазон выбора весового коэффициента с использованием численных выражений (10) и (11). Минимальное значение диапазона выбора определяется численным выражением (10), и максимальное значение диапазона выбора определяется с использованием численного выражения (11).
XC
[0091] min_w=-128+(1<<LWD) (10)
XC
[0092] max_w=127+(1<<LWD) (11)
[0093] На фиг. 10A и 10B показаны пояснительные схемы, которые иллюстрируют конкретные примеры диапазона выбора весового коэффициента согласно первому варианту осуществления. Фиг. 10A иллюстрирует диапазон выбора весового коэффициента случая, когда значение LWD точности фиксированной запятой равно 7, и фиг. 10B иллюстрирует диапазон выбора весового коэффициента случая, когда значение LWD точности фиксированной запятой равно 5. В примере, представленном на фиг. 10A, опорное значение весового коэффициента, которое равно “128”, устанавливается так, чтобы размещаться в приблизительном центре диапазона выбора, минимальное значение диапазона выбора равно 0, и максимальное значение диапазона выбора равно 255. В примере, представленном на фиг. 10B, опорное значение весового коэффициента, которое равно “32”, устанавливается так, чтобы размещаться в приблизительном центре диапазона выбора, минимальное значение диапазона выбора равно -96, и максимальное значение диапазона выбора равно 159.
[0094] На фиг. 11 показана ссылочная схема, которая иллюстрирует минимальное значение и максимальное значение диапазона выбора весового коэффициента H.264. На Фиг. 12 показана пояснительная схема, которая иллюстрирует пример минимального значения и максимального значения диапазона выбора весового коэффициента согласно первому варианту осуществления. Как показано на фиг. 11, в H.264, минимальное значение и максимальное значение диапазона выбора весового коэффициента постоянны независимо от опорного значения весового коэффициента. С другой стороны, как показано на фиг. 12, согласно первому варианту осуществления, минимальное значение и максимальное значение диапазона выбора весового коэффициента изменяются в зависимости от опорного значения весового коэффициента.
[0095] Как показано на фиг. 12, в случае, когда диапазон выбора весового коэффициента устанавливается так, что опорное значение весового коэффициента находится приблизительно в его центре, диапазон, занимаемый весовым коэффициентом, составляет от -127 до 255, и требуется 9-битовая точность со знаком. По этой причине, в первом варианте осуществления, блок 110 кодирования, который будет описан ниже, обновляет весовой коэффициент, заданный как индекс, другими словами, значение цели кодирования, до значения разности между весовым коэффициентом и опорным значением весового коэффициента. Как показано на фиг. 9, можно понять, путем вычитания опорного значения весового коэффициента из выведенного диапазона выбора весового коэффициента, диапазон значения разности между весовыми коэффициентами принимает 8-битовое значение со знаком от -128 до 127. Другими словами, хотя диапазон выбора весового коэффициента изменяется в зависимости от опорного значения весового коэффициента в случае, когда диапазон выбора весового коэффициента устанавливается так, что опорное значение весового коэффициента находится приблизительно в его центре, путем вычитания опорного значения весового коэффициента из диапазона выбора весового коэффициента, диапазон значения разности между весовыми коэффициентами постоянен независимо от опорного значения весового коэффициента. Как описано выше, согласно первому варианту осуществления, поскольку весовой коэффициент заменяется значением разности между весовыми коэффициентами, диапазон выбора весового коэффициента расширяется, и можно задавать диапазон выбора, имеющий 8-битовую точность со знаком.
[0096] Кроме того, в случае, когда проверено, что весовой коэффициент не включен в выведенный диапазон выбора весового коэффициента, блок 108 установки индекса может осуществлять процесс ограничения с использованием максимального значения или минимального значения диапазона выбора весового коэффициента. В таком случае, блок 108 установки индекса может ограничивать весовой коэффициент до минимального значения в случае, когда весовой коэффициент меньше минимального значения диапазона выбора и ограничивать весовой коэффициент до максимального значения в случае, когда весовой коэффициент больше максимального значения диапазона выбора. Благодаря вводу такого процесса ограничения, значение цели кодирования, например, значение разности между весовыми коэффициентами принимает значение в заранее определенной битовой точности без установки конкретного ограничения на диапазон, и, соответственно, можно уточнить конфигурацию масштаба схемы, используемого оборудованием.
[0097] Кроме того, в первом варианте осуществления, хотя рассматривается случай, когда диапазон выбора весового коэффициента имеет 8-битовую точность со знаком, точность диапазона выбора весового коэффициента не ограничивается этим и, например, может быть 9-битовой точностью со знаком. В таком случае, хотя диапазон выбора весового коэффициента составляет от -256 до 255, -128, представленное в численном выражении (10) можно заменить на -256, и 127, представленное в численном выражении (11), можно заменить на 255.
[0098] Кроме того, хотя в первом варианте осуществления, описан пример, в котором диапазон выбора весового коэффициента выводится блоком 108 установки индекса, выведение диапазона выбора не ограничивается этим, но может осуществляться блоком 110 кодирования. Каждый из блока 108 установки индекса и блока 110 кодирования может именоваться блоком выведения.
[0099] На фиг. 13A и 13B показаны схемы, демонстрирующие примеры информации параметра WP, которая поступает на блок 108 установки индекса согласно первому варианту осуществления. Пример информации параметра WP в момент времени P-слайса представлен на фиг. 13A, и пример информации параметра WP в момент времени B-слайса представлен на фиг. 13A и 13B. Номер по списку является идентификатором, представляющим направление прогнозирования. Номер по списку имеет значение “0” в случае однонаправленного прогнозирования. С другой стороны, в случае двунаправленного прогнозирования, может использоваться два типа прогнозирования, и, соответственно, номер по списку имеет два значения “0” и “1”. Ссылочный номер это значение, соответствующее любому из от 1 до N, представленных в блоке 206 памяти кадров. Поскольку информация параметра WP поддерживается для каждого опорного списка и опорного изображения, в случае, когда имеется N опорных изображений, в момент времени B-слайса необходимо 2N фрагментов информации.
[0100] На фиг. 14 показана блок-схема операций, которая иллюстрирует пример процесса выведения диапазона выбора весового коэффициента согласно первому варианту осуществления. Здесь, хотя в описании рассмотрен случай, когда блок 108 установки индекса осуществляет процесс выведения диапазона выбора весового коэффициента, как описано выше, процесс может осуществляться блоком 110 кодирования.
[0101] Прежде всего, блок 108 установки индекса выводит LWD точности фиксированной запятой весового коэффициента (этап S02). При этом блок 108 установки индекса может выводить LWD точности фиксированной запятой весового коэффициента из информации параметра WP или из информации индекса.
[0102] Затем блок 108 установки индекса выводит опорное значение (1<<LWD) весового коэффициента с использованием выведенной LWD точности фиксированной запятой (этап S03).
[0103] Затем блок 108 установки индекса выводит минимальное значение диапазона выбора весового коэффициента путем вычитания 128 из выведенного опорного значения (1<<LWD) весового коэффициента (этап S04).
[0104] Затем блок 108 установки индекса суммирует 127 с выведенным опорным значением (1<<LWD) весового коэффициента, таким образом, выводя максимальное значение диапазона выбора весового коэффициента (этап S05).
[0105] Затем блок 108 установки индекса удостоверяется в том, что весовой коэффициент включен в выведенный диапазон выбора весового коэффициента.
[0106] Возвращаясь к фиг. 1, блок 110 кодирования осуществляет процесс кодирования различных параметров кодирования, например, квантованного коэффициента преобразования, поступающего от блока 103 квантования, информации движения, поступающей от блока 109 оценивания движения, информации индекса и диапазона выбора весового коэффициента, поступающих от блока 108 установки индекса, и информации квантования, назначенной блоком 111 управления кодированием, таким образом, генерируя кодированные данные. В качестве процесса кодирования можно использовать, например, кодирование методом Хаффмана или арифметическое кодирование.
[0107] Здесь, параметрами кодирования являются такие параметры, как информация прогнозирования, представляющая способ прогнозирования и т.п., информация, относящаяся к квантованному коэффициенту преобразования, и информация, относящаяся к квантованию, которые необходимы для процесса декодирования. Например, возможна конфигурация, в которой внутренняя память, не показанная на фигуре, включена в блок 111 управления кодированием, параметры кодирования поддерживаются во внутренней памяти, и параметры кодирования соседнего пиксельного блока, который был завершен для кодирования, используются при кодировании пиксельного блока. Например, во внутреннем прогнозировании согласно H.264, информацию прогнозирования пиксельного блока можно вывести из информации прогнозирования соседнего блока, который был завершен для кодирования.
[0108] Блок 110 кодирования выводит сгенерированные кодированные данные в надлежащем временном режиме вывода под управлением блока 111 управления кодированием. Различные виды информации, которые представляют собой выходные кодированные данные, например, мультиплексируются блоком мультиплексирования, не показанным на фигуре, и т.п., временно сохраняются в выходном буфере, не показанном на фигуре, и т.п., и затем, например, выводятся в систему хранения (носитель данных) или систему передачи (линию связи).
[0109] Блок 110 кодирования включает в себя блок 110A энтропийного кодирования и блок 110B переконфигурирования индекса.
[0110] Блок 110A энтропийного кодирования осуществляет процесс кодирования, например, процесс кодирования с переменной длиной слова или арифметического кодирования над введенной информацией. Например, в H.264 используется контекстное адаптивное кодирование с переменной длиной слова (CAVLC), контекстное адаптивное двоичное арифметическое кодирование (CABAC) и т.п.
[0111] Для уменьшения длины кода элемента синтаксиса информации индекса, поступающей от блока 108 установки индекса, блок 110B переконфигурирования индекса осуществляет процесс прогнозирования на основании характеристик параметров элемента синтаксиса, вычисляет значение разности между значением (прямым значением) элемента синтаксиса и прогнозируемым значением, и выводит разность на блок 110A энтропийного кодирования. Конкретный пример процесса прогнозирования будет описан ниже. Кроме того, в случае, при выведении диапазона выбора весового коэффициента блоком 110 кодирования, процесс прогнозирования осуществляется блоком 110B переконфигурирования индекса.
[0112] На фиг. 15 показана схема, которая иллюстрирует пример синтаксиса 500, используемого устройством 100 кодирования согласно первому варианту осуществления. Синтаксис 500 иллюстрирует структуру кодированных данных, сгенерированных путем кодирования входного изображения (данных движущегося изображения) с использованием устройства 100 кодирования. При декодировании кодированных данных, устройство декодирования, которое будет описано ниже, осуществляет синтаксический анализ данных движущегося изображения, обращаясь к синтаксической структуре, такой же, как у синтаксиса 500.
[0113] Синтаксис 500 включает в себя три части, включающие в себя высокоуровневый синтаксис 501, синтаксис 502 уровня слайса и синтаксис 503 уровня дерева кодирования. Высокоуровневый синтаксис 501 включает в себя синтаксическую информацию верхнего слоя, который имеет более высокий уровень, чем слайс. Синтаксическая информация, например, включает в себя информацию разделений в форме тайла, описанных в примере, представленном на фиг. 2B. Здесь, слайс представляет прямоугольную область или непрерывную область, включенную в кадр или поле. Синтаксис 502 уровня слайса включает в себя информацию, необходимую для декодирования каждого слайса. Синтаксис 503 уровня дерева кодирования включает в себя информацию, необходимую для декодирования каждого дерева кодирования (другими словами, каждого блока дерева кодирования). Каждая из этих частей включает в себя более детализированный синтаксис.
[0114] Высокоуровневый синтаксис 501 включает в себя синтаксис уровня последовательности и изображения, например, синтаксис 504 набора параметров последовательности, синтаксис 505 набора параметров изображения и синтаксис 506 набора параметров адаптации.
[0115] Синтаксис 502 уровня слайса включает в себя синтаксис 507 заголовка слайса, синтаксис 508 весовой таблицы pred, синтаксис 509 данных слайса, и пр. Синтаксис 508 весовой таблицы pred вызывается из синтаксиса 507 заголовка слайса.
[0116] Синтаксис 503 уровня дерева кодирования включает в себя синтаксис 510 единицы дерева кодирования, синтаксис 511 единицы преобразования, синтаксис 512 единицы прогнозирования и пр. Синтаксис 510 единицы дерева кодирования может иметь структуру квадродерева. В частности, синтаксис 510 единицы дерева кодирования может рекурсивно дополнительно вызываться как элемент синтаксиса для синтаксиса 510 единицы дерева кодирования. Другими словами, один блок дерева кодирования может подразделяться на квадродеревья. Кроме того, синтаксис 511 единицы преобразования включен в синтаксис 510 единицы дерева кодирования. Синтаксис 511 единицы преобразования вызывается из каждого синтаксиса 510 единицы дерева кодирования, расположенного на хвостовом конце квадродерева. В синтаксисе 511 единицы преобразования описана информация, относящаяся к обратному ортогональному преобразованию, квантованию и пр. В синтаксисе можно описываться информация, относящаяся к взвешенному прогнозированию с компенсацией движения.
[0117] На фиг. 16 показана схема, которая иллюстрирует пример синтаксиса 505 набора параметров изображения согласно первому варианту осуществления. Здесь, weighted_pred_flag, например, является элементом синтаксиса, представляющим пригодность или непригодность взвешенного прогнозирования с компенсацией движения согласно первому варианту осуществления для P-слайса. В случае, когда weighted_pred_flag равен “0”, взвешенное прогнозирование с компенсацией движения согласно первому варианту осуществления в P-слайсе непригодно. Соответственно, флаг применения WP, включенный в информацию параметра WP, постоянно задан равным “0”, и выходные концы блоков 304 и 305 выбора WP подключены к блоку 301 стандартной компенсации движения. С другой стороны, в случае, когда weighted_pred_flag равен “1”, взвешенное прогнозирование с компенсацией движения согласно первому варианту осуществления в P-слайсе пригодно.
[0118] В порядке другого примера, в случае, когда weighted_pred_flag равен “1”, пригодность или непригодность взвешенного прогнозирования с компенсацией движения согласно первому варианту осуществления можно задавать для каждой локальной области в слайсе в синтаксисе нижнего слоя (заголовка слайса, блока дерева кодирования, единицы преобразования, единицы прогнозирования и пр.).
[0119] Кроме того, weighted_bipred_idc, например, является элементом синтаксиса, представляющим пригодность или непригодность взвешенного прогнозирования с компенсацией движения согласно первому варианту осуществления для B-слайса. В случае, когда weighted_bipred_idc равен “0”, взвешенное прогнозирование с компенсацией движения согласно первому варианту осуществления в B-слайсе непригодно. Соответственно, флаг применения WP, включенный в информацию параметра WP, постоянно задан равным “0”, и выходные концы блоков 304 и 305 выбора WP подключены к блоку 301 стандартной компенсации движения. С другой стороны, в случае, когда weighted_bipred_idc равен “1”, взвешенное прогнозирование с компенсацией движения согласно первому варианту осуществления в B-слайсе пригодно.
[0120] В порядке другого примера, в случае, когда weighted_bipred_idc равен “1”, пригодность или непригодность взвешенного прогнозирования с компенсацией движения согласно первому варианту осуществления можно задавать для каждой локальной области в слайсе в синтаксисе нижнего слоя (заголовка слайса, блока дерева кодирования, единицы преобразования, единицы прогнозирования и пр.).
[0121] На фиг. 17 показана схема, которая иллюстрирует пример синтаксиса 507 заголовка слайса согласно первому варианту осуществления. Здесь, тип слайса представляет тип (I-слайс, P-слайс, B-слайс и т.п.) слайса. Кроме того, pic_parameter_set_id является идентификатором, представляющим синтаксис набора параметров изображения, обозначаемый 505. num_ref_idx_active_override_flag это флаг, представляющий, нужно ли обновлять количество пригодных опорных изображений, и, в случае, когда этот флаг равен “1”, можно использовать num_ref_idx_l0_active_minus1 и num_ref_idx_l1_active_minus1, которые задают количества опорных изображений опорного списка. Кроме того, pred_weight_table()является функцией, представляющей синтаксис весовой таблицы pred, используемый для взвешенного прогнозирования с компенсацией движения, и эта функция вызывается в случае, когда weighted_pred_flag равен “1” в случае P-слайса и в случае, когда weighted_bipred_idc равен “1” в случае B-слайса.
[0122] На фиг. 18 показана схема, которая иллюстрирует пример синтаксиса 508 весовой таблицы pred согласно первому варианту осуществления. Здесь, luma_log2_weight_denom представляет точность фиксированной запятой (LWD) весового коэффициента яркостного сигнала в слайсе и является значением, соответствующим LWD, представленным в численном выражении (7) или (9). Кроме того, delta_chroma_log2_weight_denom представляет точность фиксированной запятой цветоразностного сигнала в слайсе, и способ его выведения будет описан ниже. chroma_format_idc это идентификатор, представляющий цветовое пространство, и MONO_IDX это значение, представляющее монохромное видео. Кроме того, num_ref_common_active_minus1 представляет значение, которое получается путем вычитания единицы из количества опорных изображений, включенных в общий список в слайсе.
0C
1C
0C
1C
[0123] luma_weight_l0_flag и luma_weight_l1_flag представляют флаги применения WP яркостных сигналов, соответствующих спискам 0 и 1. В случае, когда этот флаг равен “1”, взвешенное прогнозирование с компенсацией движения яркостного сигнала согласно первому варианту осуществления пригодно для всех областей в слайсе. Кроме того, chroma_weight_l0_flag и chroma_weight_l1_flag представляют флаги применения WP цветоразностных сигналов, соответствующие спискам 0 и 1. В случае, когда этот флаг равен “1”, взвешенное прогнозирование с компенсацией движения цветоразностного сигнала согласно первому варианту осуществления пригодно для всех областей в слайсе. luma_weight_l0[i] и luma_weight_l1[i] это весовые коэффициенты яркостных сигналов, которые соответствуют i-му ссылочному номеру, в соответствии со списками 0 и 1. Кроме того, luma_offset_l0[i] и luma_offset_l1[i] это смещения яркостных сигналов, которые соответствуют i-му ссылочному номеру, в соответствии со списками 0 и 1. Это значения, соответствующие w, w, o, o, представленным в численном выражении (7) или (9). Здесь, C=Y.
0C
1C
0C
1C
[0124] chroma_weight_l0[i][j] и chroma_weight_l1[i][j] это весовые коэффициенты цветоразностных сигналов, которые соответствуют i-му ссылочному номеру, в соответствии со списками 0 и 1. Кроме того, chroma_offset_l0[i][j] и chroma_offset_l1[i][j] это смещения цветоразностных сигналов, которые соответствуют i-му опорному сигналу, в соответствии со списками 0 и 1. Это значения, соответствующие w, w, o, o, представленным в численном выражении (7) или (9). Здесь, C=Cr или Cb. Кроме того, j представляет компоненту цветоразности, и, например, в случае сигнала YUV 4:2:0, j=0 представляет компоненту Cr, и j=1 представляет компоненту Cb. Кроме того, это представление может использоваться так, что j=0 является компонентой Cb, и j=1 представляет компоненту Cr.
[0125] Здесь будет подробно описан способ прогнозирования каждого элемента синтаксиса, относящегося к взвешенному прогнозированию в конфигурации синтаксиса. Прогнозирование элемента синтаксиса осуществляется блоком 110B переконфигурирования индекса. В примере, представленном на фиг. 18, каждый элемент синтаксиса, прогнозирование которого было введено, обозначается присоединением префикса “delta”.
[0126] Прежде всего, будет описан способ межсигнального прогнозирования luma_log2_weight_denom и chroma_log2_weight_denom, представляющих точность фиксированной запятой весового коэффициента. Блок 110B переконфигурирования индекса осуществляет способ межсигнального прогнозирования luma_log2_weight_denom и chroma_log2_weight_denom с использованием численного выражения (12) и осуществляет процесс восстановления с использованием численного выражения (13). Здесь, как показано на фиг. 18, поскольку сначала задается luma_log2_weight_denom, chroma_log2_weight_denom прогнозируется на основании значения luma_log2_weight_denom.
[0127] delta_chroma_log2_weight_denom = (chroma_log2_weight_denom-luma_log2_weight_denom) (12)
[0128] chroma_log2_weight_denom = (luma_log2_weight_denom+delta_chroma_log2_weight_denom) (13)
[0129] В эффекте затухания, в общем случае, поскольку существует малое количество случаев, когда изменения во времени осуществляются по-разному для каждого цветового пространства, точность фиксированной запятой для каждой компоненты сигнала имеет сильную корреляцию с яркостной компонентой и цветоразностной компонентой. Соответственно, осуществляя прогнозирование внутри цветового пространства, как описано выше, можно сократить объем информации, представляющей точность фиксированной запятой.
[0130] В численном выражении (12), хотя яркостная компонента вычитается из цветоразностной компоненты, цветоразностная компонента может вычитаться из яркостной компоненты. В таком случае, численное выражение (13) может изменяться в соответствии с численным выражением (12).
[0131] Затем будет описан способ прогнозирования luma_weight_lx[i] и chroma_weight_lx[i][j], представляющих весовые коэффициенты яркостного и цветоразностного сигнала. Здесь, X - идентификатор, представляющий “0” или “1”. Значения luma_weight_lx[i] и chroma_weight_lx[i][j] изменяются в соответствии со значениями luma_log2_weight_denom и chroma_log2_weight_denom. Например, в случае, когда значение luma_log2_weight_denom равно “3”, luma_weight_lx[i] равно (1<<3) в случае, когда не предполагается изменения в пиксельном значении. С другой стороны, в случае, когда значение luma_log2_weight_denom равно “5”, luma_weight_lx[i] равно (1<<5) в случае, когда не предполагается изменения светлоты.
[0132] Соответственно, блок 110B переконфигурирования индекса осуществляет процесс прогнозирования, причем весовой коэффициент случая отсутствия изменения в пиксельном значении используется как опорный коэффициент (стандартное значение). В частности, блок 110B переконфигурирования индекса осуществляет процесс прогнозирования luma_weight_lx[i] с использованием численных выражений (14) и (15) и осуществляет процесс восстановления с использованием численного выражения (16). Аналогично, блок 110B переконфигурирования индекса осуществляет процесс прогнозирования chroma_weight_lx[i] с использованием численных выражений (17) и (18) и осуществляет процесс восстановления с использованием численного выражения (19).
[0133] delta_luma_weight_lx[i]=(luma_weight_lx[i]-default_luma_weight_lx) (14)
[0134] default_luma_weight_lx=(1<<luma_log2_weight_denom) (15)
[0135] luma_weight_lx[i]=(default_luma_weight_lx + delta_luma_weight_lx[i]) (16)
[0136] delta_chroma_weight_lx[i][j]=(chroma_weight_lx[i][j] - default_chroma_weight_lx) (17)
[0137] default_chroma_weight_lx = (1<<chroma_log2_weight_denom) (18)
[0138] chroma_weight_lx[i][j] = (default_chroma_weight_lx+delta_chroma_weight_lx[i][j]) (19)
[0139] Здесь, default_luma_weight_lx, default_chroma_weight_lx являются опорными значениями (стандартными значениями) в случае отсутствия изменения в пиксельном значении в яркостной компоненте и цветоразностной компоненте.
[0140] Изображение, включающее в себя эффект затухания, затухает в конкретной точке изменения затухания, и, во многих случаях, другие изображения являются обычными естественными изображениями или изображениями, не имеющими эффекта затухания. В таком случае, во многих случаях весовой коэффициент принимает случай, когда отсутствуют изменения в пиксельном значении. Соответственно, начальное значение в случае отсутствия изменения в пиксельном значении выводится на основании точности фиксированной запятой и используется как прогнозируемое значение, благодаря чему, объем кода весового коэффициента может уменьшаться.
[0141] Затем будет описан способ прогнозирования chroma_offset_lx[i][j], представляющего смещение цветоразностного сигнала. В цветовом пространстве YUV, цветоразностная компонента представляет цвет с использованием величины отклонения от срединного значения. Соответственно, величину, изменения на основании изменения в пиксельном значении с рассматриваемым срединным значением можно устанавливать как прогнозируемое значение с использованием весового коэффициента. В частности, блок 110B переконфигурирования индекса осуществляет процесс прогнозирования chroma_offset_lx[i][j] с использованием численных выражений (20) и (21) и осуществляет процесс восстановления с использованием численного выражения (22).
[0142] delta_chroma_offset_lx[i][j]=(chroma_offset_lx[i][j] +((MED*chroma_weight_lx[i][j])>>chroma_log2_weight_denom)-MED) (20)
[0143] MED=(MaxChromaValue>>1) (21)
[0144] Здесь, MaxChromaValue представляет максимальное пиксельное значение, при котором получается цветоразностный сигнал. Например, в случае 8-битового сигнала, MaxChromaValue равно 255, и MED равно 128.
[0145] chroma_offset_lx[i][j]=(delta_chroma_offset_lx[i][j]-((MED*chroma_weight_lx[i][j])>>chroma_log2_weight_denom)+MED) (22)
[0146] Благодаря введению прогнозируемого значения, полученного с учетом величины отклонения от срединного значения с использованием характеристик цветоразностного сигнала, объем кода значения смещения цветоразностного сигнала меньше, чем в случае, когда значение смещения непосредственно кодируется.
[0147] На фиг. 19 показана пояснительная схема, которая иллюстрирует пример соотношения значений элементов синтаксиса согласно первому варианту осуществления и иллюстрирует соотношение значений luma_log2_weight_denom, default_luma_weight_lx, luma_weight_lx[i] и delta_luma_weight_lx[i]. Как показано на фиг. 19, диапазон delta_luma_weight_lx[i], который является элементом синтаксиса, который должен быть кодирован блоком 110A энтропийного кодирования, другими словами, значение разности между весовыми коэффициентами фиксировано в диапазоне от -128 до 127 и имеет 8-битовую точность со знаком.
[0148] Как описано выше, в первом варианте осуществления, диапазон выбора весового коэффициента выводится путем присвоения значений в отрицательном и положительном направлении причем точка отсчета весового коэффициента, в которой изменение в пиксельном значении равно нулю, задается как приблизительный центр, и осуществляется проверка, что весовой коэффициент включен в выведенный диапазон выбора весового коэффициента. Таким образом, согласно первому варианту осуществления, диапазон выбора весового коэффициента расширяется, и значение положительной стороны, имеющее высокую частоту выбора, может легко приниматься, по сравнению со случаем H.264 и т.п. Кроме того, согласно первому варианту осуществления, поскольку значение разности между весовыми коэффициентами цели кодирования принимает 8-битовое значение со знаком от -128 до 127 в качестве фиксированного значения, диапазон выбора 8-битовой точности со знаком можно задавать при расширении диапазона выбора весового коэффициента.
[0149] Как описано выше, в первом варианте осуществления, поскольку диапазон синтаксиса (значение разности между весовыми коэффициентами), который должен быть кодирован, может иметь фиксированное значение, спецификации можно упростить по сравнению с конфигурацией, в которой кодер динамически изменяет такой диапазон. Например, в случае, когда синтаксис, который должен быть кодирован, устанавливается как весовой коэффициент, и диапазон выбора весового коэффициента изменяется в соответствии с опорным значением весового коэффициента, приготавливается конфигурация, в которой таблица, связывающая опорное значение весового коэффициента и минимальное значение и максимальное значение диапазона выбора весового коэффициента, и обращение к таблице осуществляется каждый раз при выведении диапазона выбора весового коэффициента, или конфигурация, в которой диапазон выбора весового коэффициента вычисляется для выведения каждый раз, когда это необходимо. В таком случае, конфигурация для обращения к таблице каждый раз, когда таблица загружается в память, или схема вычисления, используемая для вычисления диапазона выбора весового коэффициента каждый раз, когда это необходимо, благодаря чему, масштаб оборудования возрастает. Напротив, согласно первому варианту осуществления, поскольку диапазон синтаксиса (значение разности между весовыми коэффициентами), который должен быть кодирован, можно конфигурировать в качестве фиксированного значения, масштаб оборудования может уменьшаться в отсутствие вышеописанных ограничений аппаратной конфигурации и т.п.
[0150] Кроме того, в первом варианте осуществления, хотя значение разности между весовыми коэффициентами, диапазон которых фиксирован на 8-битовой точности со знаком, кодируется, значение разности между весовыми коэффициентами принимает значение вблизи центра диапазона (вблизи нуля), и, соответственно, длина кода в момент времени кодирования может сокращаться, что позволяет повысить эффективность кодирования. В H.264 и т.п., хотя весовой коэффициент кодируется посредством экспоненциального кодирования Голомба со знаком (se(v)), это кодирование эффективно для символа, значение которого, которое должно быть кодировано экспоненциально возрастает, причем нуль используется как начало отсчета, и, соответственно, в общем случае, опорное значение, имеющее наивысшую частоту использования, устанавливается в центре диапазона. В первом варианте осуществления, случай, когда изменение в пиксельном значении между изображениями общего движущегося изображения равно нулю, используется в качестве опорного значения весового коэффициента, и, также при прогнозировании для диапазона выбора весового коэффициента, вводится прогнозирование из опорного значения. Отсюда, диапазоны выбора прогнозирования экспоненциального кодирования Голомба и весового коэффициента совпадают друг с другом, и эффект сокращения объема кода высок. Кроме того, поскольку диапазон коэффициента определяется с опорным значением, установленным в качестве центра, даже в случае, когда принимается большое значение, степени расстояний положительного значения и отрицательного значения от опорного значения одинаковы, что обуславливает преимущество способности кодирования данных с использованием более короткого кода, чем в традиционном методе.
[0151] Кроме того, между строками таблицы синтаксиса, представленной на фиг. 16-18 согласно первому варианту осуществления в качестве примеров, можно вставлять элемент синтаксиса, не заданный в этом варианте осуществления, или можно включать описание, относящееся к другому условному переходу. Кроме того, таблица синтаксиса может делиться на множество таблиц, или множество таблиц синтаксиса может объединяться. Кроме того, член каждого элемента синтаксиса, представленного в порядке примера, может произвольно изменяться.
[0152] ВТОРОЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
Во втором варианте осуществления, будет описано устройство декодирования, декодирующее кодированные данные, закодированные устройством кодирования согласно первому варианту осуществления. Также во втором варианте осуществления, аналогично первому варианту осуществления, описание будет представлено, исходя из случая, когда изменения в пиксельном значении отсутствуют, другими словами, случай, когда значение весового коэффициента равно 1,0, будучи представлено как действительное значение.
[0153] На фиг. 20 показана блок-схема, иллюстрирующая пример конфигурации устройства 800 декодирования согласно второму варианту осуществления.
[0154] Устройство 800 декодирования декодирует кодированные данные, хранящиеся во входном буфере, не показанном на фигуре, и т.п. в декодированное изображение и выводит декодированное изображение в выходной буфер, не показанный на фигуре, в качестве выходного изображения. Кодированные данные, например, выводятся из устройства 100 кодирования, представленного на фиг. 1 и т.п., и поступают на устройство 800 декодирования через систему хранения, систему передачи, буфер и т.п., не показанные на фигуре.
[0155] Устройство 800 декодирования, как показано на фиг. 20, включает в себя: блок 801 декодирования, блок 802 обратного квантования; блок 803 обратного ортогонального преобразования; блок 804 суммирования; блок 805 генерации прогнозируемого изображения; и блок 806 установки индекса. Блок 802 обратного квантования, блок 803 обратного ортогонального преобразования, блок 804 суммирования и блок 805 генерации прогнозируемого изображения являются элементами, которые, по существу, идентичны или аналогичны блоку 104 обратного квантования, блоку 105 обратного ортогонального преобразования, блоку 106 суммирования и блоку 107 генерации прогнозируемого изображения, проиллюстрированным на фиг. 1. Кроме того, блок 807 управления декодированием, представленный на фиг. 20, управляет устройством 800 декодирования и, например, реализуется посредством ЦП и т.п.
[0156] Для декодирования кодированных данных, блок 801 декодирования осуществляет декодирование на основании синтаксиса для каждого кадра или каждого поля. Блок 801 декодирования включает в себя блок 801A энтропийного декодирования и блок 801B переконфигурирования индекса.
[0157] Блок 801A энтропийного декодирования последовательно осуществляет энтропийное декодирование строки кода каждого синтаксиса и регенерирует информацию движения, включающую в себя режим прогнозирования, вектор движения и ссылочный номер, информацию индекса, используемую для прогнозирования взвешенного прогнозирования с компенсацией движения, и параметры кодирования для кодирования целевого блока, например, квантованного коэффициента преобразования и пр. Кроме того, энтропийное декодирование также называется обработка анализа и т.п. Здесь, параметры кодирования являются всеми параметрами, которые необходимы для декодирования информации, относящейся к коэффициенту преобразования, информации, относящейся к квантованию, и пр. помимо вышеописанных.
[0158] В частности, блок 801A энтропийного декодирования имеет функцию для осуществления процесса декодирования, например, процесса декодирования с переменной длиной слова или процесса арифметического декодирования для входных кодированных данных. Например, в H.264, используется контекстное адаптивное кодирование с переменной длиной слова (CAVLC), контекстное адаптивное двоичное арифметическое кодирование (CABAC), и т.п., и входные кодированные данные декодируются в элемент синтаксиса имеющий значение. Такой процесс также называется процессом декодирования.
[0159] Блок 801B переконфигурирования индекса переконфигурирует информацию индекса путем восстановления декодированной информации индекса. В частности, для уменьшения длины кода элементов синтаксиса декодированной информации индекса, блок 801B переконфигурирования индекса осуществляет процесс прогнозирования в соответствии с характеристиками параметров элементов синтаксиса, восстанавливает элементы синтаксиса и переконфигурирует информацию индекса. Конкретный пример процесса прогнозирования будет описан ниже.
[0160] Блок 801 декодирования выводит информацию движения, информацию индекса и квантованный коэффициент преобразования, для ввода квантованного коэффициента преобразования в блок 802 обратного квантования, ввода информации индекса в блок 806 установки индекса, и ввода информации движения в блок 805 генерации прогнозируемого изображения.
[0161] Блок 802 обратного квантования осуществляет процесс обратного квантования для квантованного коэффициента преобразования, поступающего от блока 801 декодирования, и получает коэффициент преобразования восстановления. В частности, блок 802 обратного квантования осуществляет обратное квантование на основании информации квантования, используемой блоком 801 декодирования. Описанный более подробно, блок 802 обратного квантования умножает квантованный коэффициент преобразования на размер шага квантования, выведенный на основании информации квантования, таким образом, получая коэффициент преобразования восстановления. Блок 802 обратного квантования выводит коэффициент преобразования восстановления для ввода в блок 803 обратного ортогонального преобразования.
[0162] Блок 803 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование, соответствующее ортогональному преобразованию, осуществляемому на стороне кодирования для восстановленного коэффициента преобразования, поступающего от блока 802 обратного квантования, таким образом, получая восстановленную ошибку прогнозирования. Блок 803 обратного ортогонального преобразования выводит восстановленную ошибку прогнозирования для ввода в блок 804 суммирования.
[0163] Блок 804 суммирования суммирует восстановленную ошибку прогнозирования, поступающую от блока 803 обратного ортогонального преобразования, и соответствующее прогнозируемое изображение, таким образом, генерируя декодированное изображение. Блок 804 суммирования выводит декодированное изображение для ввода в блок 805 генерации прогнозируемого изображения. Кроме того, блок 804 суммирования выводит декодированное изображение в качестве выходного изображения. После этого, выходное изображение временно сохраняется во внешнем выходном буфере, не показанном на фигуре, и т.п. и выводится на систему устройства отображения, например, дисплей или монитор, не показанный на фигуре, или систему видеоустройства, например, во временном режиме вывода под управлением блока 807 управления декодированием.
[0164] Блок 806 установки индекса принимает информацию индекса, поступающую от блока 801 декодирования, преобразует информацию индекса в информацию параметра WP, и выводит информацию параметра WP для ввода в блок 805 генерации прогнозируемого изображения. В частности, блок 806 установки индекса принимает информацию индекса, которая была обработана для декодирования блоком 801A энтропийного декодирования, и переконфигурируется блоком 801B переконфигурирования индекса. Затем блок 806 установки индекса проверяет список опорных изображений и ссылочный номер, преобразует информацию индекса в информацию параметра WP, и выводит преобразованную информацию параметра WP на блок 805 генерации прогнозируемого изображения. Когда информация индекса преобразуется в информацию параметра WP, блок 806 установки индекса выводит диапазон выбора весового коэффициента и удостоверяется в том, что весовой коэффициент включен в диапазон выбора. Здесь, выведение диапазона выбора весового коэффициента осуществляется так же, как в первом варианте осуществления, и, таким образом, его подробное описание не будет представлено. Кроме того, выведение диапазона выбора может осуществляться не блоком 806 установки индекса, а блоком 801B переконфигурирования индекса. Каждый из блока 806 установки индекса и блока 801B переконфигурирования индекса (блока 801 декодирования) кодирования может именоваться блоком выведения.
0C
1C
0C
1C
[0165] Кроме того, аналогично первому варианту осуществления, информация параметра WP включает в себя информацию первого флага применения WP, второго флага применения WP и весовую информацию. Кроме того, аналогично первому варианту осуществления, весовая информация включает в себя информацию значения w первого весового коэффициента, значения w второго весового коэффициента, LWD точности фиксированной запятой первого и второго весовых коэффициентов, первого смещения o и второго смещения o.
[0166] Блок 805 генерации прогнозируемого изображения генерирует прогнозируемое изображение с использованием информации движения, поступающей от блока 801 декодирования, информации параметра WP, поступающей от блока 806 установки индекса, и декодированного изображения, поступающего от блока 804 суммирования.
[0167] Здесь, блок 805 генерации прогнозируемого изображения будет подробно описан со ссылкой на фиг. 4. Блок 805 генерации прогнозируемого изображения, аналогично блоку 107 генерации прогнозируемого изображения, включает в себя: блок 201 многокадровой компенсации движения; память 202; блок 203 однонаправленной компенсации движения; блок 204 управления параметрами прогнозирования; блок 205 выбора опорного изображения; блок 206 памяти кадров; и блок 207 управления опорным изображением.
[0168] Блок 206 памяти кадров сохраняет декодированное изображение, поступающее от блока 106 суммирования, в качестве опорного изображения под управлением блока 207 управления опорным изображением. Блок 206 памяти кадров включает в себя множество блоков FM1 - FMN памяти (здесь, N≥1), используемых для временного хранения опорного изображения.
[0169] Блок 204 управления параметрами прогнозирования подготавливает множество комбинаций, каждого из номера опорного изображения и параметра прогнозирования в виде таблицы на основании информации движения, поступающей от блока 801 декодирования. Здесь, информация движения представляет информацию вектора движения, представляющего отклонение движения, которая используется для прогнозирования с компенсацией движения, номер опорного изображения и режим прогнозирования, например, однонаправленное/двунаправленное прогнозирование. Параметр прогнозирования представляет информацию, относящуюся к вектору движения и режиму прогнозирования. Затем блок 204 управления параметрами прогнозирования выбирает комбинацию ссылочного номера и параметра прогнозирования, используемого для генерации прогнозируемого изображения на основании информации движения и выводит выбранную комбинацию для обеспечения ввода номера опорного изображения в блок 205 выбора опорного изображения и для обеспечения ввода параметра прогнозирования в блок 203 однонаправленной компенсации движения.
[0170] Блок 205 выбора опорного изображения представляет собой переключатель, который меняет один из выходных разъемов блоков FM1-FMN памяти кадров, которые включены в блок 206 памяти кадров, на который нужно переключаться, на основании номера опорного изображения, поступающего от блока 204 управления параметрами прогнозирования. Например, когда номер опорного изображения равен “0”, блок 205 выбора опорного изображения соединяет выходной разъем блока FM1 памяти кадров с выходным разъемом блока 205 выбора опорного изображения, и, когда номер опорного изображения равен N-1, блок 205 выбора опорного изображения соединяет выходной разъем блока FMN памяти кадров с выходным разъемом блока 205 выбора опорного изображения. Блок 205 выбора опорного изображения выводит опорное изображение, хранящееся в блоке памяти кадров, к которому подключен выходной разъем, из блоков FM1 - FMN памяти кадров, включенных в блок 206 памяти кадров, для ввода в блок 203 однонаправленной компенсации движения. В устройстве 800 декодирования, опорное изображение не используется ни одним блоком, отличным от блока 805 генерации прогнозируемого изображения, и, соответственно, опорное изображение не требуется выводить из блока 805 генерации прогнозируемого изображения.
[0171] Блок 203 однонаправленной компенсации движения осуществляет процесс прогнозирования с компенсацией движения на основании параметра прогнозирования, поступающего от блока 204 управления параметрами прогнозирования и опорного изображения, поступающего от блока 205 выбора опорного изображения, таким образом, генерируя однонаправлено прогнозируемое изображение. Прогнозирование с компенсацией движения было описано ранее со ссылкой на фиг. 5, и, таким образом, его описание не будет представлено.
[0172] Блок 203 однонаправленной компенсации движения выводит однонаправлено прогнозируемое изображение и временно сохраняет однонаправлено прогнозируемое изображение в памяти 202. Здесь, в случае, когда информация движения (параметр прогнозирования) представляет двунаправленное прогнозирование, блок 201 многокадровой компенсации движения осуществляет взвешенное прогнозирование с использованием двух типов однонаправлено прогнозируемых изображений. Соответственно, блок 203 однонаправленной компенсации движения сохраняет однонаправлено прогнозируемое изображение, соответствующее первому типу в однонаправлено прогнозируемом изображении, в памяти 202 и непосредственно выводит однонаправлено прогнозируемое изображение, соответствующее второму типу, на блок 201 многокадровой компенсации движения. Здесь, однонаправлено прогнозируемое изображение, соответствующее первому типу, будем именовать первым прогнозируемым изображением, и однонаправлено прогнозируемое изображение, соответствующее второму типу, будем именовать вторым прогнозируемым изображением.
[0173] Кроме того, два блока 203 однонаправленной компенсации движения могут подготавливаться и генерировать два однонаправлено прогнозируемых изображения. В таком случае, когда информация движения (параметр прогнозирования) представляет однонаправленное прогнозирование, блок 203 однонаправленной компенсации движения может непосредственно выводить первое однонаправлено прогнозируемое изображение на блок 201 многокадровой компенсации движения в качестве первого прогнозируемого изображения.
[0174] Блок 201 многокадровой компенсации движения осуществляет взвешенное прогнозирование с использованием первого прогнозируемого изображения, поступающего из памяти 202, второго прогнозируемого изображения, поступающего от блока 203 однонаправленной компенсации движения, и информации параметра WP, поступающей от блока 109 оценивания движения, таким образом, генерируя прогнозируемое изображение. Блок 201 многокадровой компенсации движения выводит прогнозируемое изображение для ввода в блок 804 суммирования.
[0175] Здесь, блок 201 многокадровой компенсации движения будет подробно описан со ссылкой на фиг. 6. Аналогично блоку 107 генерации прогнозируемого изображения, блок 201 многокадровой компенсации движения включает в себя: блок 301 стандартной компенсации движения; блок 302 взвешенной компенсации движения; блок 303 управления параметрами WP; и блоки 304 и 305 выбора WP.
[0176] Блок 303 управления параметрами WP выводит флаг применения WP и весовую информацию на основании информации параметра WP, поступающей от блока 806 установки индекса для ввода флага применения WP в блоки 304 и 305 выбора WP и ввода весовой информации в блок 302 взвешенной компенсации движения.
[0177] Описывая подробно, когда информация параметра WP поступает от блока 806 установки индекса, блок 303 управления параметрами WP выводит информацию параметра WP, которая делится на первый флаг применения WP, второй флаг применения WP и весовую информацию, таким образом, вводя первый флаг применения WP в блок 304 выбора WP, вводя второй флаг применения WP в блок 305 выбора WP, и вводя весовую информацию в блок 302 взвешенной компенсации движения.
0C
[0178] Кроме того, при вводе информации параметра WP, блок 303 управления параметрами WP проверяет, находится ли значение весовой информации в регулируемом диапазоне. Например, в случае, когда w равен 3,0, будучи представлен как действительное значение, и LWD равно 7, первый весовой коэффициент равен 384. Здесь предполагается, что 384 находится вне диапазона первого весового коэффициента и не может использоваться. В таком случае, данные нарушают спецификацию, и, соответственно, блок 303 управления параметрами WP может сообщать блоку 807 управления декодированием информацию, представляющую нарушение спецификации, и останавливать процесс декодирования. Кроме того, блок 303 управления параметрами WP может осуществлять процесс ограничения в диапазоне первого весового коэффициента и продвигать процесс декодирования. Кроме того, блок 303 управления параметрами WP может изменять значение первого флага применения WP с 1 на 0 и осуществлять стандартное прогнозирование с компенсацией движения.
[0179] Блоки 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 взвешенной компенсации движения.
[0180] Блок 301 стандартной компенсации движения осуществляет обработку усреднения на основании двух однонаправлено прогнозируемых изображений (первого и второго прогнозируемых изображений), поступающих от блоков 304 и 305 выбора WP, таким образом, генерируя прогнозируемое изображение. В частности, в случае, когда первый и второй флаги применения WP равны “0”, блок 301 стандартной компенсации движения осуществляет обработку усреднения на основании численного выражения (1).
[0181] Кроме того, в случае, когда режим прогнозирования, представленный информацией движения (параметром прогнозирования), является однонаправленным прогнозированием, блок 301 стандартной компенсации движения вычисляет окончательное прогнозируемое изображение с использованием только первого прогнозируемого изображения на основании численного выражения (4).
[0182] Блок 302 взвешенной компенсации движения осуществляет взвешенную компенсацию движения на основании двух однонаправлено прогнозируемых изображений (первого и второго прогнозируемых изображений), поступающих от блоков 304 и 305 выбора WP и весовой информации, поступающей от блока 303 управления параметрами WP. В частности, в случае, когда первый и второй флаги применения WP равны “1”, блок 302 взвешенной компенсации движения осуществляет процесс взвешивания на основании численного выражения (7).
[0183] Кроме того, в случае, когда точность вычисления первого и второго прогнозируемых изображений и точность вычисления прогнозируемого изображения отличаются друг от друга, блок 302 взвешенной компенсации движения реализует процесс округления, управляя LWD, который является точностью фиксированной запятой, согласно численному выражению (8).
[0184] Кроме того, в случае, когда режим прогнозирования, представленный информацией движения (параметром прогнозирования), является однонаправленным прогнозированием, блок 302 взвешенной компенсации движения вычисляет окончательное прогнозируемое изображение с использованием только первого прогнозируемого изображения на основании численного выражения (9).
[0185] Кроме того, в случае, когда точность вычисления первого и второго прогнозируемых изображений и точность вычисления прогнозируемого изображения отличаются друг от друга, блок 302 взвешенной компенсации движения реализует процесс округления, управляя LWD, который является точностью фиксированной запятой, согласно численному выражению (8), аналогично случаю двунаправленного прогнозирования.
[0186] Точность фиксированной запятой весового коэффициента была описана ранее со ссылкой на фиг. 7, и, таким образом, его описание не будет представлено. Кроме того, в случае однонаправленного прогнозирования, различные параметры (второй флаг применения WP, второй весовой коэффициент и информация второго смещения), соответствующие второму прогнозируемому изображению, не используются и могут быть установлены на определенные заранее начальные значения.
[0187] Блок 801 декодирования использует синтаксис 500, представленный на фиг. 15. Синтаксис 500 представляет структуру кодированных данных, которая является целью декодирования блока 801 декодирования. Синтаксис 500 был описан ранее со ссылкой на фиг. 15, и, таким образом, его описание не будет представлено. Кроме того, синтаксис 505 набора параметров изображения описан со ссылкой на фиг. 16, за исключением того, что декодирование используется вместо кодирования, и, таким образом, его описание не будет представлено. Кроме того, синтаксис 507 заголовка слайса был описан ранее со ссылкой на фиг. 17, за исключением того, что декодирование используется вместо кодирования, и, таким образом, его описание не будет представлено. Кроме того, синтаксис 508 весовой таблицы pred был описан ранее со ссылкой на фиг. 18, за исключением того, что декодирование используется вместо кодирования, и, таким образом, его описание не будет представлено.
[0188] Здесь будет подробно описан способ прогнозирования каждого элемента синтаксиса, относящегося к взвешенному прогнозированию в конфигурации синтаксиса. Прогнозирование элемента синтаксиса осуществляется блоком 801B переконфигурирования индекса. Конфигурация синтаксиса, в явном виде представляющая способ прогнозирования согласно второму варианту осуществления, такая же, как в первом втором варианте осуществления.
[0189] В способе межсигнального прогнозирования luma_log2_weight_denom и chroma_log2_weight_denom, представляющих точность фиксированной запятой весового коэффициента, процесс восстановления осуществляется с использованием численного выражения (13).
[0190] В способе прогнозирования luma_weight_lx[i] и chroma_weight_lx[i][j], представляющих весовые коэффициенты яркостного и цветоразностного сигнала, процесс восстановления осуществляется с использованием численных выражений (16) и (19).
[0191] Множество вышеописанных способов прогнозирования можно использовать не только независимо, но и совместно. Например, объединяя численные выражения (13), (15) и (19), и т.п., можно эффективно сократить объем кода элемента синтаксиса информации индекса.
[0192] Как описано выше, во втором варианте осуществления, диапазон выбора весового коэффициента выводится путем присвоения значений в отрицательном и положительном направлении причем точка отсчета весового коэффициента, в которой изменение в пиксельном значении равно нулю, задается как приблизительный центр, и осуществляется проверка, что весовой коэффициент включен в выведенный диапазон выбора весового коэффициента. Таким образом, согласно второму варианту осуществления, диапазон выбора весового коэффициента расширяется, и значение положительной стороны, имеющее высокую частоту выбора, может легко приниматься, по сравнению со случаем H.264 и т.п. Кроме того, согласно первому варианту осуществления, поскольку значение разности между весовыми коэффициентами цели декодирования принимает 8-битовое значение со знаком от -128 до 127 в качестве фиксированного значения, диапазон выбора 8-битовой точности со знаком можно задавать при расширении диапазона выбора весового коэффициента.
[0193] Как описано выше, во втором варианте осуществления, поскольку диапазон синтаксиса (значение разности между весовыми коэффициентами), который должен быть декодирован, может иметь фиксированное значение, декодер может проверять упрощенным образом, находятся ли кодированные данные, которые были декодированы, в диапазоне заранее определенных спецификаций, и спецификации можно упростить. Например, в случае, когда синтаксис, который должен быть декодирован, задается как весовой коэффициент, и диапазон выбора весового коэффициента изменяется в соответствии с опорным значением весового коэффициента, необходима конфигурация, в которой таблица, связывающая опорное значение весового коэффициента и минимальное значение и максимальное значение диапазона выбора весового коэффициента, приготавливается, и обращение к таблице осуществляется каждый раз при выведении диапазона выбора весового коэффициента. В таком случае, необходима конфигурация для обращения к таблице каждый раз, когда таблица загружается в память, благодаря чему, масштаб оборудования возрастает. Напротив, согласно второму варианту осуществления, поскольку диапазон синтаксиса (значение разности между весовыми коэффициентами), который должен быть декодирован, можно конфигурировать так, чтобы он имел фиксированное значение, масштаб оборудования может уменьшаться в отсутствие вышеописанных ограничений аппаратной конфигурации и т.п.
[0194] Кроме того, во втором варианте осуществления, хотя значение разности между весовыми коэффициентами, диапазон которых фиксирован на 8-битовой точности со знаком, декодируется, значение разности между весовыми коэффициентами принимает значение вблизи центра диапазона (вблизи нуля), и, соответственно, длина кода в момент времени декодирования может сокращаться, что позволяет повысить эффективность кодирования. В H.264 и т.п., хотя весовой коэффициент декодируется посредством экспоненциального кодирования Голомба со знаком (se(v)), это кодирование эффективно для символа, значение которого, которое должно быть декодировано экспоненциально возрастает, причем нуль используется как начало отсчета, и, соответственно, в общем случае, опорное значение, имеющее наивысшую частоту использования, устанавливается в центре диапазона. Во втором варианте осуществления, случай, когда изменение в пиксельном значении между изображениями общего движущегося изображения равно нулю, используется в качестве опорного значения весового коэффициента, и, также при прогнозировании для диапазона выбора весового коэффициента, вводится прогнозирование из опорного значения. Отсюда, диапазоны выбора прогнозирования экспоненциального кодирования Голомба и весового коэффициента совпадают друг с другом, и эффект сокращения объема кода высок. Кроме того, поскольку диапазон коэффициента определяется с опорным значением, установленным в качестве центра, даже в случае, когда принимается большое значение, степени расстояний положительного значения и отрицательного значения от опорного значения одинаковы, что обуславливает преимущество способности декодирования данных с использованием более короткого кода, чем в традиционном методе.
[0195] МОДИФИКАЦИЯ 1 ПЕРВОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
В первом варианте осуществления, хотя описано выведение диапазона выбора весового коэффициента в устройстве 100 кодирования, в модификации 1, будет описано выведение диапазона выбора смещения в устройстве 100 кодирования.
[0196] Как описано со ссылкой на численные выражения (20) - (22), в цветовом пространстве YUV, цветоразностная компонента представляет цвет с использованием величины отклонения от срединного значения. Соответственно, величина изменения от изменения в пиксельном значении, причем срединное значение рассматривается с использованием весового коэффициента можно задавать как прогнозируемое значение. Это прогнозируемое значение представляет опорное значение смещения в случае, когда влияние весового коэффициента исключено. Другими словами, блок 108 установки индекса может выводить диапазон выбора смещения, назначая диапазон, занимаемый значением, прогнозируемым значением (опорным значением смещения), установленным как приблизительный центр, и может проверять, что смещение включено в выведенный диапазон выбора смещения.
[0197] Например, в случае, когда LWD равно 2, и значение весового коэффициента равно 5, опорное значение весового коэффициента равно (1<<2), другими словами, 4. С другой стороны, поскольку значение весового коэффициента равно 5, происходит изменение в пиксельном значении. Поскольку цветоразностный сигнал представляет цвет с использованием величины отклонения от срединного значения, блок 108 установки индекса получает опорное значение смещения, исключая влияние весового коэффициента. Опорное значение смещения определяется с использованием численного выражения (23).
[0198] Pred=(MED-((MED*chroma_weight_lx[i][j]) >>chroma_log2_weight_denom)) (23)
[0199] Здесь, Pred представляет опорное значение смещения цветоразностного сигнала, MED представляет срединное значение (128 в случае 8 битов) цветоразностного сигнала, и правый член представляет величину отклонения от срединного значения под влиянием весового коэффициента. Кроме того, численное выражение (23) соответствует значению, полученному инвертированием знака правого члена численного выражения (20). Как представлено в численном выражении (23), опорное значение смещения цветоразностного сигнала определяется на основании весового коэффициента цветоразностного сигнала и фиксированной точности.
[0200] Кроме того, численное выражение (23) можно преобразовывать как численное выражение (24).
[0201] Pred=((1<<(BitDepth-1))-((chroma_weight_lx[i][j]) <<(BitDepth-1-chroma_log2_weight_denom)) (24)
[0202] Здесь, BitDepth представляет пиксельную глубину цветоразностного сигнала, и BitDepth равна 8 в случае 8-битового сигнала. Поскольку MED, представленный в численном выражении (23), является значением, представленным как степень 2, и, переписывая внутреннюю часть сдвига на правой стороне с использованием BitDepth, ее можно представить как численное выражение (24).
[0203] На фиг. 21 показана пояснительная схема, которая иллюстрирует пример диапазона выбора смещения цветоразностного сигнала согласно модификации 1. В примере, представленном на фиг. 21, Pred устанавливается так, чтобы размещаться в приблизительном центре диапазона выбора, (Pred)-(1<<OR) является минимальным значением диапазона выбора, и (Pred)+(1<<OR)-1 является максимальным значением диапазона выбора. Кроме того, OR представляет битовую точность смещения и, например, 8 в H.264 и т.п. Как показано на фиг. 21, диапазон выбора смещения цветоразностного сигнала задается с заранее определенной битовой точностью, причем опорное значение смещения цветоразностного сигнала является приблизительным центром. Хотя подробное описание не будет представлено, значение разности (значение разности между смещением цветоразностного сигнала и опорным значением смещения цветоразностного сигнала) между смещениями цветоразностных сигналов цели кодирования можно задавать в качестве фиксированного значения битовой точности смещения. Например, в случае 8-битовой точности, значение разности между смещениями цветоразностных сигналов является 8-битовым фиксированным значением от -128 до 127. Кроме того, например, в случае 9-битовой точности, значение разности между смещениями цветоразностных сигналов является 9-битовым фиксированным значением от -256 до 255.
[0204] Это позволяет решить проблему, состоящую в том, что диапазон значения, который должен быть кодирован, не определяется без восстановления опорного значения. Кроме того, в модификации 1, хотя описан пример, в котором диапазон выбора смещения цветоразностного сигнала выводится блоком 108 установки индекса, выведение диапазона выбора не ограничивается этим, но может осуществляться блоком 110 кодирования.
[0205] На фиг. 22 показана блок-схема операций, которая иллюстрирует пример процесса выведения диапазона выбора смещения цветоразностного сигнала согласно модификации 1. Здесь, хотя предполагается описание случая, когда блок 108 установки индекса осуществляет процесс выведения диапазона выбора смещения цветоразностного сигнала, как описано выше, процесс может осуществляться блоком 110 кодирования.
[0206] Прежде всего, блок 108 установки индекса выводит LWD точности фиксированной запятой весового коэффициента (этап S12). При этом блок 108 установки индекса может выводить LWD точности фиксированной запятой весового коэффициента либо из информации параметра WP, либо из информации индекса.
xc
xc
[0207] Затем блок 108 установки индекса выводит весовой коэффициент W (S13). При этом блок 108 установки индекса может выводить весовой коэффициент W либо из информации параметра WP, либо из информации индекса.
xc
[0208] Затем блок 108 установки индекса выводит опорное значение смещения цветоразностного сигнала с использованием численного выражения (23) с использованием LWD фиксированной точности весового коэффициента и весового коэффициента W, который был выведен (этап S14).
[0209] Затем блок 108 установки индекса выводит минимальное значение диапазона выбора смещения цветоразностного сигнала путем вычитания (1<<OR) из выведенного опорного значения смещения цветоразностного сигнала (этап S15).
[0210] Затем блок 108 установки индекса суммирует (1<<OR)-1 с выведенным опорным значением смещения цветоразностного сигнала, таким образом, выводя максимальное значение диапазона выбора смещения цветоразностного сигнала (этап S16).
[0211] Затем блок 108 установки индекса проверяет, что смещение цветоразностного сигнала включено в выведенный диапазон выбора смещения цветоразностного сигнала. Кроме того, в случае, когда проверено, что смещение цветоразностного сигнала не включено в диапазон выбора смещения цветоразностного сигнала, блок 108 установки индекса может осуществлять процесс ограничения с использованием максимального значения или минимального значения диапазона выбора смещения цветоразностного сигнала. В таком случае, блок 108 установки индекса может ограничивать смещение цветоразностного сигнала до минимального значения в случае, когда смещение цветоразностного сигнала меньше минимального значения диапазона выбора и ограничивать смещение цветоразностного сигнала до максимального значения в случае, когда смещение цветоразностного сигнала больше максимального значения диапазона выбора. Благодаря вводу такого процесса ограничения, значение цели кодирования, например, значение разности между смещением цветоразностного сигнала принимает значение в заранее определенной битовой точности без установки конкретного ограничения на диапазон, и, соответственно, можно уточнить конфигурацию масштаба схемы, используемого оборудованием.
[0212] Кроме того, как описано со ссылкой на фиг. 18, информация значения весового коэффициента и точность фиксированной запятой кодируется до информации смещения, значение весового коэффициента можно вывести, когда выведено опорное значение смещения.
[0213] Кроме того, диапазоны выбора первого и второго смещений для цветоразностного сигнала, описанные в модификации 1 можно применять отдельно от диапазонов выбора первого и второго весовых коэффициентов, описанных в первом варианте осуществления. Например, возможна такая конфигурация, в которой диапазоны выбора первого и второго весового коэффициента одинаковы в H.264, и диапазоны выбора первого и второго смещений такие же, как в модификации 1.
[0214] Согласно модификации 1, поскольку диапазон синтаксиса (значение разности между смещениями), который должен быть кодирован, может иметь фиксированное значение, спецификации можно упростить по сравнению с конфигурацией, в которой кодер динамически изменяет такой диапазон. Кроме того, в случае, когда синтаксис, который должен быть кодирован, устанавливается как смещение, и диапазон выбора смещения изменяется в соответствии с опорным значением смещения, конфигурация, в которой таблица, связывающая опорное значение смещения и минимальное значение и максимальное значение диапазона выбора смещения, приготавливается, и обращение к таблице осуществляется каждый раз при выведении диапазона выбора смещения, или конфигурация, в которой диапазон выбора смещения вычисляется для выведения каждый раз, когда это необходимо. В таком случае, конфигурация для обращения к таблице каждый раз, когда таблица загружается в память, или схема вычисления, используемая для вычисления диапазона выбора смещения каждый раз, когда это необходимо, благодаря чему, масштаб оборудования возрастает. Напротив, в случае, когда диапазон синтаксиса (значение разности между смещениями), который должен быть кодирован, является фиксированным, как в модификации 1, масштаб оборудования может уменьшаться в отсутствие вышеописанных ограничений аппаратной конфигурации и т.п.
[0215] МОДИФИКАЦИЯ 1 ВТОРОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
Во втором варианте осуществления, хотя описано выведение диапазона выбора весового коэффициента в устройстве 800 декодирования, в модификации 1 второго варианта осуществления, будет описано выведение диапазона выбора смещения в устройстве 800 декодирования. В модификации 1 второго варианта осуществления, блок 806 установки индекса может выводить диапазон выбора смещения, назначая диапазон, занимаемый значением, прогнозируемым значением (опорным значением смещения), установленным как приблизительный центр, и может проверять, что смещение включено в выведенный диапазон выбора смещения. Выведение диапазона выбора смещения такое же, как в модификации 1 первого варианта осуществления, и, таким образом, его подробное описание не будет представлено. Кроме того, выведение диапазона выбора смещения может осуществляться не блоком 806 установки индекса, а блоком 801B переконфигурирования индекса.
[0216] Согласно модификации 1 второго варианта осуществления, поскольку диапазон синтаксиса (значение разности между смещениями), который должен быть кодирован, может иметь фиксированное значение, спецификации можно упростить по сравнению с конфигурацией, в которой кодер динамически изменяет такой диапазон. Кроме того, в случае, когда синтаксис, который должен быть кодирован, устанавливается как смещение, и диапазон выбора смещения изменяется в соответствии с опорным значением смещения, конфигурация, в которой таблица, связывающая опорное значение смещения и минимальное значение и максимальное значение диапазона выбора смещения, приготавливается, и обращение к таблице осуществляется каждый раз при выведении диапазона выбора смещения, или конфигурация, в которой диапазон выбора смещения вычисляется для выведения каждый раз, когда это необходимо. В таком случае, конфигурация для обращения к таблице каждый раз, когда таблица загружается в память, или схема вычисления, используемая для вычисления диапазона выбора смещения каждый раз, когда это необходимо, благодаря чему, масштаб оборудования возрастает. Напротив, в случае, когда диапазон синтаксиса (значение разности между смещениями), который должен быть кодирован, является фиксированным, как в модификации 1, масштаб оборудования может уменьшаться в отсутствие вышеописанных ограничений аппаратной конфигурации и т.п.
[0217] МОДИФИКАЦИЯ 2 ПЕРВОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
В первом варианте осуществления, хотя описано выведение диапазона выбора весового коэффициента в устройстве 100 кодирования, в модификации 2, будет описан пример, в котором диапазон выбора весового коэффициента смещается, при выведении диапазона выбора весового коэффициента в устройстве 100 кодирования.
[0218] В первом варианте осуществления, как описано со ссылкой на фиг. 9, приблизительный центр диапазона выбора весового коэффициента задается как опорное значение весового коэффициента. Кроме того, как описано со ссылкой на фиг. 7 и пр., в случае отсутствия изменений пиксельного значения между изображениями в среднем, значение весового коэффициента равно 1,0, будучи представлено как действительное значение, и диапазон, в котором весовой коэффициент отрицателен, не выбирается в однонаправленном взвешенном прогнозировании. Отсюда, следует понимать, что, в диапазоне выбора весового коэффициента, который практически используется, частота выбора вблизи опорного значения является наивысшей, и отрицательный диапазон, по большей части, не используется. Соответственно, в модификации 2, блок 108 установки индекса сдвигает диапазон выбора весового коэффициента в положительную сторону при выведении диапазона выбора весового коэффициента.
[0219] На фиг. 23 показана пояснительная схема, которая иллюстрирует пример диапазона выбора весового коэффициента согласно модификации 2. В примере, представленном на фиг. 23, в отличие от диапазона выбора весового коэффициента, описанного со ссылкой на фиг. 9, новое опорное значение ((1<<LWD)+SHFT), полученное путем суммирования значение SHFT сдвига с опорным значением (1<<LWD) весового коэффициента, устанавливается так, чтобы размещаться в приблизительном центре диапазона выбора, и значение (-128+(1<<LWD)+SHFT), полученное путем вычитания 128 из этого значения, является минимальным значением диапазона выбора, и значение (127+(1<<LWD)+SHFT), полученное путем суммирования 127 с этим значением, является максимальным значением диапазона выбора. При этом, хотя возможны случаи, когда максимальное значение больше 255 на основании значения LWD точности фиксированной запятой, блок 108 установки индекса может осуществлять процесс ограничения, когда максимальное значение задано равным 255, или может изменять значение, принимаемое SHFT, для каждой фиксированной точки. Кроме того, в модификации 2, хотя описан пример, в котором диапазон выбора весового коэффициента выводится блоком 108 установки индекса, выведение диапазона выбора не ограничивается этим, но может осуществляться блоком 110 кодирования.
[0220] На фиг. 24 показана блок-схема операций, которая иллюстрирует пример процесса выведения диапазона выбора весового коэффициента согласно модификации 2. Здесь, хотя предполагается описание случая, когда блок 108 установки индекса осуществляет процесс выведения диапазона выбора весового коэффициента, как описано выше, диапазон выбора может выводиться блоком 110 кодирования.
[0221] Прежде всего, блок 108 установки индекса выводит LWD точности фиксированной запятой весового коэффициента (этап S22). При этом блок 108 установки индекса может выводить LWD точности фиксированной запятой весового коэффициента либо из информации параметра WP, либо из информации индекса.
[0222] Затем блок 108 установки индекса выводит опорное значение ((1<<LWD)+SHFT) весового коэффициента с использованием LWD точности фиксированной запятой и значения SHFT сдвига, которое было выведено (этап S23).
[0223] Затем блок 108 установки индекса вычитает 128 из выведенного опорного значения ((1<<LWD)+SHFT) весового коэффициента, таким образом, выводя минимальное значение диапазона выбора весового коэффициента (этап S24).
[0224] Затем блок 108 установки индекса суммирует 127 с выведенным опорным значением ((1<<LWD)+SHFT) весового коэффициента, таким образом, выводя максимальное значение диапазона выбора весового коэффициента (этап S25).
[0225] Затем блок 108 установки индекса удостоверяется в том, что весовой коэффициент включен в выведенный диапазон выбора весового коэффициента. Кроме того, в случае, когда проверено, что весовой коэффициент не включен в выведенный диапазон выбора весового коэффициента, блок 108 установки индекса может осуществлять процесс ограничения с использованием максимального значения или минимального значения диапазона выбора весового коэффициента. В таком случае, блок 108 установки индекса может ограничивать весовой коэффициент до минимального значения в случае, когда весовой коэффициент меньше минимального значения диапазона выбора и ограничивать весовой коэффициент до максимального значения в случае, когда весовой коэффициент больше максимального значения диапазона выбора. Благодаря вводу такого процесса ограничения, значение цели кодирования, например, значение разности между весовыми коэффициентами принимает значение в заранее определенной битовой точности без установки конкретного ограничения на диапазон, и, соответственно, можно уточнить конфигурацию масштаба схемы, используемого оборудованием.
[0226] Как описано выше, в модификации 2, в диапазоне выбора весового коэффициента, значения назначаются в отрицательном направлении и положительном направлении, при том, что опорное значение сдвигается на заранее определенное значение с изменением весового коэффициента, рассматриваемого как заданный в качестве центра, диапазон значений, который должен быть кодирован, может быть фиксированным.
[0227] МОДИФИКАЦИЯ 2 ВТОРОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
Во втором варианте осуществления, хотя описан диапазон выбора весового коэффициента, выводимого в устройстве 800 декодирования, в модификации 2 второго варианта осуществления, будет описан пример, в котором диапазон выбора весового коэффициента смещается при выведении диапазона выбора весового коэффициента в устройстве 800 декодирования. В модификации 2 второго варианта осуществления, блок 806 установки индекса сдвигает диапазон выбора весового коэффициента при выведении диапазона выбора весового коэффициента. Выведение диапазона выбора весового коэффициента такое же, как в модификации 2 первого варианта осуществления, и таким образом, его подробное описание не будет представлено. Кроме того, диапазон выбора весового коэффициента может выводиться не блоком 806 установки индекса, а блоком 801B переконфигурирования индекса.
[0228] Как описано выше, в модификации 2 второго варианта осуществления, в диапазоне выбора весового коэффициента, значения назначаются в отрицательном направлении и положительном направлении, при том, что опорное значение сдвигается на заранее определенное значение с изменением весового коэффициента, рассматриваемого как заданный в качестве центра, диапазон значений, который должен быть декодирован, может быть фиксированным.
[0229] МОДИФИКАЦИЯ 3 ПЕРВОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
В модификации 3 будет описан метод выведения, отличный от метода выведения диапазона выбора весового коэффициента в устройстве 100 кодирования согласно первому варианту осуществления.
[0230] В модификации 3, luma_weight_lx[i], представленный в численных выражениях 14-16, имеет фиксированный диапазон выбора, и delta_luma_weight_lx[i] имеет динамический диапазон выбора в соответствии с LWD. Кроме того, диапазон выбора весового коэффициента luma_weight_lx[i] модификации 5 представлен на фиг. 9.
[0231] На фиг. 25 показана пояснительная схема, которая иллюстрирует пример диапазона значения разности между весовыми коэффициентами цели кодирования согласно модификации 3. В примере, представленном на фиг. 25, значение разности delta_luma_weight_lx[i] весового коэффициента принимает 9-битовое значение со знаком для осуществления суммирования или вычитания 8-битового сигнала со знаком. С другой стороны, опорное значение весового коэффициента принимает значение, возрастающее в соответствии с точностью фиксированной запятой, и значение разности между весовыми коэффициентами проявляет тенденцию к смещению в отрицательную сторону с увеличением точности фиксированной запятой.
[0232] На фиг. 26 показана пояснительная схема, которая иллюстрирует пример соотношения между значениями элементов синтаксиса согласно модификации 3 и иллюстрирует соотношение между значениями luma_log2_weight_denom, default_luma_weight_lx, luma_weight_lx[i] и delta_luma_weight_lx[i]. Следует понимать, что delta_luma_weight_lx[i], который является элементом синтаксиса кодированный блоком 110A энтропийного кодирования, другими словами, диапазон, занимаемый значением разности между весовыми коэффициентами, как показано на фиг. 19, проявляет тенденцию к смещению в отрицательную сторону с увеличением luma_log2_weight_denom, представляющего точность фиксированной запятой. Кроме того, следует понимать, что значение luma_weight_lx[i] декодированного весового коэффициента имеет фиксированный диапазон от -128 до 127.
[0233] Как описано выше, согласно модификации 3, диапазон значения разности, который должен быть кодирован, устанавливается таким образом, что значение декодированного весового коэффициента имеет фиксированный диапазон выбора, и, соответственно, даже в случае, когда способ прогнозирования изменяется, можно установить такой же диапазон выбора, как в H.264.
[0234] МОДИФИКАЦИЯ 3 ВТОРОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
В модификации 3 второго варианта осуществления, будет описан метод выведения, отличный от метода выведения диапазона выбора весового коэффициента в устройстве 800 декодирования согласно второму варианту осуществления. Однако метод выведения диапазона выбора весового коэффициента согласно модификации 3 второго варианта осуществления такой же, как модификация 3 первого варианта осуществления, и, таким образом, его подробное описание не будет представлено.
[0235] Как описано выше, согласно модификации 3 второго варианта осуществления, диапазон значения разности который должен быть декодирован устанавливается таким образом, что значение весового коэффициента имеет фиксированный диапазон выбора, и, соответственно, даже в случае, когда способ прогнозирования изменяется, можно установить такой же диапазон выбора, как в H.264.
[0236] МОДИФИКАЦИЯ 4 ПЕРВОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
В модификации 4, будет описан пример, в котором диапазон выбора весового коэффициента смещается, при выведении диапазона выбора весового коэффициента согласно модификации 3 первого варианта осуществления.
[0237] В модификации 4, хотя блок 108 установки индекса сдвигает диапазон значения разности между весовыми коэффициентами в положительную сторону, это, по существу, эквивалентно сдвигу диапазона выбора весового коэффициента после декодирования в положительную сторону.
[0238] На фиг. 27 показана пояснительная схема, которая иллюстрирует пример диапазона значения разности между весовыми коэффициентами согласно модификации 4. По сравнению с модификацией 3 первого варианта осуществления, диапазон значения разности между весовыми коэффициентами, принимающими значение в 8-битовом диапазоне от -128 до 127, смещается на SHFT в положительную сторону.
[0239] Фиг. 28 иллюстрирует диапазон выбора весового коэффициента после декодирования согласно модификации 4. Из фиг. 28, можно понять, что, в модификации 4, диапазон весового коэффициента смещается в положительную сторону на величину сдвига значения разности. Даже в такой конфигурации, для случая, когда LWD равно 7, можно выбирать опорное значение, которое традиционно не удается выбрать.
[0240] МОДИФИКАЦИЯ 4 ВТОРОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
В модификации 4 второго варианта осуществления, будет описан пример, в котором диапазон выбора весового коэффициента смещается, когда диапазон выбора весового коэффициента выводится согласно модификации 3 второго варианта осуществления. Однако метод сдвига диапазона выбора весового коэффициента согласно модификации 4 второго варианта осуществления остается таким же, как в модификации 4 первого варианта осуществления, и, таким образом, его подробное описание не будет представлено. Даже в такой конфигурации, для случая, когда LWD равно 7, можно выбирать опорное значение, которое традиционно не удается выбрать.
[0241] МОДИФИКАЦИЯ 5 ПЕРВОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
В модификации 5, будет описан пример, в котором процесс свертывания осуществляется для значения разности между весовым коэффициентом согласно модификациям 3 и 4 первого варианта осуществления.
[0242] Как описано со ссылкой на фиг. 25, значение разности между весовыми коэффициентами представляет собой 9-битовый сигнал со знаком (от -256 до 126), отклоняющийся в отрицательную сторону при возрастании точности фиксированной запятой. В общем случае, весовой коэффициент энтропийно кодируется с использованием экспоненциального кодирования Голомба и т.п., и, соответственно, в случае, когда баланс смещается в положительную/отрицательную сторону, возможны случаи, когда эффективность кодирования снижается. Хотя диапазон значения разности между весовыми коэффициентами различается в соответствии с точностью фиксированной запятой, диапазон в случае, когда точность фиксированной запятой определена, находится в пределах 8 битов. Например, в случае, когда LWD равно 7, диапазон значения разности составляет от -256 до -1, и когда диапазон смещается относительно начала отсчета 0, диапазон соответствует значениям 8 битов от 0 до 255. Соответственно, блок 110B переконфигурирования индекса осуществляет процесс свертывания 9 битов со знаком в 8 битов без знака в соответствии с точностью фиксированной запятой. В таком случае, значение в положительном направлении принимает традиционное значение, и значение в отрицательном направлении присоединяется к дальнему концу положительных значений.
[0243] На фиг. 29 показана блок-схема операций, которая иллюстрирует пример процесса свертывания значения разности между весовыми коэффициентами согласно модификации 5.
[0244] Прежде всего, блок 110B переконфигурирования индекса выводит LWD точности фиксированной запятой весового коэффициента из информации индекса (этап S32).
[0245] Затем блок 110B переконфигурирования индекса выводит весовой коэффициент из информации индекса (этап S33).
[0246] Затем блок 110B переконфигурирования индекса выводит опорное значение (1<<LWD) весового коэффициента с использованием выведенной LWD точности фиксированной запятой (этап S34).
[0247] Затем блок 110B переконфигурирования индекса выводит значение разности между весовыми коэффициентами с использованием численного выражения (14) (этап S35).
[0248] Затем блок 110B переконфигурирования индекса осуществляет процесс свертывания на основании опорного значения (1<<LWD) весового коэффициента и, поддерживая положительные значения и присоединяя отрицательные значения к задней стороне положительного максимального значения, генерирует 8-битовый код без знака (этап S36).
[0249] Затем энтропийное кодирование осуществляется для кода, сгенерированного блоком 110B переконфигурирования индекса блоком 110A энтропийного кодирования.
[0250] Как описано выше, в модификации 5, осуществляя процесс свертывания для 9-битовых значений со знаком, значения можно постоянно кодировать в 8 битов без знака, что избавляет от необходимости обеспечивать такое оборудование, как блок экспоненциального кодирования Голомба 9 битов со знаком.
[0251] МОДИФИКАЦИЯ 5 ВТОРОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
В модификации 5 второго варианта осуществления, будет описан пример, в котором процесс свертывания осуществляется для значения разности между весовыми коэффициентами в модификациях 3 и 4 второго варианта осуществления.
[0252] Как описано со ссылкой на фиг. 25, значение разности между весовыми коэффициентами представляет собой 9-битовый сигнал со знаком (от -256 до 126), отклоняющийся в отрицательную сторону при возрастании точности фиксированной запятой. В общем случае, весовой коэффициент энтропийно кодируется с использованием экспоненциального кодирования Голомба и т.п., и, соответственно, в случае, когда баланс смещается в положительную/отрицательную сторону, возможны случаи, когда эффективность кодирования снижается. Хотя диапазон значения разности между весовыми коэффициентами различается в соответствии с точностью фиксированной запятой, диапазон в случае, когда точность фиксированной запятой определена, находится в пределах 8 битов. Например, в случае, когда LWD равно 7, диапазон значения разности составляет от -256 до -1, и когда диапазон смещается относительно начала отсчета 0, диапазон соответствует значениям 8 битов от 0 до 255. Соответственно, блок 801B переконфигурирования индекса осуществляет процесс свертывания 9 битов со знаком в 8 битов без знака в соответствии с точностью фиксированной запятой. В таком случае, значение в положительном направлении принимает традиционное значение, и значение в отрицательном направлении присоединяется к дальнему концу положительных значений.
[0253] На фиг. 30 показана блок-схема операций, которая иллюстрирует пример процесса восстановления весового коэффициента согласно модификации 5 второго варианта осуществления.
[0254] Прежде всего, блок 801A переконфигурирования индекса выводит LWD точности фиксированной запятой весового коэффициента путем декодирования кодированных данных (этап S42).
[0255] Затем блок 801A переконфигурирования индекса декодирует кодированные данные, таким образом, декодируя 8-битовый код без знака, представляющий значение разности между весовыми коэффициентами (этап S43).
[0256] Затем блок 801B переконфигурирования индекса выводит опорное значение (1<<LWD) весового коэффициента с использованием выведенной LWD точности фиксированной запятой (этап S44).
[0257] Затем блок 801B переконфигурирования индекса восстанавливает 8-битовый код без знака до значения разности между 9-битовыми значениям без знака с использованием выведенного опорного значения ((1<<LWD) весового коэффициента (этап S45). Здесь, значения, меньшие опорного значения, поддерживаются на основании декодированных данных, и коды, большие и равные опорному значению, присоединяются к отрицательной стороне, благодаря чему восстанавливаются значения разности. Как описано выше, выводится восстановленное значение разности между весовыми коэффициентами, и весовой коэффициент восстанавливается с использованием численного выражения (15).
[0258] Как описано выше, в модификации 5 второго варианта осуществления, осуществляя процесс свертывания для 9-битовых значений со знаком, значения можно постоянно кодировать в 8 битов без знака, что избавляет от необходимости обеспечивать такое оборудование, как блок экспоненциального кодирования Голомба 9 битов со знаком.
[0259] МОДИФИКАЦИЯ 6
В вышеописанных первом и втором вариантах осуществления, описан пример, в котором кадр делится на прямоугольные блоки, каждый из которых имеет размер 16×16 пикселей и т.п. и кодируется/декодируется в порядке от верхнего левого блока экрана к нижнему правому блоку (см. фиг. 2A). Однако порядок кодирования и порядок декодирования не ограничиваются проиллюстрированными в этом примере. Например, кодирование и декодирование может осуществляться в порядке от нижней правой стороны к верхней левой стороне, или кодирование и декодирование может осуществляться по спирали от центра экрана к концу экрана. Кроме того, кодирование и декодирование может осуществляться в порядке от верхней правой стороны к нижней левой стороне, или кодирование и декодирование может осуществляться по спирали от конца экрана к центру экрана. В таком случае, поскольку позиция соседнего пиксельного блока, к которой можно обращаться в соответствии с порядком кодирования, изменяется, позиция может изменяться на надлежащую пригодную позицию.
[0260] В вышеописанных первом и втором вариантах осуществления, хотя описание было представлено с размером целевого блока прогнозирования, например, блока 4×4 пикселя, блока 8×8 пикселей, блока 16×16 пикселей и т.п., проиллюстрированных в порядке примера, целевой блок прогнозирования не обязан иметь однородную форму блока. Например, целевой блок прогнозирования может иметь размер 16×8 пикселей, 8×16 пикселей, 8×4 пикселя, 4×8 пикселей и т.п. Кроме того, не требуется унифицировать все размеры блока в одном блоке дерева кодирования, и несколько размеров блока, отличающихся друг от друга, может смешиваться. В случае, когда несколько размеров блока, отличающихся друг от друга, смешаны в одном блоке дерева кодирования, объем кода для кодирования или декодирования информации разделения возрастает в соответствии с увеличением количества разделений. Таким образом, предпочтительно выбирать размер блока с учетом баланса между объемом кода информации разделения и качеством локального кодированного изображения или декодированного изображения.
[0261] В вышеописанных первом и втором вариантах осуществления, для упрощения, исчерпывающее описание некоторых частей было представлено для цветовой компоненты сигнала без того, чтобы процессы прогнозирования или способы выведения диапазонов выбора яркостного сигнала и цветоразностного сигнала отличались друг от друга. Однако, в случае, когда для яркостного сигнала и цветоразностного сигнала процесс прогнозирования или способ выведения диапазона выбора отличается между собой, можно использовать один и тот же способ прогнозирования или способы прогнозирования, отличающиеся друг от друга. В случае, когда для яркостного сигнала и цветоразностного сигнала используются способы прогнозирования, отличающиеся друг от друга, кодирование или декодирование может осуществляться с использованием способа прогнозирования, выбранного для цветоразностного сигнала по аналогии со способом для яркостного сигнала.
[0262] В вышеописанных первом и втором вариантах осуществления, для упрощения, исчерпывающее описание было представлено для цветовой компоненты сигнала, когда процессы взвешенного прогнозирования с компенсацией движения яркостного сигнала и цветоразностного сигнала не отличаются друг от друга. Однако, в случае, когда процессы взвешенного прогнозирования яркостного сигнала и цветоразностного сигнала отличаются друг от друга, можно использовать один и тот же способ взвешенного прогнозирования или способы взвешенного прогнозирования, отличающиеся друг от друга. В случае, когда для яркостного сигнала и цветоразностного сигнала используются способы взвешенного прогнозирования, отличающиеся друг от друга, кодирование или декодирование может осуществляться с использованием способа взвешенного прогнозирования, выбранного для цветоразностного сигнала по аналогии со способом для яркостного сигнала.
[0263] В вышеописанных первом и втором вариантах осуществления, между строками таблицы, представленной в конфигурации синтаксиса, можно вставлять элемент синтаксиса, не заданный в этом варианте осуществления, и можно включать метод, относящийся к другим условным переходам. Альтернативно, таблица синтаксиса может делиться на множество таблиц, или таблицы синтаксиса могут объединяться друг с другом. Кроме того, может отсутствовать необходимость использовать один и тот же член, но термин может произвольно изменяться в соответствии с используемой формой.
[0264] Как описано выше, согласно каждому варианту осуществления и каждой модификации, благодаря применению конфигурации, в которой диапазон значения, принимаемого элементом синтаксиса, задается при осуществлении взвешенного прогнозирования с компенсацией движения, соответствующий диапазон значений устанавливается в диапазоне битовой точности, и малая длина кода сообщается значению, которое имеет фактическую высокую частоту использования, решается проблема кодирования избыточной информации элемента синтаксиса, и реализуется процесс взвешенного прогнозирования с компенсацией движения, имеющий высокую эффективность. Таким образом, согласно каждому варианту осуществления и каждой модификации, повышается эффективность кодирования, и улучшается субъективное качество изображения.
[0265] Хотя были описаны некоторые варианты осуществления настоящего изобретения, такие варианты осуществления представлены в качестве примеров и не призваны ограничивать объем изобретения. Эти новые варианты осуществления могут быть реализованы в различных формах, и различные изъятия, замены и изменения могут производиться в них без отхода от принципа изобретения. Эти варианты осуществления и их модификации принадлежат объему или принципу изобретения и принадлежат изобретению, описанному в формуле изобретения и объему, эквивалентному ему.
[0266] Например, программа, реализующая процесс каждого вышеописанного варианта осуществления, может обеспечиваться посредством хранения на считываемом-компьютером носителе данных. В качестве носителя данных, носитель данных, где может храниться программа, и который может считываться компьютером, например, магнитный диск, оптический диск (CD-ROM, CD-R, DVD и т.п.), магнитооптический диск (MO и т.п.) или полупроводниковая память, может использоваться независимо от формы хранения.
[0267] Кроме того, программа, реализующая процесс каждого варианта осуществления, может храниться на компьютере (сервере), подключенном к сети, например интернету, и загружаться на компьютер (клиент) через сеть.
ПЕРЕЧЕНЬ ССЫЛОЧНЫХ ПОЗИЦИЙ
[0268] 100 устройство кодирования
101 блок вычитания
102 блок ортогонального преобразования
103 блок квантования
104 блок обратного квантования
105 блок обратного ортогонального преобразования
106 блок суммирования
107 блок генерации прогнозируемого изображения
108 блок установки индекса
109 блок оценивания движения
110 блок кодирования
110a блок энтропийного кодирования
110b блок переконфигурирования индекса
111 блок управления кодированием
201 блок многокадровой компенсации движения
202 память
203 блок однонаправленной компенсации движения
204 блок управления параметрами прогнозирования
205 блок выбора опорного изображения
206 блок памяти кадров
207 блок управления опорным изображением
301 блок стандартной компенсации движения
302 блок взвешенной компенсации движения
303 блок управления параметрами WP
304, 305 блок выбора WP
800 устройство декодирования
801 блок декодирования
801a блок энтропийного декодирования
801b блок переконфигурирования индекса
802 блок обратного квантования
803 блок обратного ортогонального преобразования
804 блок суммирования
805 блок генерации прогнозируемого изображения
806 блок установки индекса
807 блок управления декодированием