Способ кодирования движущихся изображений, устройство кодирования движущихся изображений, способ декодирования движущихся изображений, устройство декодирования движущихся изображений и устройство кодирования и декодирования движущихся изображений
Иллюстрации
Показать всеИзобретение относится к декодированию движущихся изображений на поблочной основе с использованием прогнозирования между изображениями. Техническим результатом является повышение эффективности декодирования. Указанный технический результат достигается тем, что осуществляют определение первого элемента-кандидата в списке кандидатов и второго элемента-кандидата в списке кандидатов, причем упомянутый первый элемент-кандидат имеет первый вектор движения, который использовался для декодирования первого блока, а упомянутый второй кандидат имеет второй вектор движения, который использовался для декодирования второго блока, который отличается от первого блока, а список кандидатов включает в себя множество элементов-кандидатов, один из которых выбирается для использования для декодирования текущего блока; генерируют новый элемент-кандидат посредством объединения двух векторов движения, при этом один из упомянутых двух векторов движения является первым вектором движения, а другой из упомянутых двух векторов движения является вторым вектором движения; декодируют текущий блок с использованием элемента-кандидата, выбираемого из множества элементов-кандидатов, включающего в себя первый элемент-кандидат, второй элемент-кандидат и новый элемент-кандидат. 2 н. и 3 з.п. ф-лы, 35 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение относится к способам кодирования движущихся изображений, предусматривающим кодирование входного изображения на поблочной основе с использованием прогнозирования между (inter) изображениями со ссылкой на кодированное(ые) изображение(я), и к способам декодирования движущихся изображений, предусматривающим декодирование битового потока на поблочной основе с использованием прогнозирования между изображениями.
УРОВЕНЬ ТЕХНИКИ
[0002] При кодировании движущихся изображений, в общем случае, объем информации сжимается с использованием избыточности пространственного направления и временного направления движущихся изображений. При этом, в общем случае, один из способов использования избыточности в пространственном направлении предусматривает преобразование в частотную область, и один из способов использования избыточности во временном направлении предусматривает кодирование с прогнозированием между изображениями (далее именуемое “внешнее прогнозирование”). При кодировании с внешним прогнозированием, когда текущее изображение должно быть кодировано, кодированное изображение до или после текущего изображения в порядке отображения используется в качестве опорного изображения. Затем, оценивание движения осуществляется в отношении текущего изображения, соответствующего опорному изображению для оценивания вектора движения. Затем получается разность между данными изображения прогнозирования, генерируемыми посредством компенсации движения на основании оцененного вектора движения, и данными изображения для текущего изображения для устранения избыточности во временном направлении. При этом при оценивании движения вычисляется значение разности между текущим блоком в текущем изображении и блоком в опорном изображении, и блок, имеющий наименьшее значение разности в опорном изображении, определяется как опорный блок. Затем, с использованием текущего блока и опорного блока оценивается вектор движения.
[0003] В схеме кодирования движущихся изображений, известной как H.264, которая к настоящему времени стандартизована, для сжатия объема информации, используются три типа изображения, а именно I-изображение, P-изображение и B-изображение. I-изображение - это изображение, в отношении которого кодирование с внешним прогнозированием не осуществляется, другими словами, в отношении которого осуществляется кодирование с внутренним (intra-) прогнозированием изображения (далее именуемое “внутренним прогнозированием”). P-изображение - это изображение, в отношении которого кодирование с внешним прогнозированием осуществляется со ссылкой на одно кодированное изображение, находящееся до или после текущего изображения в порядке отображения. B-изображение - это изображение, в отношении которого кодирование с внешним прогнозированием осуществляется со ссылкой на два кодированных изображения, находящиеся до или после текущего изображения в порядке отображения.
[0004] При кодировании с внешним прогнозированием генерируется список опорного изображения для указания опорного изображения. Список опорного изображения - это список, в котором кодированному опорному изображению, на которое при внешнем прогнозировании осуществляется ссылка, назначается соответствующее(ие) значение(я) индекса опорного изображения. Например, поскольку B-изображение можно кодировать со ссылкой на два изображения, B-изображение имеет два списка (L0, L1) опорного изображения.
[0005] На Фиг.1A показана схема, поясняющая назначение индексов опорного изображения для каждого из опорных изображений. На Фиг.1B и 1C показан пример пары списков опорного изображения для B-изображения. На Фиг.1A, например, предполагается, что опорное изображение 2, опорное изображение 1, опорное изображение 0 и текущее изображение, которое должно быть кодировано, размещены в порядке отображения. Согласно предположению, список (L0) опорного изображения 0 является примером списка опорного изображения в направлении 0 прогнозирования (первом направлении прогнозирования) для двунаправленного прогнозирования. Как показано на Фиг.1B, значение “0” индекса 0 опорного изображения назначается опорному изображению 0, размещенному в порядке 2 отображения, значение “1” индекса 0 опорного изображения назначается опорному изображению 1, размещенному в порядке 1 отображения, и значение “2” индекса 0 опорного изображения назначается опорному изображению 2, размещенному в порядке 0 отображения. Короче говоря, большее значение индекса опорного изображения назначается изображению, более близкому по времени к текущему изображению в порядке отображения. С другой стороны, список (L1) опорного изображения 1 является примером списка опорного изображения в направлении 1 прогнозирования (втором направлении прогнозирования) для двунаправленного прогнозирования. В списке (L1) опорного изображения 1, значение “0” индекса 1 опорного изображения назначается опорному изображению 1, размещенному в порядке 1 отображения, значение “1” индекса 1 опорного изображения назначается опорному изображению 0, размещенному в порядке 2 отображения, и значение “2” индекса 1 опорного изображения назначается опорному изображению 2, размещенному в порядке 0 отображения. Как описано выше, для каждого из опорных изображений можно назначать разные индексы опорного изображения соответствующим направлениям прогнозирования (опорным изображениям 0 и 1 на Фиг.1A) или назначать один и тот же индекс опорного изображения обоим направлениям прогнозирования (опорному изображению 2 на Фиг.1A).
[0006] Кроме того, согласно способу кодирования движущихся изображений схема, известная как H.264 (см. непатентная литература 1), в режиме кодирования с внешним прогнозированием для каждого текущего блока в B-изображении, существует режим оценивания вектора движения, предусматривающий кодирование (a) значения разности между данными изображения прогнозирования и данными изображения текущего блока и (b) вектора движения, используемого при генерации данных изображения прогнозирования. В режиме оценивания вектора движения выбирается либо двунаправленное прогнозирование, либо однонаправленное прогнозирование. При двунаправленном прогнозировании изображение прогнозирования генерируется со ссылкой на два кодированных изображения, находящиеся до или после текущего изображения. С другой стороны, при однонаправленном прогнозировании изображение прогнозирования генерируется со ссылкой на одно кодированное изображение, находящееся до или после текущего изображения.
[0007] Кроме того, в схеме кодирования движущихся изображений, известной как H.264, при кодировании B-изображения, когда необходимо вывести векторы движения, можно выбирать режим кодирования, именуемый режимом вектора движения временного прогнозирования. Способ кодирования с внешним прогнозированием в режиме вектора движения временного прогнозирования описан со ссылкой на Фиг.2. На Фиг.2 показана пояснительная схема, демонстрирующая векторы движения в режиме вектора движения временного прогнозирования, и показана ситуация, когда блок “a” в изображении B2 кодируется в режиме вектора движения временного прогнозирования. В этой ситуации используется вектор vb движения. Вектор vb движения использовался для кодирования блока “b” в изображении P3, которое является опорным изображением, расположенным после изображения B2. Блок “b” (далее именуемый “совместно размещенным блоком”) располагается, в изображении P3, в позиции, соответствующей позиции блока “a”. Вектор vb движения - это вектор движения, который использовался для кодирования блока “b”, и ссылается на изображение P1. Используя вектор движения параллельно с вектором vb движения, блок “a” получает опорные блоки из изображения P1, которое является будущим опорным изображением, и из изображения P3, которое является прошлым опорным изображением. Таким образом, двунаправленное прогнозирование осуществляется для кодирования блока “a”. В частности, векторы движения, используемые для кодирования блока “a”, представляют собой вектор va1 движения, относящийся к изображению PI, и вектор va2 движения, относящийся к изображению P3.
СПИСОК ЦИТАТ
ПАТЕНТНАЯ ЛИТЕРАТУРА
[0008] NPL-1: ITU-T Recommendation H. 264, “Advanced video coding for generic audiovisual services”, март 2010.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ПРОБЛЕМА
[0009] Однако, традиционно, возможна ситуация, когда при кодировании текущего блока выбор либо двунаправленного прогнозирования, либо однонаправленного прогнозирования приводит к снижению эффективности кодирования.
[0010] Один неограничительный и примерный вариант осуществления настоящего раскрытия предусматривает способ кодирования движущихся изображений и способ декодирования движущихся изображений, которые позволяют повысить эффективность кодирования.
РЕШЕНИЕ ПРОБЛЕМЫ
[0011] В одном общем аспекте раскрытые здесь подходы демонстрируют: способ кодирования движущихся изображений, предусматривающий кодирование текущего блока посредством копирования по меньшей мере одного значения индекса опорного изображения и по меньшей мере одного вектора движения, причем упомянутое по меньшей мере одно значение индекса опорного изображения предназначено для идентификации опорного изображения, которое использовалось при кодировании блока, отличного от текущего блока, причем способ кодирования движущихся изображений включает в себя этапы, на которых: определяют множество первых блоков-кандидатов, из которых упомянутое по меньшей мере одно значение индекса опорного изображения и упомянутый по меньшей мере один вектор движения должны быть скопированы; генерируют второй блок-кандидат, который использует двунаправленное прогнозирование, причем второй блок-кандидат генерируется путем объединения значений индекса опорного изображения и векторов движения, которые использовались для, по меньшей мере, части первых блоков-кандидатов; выбирают, из первых блоков-кандидатов и второго блока-кандидата, блок, из которого упомянутое по меньшей мере одно значение индекса опорного изображения и упомянутый по меньшей мере один вектор движения должны быть скопированы для кодирования текущего блока; и копируют упомянутое по меньшей мере одно значение индекса опорного изображения и упомянутый по меньшей мере один вектор движения из выбранного блока, и кодируют текущий блок с использованием скопированного по меньшей мере одного значения индекса опорного изображения и скопированного по меньшей мере одного вектора движения.
[0012] Это позволяет кодировать текущее изображение с использованием вектора(ов) движения и опорного(ых) изображения(й), наиболее подходящих для текущего блока. В результате можно повысить эффективность кодирования.
[0013] Генерация второго блока-кандидата также может включает в себя этапы, на которых: определяют, имеет ли каждый из первых блоков-кандидатов одно или более значений индекса опорного изображения и один или более векторов движения; и генерируют второй блок-кандидат, когда по меньшей мере один из первых блоков-кандидатов не имеет ни одного значения индекса опорного изображения и ни одного вектора движения.
[0014] Способ кодирования движущихся изображений дополнительно может включать в себя этапы, на которых: определяют, должен ли быть кодирован текущий блок с использованием упомянутого по меньшей мере одного значения индекса опорного изображения и упомянутого по меньшей мере одного вектора движения, которые копируются из одного из первых блоков-кандидатов или второго блока-кандидата; устанавливают флаг, указывающий результат определения; и добавляют флаг в битовый поток, включающий в себя текущий блок.
[0015] Способ кодирования движущихся изображений дополнительно может включать в себя этапы, на которых: определяют значение индекса блока, соответствующее выбранному блоку, из которого упомянутое по меньшей мере одно значение индекса опорного изображения и упомянутый по меньшей мере один вектор движения должны быть скопированы для кодирования текущего блока, из списка кандидатов, в котором первым блокам-кандидатам и второму блоку-кандидату назначаются соответствующие значения индекса блока; и добавляют определенное значение индекса блока в битовый поток, включающий в себя текущий блок.
[0016] Генерация второго блока-кандидата также может включать в себя этапы, на которых: определяют, имеют ли два из первых блоков-кандидатов значения индекса опорного изображения, указывающие разные направления прогнозирования, и закодированы ли они посредством двунаправленного прогнозирования; и генерируют второй блок-кандидат, когда два из первых блоков-кандидатов имеют разные направления прогнозирования или закодированы посредством двунаправленного прогнозирования.
[0017] Генерация второго блока-кандидата дополнительно может включать в себя этапы, на которых: определяют, спрогнозирован ли один из двух первых блоков-кандидатов в первом направлении прогнозирования или закодирован ли он посредством двунаправленного прогнозирования, и спрогнозирован ли другой из двух первых блоков-кандидатов во втором направлении прогнозирования или закодирован ли он посредством двунаправленного прогнозирования; и когда определено, что один из двух первых блоков-кандидатов спрогнозирован в первом направлении прогнозирования или закодирован посредством двунаправленного прогнозирования, и другой из двух первых блоков-кандидатов спрогнозирован во втором направлении прогнозирования или закодирован посредством двунаправленного прогнозирования, генерируют второй блок-кандидат посредством (i) выбора значения индекса опорного изображения и вектора движения, которые использовались в первом направлении прогнозирования для одного из двух первых блоков-кандидатов, в качестве значения индекса опорного изображения и вектора движения, которые используются в первом направлении прогнозирования для второго блока-кандидата, и (ii) выбора значения индекса опорного изображения и вектора движения, которые использовались во втором направлении прогнозирования для другого из двух первых блоков-кандидатов, в качестве значения индекса опорного изображения и вектора движения, которые используются во втором направлении прогнозирования для второго блока-кандидата.
[0018] Генерация второго блока-кандидата дополнительно может включать в себя этапы, на которых: определяют, спрогнозирован ли один из двух первых блоков-кандидатов в первом направлении прогнозирования или закодирован ли он посредством двунаправленного прогнозирования, и спрогнозирован ли другой из двух первых блоков-кандидатов во втором направлении прогнозирования или закодирован ли он посредством двунаправленного прогнозирования; и когда не определено, что один из двух первых блоков-кандидатов спрогнозирован в первом направлении прогнозирования или закодирован посредством двунаправленного прогнозирования, и другой из двух первых блоков-кандидатов спрогнозирован во втором направлении прогнозирования или закодирован посредством двунаправленного прогнозирования, генерируют второй блок-кандидат посредством (i) выбора значения индекса опорного изображения и вектора движения, которые использовались в первом направлении прогнозирования для другого из двух первых блоков-кандидатов, в качестве значения индекса опорного изображения и вектора движения, которые используются в первом направлении прогнозирования для второго блока-кандидата, и (ii) выбора значения индекса опорного изображения и вектора движения, которые использовались во втором направлении прогнозирования для одного из двух первых блоков-кандидатов, в качестве значения индекса опорного изображения и вектора движения, которые используются во втором направлении прогнозирования для второго блока-кандидата.
[0019] В другом аспекте раскрытые здесь подходы демонстрируют: способ декодирования движущихся изображений, предусматривающий декодирование текущего блока посредством копирования по меньшей мере одного значения индекса опорного изображения и по меньшей мере одного вектора движения, упомянутое по меньшей мере одно значение индекса опорного изображения предназначено для идентификации опорного изображения, которое использовалось при декодировании блока, отличного от текущего блока, причем способ декодирования движущихся изображений включает в себя этапы, на которых: определяют множество первых блоков-кандидатов, по меньшей мере одно значение индекса опорного изображения и по меньшей мере один вектор движения которых должны быть скопированы; генерируют второй блок-кандидат, который использует двунаправленное прогнозирование, причем второй блок-кандидат генерируется путем объединения значений индекса опорного изображения и векторов движения, которые использовались для, по меньшей мере, части первых блоков-кандидатов; выбирают, из первых блоков-кандидатов и второго блока-кандидата, блок, из которого упомянутое по меньшей мере одно значение индекса опорного изображения и упомянутый по меньшей мере один вектор движения должны быть скопированы для декодирования текущего блока; и копируют по меньшей мере одно значение индекса опорного изображения и по меньшей мере один вектор движения из выбранного блока, и декодируют текущий блок с использованием скопированного по меньшей мере одного значения индекса опорного изображения и скопированного по меньшей мере одного вектора движения.
[0020] Таким образом, можно декодировать кодированный битовый поток с использованием наиболее подходящего(их) вектора(ов) движения и наиболее подходящего(их) опорного(ых) изображения(й).
[0021] Генерация второго блока-кандидата также может включает в себя этапы, на которых: определяют, имеет ли каждый из первых блоков-кандидатов значение индекса опорного изображения и вектор движения; и генерируют второй блок-кандидат, когда по меньшей мере один из первых блоков-кандидатов не имеет ни одного значения индекса опорного изображения и ни одного вектора движения.
[0022] Способ декодирования движущихся изображений дополнительно может включать в себя этапы, на которых: получают из битового потока, включающего в себя текущий блок, флаг, указывающий, должен ли текущий блок быть декодирован с использованием по меньшей мере одного значения индекса опорного изображения и по меньшей мере одного вектора движения, которые копируются из одного из первых блоков-кандидатов или второго блока-кандидата; и декодируют текущий блок согласно флагу.
[0023] Способ декодирования движущихся изображений дополнительно может включать в себя этапы, на которых: получают значение индекса блока из битового потока, включающего в себя текущий блок; и выбирают, с использованием полученного значения индекса блока, блок, из которого упомянутое по меньшей мере одно значение индекса опорного изображения и упомянутый по меньшей мере один вектор движения должны быть скопированы для декодирования текущего блока, из списка кандидатов, в котором первым блокам-кандидатам и второму блоку-кандидату назначаются соответствующие значения индекса блока.
[0024] Генерация второго блока-кандидата также может включать в себя этапы, на которых: определяют, имеют ли два из первых блоков-кандидатов значения индекса опорного изображения, указывающие разные направления прогнозирования, и закодированы ли они посредством двунаправленного прогнозирования; и генерируют второй блок-кандидат, когда два из первых блоков-кандидатов имеют разные направления прогнозирования или закодированы посредством двунаправленного прогнозирования.
[0025] Генерация второго блока-кандидата дополнительно может включать в себя этапы, на которых: определяют, спрогнозирован ли один из двух первых блоков-кандидатов в первом направлении прогнозирования или закодирован ли он посредством двунаправленного прогнозирования, и спрогнозирован ли другой из двух первых блоков-кандидатов во втором направлении прогнозирования или закодирован ли он посредством двунаправленного прогнозирования; и когда определено, что один из двух первых блоков-кандидатов спрогнозирован в первом направлении прогнозирования или закодирован посредством двунаправленного прогнозирования, и другой из двух первых блоков-кандидатов спрогнозирован во втором направлении прогнозирования или закодирован посредством двунаправленного прогнозирования, генерируют второй блок-кандидат посредством (i) выбора значения индекса опорного изображения и вектора движения, которые использовались в первом направлении прогнозирования для одного из двух первых блоков-кандидатов, в качестве значения индекса опорного изображения и вектора движения, которые используются в первом направлении прогнозирования для второго блока-кандидата, и (ii) выбора значения индекса опорного изображения и вектора движения, которые использовались во втором направлении прогнозирования для другого из двух первых блоков-кандидатов, в качестве значения индекса опорного изображения и вектора движения, которые используются во втором направлении прогнозирования для второго блока-кандидата.
[0026] Генерация второго блока-кандидата дополнительно может включать в себя этапы, на которых: определяют, спрогнозирован ли один из двух первых блоков-кандидатов в первом направлении прогнозирования или закодирован ли он посредством двунаправленного прогнозирования, и спрогнозирован ли другой из двух первых блоков-кандидатов во втором направлении прогнозирования или закодирован ли он посредством двунаправленного прогнозирования; и когда не определено, что один из двух первых блоков-кандидатов спрогнозирован в первом направлении прогнозирования или закодирован посредством двунаправленного прогнозирования, и другой из двух первых блоков-кандидатов спрогнозирован во втором направлении прогнозирования или закодирован посредством двунаправленного прогнозирования, генерируют второй блок-кандидат посредством (i) выбора значения индекса опорного изображения и вектора движения, которые использовались в первом направлении прогнозирования для другого из двух первых блоков-кандидатов, в качестве значения индекса опорного изображения и вектора движения, которые используются в первом направлении прогнозирования для второго блока-кандидата, и (ii) выбора значения индекса опорного изображения и вектора движения, которые использовались во втором направлении прогнозирования для одного из двух первых блоков-кандидатов, в качестве значения индекса опорного изображения и вектора движения, которые используются во втором направлении прогнозирования для второго блока-кандидата.
[0027] Следует отметить, что настоящее раскрытие можно реализовать не только посредством вышеописанных способа кодирования движущихся изображений и способа декодирования движущихся изображений, но и посредством: устройства кодирования движущихся изображений, устройства декодирования движущихся изображений и устройства кодирования и декодирования движущихся изображений, каждое из которых включает в себя блоки обработки, осуществляющие характерные этапы способа кодирования движущихся изображений и способа декодирования движущихся изображений; программы, предписывающей компьютеру выполнять этапы; и пр. Настоящее раскрытие также можно реализовать посредством: считываемого компьютером носителя записи, например компакт-диска с возможностью только чтения (CD-ROM), в отношении которого записана вышеупомянутая программа; информации, данных, сигналов, образующих программу; и пр. Программа, информация, данные или сигналы могут распределяться по среде передачи, например по интернету.
ПРЕИМУЩЕСТВА ИЗОБРЕТЕНИЯ
[0028] Согласно настоящему раскрытию, новый кандидат в блоки слияния двунаправленного прогнозирования вычисляется из кандидатов в блоки слияния, для повышения эффективности кодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0029] Фиг.1A - схема, поясняющая назначение индексов опорного изображения для каждого из опорных изображений.
Фиг.1B - таблица, демонстрирующая пример одного из списков опорного изображения для B-изображения.
Фиг.1C - таблица, демонстрирующая пример другого списка опорного изображения для B-изображения.
Фиг.2 - иллюстративная схема, демонстрирующая векторы движения в режиме вектора движения временного прогнозирования.
Фиг.3A - схема, демонстрирующая соотношение между: текущим блоком, который должен быть кодирован; соседними блоками; и векторами движения соседних блоков.
Фиг.3B - таблица, демонстрирующая пример списка кандидатов в блоки слияния, в котором каждое значение индекса слияния назначается вектору движения и индексу опорного изображения, которые должны быть использованы в режиме слияния.
Фиг.4 - блок-схема, демонстрирующая структуру устройства кодирования движущихся изображений, использующего способ кодирования движущихся изображений согласно варианту осуществления настоящего раскрытия.
Фиг.5 - блок-схема операций, представляющая основные этапы потока обработки способа кодирования движущихся изображений согласно варианту осуществления настоящего раскрытия.
Фиг.6 - таблица, демонстрирующая пример списка кандидатов в блоки слияния, в котором каждое значение индекса слияния назначается вектору движения и индексу опорного изображения, которые должны быть использованы в режиме слияния согласно варианту осуществления 1.
Фиг.7 - пример таблицы кодирования, которая используется для осуществления кодирования с переменной длиной слова в отношении индекса блока слияния.
Фиг.8 - блок-схема операций, детально представляющая поток обработки для вычисления объединенного блока слияния.
Фиг.9 - блок-схема операций, детально представляющая поток обработки для сравнения ошибок прогнозирования.
Фиг.10 - блок-схема, демонстрирующая структуру устройства декодирования движущихся изображений, использующего способ декодирования движущихся изображений согласно варианту осуществления настоящего раскрытия.
Фиг.11 - блок-схема операций, представляющая основные этапы потока обработки способа декодирования движущихся изображений согласно варианту осуществления настоящего раскрытия.
Фиг.12 - общая конфигурация системы предоставления контента для реализации услуг распространения контента;
Фиг.13 - общая конфигурация системы цифрового вещания;
Фиг.14 - блок-схема, иллюстрирующая пример конфигурации телевизора;
Фиг.15 - блок-схема, иллюстрирующая пример конфигурации блока воспроизведения/записи информации, который считывает информацию с носителя записи, который является оптическим диском, и записывает ее на него;
Фиг.16 - пример конфигурации носителя записи, который является оптическим диском;
Фиг.17A - пример сотового телефона;
Фиг.17B - блок-схема, демонстрирующая пример конфигурации сотового телефона;
Фиг.18 - структура мультиплексированных данных;
Фиг.19 схематически демонстрирует, как каждый поток мультиплексируется в мультиплексированные данные;
Фиг.20 более подробно показывает, как видеопоток сохраняется в потоке пакетов PES;
Фиг.21 - структура пакетов TS и исходных пакетов в мультиплексированных данных;
Фиг.22 - структура данных PMT;
Фиг.23 - внутренняя структура информации мультиплексированных данных;
Фиг.24 - внутренняя структура информации атрибутов потока;
Фиг.25 - этапы идентификации видеоданных;
Фиг.26 - пример конфигурации интегральной схемы для реализации способа кодирования движущихся изображений и способа декодирования движущихся изображений согласно каждому из вариантов осуществления;
Фиг.27 - конфигурация для переключения между частотами возбуждения;
Фиг.28 - этапы идентификации видеоданных и переключения между частотами возбуждения;
Фиг.29 - пример поисковой таблицы, в которой стандарты видеоданных связаны с частотами возбуждения;
Фиг.30A - схема, демонстрирующая пример конфигурации для совместного использования модуля блока обработки сигнала; и
Фиг.30B - схема, демонстрирующая другой пример конфигурации для совместного использования модуля блока обработки сигнала.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0030] В схеме кодирования движущихся изображений, режим кодирования, именуемый режимом слияния, был исследован как режим внешнего прогнозирования для каждого блока, который должен быть кодирован, в B-изображении или P-изображении. В этом режиме слияния вектор движения и значение индекса опорного изображения (далее именуемое также “значения индекса опорного изображения”) копируются из блока, соседствующего с текущим блоком, который должен быть кодирован, для кодирования текущего блока. При этом путем суммирования значение индекса и пр. соседнего блока, из которого они копируются, добавляются в битовый поток. В результате вектор движения или значение индекса опорного изображения, которые использовались при кодировании, можно выбирать при декодировании. Подробный пример описан со ссылкой на соответствующие чертежи.
[0031] На Фиг.3A показана схема, демонстрирующая соотношение между: текущим блоком, который должен быть кодирован; соседними блоками; и векторами движения соседних блоков. На Фиг.3B показана таблица, демонстрирующая пример списка кандидатов в блоки слияния, в котором каждое значение индекса слияния назначается вектору движения и индексу опорного изображения, которые должны быть использованы в режиме слияния.
[0032] На Фиг.3A кодированный блок непосредственно слева от текущего блока именуется соседним блоком A, кодированный блок непосредственно над текущим блоком именуется соседним блоком B, кодированный блок непосредственно сверху и справа от текущего блока именуется соседним блоком C, и кодированный блок непосредственно снизу и слева от текущего блока именуется соседним блоком D. Кроме того, на Фиг.3A, соседний блок A был закодирован посредством однонаправленного прогнозирования с использованием направления 0 прогнозирования (первого направления прогнозирования). Соседний блок A имеет вектор MvL0_A движения направления 0 прогнозирования для опорного изображения, указанный значением RefL0_A индекса в индексе опорного изображения направления 0 прогнозирования. При этом вектор MvL0 движения является вектором движения, ссылающимся на опорное изображение, указанное списком (L0) опорного изображения 0, и MvL1 является вектором движения, ссылающимся на опорное изображение, указанное списком (L1) опорного изображения 1. Соседний блок B был закодирован посредством однонаправленного прогнозирования с использованием направления 1 прогнозирования (второго направления прогнозирования). Соседний блок B имеет вектор MvL1_B движения направления 1 прогнозирования для опорного изображения, указанный значением RefL1_B индекса в индексе опорного изображения направления 1 прогнозирования. Соседний блок C был закодирован посредством внутреннего прогнозирования. Соседний блок D был закодирован посредством однонаправленного прогнозирования с использованием направления 0 прогнозирования. Соседний блок D имеет вектор MvL0_D движения направления 0 прогнозирования для опорного изображения, указанный значением RefL0_D индекса в индексе опорного изображения направления 0 прогнозирования.
[0033] В ситуации, показанной на Фиг.3A, в качестве вектора движения и значения индекса опорного изображения для текущего блока выбираются вектор движения и значение индекса опорного изображения, которые дают наивысшую эффективность кодирования, например, из (a) векторов движения и значений индекса опорного изображения соседних блоков A, B, C и D, и (b) вектора движения и значения индекса опорного изображения совместно размещенного блока, полученных в режиме вектора движения временного прогнозирования. Затем индекс блока слияния, указывающий выбранный соседний блок или совместно размещенный блок, добавляется в битовый поток. Например, если выбран соседний блок A, текущий блок кодируется с использованием вектора MvL0_A движения и значения ReL0_A индекса опорного изображения направления 0 прогнозирования, и только значение “0” индекса блока слияния, указывающее, что используется соседний блок A, как показано на Фиг.3B, добавляется в битовый поток, что позволяет сократить объем информации векторов движения и значений индекса опорного изображения.
[0034] Однако, в вышеописанном режиме слияния, если блок, являющийся кандидатом в блоки слияния, не имеет ни вектора движения, ни значения индекса опорного изображения, поскольку блок был закодирован посредством внутреннего прогнозирования (как и соседний блок C), этот блок нельзя использовать в качестве кандидата в блоки слияния. В вышеописанной ситуации, также предполагается, что количество доступных кандидатов в блоки слияния уменьшается, диапазон выбора для вектора движения и значения индекса опорного изображения, которые дают наивысшую эффективность кодирования, сокращается, в результате чего снижается эффективность кодирования.
[0035] Для решения вышеописанной проблемы один неограничительный и примерный вариант осуществления предусматривает способ кодирования изображений и способ декодирования изображений, которые позволяют повысить эффективность кодирования, не уменьшая количество доступных кандидатов в блоки слияния в режиме слияния.
[0036] Ниже описаны варианты осуществления согласно настоящему раскрытию со ссылкой на чертежи. Следует отметить, что все варианты осуществления, описанные ниже, являются конкретными примерами настоящего раскрытия. Численные значения, формы, материалы, составные элементы, позиции размещения и конфигурация соединения составных элементов, этапы, порядок выполнения этапов и пр., описанные в нижеследующих вариантах осуществления, приведены исключительно для примера и не призваны ограничивать настоящее раскрытие. Настоящее раскрытие характеризуется только нижеследующей формулой изобретения. Поэтому среди составных элементов в нижеследующих вариантах осуществления, составные элементы, которые не описаны в независимых пунктах формулы изобретения, которые демонстрируют наиболее обобщенный принцип настоящего раскрытия, описаны как элементы, составляющие более желательные конфигурации, хотя такие составные элементы не всегда требуются для решения задачи настоящего раскрытия.
[0037] ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 1
На Фиг.4 показана блок-схема, демонстрирующая структуру устройства кодирования движущихся изображений, использующего способ кодирования движущихся изображений согласно варианту осуществления 1.
[0038] Как показано на Фиг.4, устройство 100 кодирования движущихся изображений включает в себя блок 101 ортогонального преобразования, блок 102 квантования, блок 103 обратного квантования, блок 104 обратного ортогонального преобразования, память 105 блоков, память 106 кадров, блок 107 внутреннего прогнозирования, блок 108 внешнего прогнозирования, блок 109 управления внешним прогнозированием, блок 110 определения типа изображения, блок 111 вычисления кандидатов в блоки слияния, память 112 colPic, блок 113 кодирования с переменной длиной слова, вычитатель 114, сумматор 115 и блок 116 переключения.
[0039] Блок 101 ортогонального преобразования преобразует данные ошибки прогнозирования, которые являются разностью между данными прогнозирования, генерируемыми, как описано ниже, и входную последовательность изображений, из области изображений в частотную область. Блок 102 квантования квантует данные ошибки прогнозирования, которые были преобразованы в частотную область. Блок 103 обратного квантования обратно квантует данные ошибки прогнозирования, которые были квантованы блоком 102 квантования. Блок 104 обратного ортогонального преобразования преобразует обратно квантованные данные ошибки прогнозирования из частотной области в область изображений. Сумматор 115 суммирует данные прогнозирования с обратно квантованными данными ошибки прогнозирования для генерирования декодированных данных. Декодированное изображение сохраняется на поблочной основе в памяти 105 блоков. Декодированное изображение сохраняется на основе отдельных изображений в памяти 106 кадров. Блок 110 определения типа изображения определяет, по какому типу изображения и