ОБЛАСТЬ ТЕХНИКИ
[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 определения типа изображения определяет, по какому типу изображения из I-изображения, B-изображения или P-изображения, каждое изображение во входной последовательности изображений должно быть кодировано, и генерирует информацию типа изображения. Блок 107 внутреннего прогнозирования кодирует текущий блок, который должен быть кодирован посредством внутреннего прогнозирования, с использованием декодированного изображения, сохраненного на поблочной основе в памяти 105 блоков, для генерирования изображения прогнозирования. Блок 108 внешнего прогнозирования кодирует текущий блок посредством внешнего прогнозирования с использованием декодированного изображения, сохраненного на основе отдельных изображений в памяти 106 кадров, и вектора движения, выведенного при оценивании движения, для генерирования изображения прогнозирования. Вычитатель 114 вычитает данные прогнозирования, генерируемые блоком 206 внутреннего прогнозирования или блоком 207 внешнего прогнозирования из входной последовательности изображений, для вычисления данных ошибки прогнозирования.
[0040] Блок 111 вычисления кандидатов в блоки слияния указывает кандидаты в блоки слияния (первые блоки-кандидаты) режима слияния, с использованием (a) векторов движения и значений индекса опорного изображения, которые использовались для кодирования соседних блоков и (b) информации colpic, например вектора движения и пр. совместно размещенного блока, которая сохраняется в памяти 112 colPic, относящейся к текущему блоку. При этом кандидаты в блоки слияния являются кандидатами блока, из которого по меньшей мере один вектор движения и по меньшей мере одно значение индекса опорного изображения непосредственно используются (копируются) для текущего блока. Кроме того, блок 111 вычисления кандидатов в блоки слияния генерирует объединенный блок слияния (второй блок-кандидат) описанным ниже способом. Следует отметить, что объединенный блок слияния является не блоком, фактически имеющим пиксельные значения, а виртуальным блоком, имеющим векторы движения и значения индекса опорного изображения. Кроме того, блок 111 вычисления кандидатов в блоки слияния назначает каждому из указанных блоков слияния соответствующее значение индекса блока слияния (индекс блока). Затем блок 111 вычисления кандидатов в блоки слияния передает кандидаты в блоки слияния и значения индекса блока слияния (далее именуемые также “значения индекса блока слияния”) блоку 109 управления внешним прогнозированием. Следует отметить, что в настоящем варианте осуществления 1 предполагается, что векторы движения и значения индекса опорного изображения, используемые для соседних блоков текущего изображения, сохраняются в блоке 111 вычисления кандидатов в блоки слияния.
[0041] Блок 109 управления внешним прогнозированием осуществляет кодирование с внешним прогнозированием в режиме прогнозирования, имеющем наименьшую ошибку прогнозирования между (a) режимом прогнозирования для изображения внешнего прогнозирования, генерируемого с использованием вектора движения, выведенного в режиме оценивания движения, и (b) режимом прогнозирования для изображения внешнего прогнозирования, генерируемого с использованием вектора движения, выведенного в режиме слияния. Кроме того, блок 109 управления внешним прогнозированием снабжает блок 113 кодирования с переменной длиной слова (a) флагом слияния, указывающим, является ли режим прогнозирования режимом слияния, (b) значением индекса блока слияния, соответствующим определенному блоку слияния, если в качестве режима прогнозирования выбран режим слияния, и (c) информацией ошибки прогнозирования. Кроме того, блок 109 управления внешним прогнозированием переносит информацию colpic, включающую в себя вектор движения и пр. для текущего блока, в память 112 colPic.
[0042] Блок 113 кодирования с переменной длиной слова осуществляет кодирование с переменной длиной слова в отношении квантованных данных ошибки прогнозирования, флага слияния, значения индекса блока слияния и информации типа изображения, для генерирования битового потока.
[0043] На Фиг.5 показана блок-схема операций, представляющая основные этапы потока обработки способа кодирования движущихся изображений согласно настоящему варианту осуществления.
[0044] Блок 111 вычисления кандидатов в блоки слияния указывает кандидаты в блоки слияния из соседних блоков и совместно размещенного блока для текущего блока, который должен быть кодирован (этап S11). Например, в ситуации, показанной на Фиг.3A, блок 111 вычисления кандидатов в блоки слияния указывает соседние блоки A, B, C, D и совместно размещенный блок слияния, в качестве кандидатов в блоки слияния. При этом совместно размещенный блок слияния включает в себя по меньшей мере один вектор движения и пр., которые вычисляются в режиме временного прогнозирования из по меньшей мере одного вектора движения совместно размещенного блока. Затем блок 111 вычисления кандидатов в блоки слияния назначает каждому из кандидатов в блоки слияния соответствующее значение индекса блока слияния, как показано на Фиг.3B. В общем случае, чем меньше значение индекса блока слияния, тем меньше необходимый объем информации. С другой стороны, чем больше значение индекса блока слияния, тем больше необходимый объем информации. Поэтому, если значение индекса блока слияния, соответствующее кандидату в блоки слияния, с высокой вероятностью имеющему более точный вектор движения и более точное значение индекса опорного изображения, уменьшается, эффективность кодирования повышается. Например, можно предусмотреть, что ведется подсчет, сколько раз каждый кандидат в блоки слияния был выбран в качестве блока слияния, и блоку, имеющему более высокое значение счетчика, назначается меньшее значение индекса блока слияния. При этом, если целевой кандидат в блоки слияния не хранит информацию, например вектор движения, например, если кандидат в блоки слияния является блоком, кодированным посредством внутреннего прогнозирования, или если кандидат в блоки слияния располагается за пределами границы изображения или границы среза, предполагается, что такой блок нельзя использовать в качестве кандидата в блоки слияния. В настоящем варианте осуществления, если блок нельзя использовать в качестве кандидата в блоки слияния, блок именуется недоступным блоком, и если блок можно использовать в качестве кандидата в блоки слияния, блок именуется доступным блоком. В ситуации, показанной на Фиг.3A, поскольку соседний блок C является блоком, кодированным посредством внутреннего прогнозирования, считается, что соседний блок C не является доступным в качестве недоступного блока в качестве кандидата в блоки слияния.
[0045] Используя кандидаты в блоки слияния, указанные на этапе S11, блок 111 вычисления кандидатов в блоки слияния генерирует объединенный блок слияния описанным ниже способом, для обновления списка кандидатов в блоки слияния (этап S12). Например, список кандидатов в блоки слияния, показанный на Фиг.6, генерируется из списка кандидатов в блоки слияния, показанного на Фиг.3B. В списке кандидатов в блоки слияния на Фиг.3B объединенный блок слияния, генерируемый описанным ниже способом, используется вместо недоступного кандидата, имеющего значение “3” индекса блока слияния. Используя такой вновь сгенерированный объединенный блок слияния вместо недоступного кандидата, можно повысить эффективность кодирования, не изменяя максимальное значение количества кандидатов в блоки слияния.
[0046] Затем блок 109 управления внешним прогнозированием сравнивает (a) ошибку прогнозирования изображения внешнего прогнозирования, генерируемого с использованием вектора движения, выведенного посредством оценивания движения, с (b) ошибкой прогнозирования изображения прогнозирования, генерируемого кандидатом в блоки слияния описанным ниже способом, для определения режима прогнозирования для кодирования текущего блока. При этом, если определено, что режим прогнозирования является режимом слияния, то блок 109 управления внешним прогнозированием определяет значение индекса блока слияния, указывающее, какой кандидат в блоки слияния должен быть использован. Затем, если режим прогнозирования является режимом слияния, то блок 109 управления внешним прогнозированием устанавливает флаг слияния равным 1, в противном случае, устанавливает флаг слияния равным 0 (этап S13). Блок 109 управления внешним прогнозированием определяет, равен ли флаг слияния 1, другими словами, является ли режим прогнозирования режимом слияния (этап S14). В результате, если режим прогнозирования является режимом слияния (Да на этапе S14), то блок 109 управления внешним прогнозированием передает блоку 113 кодирования с переменной длиной слова флаг слияния и значение индекса блока слияния, которое должно быть использовано для слияния, то есть для добавления флага слияния и значения индекса в битовый поток (этап S15). С другой стороны, если режим прогнозирования не является режимом слияния (Нет на этапе S14), то блок 109 управления внешним прогнозированием передает блоку 113 кодирования с переменной длиной слова флаг слияния и информацию режима оценивания вектора движения, то есть для добавления флага слияния и информации в битовый поток (этап S16).
[0047] Следует отметить, что в настоящем варианте осуществления, как показано на Фиг.3B, в отношении значений индекса блока слияния, значение, соответствующее соседнему блоку A, равно “0”, значение, соответствующее соседнему блоку B, равно “1”, значение, соответствующее совместно размещенному блоку слияния, равно “2”, значение, соответствующее соседнему блоку C, равно “3”, и значение, соответствующее соседнему блоку D, равно “4”. Однако способ назначения значений индекса блока слияния не ограничивается только примером. Например, наибольшее значение также может назначаться недоступному кандидату в качестве кандидата в блоки слияния. Следует также заметить, что кандидаты в блоки слияния не ограничиваются соседними блоками A, B, C и D. Например, соседний блок и т.п., который располагается над непосредственно блоком D снизу слева, можно выбирать в качестве кандидата в блоки слияния. Следует также заметить, что не требуется использовать все соседние блоки, но только соседние блоки A и B можно использовать в качестве кандидатов в блоки слияния. Следует также заметить, что не требуется всегда использовать совместно размещенный блок слияния.
[0048] Следует также заметить, что в настоящем варианте осуществления на этапе S15 на Фиг.5 описано, что блок 109 управления внешним прогнозированием обеспечивает значение индекса блока слияния блоку 113 кодирования с переменной длиной слова для добавления значения индекса блока слияния в битовый поток, но также можно не добавлять значения индекса блока слияния, если количество кандидатов в блоки слияния равно 1. Таким образом, можно сократить объем информации индекса блока слияния.
[0049] Следует также заметить, что в настоящем варианте осуществления на этапе S12 на Фиг.5 описано, что объединенный блок слияния используется вместо недоступного кандидата, имеющего значение “3” индекса блока слияния. Однако настоящее раскрытие не ограничивается вышеописанным, и объединенный блок слияния может дополнительно добавляться в список кандидатов в блоки слияния. Таким образом, можно увеличить диапазон выбора кандидатов в блоки слияния. При этом, недоступный кандидат также можно рассматривать в качестве кандидата, имеющего вектор движения 0 и индекс опорного изображения 0.
[0050] На Фиг.7 показан пример таблицы кодирования, которая используется для осуществления кодирования с переменной длиной слова в отношении значений индекса блока слияния.
[0051] В примере, показанном на Фиг.7, код, имеющий меньшую длину кода, назначается меньшему значению индекса блока слияния. Поэтому, если значение индекса блока слияния, соответствующее кандидату в блоки слияния, имеющему возможность высокой точности прогнозирования уменьшается, можно повысить эффективность кодирования.
[0052] Следует отметить, что в настоящем варианте осуществления описано, что кодирование с переменной длиной слова осуществляется в отношении значений индекса блока слияния, как показано на Фиг.7, но значения индекса блока слияния можно кодировать с фиксированной длиной кода. Таким образом, можно снизить нагрузку обработки кодирования или декодирования.
[0053] На Фиг.8 показана подробная блок-схема операций для осуществления этапа S12 на Фиг.5. Ниже описан способ генерации объединенного блока слияния из кандидатов в блоки слияния, указанных на этапе S11 со ссылкой на Фиг.8.
[0054] Блок 111 вычисления кандидатов в блоки слияния инициализирует значение 1 (idx1) индекса равным “0” (этап S21). Затем блок 111 вычисления кандидатов в блоки слияния инициализирует значение 2 (idx2) индекса равным “0” (этап S22). Блок 111 вычисления кандидатов в блоки слияния определяет, имеют ли idx1 и idx2 разные значения и включает ли в себя список кандидатов в блоки слияния какого-либо недоступного кандидата (этап S23). В результате, при наличии недоступного кандидата (Да на этапе S23), блок 111 вычисления кандидатов в блоки слияния определяет, доступен ли кандидат [idx1] в блоки слияния, которому назначено значение idx1 индекса блока слияния, и доступен ли кандидат [idx2] в блоки слияния, которому назначено значение idx2 индекса блока слияния (этап S24). В результате, если кандидат [idx1] в блоки слияния доступен, и кандидат [idx2] в блоки слияния также доступен (Да на этапе S24), то блок 111 вычисления кандидатов в блоки слияния определяет, спрогнозированы ли кандидат [idx1] в блоки слияния и кандидат [idx2] в блоки слияния в разных направлениях прогнозирования, или кандидат [idx1] в блоки слияния и кандидат [idx2] в блоки слияния закодированы посредством двунаправленного прогнозирования (этап S25). В результате, если кандидат [idx1] в блоки слияния и кандидат [idx2] в блоки слияния спрогнозированы в разных направлениях прогнозирования, или кандидат [idx1] в блоки слияния и кандидат [idx2] в блоки слияния закодированы посредством двунаправленного прогнозирования (Да на этапе S25), то блок 111 вычисления кандидатов в блоки слияния определяет, спрогнозирован ли кандидат [idx1] в блоки слияния в направлении 0 прогнозирования (первом направлении прогнозирования) или закодирован посредством двунаправленного прогнозирования, и спрогнозирован ли кандидат [idx2] в блоки слияния в направлении 1 прогнозирования (втором направлении прогнозирования) или закодирован посредством двунаправленного прогнозирования (этап S26). В результате, если кандидат [idx1] в блоки слияния спрогнозирован в направлении 0 прогнозирования или закодирован посредством двунаправленного прогнозирования, и кандидат [idx2] в блоки слияния спрогнозирован в направлении 1 прогнозирования или закодирован посредством двунаправленного прогнозирования (Да на этапе S26), другими словами, если кандидат [idx1] в блоки слияния имеет, по меньшей мере, вектор движения направления 0 прогнозирования, и кандидат [idx2] в блоки слияния имеет, по меньшей мере, вектор движения направления 1 прогнозирования, то блок 111 вычисления кандидатов в блоки слияния выбирает вектор движения и значение индекса опорного изображения направления 0 прогнозирования кандидата [idx1] в блоки слияния для направления 0 прогнозирования объединенного блока слияния (этап S27). Кроме того, блок 111 вычисления кандидатов в блоки слияния выбирает вектор движения и значение индекса опорного изображения направления 1 прогнозирования кандидата [idx2] в блоки слияния для направления 1 прогнозирования объединенного блока слияния, для генерирования объединенного блока слияния двунаправленного прогнозирования (этап S28). С другой стороны, если не определено, что кандидат [idx1] в блоки слияния спрогнозирован в направлении 0 прогнозирования или закодирован посредством двунаправленного прогнозирования, и кандидат [idx2] в блоки слияния спрогнозирован в направлении 1 прогнозирования или закодирован посредством двунаправленного прогнозирования (Нет на этапе S26), то блок 111 вычисления кандидатов в блоки слияния выбирает вектор движения и значение индекса опорного изображения направления 0 прогнозирования кандидата [idx2] в блоки слияния для направления 0 прогнозирования объединенного блока слияния (этап S29). Кроме того, блок 111 вычисления кандидатов в блоки слияния выбирает вектор движения и значение индекса опорного изображения направления 1 прогнозирования кандидата [idx1] в блоки слияния для направления 1 прогнозирования объединенного блока слияния, для генерирования объединенного блока слияния двунаправленного прогнозирования (этап S30). Блок 111 вычисления кандидатов в блоки слияния добавляет сгенерированный объединенный блок слияния в список кандидатов в блоки слияния в качестве доступного кандидата, вместо недоступного кандидата (этап S31). Затем блок 111 вычисления кандидатов в блоки слияния суммирует значение “1” со значением idx2 (этап S32) и проверяет, что значение idx2 больше или равно максимальному значению количества кандидатов в блоки слияния (этап S33). В результате, если значение idx2 меньше максимального значения количества кандидатов в блоки слияния (Нет на этапе S33), обработка возвращается к этапу S23, то блок 111 вычисления кандидатов в блоки слияния снова определяет, остался ли какой-либо недоступный кандидат, и генерирует следующий объединенный блок слияния (этапы S23-S32). С другой стороны, если значение idx2 больше или равно максимальному значению количества кандидатов в блоки слияния (Да на этапе S33), то блок 111 вычисления кандидатов в блоки слияния суммирует значение "1" с idx1 (этап S34) и проверяет, что idx1 больше или равно максимальному значению количества кандидатов в блоки слияния (этап S35). В результате, если idx1 больше или равно максимальному значению количества кандидатов в блоки слияния (Да на этапе S35), другими словами, если проверена каждая комбинация кандидатов в блоки слияния, то обработка завершается.
[0055] Следует отметить, что в настоящем варианте осуществления описано, что обработка завершается, когда проверена каждая комбинация кандидатов в блоки слияния, но настоящее раскрытие не ограничивается вышеописанным. Например, можно завершать обработку, когда в списке кандидатов в блоки слияния не остается недоступных кандидатов. В результате, можно сократить объем обработки.
[0056] Следует также заметить, что в настоящем варианте осуществления описано, что этапы способа генерации объединенного блока слияния из кандидатов в блоки слияния осуществляются в порядке, показанном на блок-схеме операций на Фиг.8, но настоящее раскрытие не ограничивается вышеописанным, и порядок выполнения этапов может изменяться.
[0057] Следует также заметить, что в настоящем варианте осуществления описано, что, например, когда вектор движения и значение индекса опорного изображения направления прогнозирования, относящиеся к соседнему блоку, выбраны для направления 0 прогнозирования объединенного блока слияния, если существует множество кандидатов в блоки слияния, имеющих вектор движения и значение индекса опорного изображения направления 0 прогнозирования, выбираются вектор движения и значение индекса опорного изображения направления 0 прогнозирования, которые относятся к кандидату в блоки слияния, имеющему значение индекса блока слияния, которое ближе к “0”. Однако настоящее раскрытие не ограничивается вышеописанным. Например, можно также выбрать вектор движения и значение индекса опорного изображения направления 0 прогнозирования, которые относятся к кандидату в блоки слияния, имеющему значение индекса блока слияния, которое ближе к максимальному значению.
[0058] Следует также заметить, что в настоящем варианте осуществления на этапе S31 на Фиг.8 описано, что сгенерированный объединенный блок слияния добавляется в список кандидатов в блоки слияния в качестве доступного кандидата вместо недоступного кандидата, но настоящее раскрытие не ограничивается вышеописанным. Например, можно также определять, включен ли уже какой-либо другой кандидат в блоки слияния, имеющий такой же вектор движения и такое же значение индекса опорного изображения, как у объединенного блока слияния, в список кандидатов в блоки слияния, и если такого кандидата нет в списке, объединенный блок слияния добавляется в список кандидатов в блоки слияния в качестве доступного кандидата вместо недоступного кандидата. Таким образом, предотвращая повторное добавление одного и того же кандидата в блоки слияния, можно добавлять эффективные кандидаты в блоки слияния. В результате, можно повысить эффективность кодирования.
[0059] Следует также заметить, что в настоящем варианте осуществления описано, что сгенерированный объединенный блок слияния добавляется в список кандидатов в блоки слияния при наличии недоступного кандидата в списке кандидатов в блоки слияния, но настоящее раскрытие не ограничивается вышеописанным. Например, возможно также, что на S23 на Фиг.8 не производится определение, является ли кандидат в списке кандидатов в блоки слияния недоступным, но объединенный блок слияния вычисляется и вновь добавляется в список кандидатов в блоки слияния. Таким образом, можно увеличить диапазон выбора кандидатов в блоки слияния. В результате, можно повысить эффективность кодирования.
[0060] На Фиг.9 показана подробная блок-схема операций для осуществления этапа S13 на Фиг.5. Нижеследующее описание приведено со ссылкой на Фиг.9.
[0061] Блок 109 управления внешним прогнозированием устанавливает значение индекса кандидата в блоки слияния равным “0”, минимальную ошибку прогнозирования равной ошибке прогнозирования (стоимости) режима оценивания вектора движения и флаг слияния равным “0” (этап S41). При этом стоимость вычисляется, например, согласно следующему уравнению 1 модели R-D оптимизации.
[0062] [Math. 1]
стоимость =D+λ×R (Уравнение 1)
[0063] В уравнении 1, D представляет искажение кодирования, которое является, например, суммой абсолютных значений разности (a) пиксельного значения, полученного кодированием и декодированием текущего блока с использованием изображения прогнозирования, генерируемого некоторым вектором движения, и (b) исходного пиксельного значения текущего блока. Кроме того, R представляет объем кодирования, который является, например, объемом кодирования, необходимым для кодирования вектора движения, используемого при генерации изображения прогнозирования. λ представляет метод неопределенных множителей Лагранжа.
[0064] Затем блок 109 управления внешним прогнозированием определяет, меньше ли значение индекса кандидата в блоки слияния количества кандидатов в блоки слияния текущего блока, другими словами, существует ли блок, который может быть кандидатом на слияние (этап S42). В результате, если определено, что значение индекса кандидата в блоки слияния меньше количества кандидатов в блоки слияния текущего блока (Да на этапе S42), то блок 109 управления внешним прогнозированием вычисляет стоимость кандидата в блоки слияния, которому назначено значение индекса кандидата в блоки слияния (этап S43). Затем блок 109 управления внешним прогнозированием определяет, меньше ли вычисленная стоимость кандидата в блоки слияния минимальной ошибки прогнозирования (этап S44). В результате, если вычисленная стоимость кандидата в блоки слияния меньше минимальной ошибки прогнозирования (Да на этапе S44), то блок 109 управления внешним прогнозированием обновляет минимальную ошибку прогнозирования, значение индекса блока слияния и значение флага слияния (этап S45). Затем блок 109 управления внешним прогнозированием суммирует значение “1” со значением индекса кандидата в блоки слияния (этап S46), и обработка повторяется от S42 до S46. Если вычисленная стоимость кандидата в блоки слияния не меньше минимальной ошибки прогнозирования (Нет на этапе S44), то процесс обновления на этапе S45 не осуществляется, но этап 46 осуществляется, и обработка повторяется от S42 до S46. При этом на этапе S42, если значение индекса кандидата в блоки слияния не меньше количества кандидатов в блоки слияния (Нет на этапе S42), другими словами, если кандидат в блоки слияния отсутствует, то блок 109 управления внешним прогнозированием, в конце концов, определяет окончательно оставленные флаг слияния и значение индекса блока слияния (этап S47).
[0065] Согласно настоящему варианту осуществления настоящего раскрытия, новый кандидат в блоки слияния двунаправленного прогнозирования вычисляется из кандидатов в блоки слияния, для повышения эффективности кодирования. В частности, на основании кандидатов в блоки слияния, вычисленных из соседних блоков и совместно размещенного блока, (a) вектор движения и значение индекса опорного изображения направления 0 прогнозирования и (b) вектор движения и значение индекса опорного изображения направления 1 прогнозирования объединяются для генерирования объединенного блока слияния двунаправленного прогнозирования, и затем добавляются в список кандидатов в блоки слияния. В результате, можно повысить эффективность кодирования. Кроме того, при наличии недоступного кандидата в списке кандидатов в блоки слияния, генерируется объединенный блок слияния, и недоступный кандидат заменяется объединенным блоком слияния. Таким образом, можно повысить эффективность кодирования, не увеличивая максимальное значение количества кандидатов в блоки слияния.
[0066] Следует отметить, что в настоящем варианте осуществления описано, что флаг слияния всегда добавляется в битовый поток в режиме слияния, но настоящее раскрытие не ограничивается вышеописанным. Например, можно также принудительно выбирать режим слияния согласно форме и т.п. текущего блока. В этом случае, объем информации может сокращаться за счет того, что флаг слияния не добавляется в битовый поток.
[0067] Следует отметить, что в настоящем варианте осуществления описано, что в режиме слияния по меньшей мере один вектор движения и по меньшей мере одно значение индекса опорного изображения копируются из блока, соседствующего с текущим блоком, и затем используются для кодирования текущего блока, но настоящее раскрытие не ограничивается вышеописанным. Например, возможно также следующее. Таким же образом, как в режиме слияния, с использованием кандидатов в блоки слияния, генерируемых, как показано на Фиг.6, по меньшей мере один вектор движения и по меньшей мере одно значение индекса опорного изображения копируются из блока, соседствующего с текущим блоком, и затем используются для кодирования текущего блока. В результате, если все данные ошибки прогнозирования текущего блока равны 0, флаг пропуска устанавливается равным 1 и добавляется в битовый поток. С другой стороны, если не все данные ошибки прогнозирования равны 0, флаг пропуска устанавливается равным 0, и флаг пропуска и данные ошибки прогнозирования добавляются в битовый поток (режим пропуска слияния).
[0068] Следует также заметить, что в настоящем варианте осуществления описано, что в режиме слияния по меньшей мере один вектор движения и по меньшей мере одно значение индекса опорного изображения копируются из блока, соседствующего с текущим блоком, и затем используется для кодирования текущего блока, но настоящее раскрытие не ограничивается вышеописанным. Например, вектор движения в режиме оценивания вектора движения также можно кодировать с использованием списка кандидатов в блоки слияния, генерируемых, как показано на Фиг.6. В частности, вектор движения кандидата в блоки слияния, определенный значением индекса блока слияния, можно вычитать из вектора движения режима оценивания вектора движения, для получения разности, и разность и значение индекса кандидата в блоки слияния добавляются в битовый поток. Кроме того, возможно также следующее. С использованием значения RefIdx_ME индекса опорного изображения режима оценивания движения и значения RefIdx_Merge индекса опорного изображения кандидата в блоки слияния осуществляется масштабирование в отношении вектора MV_Merge движения кандидата в блоки слияния. Затем, вектор scaledMV_Merge движения масштабированного кандидата в блоки слияния вычитается из векторов движения в режиме оценивания движения для получения разности. Разность и значение индекса кандидата в блоки слияния добавляются в битовый поток. Это масштабирование можно осуществлять с использованием следующего уравнения 2.
[0069] scaledMV_Merge=
MV_Merge×(POC(RefIdx_ME)-curPOC)/(POC(RefIdx_Merge)-curPOC) (Уравнение 2)
[0070] При этом, POC(RefIdx_ME) представляет положение в порядке отображения опорного изображения, указанное значением RefIdx_ME индекса опорного изображения, POC(RefIdx_Merge) представляет положение в порядке отображения опорного изображения, указанное значением RefIdx_Merge индекса опорного изображения, и curPOC представляет положение в порядке отображения изображения, которое должно быть кодировано.
[0071] ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 2
На Фиг.10 показана блок-схема, демонстрирующая структуру устройства декодирования движущихся изображений, использующего способ декодирования движущихся изображений согласно варианту осуществления 2 настоящего раскрытия.
[0072] Как показано на Фиг.10, устройство 200 декодирования движущихся изображений включает в себя блок 201 декодирования с переменной длиной слова, блок 202 обратного квантования, блок 203 обратного ортогонального преобразования, память 204 блоков, память 205 кадров, блок 206 внутреннего прогнозирования, блок 207 внешнего прогнозирования, блок 208 управления внешним прогнозированием, блок 209 вычисления кандидатов в блоки слияния, память 210 colPic, сумматор 211 и переключатель 212.
[0073] Блок 201 декодирования с переменной длиной слова осуществляет декодирование с переменной длиной слова на входном битовом потоке для получения информации типа изображения, флага слияния и индекса блока слияния и битового потока, декодированного с переменной длиной слова. Блок 202 обратного квантования обратно квантует битовый поток, декодированный с переменной длиной слова. Блок 203 обратного ортогонального преобразования преобразует обратно квантованный битовый поток из частотной области в область изображений, для генерирования данных ошибки прогнозирования изображения. В памяти 204 блоков сохраняется последовательность изображений, генерируемая путем добавления данных ошибки прогнозирования изображения в изображение прогнозирования на поблочной основе. В памяти 205 кадров сохраняется последовательность изображений на основе отдельных изображений. Блок 206 внутреннего прогнозирования осуществляет внутреннее прогнозирование на последовательности изображений, хранящихся в памяти 204 блоков, на поблочной основе, для генерирования данных изображения прогнозирования текущего блока, который должен быть декодирован. Блок 207 внешнего прогнозирования осуществляет внешнее прогнозирование в отношении последовательности изображений, хранящейся в памяти кадров, на основе отдельных изображений, для генерирования данных изображения прогнозирования текущего блока, который должен быть декодирован.
[0074] Блок 209 вычисления кандидатов в блоки слияния выводит кандидаты в блоки слияния режима слияния, с использованием информации colpic, например векторов движения соседних блоков и совместно размещенного блока, хранящейся в памяти 210 colPic, относящейся к текущему блоку. Кроме того, блок 209 вычисления кандидатов в блоки слияния назначает каждому из выведенных блоков слияния соответствующее значение индекса блока слияния. Затем блок 209 вычисления кандидатов в блоки слияния обеспечивает кандидаты в блоки слияния и значения индекса блока слияния блоку 208 управления внешним прогнозированием.
[0075] Если флаг слияния, декодированный блоком 201 декодирования с переменной длиной слова, равен “0”, другими словами, если режим прогнозирования не является режимом слияния, блок 208 управления внешним прогнозированием генерирует изображение внешнего прогнозирования с использованием декодированной информации режима оценивания движения. Кроме того, если флаг слияния равен “1”, другими словами, если режим прогнозирования является режимом слияния, то блок 208 управления внешним прогнозированием определяет вектор движения и значение индекса опорного изображения, которое должно быть использовано при внешнем прогнозировании из множества кандидатов в блоки слияния, на основании декодированного значения индекса блока слияния, для генерирования изображения внешнего прогнозирования. Кроме того, блок 208 управления внешним прогнозированием снабжает память 210 colPic информацией colpic, включающей в себя вектор движения и пр. текущего блока.
[0076] Сумматор 211 суммирует данные прогнозирования, генерируемые блоком 206 внутреннего прогнозирования или блоком 207 внешнего прогнозирования с данными ошибки прогнозирования, полученными от блока 203 обратного ортогонального преобразования, для генерирования декодированной последовательности изображений.
[0077] На Фиг.11 показана блок-схема операций, представляющая основные этапы потока обработки способа декодирования движущихся изображений согласно настоящему варианту осуществления.
[0078] Блок 201 декодирования с переменной длиной слова декодирует флаг слияния из битового потока (этап S51). Блок 208 управления внешним прогнозированием определяет, равен ли флаг слияния “1” (этап S52). В результате, если флаг слияния равен “1” (Да на этапе S52), то блок 209 вычисления кандидатов в блоки слияния указывает кандидаты в блоки слияния из соседних блоков и совместно размещенного блока для текущего блока, который должен быть декодирован (этап S53). Таким же образом, как показано на Фиг.8, блок 209 вычисления кандидатов в блоки слияния генерирует объединенный блок слияния и обновляет список кандидатов в блоки слияния (этап S54). Таким образом, аналогично обработке кодирования, например, список кандидатов в блоки слияния, показанный на Фиг.6, генерируется из списка кандидатов в блоки слияния, показанного на Фиг.3B. Блок 208 управления внешним прогнозированием определяет блок слияния, из которого копируется по меньшей мере один вектор движения и по меньшей мере одно значение индекса опорного изображения, согласно значению индекса блока слияния, декодированного блоком 201 декодирования с переменной длиной слова, и генерирует изображение внешнего прогнозирования с использованием определенного блока слияния (этап S55). С другой стороны, на этапе S52, если флаг слияния равен “0”, то блок 208 управления внешним прогнозированием генерирует изображение внешнего прогнозирования с использованием информации режима оценивания вектора движения, которая декодируется блоком 201 декодирования с переменной длиной слова (этап S56). Следует отметить, что, если количество кандидатов в блоки слияния, указанных или генерируемых на этапе S53 и S54, равно одному, можно не декодировать значение индекса блока слияния, но оценивать значение индекса блока слияния как 0.
[0079] Согласно настоящему варианту осуществления настоящего раскрытия, новый блок слияния двунаправленного прогнозирования вычисляется из кандидатов в блоки слияния, чтобы надлежащим образом декодировать битовый поток с повышенной эффективностью кодирования.
[0080] В частности, на основании кандидатов в блоки слияния, вычисленных согласно соседним блокам и совместно размещенному блоку, (a) вектор движения и значение индекса опорного изображения направления 0 прогнозирования и (b) вектор движения и значение индекса опорного изображения направления 1 прогнозирования объединяются для генерирования объединенного блока слияния двунаправленного прогнозирования и добавляются в список кандидатов в блоки слияния. В результате, можно надлежащим образом декодировать битовый поток с повышенной эффективностью кодирования. Кроме того, при наличии недоступного кандидата в списке кандидатов в блоки слияния, вычисляется объединенный блок слияния, и недоступный кандидат заменяется объединенным блоком слияния. Таким образом, можно надлежащим образом декодировать битовый поток с повышенной эффективностью кодирования, не увеличивая максимальное значение количества кандидатов в блоки слияния.
[0081] ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 3
Обработку, описанную в каждом из вариантов осуществления, можно просто реализовать в независимой компьютерной системе, посредством записи, на носителе записи, программы для реализации конфигураций способа кодирования движущихся изображений (способа кодирования изображений) и способа декодирования движущихся изображений (способа декодирования изображений), описанного в каждом из вариантов осуществления. Носителями записи могут быть собой любые носители записи, на которые можно записывать программу, например магнитный диск, оптический диск, магнитооптический диск, плата ИС и полупроводниковая память.
[0082] Далее будут описаны применения способа кодирования движущихся изображений (способа кодирования изображений) и способа декодирования движущихся изображений (способа декодирования изображений), описанных в каждом из вариантов осуществления и систем, использующих их. Система обладает особенностью наличия устройства кодирования и декодирования изображений, которое включает в себя устройство кодирования изображений, использующее способ кодирования изображений, и устройство декодирования изображений, использующее способ декодирования изображений. Другие конфигурации в системе можно изменять надлежащим образом в зависимости от случаев.
[0083] Фиг.12 иллюстрирует общую конфигурацию системы ex100 предоставления контента для реализации услуг распространения контента. Область для обеспечения услуг связи делится на соты желаемого размера, и базовые станции ex106, ex107, ex108, ex109 и ex110, которые представляют собой стационарные станции беспроводной связи, располагаются в каждой из сот.
[0084] Система ex100 предоставления контента подключена к устройствам, например компьютеру ex111, карманному персональному компьютеру (КПК) ex112, камере ex113, сотовому телефону ex114 и игровой машине ex115, через интернет ex101, поставщика ex102 услуг интернета, телефонную сеть ex104, а также базовые станции ex106-ex110, соответственно.
[0085] Однако конфигурация системы ex100 предоставления контента не ограничивается конфигурацией, показанной на Фиг.12, и приемлема комбинация, в которой соединены любые из элементов. Кроме того, каждое устройство может быть непосредственно подключено к телефонной сети ex104, а не через базовые станции ex106-ex110, которые являются стационарными станциями беспроводной связи. Кроме того, устройства могут соединяться между собой посредством беспроводной связи малой дальности и пр.
[0086] Камера ex113, например цифровая видеокамера, способна захватывать видео. Камера ex116, например цифровая видеокамера, способна захватывать как неподвижные изображения, так и видео. Кроме того, сотовый телефон ex114 может отвечать любому из стандартов, например глобальная система мобильной связи (GSM), множественный доступ с кодовым разделением (CDMA), широкополосный множественный доступ с кодовым разделением (W-CDMA), проект долгосрочного развития систем связи (LTE), и высокоскоростной пакетный доступ (HSPA). Альтернативно, сотовый телефон ex114 может представлять собой Personal Handyphone System (PHS).
[0087] В системе ex100 предоставления контента, сервер ex103 потоковой передачи подключен к камере ex113 и пр. через телефонную сеть ex104 и базовую станцию ex109, что позволяет распространять изображения шоу в прямом эфире и пр. При таком распространении, контент (например, видеозапись музыкального шоу в прямом эфире), захваченный пользователем с использованием камеры ex113, кодируется, как описано выше, в каждом из вариантов осуществления (т.е. камера функционирует как устройство кодирования изображений настоящего изобретения), и кодированный контент передается на сервер ex103 потоковой передачи. С другой стороны, сервер ex103 потоковой передачи осуществляет распространение потока передаваемых данных контента клиентам по их запросам. Клиенты включают в себя компьютер ex111, КПК ex112, камеру ex113, сотовый телефон ex114 и игровую машину ex115, которые способны декодировать вышеупомянутые кодированные данные. Каждое из устройств, принявших распространяемые данные, декодирует и воспроизводит кодированные данные (т.е. каждое из устройств функционирует как устройство декодирования изображений настоящего изобретения).
[0088] Захваченные данные могут кодироваться камерой ex113 или сервером ex103 потоковой передачи, который передает данные, или процессы кодирования могут совместно использоваться камерой ex113 и сервером ex103 потоковой передачи. Аналогично, распространяемые данные могут декодироваться клиентами или сервером ex103 потоковой передачи, или процессы декодирования могут совместно использоваться клиентами и сервером ex103 потоковой передачи. Кроме того, данные неподвижных изображений и видео, захваченных не только камерой ex113, но и камерой ex116, могут передаваться на сервер ex103 потоковой передачи через компьютер ex111. Процессы кодирования могут осуществляться камерой ex116, компьютером ex111 или сервером ex103 потоковой передачи, или совместно использоваться ими.
[0089] Кроме того, процессы кодирования и декодирования могут осуществляться БИС ex500, в общем случае, включенной в каждый из компьютера ex111 и устройств. БИС ex500 может быть сконфигурирована в виде единого кристалла или множества кристаллов. Программное обеспечение для кодирования и декодирования видео может быть интегрировано в носитель записи того или иного типа (например, CD-ROM, гибкий диск и жесткий диск), который читается компьютером ex111 и пр., и процессы кодирования и декодирования могут осуществляться с использованием программного обеспечения. Кроме того, когда сотовый телефон ex114 снабжен камерой, данные изображения, полученные камерой, могут передаваться. Видеоданные являются данными, кодированными БИС ex500, включенной в сотовый телефон ex114.
[0090] Кроме того, сервер ex103 потоковой передачи может состоять из серверов и компьютеров и может децентрализовать данные и обрабатывать децентрализованные данные, записывать или распространять данные.
[0091] Как описано выше, клиенты могут принимать и воспроизводить кодированные данные в системе ex100 предоставления контента. Другими словами, клиенты могут принимать и декодировать информацию, передаваемую пользователем, и воспроизводить декодированные данные в реальном времени в системе ex100 предоставления контента, благодаря чему, пользователь, не имеющий никаких особых прав и оборудования, может реализовать персональное вещание.
[0092] Помимо примера системы ex100 предоставления контента по меньшей мере одно из устройства кодирования движущихся изображений (устройства кодирования изображений) и устройства декодирования движущихся изображений (устройства декодирования изображений), описанных в каждом из вариантов осуществления, можно реализовать в системе ex200 цифрового вещания, представленной на Фиг.13. В частности, широковещательная станция ex201 передает посредством радиоволн на вещательный спутник ex202 мультиплексированные данные, полученные путем мультиплексирования аудиоданных и пр. на видеоданные. Видеоданные - это данные, кодированные способом кодирования движущихся изображений, описанным в каждом из вариантов осуществления (т.е. данные, кодированные устройством кодирования изображений настоящего изобретения). Приняв мультиплексированные данные, вещательный спутник ex202 передает радиоволны для вещания. Затем, домашняя антенна ex204 с функцией приема спутникового вещания принимает радиоволны. Затем устройство, например телевизор (приемник) ex300 и телевизионная приставка (STB) ex217, декодирует принятые мультиплексированные данные и воспроизводит декодированные данные (т.е. устройство функционирует как устройство кодирования изображений настоящего изобретения).
[0093] Кроме того, устройство ex218 чтения/записи (i) считывает и декодирует мультиплексированные данные, записанные на носителях ex215 записи, например DVD и BD, или (i) кодирует видеосигналы на носитель ex215 записи и в ряде случаев записывает данные, полученные путем мультиплексирования аудиосигнала на кодированные данные. Устройство ex218 чтения/записи может включать в себя устройство декодирования движущихся изображений или устройство кодирования движущихся изображений, показанное в каждом из вариантов осуществления. В этом случае, воспроизводимые видеосигналы отображаются на мониторе ex219 и могут воспроизводиться другим устройством или системой с использованием носителя ex215 записи, на который записаны мультиплексированные данные. Можно также реализовать устройство декодирования движущихся изображений в телевизионной приставке ex217, подключенной к кабелю ex203 для кабельного телевидения или к антенне ex204 для спутникового и/или наземного вещания, для отображения видеосигналов на мониторе ex219 телевизора ex300. Устройство декодирования движущихся изображений можно реализовать не в телевизионной приставке, а в телевизоре ex300.
[0094] Фиг.14 иллюстрирует телевизор (приемник) ex300, который использует способ кодирования движущихся изображений и способ декодирования движущихся изображений, описанный в каждом из вариантов осуществления. Телевизор ex300 включает в себя: блок ex301 настройки, который получает или обеспечивает мультиплексированные данные, полученные путем мультиплексирования аудиоданных на видеоданные, через антенну ex204 или кабель ex203 и т.д., которая/ый принимает широковещательную программу; блок ex302 модуляции/демодуляции, который демодулирует принятые мультиплексированные данные или модулирует данные в мультиплексированные данные, подлежащие выводу; и блок ex303 мультиплексирования/демультиплексирования, который демультиплексирует модулированные мультиплексированные данные на видеоданные и аудиоданные, или мультиплексирует видеоданные и аудиоданные, кодированные блоком ex306 обработки сигнала, в данные.
[0095] Телевизор ex300 дополнительно включает в себя: блок ex306 обработки сигнала, включающий в себя блок ex304 обработки аудиосигнала и блок ex305 обработки видеосигнала, который декодирует аудиоданные и видеоданные и кодирует аудиоданные и видеоданные (которые функционируют как устройство кодирования изображений и устройство декодирования изображений), соответственно; и блок ex309 вывода, включающий в себя громкоговоритель ex307, который обеспечивает декодированный аудиосигнал, и блок ex308 отображения, который отображает декодированный видеосигнал, например устройство отображения. Кроме того, телевизор ex300 включает в себя блок ex317 интерфейса, включающий в себя блок ex312 ввода операций, который принимает ввод пользовательской операции. Кроме того, телевизор ex300 включает в себя блок ex310 управления, который управляет в целом каждым составным элементом телевизора ex300, и блок ex311 питания, который подает мощность на каждый из элементов. Помимо блока ex312 ввода операций, блок ex317 интерфейса может включать в себя: мост ex313, который подключен к внешнему устройству, например устройству ex218 чтения/записи; щелевой блок ex314 для обеспечения присоединения носителя ex216 записи, например SD-карты; драйвер ex315, подключаемый к внешнему носителю записи, например жесткий диск; и модем ex316, подключаемый к телефонной сети. При этом носитель ex216 записи может электрически записывать информацию с использованием энергонезависимого/энергозависимого элемента полупроводниковой памяти для сохранения. Составные элементы телевизора ex300 соединены друг с другом через синхронную шину.
[0096] Прежде всего, опишем конфигурацию, в которой телевизор ex300 декодирует мультиплексированные данные, полученные извне через антенну ex204 и пр., и воспроизводит декодированные данные. В телевизоре ex300, после ввода пользовательской операции через пульт ex220 дистанционного управления и пр., блок ex303 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные, демодулированные блоком ex302 модуляции/демодуляции, под управлением блока ex310 управления, включающего в себя ЦП. Кроме того, блок ex304 обработки аудиосигнала декодирует демультиплексированные аудиоданные, и блок ex305 обработки видеосигнала декодирует демультиплексированные видеоданные с использованием способа декодирования, описанного в каждом из вариантов осуществления, в телевизоре ex300. Блок ex309 вывода выводит декодированный видеосигнал и аудиосигнал, соответственно. Когда блок ex309 вывода выдает видеосигнал и аудиосигнал, сигналы могут временно сохраняться в буферах ex318 и ex319 и пр., благодаря чему сигналы воспроизводятся синхронно друг с другом. Кроме того, телевизор ex300 может считывать мультиплексированные данные не через широковещательный канал и пр., а с носителей ex215 и ex216 записи, например магнитного диска, оптического диска и SD-карты. Теперь опишем конфигурацию, в которой телевизор ex300 кодирует аудиосигнал и видеосигнал и выводит данные или записывает данные на носитель записи. В телевизоре ex300, при вводе пользовательской операции через пульт ex220 дистанционного управления и пр., блок ex304 обработки аудиосигнала кодирует аудиосигнал, и блок ex305 обработки видеосигнала кодирует видеосигнал под управлением блока ex310 управления с использованием способа кодирования, описанного в каждом из вариантов осуществления. Блок ex303 мультиплексирования/демультиплексирования мультиплексирует кодированные видеосигнал и аудиосигнал и выводит результирующий сигнал. Когда блок ex303 мультиплексирования/демультиплексирования мультиплексирует видеосигнал и аудиосигнал, сигналы могут временно сохраняться в буферах ex320 и ex321 и пр., благодаря чему сигналы воспроизводятся синхронно друг с другом. При этом буферы ex318, ex319, ex320 и ex321 могут быть множественными, как показано, или по меньшей мере один буфер может совместно использоваться в телевизоре ex300. Кроме того, данные могут сохраняться в буфере во избежание системной перегрузки и недогрузки, например, между блоком ex302 модуляции/демодуляции и блоком ex303 мультиплексирования/демультиплексирования.
[0097] Кроме того, телевизор ex300 может включать в себя конфигурацию для приема входного AV-сигнала от микрофона или камеры, отличную от конфигурации для получения аудио- и видеоданных из широковещательного канала или носителя записи, и может кодировать полученные данные. Хотя, согласно описанию, телевизор ex300 может кодировать, мультиплексировать и выводить данные, он может быть способен только принимать, декодировать и выводить данные, но не кодировать, мультиплексировать и выводить данные.
[0098] Кроме того, когда устройство ex218 чтения/записи считывает мультиплексированные данные с носителя записи или записывает их на него, один из телевизора ex300 и устройства ex218 чтения/записи может декодировать или кодировать мультиплексированные данные, и телевизор ex300 и устройство ex218 чтения/записи могут совместно осуществлять декодирование или кодирование.
[0099] В порядке примера, Фиг.15 иллюстрирует конфигурацию блока ex400 воспроизведения/записи информации при чтении данных с оптического диска или их записи на него. Блок ex400 воспроизведения/записи информации включает в себя составные элементы ex401, ex402, ex403, ex404, ex405, ex406 и ex407, которые будут описаны далее. Оптическая головка ex401 освещает лазерным пятном рабочую поверхность носителя ex215 записи, то есть оптического диска, для записи информации и регистрирует свет, отраженный от рабочей поверхности носителя ex215 записи, для считывания информации. Блок ex402 модуляционной записи электрически возбуждает полупроводниковый лазер, входящий в состав оптической головки ex401, и модулирует лазерный свет согласно записанным данным. Блок ex403 демодуляционного воспроизведения усиливает сигнал воспроизведения, полученный путем электрического обнаружения света, отраженный от рабочей поверхности, с использованием фотодетектора, входящего в состав оптической головки ex401, и демодулирует сигнал воспроизведения путем отделения компонента сигнала, записанного на носителе ex215 записи, для воспроизведения необходимой информации. В буфере ex404 временно хранится информация, которая должна быть записана на носитель ex215 записи, и информация, которая должна быть воспроизведена с носителя ex215 записи. Двигатель ex405 привода вращает носитель ex215 записи. Блок ex406 сервоуправления перемещает оптическую головку ex401 к заранее определенной информационной дорожке, управляя при этом вращением двигателя ex405 привода, чтобы следовать за лазерным пятном. Системный блок ex407 управления управляет в целом блоком ex400 воспроизведения/записи информации. Процессы чтения и записи можно реализовать посредством системного блока ex407 управления с использованием различной информации, хранящейся в буфере ex404 и, при необходимости, генерируя и добавляя новую информацию, и посредством блока ex402 модуляционной записи, блока ex403 демодуляционного воспроизведения и блока ex406 сервоуправления, которые записывают и воспроизводят информацию с помощью оптической головки ex401, действуя в координации друг с другом. Системный блок ex407 управления включает в себя, например, микропроцессор и выполняет обработку, предписывая компьютеру выполнять программу для чтения и записи.
[0100] Хотя, согласно описанию, оптическая головка ex401 производит освещение лазерным пятном, она может осуществлять запись высокой плотности с использованием света ближнего поля.
[0101] Фиг.16 иллюстрирует носитель ex215 записи, то есть оптический диск. На рабочей поверхности носителя ex215 записи сформированы спиральные направляющие канавки, и в информационной дорожке ex230 заранее записана информация адреса, указывающая абсолютную позицию на диске согласно изменению формы направляющих канавок. Информация адреса включает в себя информацию для определения позиций блоков ex231 записи, которые являются единицами записи данных. Воспроизведение информационной дорожки ex230 и считывание информации адреса в устройстве, которое записывает и воспроизводит данные, могут приводить к определению позиций блоков записи. Кроме того, носитель ex215 записи включает в себя область ex233 записи данных, область ex232 внутреннего периметра и область ex234 внешнего периметра. Область ex233 записи данных - это область, используемая для записи пользовательских данных. Область ex232 внутреннего периметра и область ex234 внешнего периметра, которые находятся внутри и снаружи области ex233 записи данных, соответственно, служат для конкретного использования кроме записи пользовательских данных. Блок 400 воспроизведения/записи информации считывает и записывает кодированные аудиоданные, кодированные видеоданные или мультиплексированные данные, полученные путем мультиплексирования кодированных аудио- и видеоданных, из и в область ex233 записи данных носителя ex215 записи.
[0102] Хотя в описании приведен пример оптического диска, имеющего слой, например DVD и BD, оптический диск этим не ограничивается и может представлять собой оптический диск, имеющий многослойную структуру и пригодный к осуществлению записи не только на своей поверхности. Кроме того, оптический диск может иметь структуру для многомерной записи/воспроизведения, например записи информации с использованием света разных длин волны в одном и том же участке оптического диска, и для записи информации в разных слоях под различными углами.
[0103] Кроме того, автомобиль ex210, имеющий антенну ex205, может принимать данные от спутника ex202 и пр. и воспроизводить видео на устройстве отображения, например автомобильной навигационной системы ex211, установленной в автомобиле ex210, в системе ex200 цифрового вещания. При этом конфигурация автомобильной навигационной системы ex211 будет конфигурацией, например, включающей в себя GPS-приемник из конфигурации, представленной на Фиг.14. То же самое справедливо для конфигурации компьютера ex111, сотового телефона ex114 и пр.
[0104] Фиг.17A иллюстрирует сотовый телефон ex114, который использует способ кодирования движущихся изображений и способ декодирования движущихся изображений, описанные в вариантах осуществления. Сотовый телефон ex114 включает в себя: антенну ex350 для передачи и приема радиоволн через базовую станцию ex110; блок ex365 камеры, способный захватывать движущиеся и неподвижные изображения; и блок ex358 отображения, например жидкокристаллическое устройство отображения для отображения данных, например декодированного видео, захваченного блоком ex365 камеры или принятого антенной ex350. Сотовый телефон ex114 дополнительно включает в себя: блок основного отдела, включающий в себя блок ex366 операционных клавиш; блок ex357 вывода аудиосигнала, например громкоговоритель для вывода аудиосигнала; блок ex356 ввода аудиосигнала, например микрофон для ввода аудиосигнала; блок ex367 памяти для хранения захваченного видео или неподвижных изображений, записанного аудио, кодированных или декодированных данных принятого видео, неподвижных изображений, сообщений электронной почты и пр.; и щелевой блок ex364, который является блоком интерфейса для носителя записи, где хранятся данные, таким же образом, как блок ex367 памяти.
[0105] Далее, пример конфигурации сотового телефона ex114 будет описан со ссылкой на Фиг.17B. В сотовом телефоне ex114, главный блок ex360 управления, предназначенный для общего управления каждым блоком основного отдела, в том числе блоком ex358 отображения, а также блоком ex366 операционных клавиш, соединен через синхронную шину ex370 с блоком ex361 питания, блоком ex362 ввода операций управления, блоком ex355 обработки видеосигнала, блоком ex363 интерфейса камеры, блоком ex359 управления жидкокристаллическим устройством отображения (LCD), блоком ex352 модуляции/демодуляции, блоком ex353 мультиплексирования/демультиплексирования, блоком ex354 обработки аудиосигнала, щелевым блоком ex364 и блоком ex367 памяти.
[0106] Когда пользователь включает питание путем нажатия кнопки отбоя вызова или кнопки питания, блок ex361 питания снабжает соответствующие блоки мощностью от блока батарей для активации сотового телефона ex114.
[0107] В сотовом телефоне ex114, блок ex354 обработки аудиосигнала преобразует аудиосигналы, собранные блоком ex356 ввода аудиосигнала в режиме речевой связи, в цифровые аудиосигналы под управлением главного блока ex360 управления, включающего в себя ЦП, ПЗУ и ОЗУ. Затем блок ex352 модуляции/демодуляции осуществляет обработку расширения по спектру на цифровых аудиосигналах, и блок ex351 передачи и приема осуществляет цифроаналоговое преобразование и преобразование частоты на данных, для передачи результирующих данных через антенну ex350. Также, в сотовом телефоне ex114, блок ex351 передачи и приема усиливает данные, принятые антенной ex350 в режиме речевой связи, и осуществляет преобразование частоты и аналого-цифровое преобразование на данных. Затем, блок ex352 модуляции/демодуляции осуществляет обратную обработку расширения по спектру на данных, и блок ex354 обработки аудиосигнала преобразует их в аналоговые аудиосигналы, для вывода их через блок ex357 вывода аудиосигнала.
[0108] Кроме того, при передаче электронной почты в режиме передачи данных, текстовые данные электронной почты, введенные с помощью блока ex366 операционных клавиш и пр. основного отдела, отправляются на главный блок ex360 управления через блок ex362 ввода операций управления. Главный блок ex360 управления предписывает блоку ex352 модуляции/демодуляции осуществлять обработку расширения по спектру на текстовых данных, и блок ex351 передачи и приема осуществляет цифроаналоговое преобразование и преобразование частоты на результирующих данных для передачи данных на базовую станцию ex110 через антенну ex350. При приеме электронной почты, на принятых данных осуществляется обработка, приблизительно обратная обработке для передачи электронной почты, и результирующие данные поступают на блок ex358 отображения.
[0109] При передаче видео, неподвижных изображений или видео и аудио в режиме передачи данных, блок ex355 обработки видеосигнала сжимает и кодирует видеосигналы, поступающие от блока ex365 камеры, с использованием способа кодирования движущихся изображений, представленного в каждом из вариантов осуществления (т.е. функционирует как устройство кодирования изображений настоящего изобретения), и передает кодированные видеоданные на блок ex353 мультиплексирования/демультиплексирования. Напротив, когда блок ex365 камеры захватывает видео, неподвижные изображения и пр., блок ex354 обработки аудиосигнала кодирует аудиосигналы, собранные блоком ex356 ввода аудиосигнала, и передает кодированные аудиоданные на блок ex353 мультиплексирования/демультиплексирования.
[0110] Блок ex353 мультиплексирования/демультиплексирования мультиплексирует кодированные видеоданные, поступающие от блока ex355 обработки видеосигнала, и кодированные аудиоданные, поступающие от блока ex354 обработки аудиосигнала, заранее определенным способом. Затем блок ex352 модуляции/демодуляции (блок схемы модуляции/демодуляции) осуществляет обработку расширения по спектру на мультиплексированных данных, и блок ex351 передачи и приема осуществляет цифроаналоговое преобразование и преобразование частоты на данных для передачи результирующих данных через антенну ex350.
[0111] В случае приема данных видеофайла, который связан с веб-страницей и пр., в режиме передачи данных, или в случае приема электронной почты с присоединенной видео- и/или аудиозаписью, для декодирования мультиплексированных данных, принятых через антенну ex350, блок ex353 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные в битовый поток видеоданных и битовый поток аудиоданных, и снабжает блок ex355 обработки видеосигнала кодированными видеоданными и блок ex354 обработки аудиосигнала кодированными аудиоданными, через синхронную шину ex370. Блок ex355 обработки видеосигнала декодирует видеосигнал с использованием способа декодирования движущихся изображений, соответствующего способу кодирования движущихся изображений, представленному в каждом из вариантов осуществления (т.е. функционирует как устройство декодирования изображений настоящего изобретения), и затем блок ex358 отображения отображает, например, видео и неподвижные изображения, включенные в видеофайл, связанный с веб-страницей, через блок ex359 управления LCD. Кроме того, блок ex354 обработки аудиосигнала декодирует аудиосигнал, и блок ex357 вывода аудиосигнала обеспечивает аудиосигнал.
[0112] Кроме того, аналогично телевизору ex300, терминал, например сотовый телефон ex114, вероятно, имеет 3 типа конфигураций реализации, включающие в себя не только (i) терминал передачи и приема, включающий в себя устройство кодирования и устройство декодирования, но и (ii) терминал передачи, включающий в себя только устройство кодирования, и (iii) терминал приема, включающий в себя только устройство декодирования. Хотя, согласно описанию, система ex200 цифрового вещания принимает и передает мультиплексированные данные, полученные путем мультиплексирования аудиоданных на видеоданные, мультиплексированные данные могут представлять собой данные, полученные путем мультиплексирования на видеоданные не аудиоданных, а символьных данных, связанных с видео, и могут быть не мультиплексированными данными, а самими видеоданными.
[0113] Таким образом, способ кодирования движущихся изображений и способ декодирования движущихся изображений в каждом из вариантов осуществления можно использовать в любом из описанных устройств и систем. Таким образом, можно получить преимущества, описанные в каждом из вариантов осуществления.
[0114] Кроме того, настоящее изобретение не ограничивается вариантами осуществления, и возможны различные модификации и ревизии не выходящие за рамки объема настоящего изобретения.
[0115] ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 4
Видеоданные могут генерироваться путем переключения, при необходимости, между (i) способом кодирования движущихся изображений или устройством кодирования движущихся изображений, представленным в каждом из вариантов осуществления, и (ii) способом кодирования движущихся изображений или устройством кодирования движущихся изображений в соответствии с тем или иным стандартом, например MPEG-2, MPEG4-AVC и VC-1.
[0116] При этом, когда множество видеоданных, которые согласуются с разными стандартами, генерируется и затем декодируется, способы декодирования необходимо выбирать для согласования с разными стандартами. Однако, поскольку невозможно выявить, с каким стандартом согласуются каждые из множества видеоданных, которые должны быть декодированы, проблема состоит в том, что не удается выбрать надлежащий способ декодирования.
[0117] Для решения проблемы, мультиплексированные данные, полученные путем мультиплексирования аудиоданных и пр. на видеоданные, имеют структуру, включающую в себя информацию идентификации, указывающую, с каким стандартом согласуются видеоданные. Далее будет описана конкретная структура мультиплексированных данных, включающих в себя видеоданные, генерируемые согласно способу кодирования движущихся изображений и устройством кодирования движущихся изображений, представленными в каждом из вариантов осуществления. Мультиплексированные данные представляют собой цифровой поток в формате транспортного потока MPEG2.
[0118] Фиг.18 иллюстрирует структуру мультиплексированных данных. Согласно Фиг.18, мультиплексированные данные можно получить путем мультиплексирования по меньшей мере одного из видеопотока, аудиопотока, потока презентационной графики (PG) и потока интерактивной графики. Видеопоток представляет первичное видео и вторичное видео в фильме, аудиопоток (IG) представляет первичную аудио-часть и вторичную аудио-часть, которая должна быть смешана с первичной аудио-части, и поток презентационной графики представляет субтитры фильма. При этом первичное видео является нормальным видео, которое должно быть отображено на экране, и вторичное видео является видео, которое должно быть отображено на меньшем окне в первичном видео. Кроме того, поток интерактивной графики представляет интерактивный экран, генерируемый путем размещения компонентов ГИП на экране. Видеопоток кодируется согласно способу кодирования движущихся изображений или устройством кодирования движущихся изображений, представленными в каждом из вариантов осуществления, или согласно способу кодирования движущихся изображений или устройством кодирования движущихся изображений в соответствии с общепринятым стандартом, например MPEG-2, MPEG4-AVC и VC-1. Аудиопоток кодируется в соответствии со стандартом, например, Dolby-AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD и линейный PCM.
[0119] Каждый поток, включенный в мультиплексированные данные, идентифицируется посредством PID. Например, 0x1011 выделяется видеопотоку, который должен быть использован для видео в фильме, 0x1100 - 0x111F выделяются аудиопотокам, 0x1200-0x121F выделяются потокам презентационной графики, 0x1400-0x141F выделяются потокам интерактивной графики, 0x1B00-0x1B1F выделяются видеопотокам, которые должны быть использованы для вторичного видео в фильме, и 0x1A00-0x1A1F выделяются аудиопотокам, которые должны быть использованы для вторичного видео, которое должно быть смешано с первичным аудио.
[0120] Фиг.19 схематически иллюстрирует, как мультиплексируются данные. Прежде всего, видеопоток ex235, состоящий из кадров видео, и аудиопоток ex238, состоящий из кадров аудио, преобразуются в поток пакетов PES ex236 и поток пакетов PES ex239, и далее в пакеты TS ex237 и пакеты TS ex240, соответственно. Аналогично, данные потока ex241 презентационной графики и данные потока ex244 интерактивной графики преобразуются в поток пакетов PES ex242 и поток пакетов PES ex245, и далее в пакеты TS ex243 и пакеты TS ex246, соответственно. Эти пакеты TS мультиплексируются в поток для получения мультиплексированных данных ex247.
[0121] Фиг.20 более подробно иллюстрирует, как видеопоток сохраняется в потоке пакетов PES. Первая полоска на Фиг.20 демонстрирует поток кадров видео в видеопотоке. Вторая полоска демонстрирует поток пакетов PES. Как указано стрелками, обозначенными yy1, yy2, yy3 и yy4 на Фиг.20, видеопоток делится на изображения, а именно I-изображения, B-изображения и P-изображения, каждое из которых является единицей презентации видео, и изображения сохраняются в полезной нагрузке каждого из пакетов PES. Каждый из пакетов PES имеет заголовок PES, и в заголовке PES хранится метка времени презентации (PTS), указывающая время отображения изображения, и метка времени декодирования (DTS), указывающая время декодирования изображения.
[0122] Фиг.21 иллюстрирует формат пакетов TS, окончательно подлежащих записи на мультиплексированные данные. Каждый из пакетов TS представляет собой пакет фиксированной длины 188 байт, включающий в себя 4-байтовый заголовок TS, имеющий информацию, например PID для идентификации потока и 184-байтовую полезную нагрузку TS для хранения данных. Пакеты PES делятся и хранятся в участках полезной нагрузки TS, соответственно. При использовании BD ROM, каждому из пакетов TS придается 4-байтовый TP_Extra_Header, что обеспечивает 192-байтовые исходные пакеты. Исходные пакеты записываются на мультиплексированные данные. В TP_Extra_Header хранится такая информация, как Arrival_Time_Stamp (ATS). ATS указывает время начала переноса каждого из пакетов TS на фильтр PID. Исходные пакеты размещены в мультиплексированных данных, как показано в нижней части Фиг.21. Числа, возрастающие от начала мультиплексированных данных, называются номерами исходных пакетов (SPN).
[0123] Каждый из пакетов TS, включенных в мультиплексированные данные, включает в себя не только потоки аудио, видео, субтитров и пр., но и таблицу ассоциаций программы (PAT), таблицу карт программы (PMT) и временную отметку программы (PCR). В PAT указано, что указывает PID в PMT, используемой в мультиплексированных данных, и PID самой PAT регистрируется как нуль. В PMT хранятся PID потоков видео, аудио, субтитров и пр., включенных в мультиплексированные данные, и информация атрибутов потоков, соответствующих PID. PMT также имеет различные дескрипторы относящиеся к мультиплексированным данным. Дескрипторы имеют такую информацию, как информация контроля копирования, которая указывает, разрешено ли копирование мультиплексированных данных. В PCR хранится информация времени STC, соответствующая ATS, который указывает, когда пакет PCR переносится на декодер, для достижения синхронизации между Arrival_Time_Clock (ATC), который является осью времени ATS, и System_Time_Clock (STC), который является осью времени PTS и DTS.
[0124] Фиг.22 подробно иллюстрирует структуру данных PMT. Заголовок PMT располагается в верхней части PMT. В заголовке PMT указана длина данных, включенных в PMT и пр. После заголовка PMT располагается множество дескрипторов, относящихся к мультиплексированным данным. В дескрипторах описана такая информация, как информация контроля копирования. После дескрипторов располагается множество фрагментов информации потока, относящихся к потокам, включенным в мультиплексированные данные. Каждый фрагмент информации потока включает в себя дескрипторы потока, каждый из которых описывает такую информацию, как тип потока для идентификации сжимающего кодека потока, PID потока и информацию атрибутов потока (например, частоту кадров или аспектное отношение). Количество дескрипторов потока равно количеству потоков в мультиплексированных данных.
[0125] Когда мультиплексированные данные записываются на носитель записи и пр., они записывается совместно с информационными файлами мультиплексированных данных.
[0126] Каждый из информационных файлов мультиплексированных данных является информацией управления мультиплексированных данных, как показано на Фиг.23. Информационные файлы мультиплексированных данных находятся во взаимно-однозначном соответствии с мультиплексированными данными, и каждый из файлов включает в себя информацию мультиплексированных данных, информацию атрибутов потока и карту записей.
[0127] Согласно Фиг.23, мультиплексированные данные включают в себя системную скорость, время начала воспроизведения и время окончания воспроизведения. Системная скорость указывает максимальную скорость переноса, с которой системный целевой декодер, который будет описан ниже, переносит мультиплексированные данные на фильтр PID. Интервалы ATS, включенных в мультиплексированные данные, задаются не превышающими системную скорость. Время начала воспроизведения указывает PTS в кадре видео в начале мультиплексированных данных. Интервал одного кадра прибавляется к PTS в кадре видео в конце мультиплексированных данных, и PTS устанавливается равным времени окончания воспроизведения.
[0128] Как показано на Фиг.24, фрагмент информации атрибутов регистрируется в информации атрибутов потока, для каждого PID каждого потока, включенного в мультиплексированные данные. Каждый фрагмент информации атрибутов имеет разную информацию в зависимости от того, является ли соответствующий поток видеопотоком, аудиопотоком, потоком презентационной графики или потоком интерактивной графики. Каждый фрагмент информации атрибутов видеопотока несет информацию, указывающую, какого рода сжимающий кодек используется для сжатия видеопотока, и разрешение, аспектное отношение и частоту кадров фрагментов данных изображения, включенных в видеопоток. Каждый фрагмент информации атрибутов аудиопотока несет информацию, указывающую, какого рода сжимающий кодек используется для сжатия аудиопотока, сколько каналов включено в аудиопоток, какой язык поддерживает аудиопоток и насколько высока частота дискретизации. Информация атрибутов видеопотока и информация атрибутов аудиопотока используются для инициализации декодера, прежде чем проигрыватель начнет воспроизводить информацию.
[0129] В настоящем варианте осуществления, мультиплексированные данные, которые должны быть использованы, относятся к типу потока, включенному в PMT. Кроме того, когда мультиплексированные данные записываются на носитель записи, используется информация атрибутов видеопотока, включенная в информацию мультиплексированных данных. В частности, способ кодирования движущихся изображений или устройство кодирования движущихся изображений, описанное в каждом из вариантов осуществления, включает в себя этап или блок для выделения уникальной информации, указывающей видеоданные, генерируемые способом кодирования движущихся изображений или устройством кодирования движущихся изображений в каждом из вариантов осуществления, типу потока, включенному в PMT или информацию атрибутов видеопотока. Благодаря конфигурации, видеоданные, генерируемые способом кодирования движущихся изображений или устройством кодирования движущихся изображений, описанным в каждом из вариантов осуществления, можно отличать от видеоданных, которые согласуются с другим стандартом.
[0130] Кроме того, Фиг.25 иллюстрирует этапы способа декодирования движущихся изображений согласно настоящему варианту осуществления. На этапе exS100, из мультиплексированных данных получается тип потока, включенный в PMT или информацию атрибутов видеопотока. Затем, на этапе exS101, производится определение, указывает ли тип потока или информация атрибутов видеопотока, что мультиплексированные данные генерируются способом кодирования движущихся изображений или устройством кодирования движущихся изображений в каждом из вариантов осуществления. Когда определено, что тип потока или информация атрибутов видеопотока указывает, что мультиплексированные данные генерируются способом кодирования движущихся изображений или устройством кодирования движущихся изображений в каждом из вариантов осуществления, на этапе exS102, декодирование осуществляется способом декодирования движущихся изображений в каждом из вариантов осуществления. Кроме того, когда тип потока или информация атрибутов видеопотока указывает согласование с общепринятыми стандартами, например MPEG-2, MPEG4-AVC и VC-1, на этапе exS103, декодирование осуществляется способом декодирования движущихся изображений в соответствии с общепринятыми стандартами.
[0131] Таким образом, выделение нового уникального значения типу потока или информации атрибутов видеопотока позволяет определять, может ли способ декодирования движущихся изображений или устройство декодирования движущихся изображений, которые описаны в каждом из вариантов осуществления, осуществлять декодирование. Даже когда мультиплексированные данные согласуются с другим стандартом, можно выбирать надлежащий способ или устройство декодирования. Таким образом, появляется возможность декодирования информации без ошибок. Кроме того, в вышеописанных устройствах и системах можно использовать способ или устройство кодирования движущихся изображений, или способ или устройство декодирования движущихся изображений в настоящем варианте осуществления.
[0132] ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 5
Каждый из способа кодирования движущихся изображений, устройства кодирования движущихся изображений, способа декодирования движущихся изображений и устройства декодирования движущихся изображений в каждом из вариантов осуществления обычно обеспечивается в форме интегральной схемы или большой интегральной схемы (БИС). В порядке примера БИС, Фиг.26 иллюстрирует конфигурацию БИС ex500, выполненной на одном кристалле. БИС ex500 включает в себя элементы ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508 и ex509, которые будут описан ниже, и элементы соединены друг с другом через шину ex510. Блок ex505 питания активируется путем подачи мощности на каждый из элементов при включении блока ex505 питания.
[0133] Например, при осуществлении кодирования, БИС ex500 принимает AV-сигнал от микрофона ex117, камеры ex113 и пр. через IO ex509 AV под управлением блока ex501 управления, включающего в себя ЦП ex502, контроллер ex503 памяти, контроллер ex504 потоков и блок ex512 управления частотой возбуждения. Принятый AV-сигнал временно хранится во внешней памяти ex511, например SDRAM. Под управлением блока ex501 управления, сохраненные данные сегментируются на фрагменты данных согласно объему и скорости обработки для передачи на блок ex507 обработки сигнала. Затем блок ex507 обработки сигнала кодирует аудиосигнал и/или видеосигнал. При этом кодирование видеосигнала представляет собой кодирование, описанное в каждом из вариантов осуществления. Кроме того, блок ex507 обработки сигнала иногда мультиплексирует кодированные аудиоданные и кодированные видеоданные, и IO ex506 потока выводит мультиплексированные данные. Обеспеченные мультиплексированные данные передаются на базовую станцию ex107 или записываются на носители ex215 записи. При мультиплексировании массивов данных, данные должны временно сохраняться в буфере ex508, чтобы массивы данных синхронизировались друг с другом.
[0134] Хотя память ex511 является элементом, не входящим в БИС ex500, она может входить в состав БИС ex500. Буфер ex508 не ограничивается одним буфером, но может состоять из буферов. Кроме того, БИС ex500 может быть выполнена в виде одного кристалла или множества кристаллов.
[0135] Кроме того, хотя блок ex501 управления включает в себя ЦП ex502, контроллер ex503 памяти, контроллер ex504 потоков, блок ex512 управления частотой возбуждения, конфигурация блока ex501 управления этим не ограничивается. Например, блок ex507 обработки сигнала может дополнительно включать в себя ЦП. Включение другого ЦП в блок ex507 обработки сигнала может повышать скорость обработки. Кроме того, в порядке другого примера, ЦП ex502 может выступать в роли или быть частью блока ex507 обработки сигнала, и, например, может включать в себя блок обработки аудиосигнала. В таком случае, блок ex501 управления включает в себя блок ex507 обработки сигнала или ЦП ex502, включающий в себя часть блока ex507 обработки сигнала.
[0136] Здесь используется аббревиатура БИС, но также можно употреблять термин ИС, системная БИС, супер-БИС или ультра-БИС в зависимости от степени интеграции.
[0137] Кроме того, пути достижения интеграции не ограничиваются БИС, и особая схема или процессор общего назначения и т.д. также может обеспечивать интеграцию. С той же целью можно использовать вентильную матрицу, программируемую пользователем (FPGA), которая может быть запрограммирована после изготовления LSI, или реконфигурируемый процессор, который допускает реконфигурирование соединения или конфигурации БИС.
[0138] В будущем, с развитием полупроводниковой технологии, на смену БИС может придти совершенно новая технология. Функциональные блоки можно интегрировать с использованием такой технологии. Существует возможность применения настоящего изобретения к биотехнологии.
[0139] ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 6
Когда видеоданные, генерируемые способом кодирования движущихся изображений или устройством кодирования движущихся изображений, описанным в каждом из вариантов осуществления, декодируются, по сравнению со случаем декодирования видеоданных, которые согласуются с общепринятым стандартом, например, MPEG-2, MPEG4-AVC и VC-1, объем обработки, вероятно, возрастает. Таким образом, БИС ex500 необходимо устанавливать на частоту возбуждения, более высокую, чем у ЦП ex502, подлежащего использованию при декодировании видеоданных в соответствии с общепринятым стандартом. Однако при установлении более высокой частоты возбуждения возникает проблема увеличения энергопотребления.
[0140] Для решения проблемы, устройство декодирования движущихся изображений, например телевизор ex300, и БИС ex500 конфигурируется для определения, с каким стандартом согласуются видеоданные, и переключения между частотами возбуждения согласно определенному стандарту. Фиг.27 иллюстрирует конфигурацию ex800 в настоящем варианте осуществления. Блок ex803 переключения частоты возбуждения устанавливает частоту возбуждения на более высокую частоту возбуждения, когда видеоданные генерируются способом кодирования движущихся изображений или устройством кодирования движущихся изображений, описанным в каждом из вариантов осуществления. Затем блок ex803 переключения частоты возбуждения предписывает блоку ex801 обработки декодирования, который выполняет способ декодирования движущихся изображения, описанный в каждом из вариантов осуществления, для декодирования видеоданных. Когда видеоданные согласуются с общепринятым стандартом, блок ex803 переключения частоты возбуждения устанавливает частоту возбуждения на более низкую частоту возбуждения, чем для видеоданных, генерируемых способом кодирования движущихся изображений или устройством кодирования движущихся изображений, описанным в каждом из вариантов осуществления. Затем блок ex803 переключения частоты возбуждения предписывает блоку ex802 обработки декодирования, который согласуется с общепринятым стандартом, декодировать видеоданные.
[0141] В частности, блок ex803 переключения частоты возбуждения включает в себя ЦП ex502 и блок ex512 управления частотой возбуждения на Фиг.26. При этом каждый из блока ex801 обработки декодирования, который выполняет способ декодирования движущихся изображения, описанный в каждом из вариантов осуществления, и блока ex802 обработки декодирования, который согласуется с общепринятым стандартом, соответствует блоку ex507 обработки сигнала на Фиг.26. ЦП ex502 определяет, с каким стандартом согласуются видеоданные. Затем блок ex512 управления частотой возбуждения определяет частоту возбуждения на основании сигнала от ЦП ex502. Кроме того, блок ex507 обработки сигнала декодирует видеоданные на основании сигнала от ЦП ex502. Например, информация идентификации, описанная в варианте осуществления 4, вероятно, используется для идентификации видеоданных. Информация идентификации не ограничивается описанной в варианте осуществления 4, но может представлять собой любую информацию, указывающую, с каким стандартом согласуются видеоданные. Например, когда стандарт, с которым согласуются видеоданные, можно определить на основании внешнего сигнала для определения, что видеоданные используется для телевизора или диска и т.д., определение можно производить на основании такого внешнего сигнала. Кроме того, ЦП ex502 выбирает частоту возбуждения на основании, например, поисковой таблицы, в которой стандарты видеоданных связаны с частотами возбуждения, как показано на Фиг.29. Частоту возбуждения можно выбирать, сохраняя поисковую таблицу в буфере ex508 и во внутренней памяти БИС, при том что ЦП ex502 может обращаться к поисковой таблице.
[0142] Фиг.28 иллюстрирует этапы выполнения способа в настоящем варианте осуществления. Прежде всего, на этапе exS200, блок ex507 обработки сигнала получает информацию идентификации из мультиплексированных данных. Затем, на этапе exS201, ЦП ex502 определяет, генерируются ли видеоданные способом кодирования и устройством кодирования, описанными в каждом из вариантов осуществления, на основании информации идентификации. Когда видеоданные генерируются способом кодирования движущихся изображений и устройством кодирования движущихся изображений, описанными в каждом из вариантов осуществления, на этапе exS202, ЦП ex502 передает сигнал для установления частоты возбуждения на более высокую частоту возбуждения на блок ex512 управления частотой возбуждения. Затем блок ex512 управления частотой возбуждения устанавливает частоту возбуждения на более высокую частоту возбуждения. С другой стороны, когда информация идентификации указывает, что видеоданные согласуются с общепринятым стандартом, например MPEG-2, MPEG4-AVC и VC-1, на этапе exS203, ЦП ex502 передает сигнал для установления частоты возбуждения на более низкую частоту возбуждения на блок ex512 управления частотой возбуждения. Затем блок ex512 управления частотой возбуждения устанавливает частоту возбуждения на более низкую частоту возбуждения, чем в случае, когда видеоданные генерируются способом кодирования движущихся изображений и устройством кодирования движущихся изображений, описанными в каждом из вариантов осуществления.
[0143] Кроме того, совместно с переключением частот возбуждения, энергосберегающий эффект можно повысить путем изменения напряжения, подаваемого на БИС ex500 или устройство, включающее в себя БИС ex500. Например, при установлении более низкой частоты возбуждения напряжение, подаваемое на БИС ex500 или устройство, включающее в себя БИС ex500, вероятно, устанавливается на напряжение, более низкое, чем в случае установления более высокой частоты возбуждения.
[0144] Кроме того, при увеличении объема обработки для декодирования можно устанавливать более высокую частоту возбуждения, и при уменьшении объема обработки для декодирования можно устанавливать более низкую частоту возбуждения согласно способу установления частоты возбуждения. Таким образом, способ установления не ограничивается вышеописанными вариантами. Например, когда объем обработки для декодирования видеоданных в соответствии с MPEG4-AVC больше объема обработки для декодирования видеоданных, генерируемых способом кодирования движущихся изображений и устройством кодирования движущихся изображений, описанными в каждом из вариантов осуществления, частота возбуждения, вероятно, устанавливается в порядке, обратном вышеописанной установке.
[0145] Кроме того, способ установления частоты возбуждения не ограничивается способом установления более низкой частоты возбуждения. Например, когда информация идентификации указывает, что видеоданные генерируются способом кодирования движущихся изображений и устройством кодирования движущихся изображений, описанными в каждом из вариантов осуществления, напряжение, подаваемое на БИС ex500 или устройство, включающее в себя БИС ex500, вероятно, устанавливается более высоким. Когда информация идентификации указывает, что видеоданные согласуются с общепринятым стандартом, например MPEG-2, MPEG4-AVC и VC-1, напряжение, подаваемое на БИС ex500 или устройство, включающее в себя БИС ex500, вероятно, устанавливается более низким. В порядке другого примера, когда информация идентификации указывает, что видеоданные генерируются способом кодирования движущихся изображений и устройством кодирования движущихся изображений, описанными в каждом из вариантов осуществления, работу ЦП ex502, вероятно, не требуется приостанавливать. Когда информация идентификации указывает, что видеоданные согласуются с общепринятым стандартом, например, MPEG-2, MPEG4-AVC и VC-1, работа ЦП ex502, вероятно приостанавливается на определенное время, поскольку ЦП ex502 имеет запас производительности обработки. Даже когда информация идентификации указывает, что видеоданные генерируются способом кодирования движущихся изображений и устройством кодирования движущихся изображений, описанными в каждом из вариантов осуществления, в случае, когда ЦП ex502 имеет запас производительности обработки, работа ЦП ex502, вероятно, приостанавливается на определенное время. В таком случае время приостановки, вероятно, устанавливается более коротким, чем в случае, когда информация идентификации указывает, что видеоданные согласуются с общепринятым стандартом, например MPEG-2, MPEG4-AVC и VC-1.
[0146] Соответственно, энергосберегающий эффект можно повысить путем переключения между частотами возбуждения в соответствии со стандартом, с которым согласуются видеоданные. Кроме того, когда БИС ex500 или устройство, включающее в себя БИС ex500, возбуждается с использованием батареи, время работы батареи может быть продлено за счет энергосберегающего эффекта.
[0147] ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 7
Возможны случаи, когда множество видеоданных, которые согласуются с разными стандартами, поступает на устройства и системы, например телевизор и мобильный телефон. Для обеспечения возможности декодирования множества видеоданных, которые согласуются с разными стандартами, блок ex507 обработки сигнала, входящий в состав БИС ex500, должен согласовываться с разными стандартами. Однако, при индивидуальном использовании блоков ex507 обработки сигнала, которые согласуются с соответствующими стандартами, возникают проблемы увеличения масштаба схемы БИС ex500 и увеличения стоимости.
[0148] Для решения проблемы предлагается конфигурация, в которой частично совместно используются блок обработки декодирования для реализации способа декодирования движущихся изображений, описанный в каждом из вариантов осуществления, и блок обработки декодирования, который согласуется с общепринятым стандартом, например MPEG-2, MPEG4-AVC и VC-1. Пример конфигурации показан на Фиг.30A как Ex900. Например, способ декодирования движущихся изображений, описанный в каждом из вариантов осуществления, и способ декодирования движущихся изображений, который согласуется с MPEG4-AVC, частично обобществляют такие детали обработки, как статистическое кодирование, обратное квантование, деблокирующую фильтрацию и прогнозирование с компенсацией движения. Детали обработки, подлежащие совместному использованию, вероятно, включают в себя использование блока ex902 обработки декодирования, который согласуется с MPEG4-AVC. Напротив, специализированный блок ex901 обработки декодирования, вероятно, используется для другой обработки, уникальной для настоящего изобретения. Поскольку настоящее изобретение характеризуется, в частности, обработкой внутреннего прогнозирования, для обработки внутреннего прогнозирования используется, например, специализированный блок ex901 обработки декодирования. В противном случае, блок обработки декодирования, вероятно, совместно используется для одного из статистического кодирования, обратного квантования, деблокирующей фильтрации и компенсации движения или полной обработки. Блок обработки декодирования для реализации способа декодирования движущихся изображений, описанный в каждом из вариантов осуществления, может совместно использоваться для обработки, подлежащей совместному использованию, и специализированный блок обработки декодирования можно использовать для обработки, уникальной для MPEG4-AVC.
[0149] Кроме того, на Фиг.30B показан другой пример ex1000, в котором обработка частично совместно используется. Этот пример использует конфигурацию, включающую в себя специализированный блок ex1001 обработки декодирования, который поддерживает обработку, уникальную для настоящего изобретения, специализированный блок ex1002 обработки декодирования, который поддерживает обработку, уникальную для другого общепринятого стандарта, и блок ex1003 обработки декодирования, который поддерживает обработку, которая должна быть совместно использована между способом декодирования движущихся изображений в настоящем изобретении и традиционном способе декодирования движущихся изображений. При этом специализированные блоки ex1001 и ex1002 обработки декодирования не обязательно специализированы для обработки настоящего изобретения и обработки общепринятого стандарта, соответственно, и могут быть способны осуществлять общую обработку. Кроме того, конфигурацию настоящего варианта осуществления можно реализовать посредством БИС ex500.
[0150] Таким образом, уменьшение масштаба схемы БИС и уменьшение стоимости возможны за счет совместного использования блока обработки декодирования для обработки, подлежащей совместному использованию между способом декодирования движущихся изображений в настоящем изобретении и способом декодирования движущихся изображений в соответствии с общепринятым стандартом.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
[0151] Способ кодирования движущихся изображений и способ декодирования движущихся изображений согласно настоящему раскрытию пригодны для применения к любым мультимедийным данным и позволяют повышать коэффициент сжатия. Например, они пригодны в качестве способа кодирования движущихся изображений и способа декодирования движущихся изображений для накопления, передачи, осуществления связи и пр. с использованием мобильных телефонов, устройств DVD, персональных компьютеров и пр.
ПЕРЕЧЕНЬ ССЫЛОЧНЫХ ПОЗИЦИЙ
100 устройство кодирования движущихся изображений
101 блок ортогонального преобразования
102 блок квантования
103 блок обратного квантования
104 блок обратного ортогонального преобразования
105 память блоков
106 память кадров
107 блок внутреннего прогнозирования
108 блок внешнего прогнозирования
109 блок управления внешним прогнозированием
110 блок определения типа изображения
111 блок вычисления кандидатов в блоки слияния
112 память colPic
113 блок кодирования с переменной длиной слова
114 вычитатель
115 сумматор
116 блок переключения
200 устройство декодирования движущихся изображений
201 блок декодирования с переменной длиной слова
202 блок обратного квантования
203 блок обратного ортогонального преобразования
204 память блоков
205 память кадров
206 блок внутреннего прогнозирования
207 блок внешнего прогнозирования
208 блок управления внешним прогнозированием
209 блок вычисления кандидатов в блоки слияния
210 память colPic
211 сумматор
212 переключатель
Изобретение относится к декодированию движущихся изображений на поблочной основе с использованием прогнозирования между изображениями. Техническим результатом является повышение эффективности декодирования. Указанный технический результат достигается тем, что осуществляют определение первого элемента-кандидата в списке кандидатов и второго элемента-кандидата в списке кандидатов, причем упомянутый первый элемент-кандидат имеет первый вектор движения, который использовался для декодирования первого блока, а упомянутый второй кандидат имеет второй вектор движения, который использовался для декодирования второго блока, который отличается от первого блока, а список кандидатов включает в себя множество элементов-кандидатов, один из которых выбирается для использования для декодирования текущего блока; генерируют новый элемент-кандидат посредством объединения двух векторов движения, при этом один из упомянутых двух векторов движения является первым вектором движения, а другой из упомянутых двух векторов движения является вторым вектором движения; декодируют текущий блок с использованием элемента-кандидата, выбираемого из множества элементов-кандидатов, включающего в себя первый элемент-кандидат, второй элемент-кандидат и новый элемент-кандидат. 2 н. и 3 з.п. ф-лы, 35 ил.
1. Способ декодирования движущегося изображения для декодирования текущего блока, содержащий:
определение первого элемента-кандидата в списке кандидатов и второго элемента-кандидата в списке кандидатов, причем упомянутый первый элемент-кандидат включает в себя первый вектор движения, который использовался для декодирования первого блока, а упомянутый второй кандидат включает в себя второй вектор движения, который использовался для декодирования второго блока, который отличается от первого блока, при этом список кандидатов включает в себя множество элементов-кандидатов, один из которых выбирается для использования для декодирования текущего блока, причем первый вектор движения соответствует (i) первому направлению предсказания и (ii) индексу первого опорного изображения, соответствующему первому блоку, а второй вектор движения соответствует (i) второму направлению предсказания и (ii) индексу второго опорного изображения, соответствующему второму блоку;
генерируют новый элемент-кандидат, имеющий два вектора движения, посредством объединения упомянутого первого вектора движения и упомянутого второго вектора движения; и
декодируют текущий блок с использованием элемента-кандидата, выбираемого из множества элементов-кандидатов, включающего в себя первый элемент-кандидат, второй элемент-кандидат и новый элемент-кандидат.
2. Способ декодирования движущегося изображения по п. 1, в котором, когда элемент-кандидат, который выбирается для использования для декодирования текущего блока, является новым элементом-кандидатом, новый элемент-кандидат используется для би-предсказания.
3. Способ декодирования движущегося изображения по п. 1, в котором, когда элемент-кандидат, который выбирается для использования для декодирования текущего блока, является новым элементом-кандидатом, два вектора движения нового кандидата используются для би-предсказания.
4. Способ декодирования движущегося изображения по п. 1, в котором список первых опорных изображений включает в себя индекс первого опорного изображения для идентификации первого опорного изображения, в котором список вторых опорных изображений включает в себя индекс второго опорного изображения для идентификации второго опорного изображения, и при этом, когда элемент-кандидат, который выбирается для использования для декодирования текущего блока, является новым кандидатом, текущий блок декодируется с использованием двух векторов движения, индекса первого опорного изображения и индекса второго опорного изображения.
5. Устройство декодирования движущегося изображения, которое декодирует текущий блок, содержащее:
блок определения, выполненный с возможностью определения первого элемента-кандидата в списке кандидатов и второго элемента-кандидата в списке кандидатов, причем упомянутый первый элемент-кандидат включает в себя первый вектор движения, который использовался для декодирования первого блока, а упомянутый второй элемент-кандидат включает в себя второй вектор движения, который использовался для декодирования второго блока, который отличается от первого блока, при этом список кандидатов включает в себя множество элементов-кандидатов, один из которых выбирается для использования для декодирования текущего блока, причем первый вектор движения соответствует (i) первому направлению предсказания и (ii) индексу первого опорного изображения, соответствующему первому блоку, а второй вектор движения соответствует (i) второму направлению предсказания и (ii) индексу второго опорного изображения, соответствующему второму блоку;
блок генерирования, выполненный с возможностью генерирования нового элемента-кандидата, имеющего два вектора движения, посредством объединения упомянутого первого вектора движения и упомянутого второго вектора движения; и
блок декодирования, выполненный с возможностью декодирования текущего блока с использованием элемента-кандидата, выбираемого из множества элементов-кандидатов, включающего в себя первый элемент-кандидат, второй элемент-кандидат и новый элемент-кандидат.
WO 2010148919 A1, 2010-12-29;WO 2009126260 A1, 2009-10-15;EP 2250816 A1, 2010-11-17;RU 2009114363 A, 2010-10-20 | |||
BYEONG-MOON JEON, New syntax for Bi-directional mode in MH pictures, Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, JVT-C121, 3rd Meeting: Fairfax, Virginia, 6-10 May 2002 | |||
KAMP S | |||
et al, Multihypothesis prediction using |
Авторы
Даты
2016-10-27—Публикация
2012-02-28—Подача