УСТРОЙСТВО ОБРАБОТКИ ИЗОБРАЖЕНИЯ И СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЯ
IMAGE PROCESSING DEVICE AND IMAGE PROCESSING METHOD

Область техники, к которой относится изобретение
Настоящее изобретение относится к устройству обработки изображения и способу обработки изображения.
Уровень техники
Технология сжатия данных, такая как стандарт H.26x (ITU-T Q6/16VCEG) и стандарт MPEG (Алгоритм сжатия подвижного изображения, разработанного этой группой), обеспечивает сжатие данных изображения, используя избыточность, являющуюся специфичной для изображения, которая широко использовалась для осуществления эффективной передачи или накопления цифровых изображений. В Объединённой Модели Усовершенствованного Сжатия Видеокодирования, как части функции MPEG4, были изложены международные стандарты, называемые H.264 и MPEG-4 Part 10 (Усовершенствованное Видеокодирование; AVC), способные реализовать более высокую степень сжатия за счёт включения новых функций на основании стандарта H. 26x.
Одной важной технологией в данных способах кодирования изображения является межкадровое предсказание. В межкадровом предсказании контент изображения, подлежащий кодированию, предсказывается посредством использования опорного изображения, и только разница между предсказанным изображением и фактическим изображением кодируется. Реализуется сжатие размера кода. Когда объект осуществляет существенное перемещение в последовательности изображений, однако, различие между предсказанным изображением и фактическим изображением увеличивается, и высокая степень сжатия не может быть достигнута путём простого межкадрового предсказания. Таким образом, сделана попытка уменьшить ошибку предсказания в межкадровом предсказании посредством распознавания перемещения объекта как вектор движения, и компенсируя значение пикселя в области, где перемещение появляется в соответствии с вектором движения. Такая технология называется компенсацией движения.
HEVC (высокоэффективное видеокодирование), находящийся сейчас в процессе стандартизации, рассматривается в качестве способа кодирования изображения следующего поколения, идущим на смену H.264/AVC, каждая ячейка (CU) кодирования изображении дополнительно делится на один или несколько блоков (PU) предсказания, и вектор движения может быть установлен на каждый блок предсказания. Размер и форма блока предсказания в HEVC более варьированы, чем блок в H.264/AVC, и движение объекта может быть отражено при компенсации движения более правильно (см. непатентный документ 1 ниже). Непатентный документ 2, указанный ниже, предлагает технологию, которая предсказывает вектор движения с использованием пространственной корреляции или временной корреляции движения и кодирует только различие между предсказанным вектором движения и фактическим вектором движения для уменьшения объема кода вектора движения. Непатентный документ 3, указанный ниже, предлагает сократить объем кода данных о перемещении путём объединения блоков, имеющих общие данные о перемещении соседних блоков в изображении.
Другой важной технологией в вышеупомянутом способе кодирования изображения является масштабируемое кодирование видео (SVC). Масштабируемое кодирование видео представляет собой технологию, которая кодирует в иерархическом порядке уровень иерархической структуры, передающий сигнал нечёткого изображения и уровень, передающий сигнал изображения высокого разрешения. Типичные атрибуты, расположенные в иерархическом порядке, при реализации технологии масштабируемого кодирования видео, в основном, включают в себя следующие три:
- пространственную масштабируемость: пространственное разрешение или размеры изображений, расположенные в иерархическом порядке;
- временную масштабируемость: частота кадров расположена иерархически;
- SNR (отношение сигнал/шум) масштабируемость: отношения сигнал/шум расположены в иерархическом порядке.
Дополнительно, хотя ещё и не принято в стандарте, масштабируемость битовой глубины и масштабируемость цветового формата также обсуждаются.
Перечень ссылок
Непатентная литература
Непатентная литература 1: JCTVC - B205, "Test Model under Consideration", Joint Collaborative Team on Video Coding Meeting: Geneva, CH, 21-28 июля 2010 года.
Непатентная литература 2: VCEG - AI22 "Motion Vector Coding with Optimal PMV Selection" , Jungyoup Yang et al, июль 2008 года.
Непатентная Литература 3: JCTVC - A116 , «Video Coding Technology Proposal by Fraunhofer HHI» , M.Winken et al, апрель, 2010.
Раскрытие изобретения
Техническая задача
Способ, предложенный в непатентной литературе 2, и способ, предложенный в непатентной литературе 3, описанные выше, не предполагают масштабируемого кодирования видео. При применении таких существующих способов к каждому уровню изображения, подлежащего масштабируемому кодированию с видео, объем кода может быть уменьшен до некоторой степени. Однако в зависимости от типа масштабируемого кодирования видео корреляция движения между уровнями заметна. Таким образом, было бы полезно повысить эффективность кодирования, оптимизируя такую корреляцию движения между уровнями.
Задачей технологии в соответствии с настоящим изобретением, является повышение эффективности кодирования путем использования корреляции движения между уровнями изображения, подлежащего масштабируемому кодированию видео.
Решение задачи
Согласно настоящему изобретению, предусмотрено устройство обработки изображения, включающее в себя модуль получения информации, который получает установочную информацию для установки вектора движения во второй блок предсказания на втором уровне, соответствующих первому блоку предсказания первого уровня масштабируемого декодирования видеоизображения, содержащего первый уровень и второй уровень, являющийся более высоким, чем первый уровень, при этом установочная информация связана с вектором движения, установленным в первый блок предсказания, и модуль установки вектора движения, который устанавливает вектор движения во второй блок предсказания с использованием установочной информации, полученной модулем получения информации.
Устройство обработки изображения, упомянутое выше, может быть обычно реализовано как устройство декодирования изображения, которое декодирует изображение.
В соответствии с настоящим изобретением предложен способ обработки изображения, включающий в себя получение установочной информации для установки вектора движения во второй блок предсказания на втором уровне, соответствующем первому блоку предсказания на первом уровне масштабируемого декодирования видеоизображения, содержащего первый уровень и второй уровень, являющийся более высоким, чем первый уровень, причем установочная информация связана с вектором движения, установленного в первый блок предсказания, и установку вектора движения второго блока предсказания с использованием полученной установочной информации.
Согласно настоящему изобретению, предусмотрено устройство обработки изображения, включающее в себя модуль генерирования информации, который генерирует установочную информацию для установки вектора движения во второй блок предсказания на втором уровне, соответствующем первому блоку предсказания на первом уровне масштабируемого декодирования видеоизображения, содержащего первый уровень и второй уровень, являющийся более высоким, чем первый уровень, причем установочная информация связана с вектором движения, установленным в первый блок предсказания, и модуль кодирования, который кодирует установочную информацию, генерируемую секцией генерации информации.
Устройство обработки изображения, упомянутое выше, может быть обычно реализовано как устройство кодирования изображения, которое кодирует изображение.
В соответствии с настоящим изобретением, предложен способ обработки изображения, включающий в себя генерирование установочной информации для установки вектора движения во второй блок предсказания на втором уровне, соответствующем первому блоку предсказания на первом уровне масштабируемого декодирования видеоизображения, содержащего первый уровень и второй уровень, являющийся более высоким, чем первый уровень, причем установочная информация, связанная с вектором движения, установленного в первый блок предсказания, и кодирование сгенерированной установочной информации.
Полезные эффекты изобретения
В соответствии с настоящим изобретением эффективность кодирования дополнительно увеличивается посредством оптимизации корреляции движения между уровнями изображения, которое масштабируемым образом кодируется.
Краткое описание чертежей
Фиг. 1 является блок-схемой, показывающей конфигурацию устройства кодирования изображения в соответствии с вариантом осуществления.
Фиг. 2 представляет собой пояснительный вид, иллюстрирующий пространственную масштабируемость.
Фиг. 3 представляет собой пояснительный вид, иллюстрирующий SNR масштабируемость.
Фиг. 4 является блок-схемой, показывающей пример подробной конфигурации секции оценки параметров движения в соответствии с первым примером.
Фиг. 5 является первым пояснительный видом, иллюстрирующим пример кандидата предиктора для предсказания вектора движения.
Фиг. 6 представляет собой второй пояснительный вид, иллюстрирующий пример кандидата предиктора для предсказания вектора движения.
Фиг. 7 является блок-схемой алгоритма, показывающей пример последовательности реализации процесса оценки движения секцией оценки параметров движения в соответствии с первым примером.
Фиг. 8 является блок-схемой, показывающей пример подробной конфигурации секции оценки параметров движения, в соответствии со вторым примером.
Фиг. 9 является пояснительным видом, иллюстрирующий пример межуровневого предиктора.
Фиг. 10 является блок-схемой алгоритма, показывающей пример последовательности реализации процесса оценки движения секцией оценки параметров движения согласно второму примеру.
Фиг. 11 является блок-схемой, показывающей пример подробной конфигурации секции оценки параметров движения, в соответствии с третьим примером.
Фиг. 12A является пояснительным видом, показывающим первый пример объединения информации.
Фиг. 12B является пояснительный видом, показывающим второй пример объединения информации.
Фиг. 12C является пояснительный видом, иллюстрирующим третий пример объединения информации.
Фиг. 13 является блок-схемой алгоритма, показывающей пример последовательности реализации процесса оценки движения секцией оценки параметров движения, в соответствии с третьим примером.
Фиг. 14 является блок-схемой, показывающей пример подробной конфигурации секции оценки параметров движения, в соответствии с четвертым примером.
Фиг. 15A является пояснительным видом, показывающий первый пример объединения информации.
Фиг. 15B является пояснительным видом, показывающий второй пример объединения информации.
Фиг. 15C является пояснительным видом, иллюстрирующий третий пример объединения информации.
Фиг. 16 является блок-схемой алгоритма, показывающей пример последовательности осуществления процесса оценки движения секцией оценки параметров движения, в соответствии с четвертым примером.
Фиг. 17 является блок-схемой, показывающей пример конфигурации устройства декодирования изображения согласно варианту осуществления.
Фиг. 18 является блок-схемой, показывающей пример подробной конфигурации секции компенсации движения в соответствии с первым примером.
Фиг. 19 является блок-схемой алгоритма, показывающей пример последовательности реализации процесса компенсации движения секцией компенсации движения в соответствии с первым примером.
Фиг. 20 является блок-схемой, показывающей пример подробной конфигурации секции компенсации движения в соответствии со вторым примером.
Фиг. 21 является блок-схемой алгоритма, показывающей пример последовательности реализации процесса компенсации движения секцией компенсации движения в соответствии со вторым примером.
Фиг. 22 является блок-схемой, показывающей пример подробной конфигурации секции компенсации движения в соответствии с третьим примером.
Фиг. 23 является блок-схемой алгоритма, показывающей пример последовательности реализации процесса компенсации движения секцией компенсации движения в соответствии с третьим примером.
Фиг. 24 является блок-схемой, показывающей пример подробной конфигурации секции компенсации движения в соответствии с четвертым примером.
Фиг. 25 является блок-схемой алгоритма, показывающей пример последовательности реализации процесса компенсации движения секцией компенсации движения в соответствии с четвертым примером.
Фиг. 26 является блок-схемой, показывающей пример схематической конфигурации телевизионного приёмника.
Фиг. 27 является блок-схемой, показывающей пример схематической конфигурации мобильного телефона.
Фиг. 28 является блок-схемой, показывающей пример схематической конфигурации устройства записи/воспроизведения.
Фиг. 29 является блок-схемой, показывающей пример схематической конфигурации устройства захвата изображения.
Осуществление изобретения
Далее, предпочтительные варианты осуществления настоящего изобретения будут описаны подробно со ссылкой на прилагаемые чертежи. Следует отметить, что в данном описании и чертежах элементы, которые имеют по существу одинаковые функции и структуры, обозначены теми же ссылочными позициями и повторение объяснения опущено.
Описание будет представлено в следующем порядке:
1. Пример конфигурации устройства кодирования изображения
2. Пример подробной конфигурации секции оценки параметров движения
2-1. Первый пример
2-2. Второй пример
2-3. Третий пример
2-4. Четвёртый пример
3. Пример конфигурации устройства декодирования изображения
4. Пример подробной конфигурации секции компенсации движения
4-1. Первый пример
4-2. Второй пример
4-3. Третий пример
4-4. Четвёртый пример
5. Пример применения
6. Заключение
1. Пример конфигурации устройства кодирования изображения в соответствии с вариантом осуществления
Фиг. 1 является блок-схемой, показывающей пример конфигурации устройства 10 кодирования изображения в соответствии с вариантом осуществления. Как показано на фиг. 1, устройство 10 для кодирования изображения включает в себя А/D (аналого- цифровую) секцию 11 преобразования, сортировочный буфер 12, секцию 13 вычитания, секцию 14 ортогонального преобразования, секцию 15 квантования, секцию 16 кодирования без потерь, буфер 17 накопления, секцию 18 управления скоростью передачи, секцию 21 инверсного квантования, секцию 22 обратного ортогонального преобразования, секцию 23 сложения, деблочный фильтр 24, память 25 кадров, переключатели 26 и 27, секцию 30 внутреннего предсказания и секцию 40 оценки параметров движения.
А/D секция 11 преобразования, преобразует входной сигнал изображения в аналоговом формате в данные изображения в цифровом формате и вырабатывает последовательность цифровых данных изображения в сортировочный буфер 12.
Сортировочный буфер 12 сортирует изображения, включённые в состав последовательности входных данных изображения, переданные из А/D секции 11 преобразования. После сортировки изображений согласно с GOP (группа изображений) структурой в соответствии с процессом кодирования, сортировочный буфер 12 вырабатывает данные изображения, которые были отсортированы, в секцию 13 вычитания, в секцию 30 внутреннего предсказания и секцию 40 оценки параметров движения.
Входные данные изображения из сортировочного буфера 12 и входные предсказанные данные изображения из секции 30 внутреннего предсказания или секции 40 оценки параметров движения, которые будут описаны ниже, поставляются в секцию 13 вычитания. Секция 13 вычитания рассчитывает данные ошибки предсказания, которая представляет собой разность между входными данными изображения из сортировочного буфера 12 и предсказанными данными изображения, и вырабатывает вычисленную ошибку предсказания данных в секцию 14 ортогонального преобразования.
Секция 14 ортогонального преобразования выполняет ортогональное преобразование данных ошибки предсказания, полученных из секции 13 вычитания. Ортогональное преобразование, осуществляемое секцией 14 ортогонального преобразования, может быть дискретным косинусоидальным преобразованием (DCT) или преобразованием Карунена-Лоэва, например. Секция 14 ортогонального преобразования вырабатывает коэффициент преобразования данных, полученных в процессе ортогонального преобразования, в секцию 15 квантования.
Коэффициент преобразования входных данных из секции 14 ортогонального преобразования и сигнал управления скоростью передачи из секции 18 управления скоростью передачи, которые будут описаны ниже, поставляются в секцию 15 квантования. Секция 15 квантования квантует коэффициент преобразования данных и вырабатывает квантованный коэффициент преобразования данных (здесь и далее называемый квантованные данные), в секцию 16 кодирования без потерь и секцию 21 инверсного квантования. Кроме того, секция 15 квантования переключает параметр квантования (шкала квантования) на основе сигнала управления скоростью из секции 18 управления скоростью передачи для изменения скорости передачи битов квантованных данных для ввода в секцию 16 кодирования без потерь.
Секция 16 кодирования без потерь генерирует кодированный поток, выполняя процесс кодирования без потерь квантованных входных данных, полученных из секции 15 квантования. Кодирование без потерь, осуществляемое секцией 16 кодирования без потерь, может быть кодированием переменной длины или арифметическим кодированием, например. Более того, секция 16 кодирования без потерь мультиплексирует информацию о внутреннем предсказании или информацию о внешнем предсказании из переключателя 27 в область заголовка кодированного потока. Затем блок 16 кодирования без потерь вырабатывает сгенерированный кодированный поток в буфер 17 накопления.
Буфер 17 накопления временно аккумулирует кодированный входной поток, поступающий из блока 16 кодирования без потерь. Затем буфер 17 накопления поставляет аккумулированный кодированный поток в секцию передачи (не показано) (например, интерфейс связи или интерфейс периферийных устройств) со скоростью в соответствии с полосой передачи канала.
Секция 18 управления скоростью осуществляет мониторинг наличия свободного пространства буфера 17 накопления. Затем блок 18 управления скоростью генерирует сигнал управления скоростью в зависимости от наличия свободного места в буфере 17 накопления и вырабатывает сгенерированный сигнал управления скоростью в секцию 15 квантования. Например, когда нет больше свободного пространства в буфере 17 накопления, секция 18 управления скоростью передачи формирует сигнал управления скоростью передачи для снижения битовой скорости передачи квантованных данных. Кроме того, например, если свободное пространство в буфере 17 накопления достаточно велико, секция 18 управления скоростью передачи формирует сигнал управления скоростью передачи для увеличения битовой скорости передачи квантованных данных.
Секция 21 инверсного квантования выполняет процесс обратного квантования квантованных входных данных, поступивших из секции 15 квантования. Затем секция 21 обратного квантования вырабатывает коэффициент преобразования данных, полученных в процессе обратного квантования, в секцию 22 обратного ортогонального преобразования.
Секция 22 обратного ортогонального преобразования осуществляет процесс обратного ортогонального преобразования коэффициента преобразования входных данных, поставленных из секции 21 инверсного квантования, чтобы тем самым восстановить предсказанные данные об ошибках. Затем секция 22 обратного ортогонального преобразования вырабатывает восстановленные предсказанные данные об ошибках в секцию 23 сложения.
Кроме того, секция 23 сложения добавляет восстановленные предсказанные данные об ошибках, поступающее на вход из секции 22 обратного ортогонального преобразования, и предсказанные данные изображения, поступающее на ввод из секции 30 внутреннего предсказания или секции 40 оценки параметров движения, чтобы тем самым генерировать декодированные данные изображения. Затем секция 23 сложения вырабатывает сгенерированные декодированные данные изображения в деблочный фильтр 24 и память 25 кадров.
Деблочный фильтр 24 выполняет процесс фильтрации для уменьшения видимой блочности структуры изображения, появляющиеся во время кодирования изображения. Деблочный фильтр 24 фильтрует декодированные данные изображения, поступающие на вход из секции 23 сложения, для удаления видимой блочности структуры изображения и вырабатывает декодированные данные изображения после фильтрации в память 25 кадров.
Память 25 кадров хранит, используя носитель данных, декодированные данные изображения, поступающие на вход из секции 23 сложения, и декодированные данные изображения после фильтрации, поступившие на вход из деблочного фильтра 24.
Переключатель 26 считывает данные декодированного изображения после фильтрации, которые должны использоваться для внешнего предсказания из памяти 25 кадров, и поставляет декодированные данные изображения, которые были считаны, в секцию 40 оценки параметров движения в качестве данных опорного изображения. Кроме того, переключатель 26 считывает данные декодированного изображения до фильтрации, которые должны быть использованы для внутреннего предсказания из памяти 25 кадров, и поставляет декодированные данные изображения, которые были считаны, в секцию 30 внутреннего предсказания в качестве данных опорного изображения.
В режиме внешнего предсказания, переключатель 27 вырабатывает данные предсказанного изображения как результат внешнего предсказания из секции 40 оценки параметров движения в секцию 13 вычитания и также вырабатывает данные внешнего предсказания в секцию 16 кодирования без потерь. В режиме внутреннего предсказания, переключатель 27 вырабатывает данные предсказанного изображения как результат внутреннего предсказания, поставленные из секции 30 внутреннего предсказания в секцию 13 вычитания, и также вырабатывает данные внутреннего предсказания в секцию 16 кодирования без потерь. Переключатель 27 переключает режим внешнего предсказания и режим внутреннего предсказания в соответствии с величиной стоимостной функции, поставленной из секции 30 внутреннего предсказание или секции 40 оценки параметров движения.
Секция 30 внутреннего предсказания осуществляет процесс внутреннего предсказания для каждого блока внутри изображения на основе данных изображения, подлежащих кодированию (исходные данные изображения), направленных на вход из сортировочного буфера 12 и декодированные данные изображения, как данные опорного изображения, поставленные из памяти 25 кадров. Затем секция 30 внутреннего предсказания вырабатывает данные внутреннего предсказания, включающие в себя данные режима предсказания, указывающие оптимальный режим предсказания, значение стоимостной функции и предсказанные данные изображения в переключатель 27.
Секция 40 оценки параметров движения выполняет процесс оценки параметров движения для внешнего предсказания (межкадровое предсказание) на основе данных исходного изображения, поставленных из сортировочного буфера 12, и декодированных данных изображения, поставленных через переключатель 26. Процесс оценки параметров движения секцией 40 оценки параметров движения в соответствии с настоящим вариантом осуществления, реализуется расширением способа, описанного в непатентной литературе 2 или способом, описанным в непатентной литературе 3. В расширенном способе, описанном выше в непатентной литературе 2, секция 40 оценки параметров движения может генерировать информацию предиктора, показывающую оптимальный предиктор для каждого блока предсказания. В расширенном способе, описанном выше в непатентной литературе 3, секция 40 оценки параметров движения может генерировать информацию объединения, показывающую оптимальный режим объединения для каждого блока предсказания. Затем секция 40 оценки параметров движения вырабатывает информацию предиктора или информацию объединения, информацию внешнего предсказания, включающую в себя информацию о векторе движения и информацию опорного изображения, значение стоимостной функции и предсказанные данные изображения на переключатель 27. В следующем разделе, будут описаны четыре примера подробной конфигурации секции 40 оценки параметров движения.
Устройство 10 кодирования изображения повторяет ряд процессов кодирования, описанные здесь, для каждого из множества уровней изображения, которое масштабируемым образом кодирует видео. Первый закодированный уровень является уровнем, называемый базовым уровнем и представляющий нечёткое изображение. Закодированный поток базового уровня может быть независимо декодирован без декодирования кодированных потоков других уровней. Уровни отличные от базового уровня называются улучшенными уровнями, представляющие изображения высокого разрешения. Информация, содержащаяся в кодированном потоке базового уровня, используется для кодированного потока улучшенного уровня для повышения эффективности кодирования. Поэтому, чтобы воспроизвести изображение улучшенного уровня, закодированные потоки обеих базового уровня и улучшенного уровня декодируются. Количество уровней, обработанных в масштабируемом кодировании видео, может быть три или более. В таком случае нижний уровень является базовым уровнем, и остальные уровни являются улучшенными уровнями. Для кодированного потока более высокого улучшенного уровня, информация, содержащаяся в кодированных потоках более низких улучшенных уровнях и базовом уровне, может использоваться для кодирования и декодирования. В этом описании по меньшей мере два уровня зависят друг от друга, зависящий уровень называется нижним уровнем, и уровень на стороне определяющего зависимость называется верхним уровнем.
В масштабируемом кодировании видео с помощью устройства 10 кодирования изображения, корреляция движения между уровнями используется для эффективного кодирования информации внешнего предсказания. То есть в блоке внешнего предсказания вектор движения устанавливается на верхний уровень на основании установочной информации о векторе движения, установленного на нижнем уровне. Более конкретно, секция 40 оценки параметров движения, как показано на фиг. 1, включает в себя буфер для временного хранения информации, полученной во время внешнего предсказания в нижнем уровне, и использует информацию, хранящуюся в буфере для установки вектора движения для верхнего уровня. Корреляция движения между уровнями чётко видна, в частности, в масштабируемом кодировании видео на основании пространственной масштабируемости или SNR масштабируемости.
Фиг. 2 представляет собой пояснительный вид, иллюстрирующий пример пространственной масштабируемости. На фиг. 2, показана технология масштабируемого кодирования видео на примере трёх уровней L1, L2, L3. Уровень L1 является базовым уровнем и уровни L2, L3 являются улучшенными уровнями. Отношение пространственного разрешения уровня L2 к уровню L1 = 2: 1. Отношение пространственного разрешения уровня L3 к уровню L1 составляет 4: 1. Даже в случае если величины разрешения отличаются друг от друга, как описано выше, движение в блоке В1 предсказания на уровне L1, вероятно, появится в соответствующем блоке В2 предсказания на уровне L2 и в соответствующем блоке В3 предсказания на уровне L3 таким же образом. Это и является корреляцией движения между уровнями при пространственной масштабируемости.
Фиг. 3 представляет собой пояснительный вид, иллюстрирующий пример SNR масштабируемости. На фиг. 3 показаны три уровня L1, L2, L3 для масштабируемого кодирования видео. Уровень L1 является базовым уровнем и уровни L2, L3 являются улучшенными уровнями. Уровни L1, L2, L3 равны относительно пространственной масштабируемости друг с другом. Тем не менее, в качестве примера, минимальный масштаб квантования уровня L1 равен 25 и битовая скорость передачи кодированного потока может быть установлена около 2 Mbps квантованием коэффициента ортогонального преобразования. С другой стороны, например, минимальный масштаб квантования уровня L2 составляет 12 и битовая скорость передачи закодированного потока становится около 5 Mbps. Кроме того, например, минимальный масштаб квантования уровня L3 равен 0 и битовая скорость передачи закодированного потока становится около 10 Mbps. Таким образом, даже если величины битовых скоростей передачи отличаются друг от друга, движение, появляющееся в блоке В1 предсказания уровня L1, вероятно, появляется в соответствующем блоке В2 предсказания уровня L2 и в соответствующем блоке В3 предсказания уровня L3 таким же образом. Это представляет собой корреляцию движения между уровнями при SNR масштабируемости.
Устройство 10 кодирования изображения в соответствии с настоящим вариантом осуществления эффективно кодирует информацию внешнего предсказания активным использованием такой корреляции движения между уровнями.
Вместо этого, блок предсказания нижнего уровня, соответствующий блоку предсказания верхнего уровня, может быть, например, блоком предсказания среди блоков предсказания в нижнем уровне, перекрывающим (совместное использование пикселей в том же положении) блоком предсказания верхнего уровня, имеющий наибольшее перекрытие (имеющий наибольшее число совместно используемых пикселей). Согласно такому определению, блок предсказания, где корреляция движения, скорее всего, появляется, может рассматриваться как «соответствующий блок предсказания».
2. Пример подробной конфигурации секции оценки параметров движения
В этом разделе будут описаны четыре примера подробной конфигурации секции 40 оценки параметров движения, как показано на фиг. 1. Из этих четырёх примеров, первый и второй примеры являются примерами по расширению способа, описанного в непатентной литературе 2, как описано выше. С другой стороны, в третий и четвёртый примеры являются примерами расширения способа, описанного в непатентной литературе 3, как описано ранее.
2-1. Первый пример
Фиг. 4 представляет собой блок-схему, показывающую пример подробной конфигурации секции 40 оценки параметров движения в соответствии с первым примером. Обращаясь к фиг. 4, секция 40 оценки параметров движения включает в себя секцию 141 управления оценкой, секция 142 вычисления вектора движения, секция 143 предсказания вектора движения, буфер 144 вектора движения, секция 145 выбора режима, секция 146 генерации информации и буфер 147 информации предиктора.
(1) Базовый уровень
В процессе оценки параметров движения базового уровня секция 141 управления оценкой располагает по меньшей мере один блок предсказания в кодирующую ячейку и инициирует работу секции 142 вычисления вектора движения для вычисления вектора движения для каждого блока предсказания. Значение вектора движения, рассчитанное секцией 142 вычисления вектора движения, подаётся в секцию 143 предсказания вектора движения и также сохраняется в буфере 144 вектора движения. Секция 143 предсказания вектора движения генерирует предсказанный вектор движения использованием векторов движения (называемые опорные векторы движения) других блоков, хранящихся в буфере 144 вектора движения в соответствии с каждым из множества кандидатов предиктора. Затем секция 143 предсказания вектора движения вычисляет дельта-вектор движения как разность между вектором движения, рассчитанным секцией 142 вычисления вектора движения и предсказанным вектором движения. Секция 145 выбора режима генерирует данные предсказанного изображения, используя вектор движения, вычисленный секцией 142 вычисления вектора движения, и оценивает значение функции стоимости, рассчитанной на основе сравнения сгенерированных данных предсказанного изображения и данных исходного изображения. Затем блок 145 выбора режима выбирает оптимальное расположение блоков предсказания, что минимизирует значение функции стоимости и оптимального предиктора для каждого блока предсказания. Секция 146 генерации информации генерирует информацию, показывающую оптимальный предиктор для каждого блока предсказания и информацию внешнего предсказания, включающую в себя информацию дельта-вектора движения, показывающую дельта-вектор движения. Например, информация предиктора может содержать индекс для идентификации опорного вектора движения. Информация предиктора может также содержать параметр для идентификации формулы предсказания. Затем секция 146 генерации информации вырабатывает информацию внешнего предсказания, значение функции стоимости и данные предсказанного изображения, которые были сгенерированы, в переключатель 27. Кроме того, информация предиктора, сгенерированная секцией 146 генерации информации, временно сохранится в буфере 147 информации предиктора для использования в процессе верхнего уровня.
Фигуры 5 и 6 представляют собой первые пояснительные виды, иллюстрирующие примеры кандидатов предиктора для предсказания вектора движения. На фиг. 5 показаны один блок РТе предсказания для предсказания и предсказанный вектор PMVе движения блока PTе предсказания. Предсказанный вектор PMVе движения блока Рте предсказания могут быть предсказаны с использованием, например, векторов МВа, MVb, MVс движения блоков предсказания, прилегающих к блоку PTе предсказания в качестве опорных векторов движения. Опорный вектор MVа движения является вектором движения, установленный для соседнего блока предсказания слева от блока РTе предсказания. Опорный вектор MVb движения является вектором движения, установленный для соседнего блока предсказания сверху от блока РTе предсказания. Опорный вектор MVс движения является вектором движения, установленный для соседнего блока предсказания справа верху от блока РTе предсказания. Предсказанный вектор PMVe движения получен в соответствии со следующей формулой предсказания с использованием этих опорных векторов МВА, MVb, MVC движения.
Формула (1) является формулой предсказания на основании пространственной корреляции движения. Med в формуле (1) представляет собой операцию осреднения. То есть, в соответствии с формулой (1), предсказанный вектор PMVe движения является вектором, имеющих среднюю величину горизонтальных компонентов и среднюю величину вертикальный компонентов опорных векторов МВа, MVb, MVс движения в качестве компонентов. Предсказанный вектор PMVe движения, образованный по формуле (1), является примером кандидата предиктора. Предсказанный вектор движения, рассчитанный по данной формуле предсказания на основании пространственной корреляции движения, называется пространственным предиктором.
Кстати, формула (1) представляет собой только пример формулы предсказания. Когда, например, отсутствует один из векторов МВа, MVb, MVс движения, например, когда блок предсказания, предназначенный для предсказания, расположен на краю изображения, то отсутствующий вектор может быть опущен при осуществлении операции осреднения. Кроме того, согласно Формулам с (2) по (4), как показано ниже, более простой пространственной предиктор может быть использован как кандидат предиктора.
С другой стороны, временной предиктор как предсказанный вектор движения, рассчитанный по формуле предсказания на основании временной корреляции движения, также может быть использован как кандидат предиктора. На фиг. 6 показаны изображение IM01, содержащее блок PTе предсказания для предсказания и опорное изображение IM02. Блок Bcol в опорном изображении IM02 является совмещённым блоком блока РТе предсказания. Формула предсказания, используя временную корреляцию движения, например, применяет вектор движения для совмещения блока Bcol или блока, примыкающего к совмещённому блоку Bcol, в качестве опорного вектора движения.
Например, вектор движения совмещённого блока Bcol устанавливается как MVcol. Кроме того, векторы движения верхнего, левого, нижнего, правого, левого верхнего, левого нижнего, правого нижнего и верхнего правого блоков совмещённого блока Bcol устанавливаются как с MVt0 по MVt7, соответственно. Затем предсказанный вектор PMVe движения могут быть сгенерирован из опорного вектора MVcol движения и с MVt0 по MVt7 с использованием Формулы (5) или (6) Предсказания, как показано ниже.
После формирования предсказанного вектора PMVe движения для каждого из множества кандидатов предиктора, секция 143 предсказания вектора движения рассчитывает, как показано в следующей формуле, дельта-вектор MVDe движения, представляющий собой разность между вектором MVe движения, рассчитанным секцией 142 вычисления вектора движения, и предсказанным вектором PMVe движения.
Затем оптимальный предиктор (например, предиктор с наивысшей точностью предсказания) выбирается для каждого блока предсказания секцией 145 выбора режима и информация предиктора, показывающая оптимальный предиктор, и информация дельта-вектора движения, показывающая соответствующий дельта-вектор движения, генерируются секцией 146 генерации информации. Вместо информации дельта-вектора движения, информация вектора движения, показывающая вектор движения, вычисленный секцией 142 вычисления вектора движения, может быть сгенерирована для блока предсказания, для которого вектор движения не предсказывается. Информация, полученная таким образом, может быть закодирована секцией 16 кодирования без потерь как информация внешнего предсказания. Информация предиктора временно хранится в буфере 147 информации предиктора для использования в процессе верхнего уровня.
(2) Улучшенный уровень
В процессе оценки параметров движения улучшенного уровня, предсказание вектора движения основывается на информации предиктора нижнего уровня, хранящееся в буфере 147 информации предиктора.
Во-первых, секция141 управления оценкой инициирует секцию 142 вычисления вектора движения для вычисления вектора движения для каждого блока предсказания, расположенных в кодирующей ячейке. Затем блок 141 управления оценкой инициирует работу секции 143 предсказания вектора движения для генерирования предсказанного вектора движения для каждого блока предсказания. Предсказанный вектор движения в улучшенном уровне генерируется секцией 143 предсказания вектора движения, используя информацию предиктора как установочную информацию, хранящуюся в буфере 147 информации предиктора. Более конкретно, например, когда информация предиктора блока предсказания в нижнем уровне, соответствующая определённому блоку предсказания в верхнем уровне, показывает пространственный предиктор, как показано в формуле (1), то секция 143 предсказания вектора движения принимает опорные векторы движения соседних блоков предсказания в верхнем уровне из буфера 144 вектора движения. Затем секция 143 предсказания вектора движения замещает полученные опорные вектора движения по формуле (1), чтобы генерировать предсказанный вектор движения. Когда, например, информация предиктора блока предсказания в нижнем уровне, соответствующая определённому блоку предсказания в верхнем уровне, указывает на временной предиктор, как показано в формуле (5), то секция 143 предсказания вектора движения принимает опорные вектора движения совмещённого блока в опорном изображении и соседних блоков совмещённого блока из буфера 144 вектора движения. Затем секция 143 предсказания вектора движения замещает полученные опорные вектора движения по формуле (5) для генерации предсказанного вектора движения. Кроме того, то секция 143 предсказания вектора движения вычисляет дельта-вектор движения, представляющий собой разность между вектором движения, рассчитанным секцией 142 вычисления вектора движения, и предсказанным вектором движения. Секция 145 выбора режима генерирует предсказанные данные изображения, используя вектор движения, вычисленный секцией 142 вычисления вектора движения, и вычисляет значение функции стоимости. Секция 146 генерации информации генерирует информацию дельта-вектора движения, показывающую дельта-вектор движения, рассчитанный для каждого блока предсказания. Затем секция 146 генерации информации вырабатывает информацию внешнего предсказания, включающую в себя информацию дельта-вектора движения, значение функции стоимости и предсказанные данные изображения, на переключатель 27.
(3) Последовательность операций процесса
Фиг. 7 является блок-схемой алгоритма, показывающей пример последовательности операций процесса оценки параметров движения секцией 40 оценки параметров движения в соответствии с настоящим примером. Обращаясь к фиг. 7, секция 40 оценки параметров движения выполняет процесс оценки параметров движения базового уровня (этап S110). В результате, устанавливается размещение блоков предсказания в каждой ячейке кодирования и выбирается оптимальный предиктор для каждого блока предсказания. Буфер 147 информации предиктора буферизирует информацию предиктора, показывающую оптимальный предиктор для каждого блока предсказания как установочную информацию.
Процессы на этапах с S111 по S117 являются процессом оценки параметров движения улучшенных уровней. Из этих процессов, процессы на этапах с S111 по S116 повторяются для каждого блока предсказания (далее обозначается как сигнальный PU) каждого улучшенного уровня. В нижеследующем описании, «верхний уровень» представляет собой уровень для предсказания и «нижний уровень» представляет собой уровень, находящегося ниже уровня для предсказания.
Во-первых, секция 142 вычисления вектора движения вычисляет вектор движения одного сигнального PU верхнего уровня на основании значений пикселя исходного изображения и значений пикселей опорного изображения из памяти 25 кадров (этап S111).Затем секция 142 вычисления вектора движения вырабатывает вычисленный вектор движения в секцию 143 предсказания вектора движения и буфер 144вектора движения.
Далее, секция 143 предсказания вектора движения генерирует предсказанный вектор движения для сигнального PU с использованием информации предиктора соответствующего PU в нижнем уровне, хранимую в буфере 147 информации предиктора, и опорный вектор движения, полученный в соответствии с информацией предиктора (этап S112). Далее, секция 143 предсказания вектора движения вычисляет дельта-вектор движения замещением предсказанного вектора движения из вектора движения (этап S113). Затем секция 143 предсказания вектора движения вырабатывает вектор движения, и дельта-вектор движения сигнального PU в секцию 145 выбора режима.
Далее, секция 145 выбора режима генерирует данные предсказанного изображения и значение функции стоимости сигнального PU (этап S114). Секция 146 генерации информации генерирует информацию дельта-вектора движения, показывающая дельта-вектор движения относительно сигнального PU (этап S115).
Затем, если остаётся любой необработанный PU в уровне для предсказания, процесс возвращается на этап S111 (этап S116). С другой стороны, если нет необработанных PU, то дополнительно определяется наличие уровня (любой более высокий уровень) (этап S117). Если устанавливается наличие уровня, то уровень, который был предсказан, устанавливается в качестве нижнего уровня и следующий уровень устанавливается как верхний уровень до обработки этапе S111 и после этого повторяется. Информация предиктора, показывающая предикторы, выбранные для нижнего уровня, продолжает накапливаться в буфере 147 информации предиктора. Если отсутствует уровень, то процесс оценки параметров движения, показанный на фиг. 7, оканчивается. Данные предсказанного изображения и информация внешнего предсказания (которая может содержать информацию дельта-вектора движения), генерируемые здесь, выводятся на секцию 13 вычитания и секцию 16 кодирования без потерь через переключатель 27.
Таким образом, в первом примере информация предиктора как информация внешнего предсказания верхнего уровня не кодируется, и информация предиктора нижнего уровня повторно используется и, следовательно, количество кода информации внешнего предсказания может быть уменьшено.
2-2. Второй пример
Фиг. 8 представляет собой блок-схему, показывающую пример подробной конфигурации секции 40 оценки параметров движения в соответствии со вторым примером. Как показано на фиг. 8, секция 40 оценки параметров движения включает в себя секцию 241 управления оценкой, секцию 242 вычисления вектора движения, секцию 243 предсказания вектора движения, буфер 244 вектора движения, секцию 245 выбора режима, секцию 246 генерации информации.
(1) Базовый уровень
Процесс оценки параметров движения базового уровня согласно настоящему примеру может представлять собой тот же процесс оценки параметров движения базового уровня, описанный в первом примере. В настоящем примере, однако, информация предиктора базового уровня может не буферизироваться, а информация вектора движения базового уровня буферизируется, распространяясь по уровням. В процессе оценки параметров движения базового уровня секция 241 управления оценкой располагает по меньшей мере один блок предсказания в кодирующую ячейку и инициирует работу секции 242 вычисления вектора движения для вычисления вектора движения для каждого блока предсказания. Значение вектора движения, рассчитанное секцией 242 вычисления вектора движения, подаётся в секцию 243 предсказания вектора движения и также сохраняется в буфере 244 вектора движения. Секция 243 предсказания вектора движения генерирует предсказанный вектор движения использованием опорных векторов движения, хранящиеся в буфере 244 вектора движения в соответствии с каждым из множества кандидатов предиктора. Затем секция 243 предсказания вектора движения вычисляет дельта-вектор движения как разность между вектором движения, рассчитанным секцией 242 вычисления вектора движения и предсказанным вектором движения. Секция 245 выбора режима генерирует данные предсказанного изображения, используя вектор движения, вычисленный секцией 242 вычисления вектора движения, и оценивает значение функции стоимости, рассчитанное на основании сравнения сгенерированных данных предсказанного изображения и данных исходного изображения. Затем секция 245 выбора режима выбирает оптимальное расположение блоков предсказания, что минимизирует значение функции стоимости и оптимального предиктора для каждого блока предсказания. Секция 246 генерации информации генерирует информацию предиктора, показывающую оптимальный предиктор для каждого блока предсказания и информацию внешнего предсказания, включающую в себя информацию дельта-вектора движения, показывающую дельта-вектор движения. Затем секция 246 генерации информации вырабатывает информацию внешнего предсказания, значение функции стоимости и данные предсказанного изображения, которые были сгенерированы, в переключатель 27.
(2) Улучшенный уровень
Кандидат предиктора, оценённый в процессе оценки параметров движения базового уровня в соответствии с настоящим примером, может содержать один или оба из вышеупомянутых пространственных и временных предикторов. Дополнительно, дополнительные кандидаты предиктора вводятся в процессе оценки параметров движения улучшенного уровня в соответствии с настоящим примером. Кандидаты предиктора, введённые здесь, являются кандидатами предиктора, использующие вектор движения, установленный соответствующему блоку предсказания нижнего уровня, как опорный вектор движения. Такой предиктор далее именуется межуровневым предиктором.
Фиг. 9 является пояснительным видом, иллюстрирующий пример межуровневого предиктора. На фиг. 9 показан блок PTе предсказания на уровне L12 в качестве верхнего уровня и вектор PMVe предсказанного движения блока PTе предсказания. Блок PTbase предсказания на уровне L11 как нижний уровень представляет собой блок предсказания, соответствующий блоку PTе предсказания. Опорный вектор МVbase движения является вектором движения блока PTbase предсказания. Межуровневый предиктор может быть представлен, например, следующей формулой (8).
Когда пространственное разрешение нижнего уровня и верхнего уровня различно, то увеличенный вектор движения, как показано в следующей формуле, в соответствии с коэффициентом N пространственного разрешения между нижним уровнем и верхним уровнем, может быть использован в качестве межуровневого предиктора. В этом случае значения вертикальной компоненты и горизонтальной компоненты межуровневого предиктора округлены, чтобы соответствовать точности (например, 1/4 величины точности пикселя и тому подобное) вектора движения верхнего уровня.
В настоящем примере, в отличие от первого примера, оптимальный предиктор выбран из множества кандидатов предиктора также в процессе оценки параметров движения улучшенных уровней.
Во-первых, секция 241 управления оценки инициирует работу секции 242 вычисления вектора движения для вычисления вектора движения для каждого блока предсказания в ячейке кодирования. Вектор движения, рассчитанный секцией 242 вычисления вектора движения, вырабатывается в секцию 243 предсказания вектора движения и также хранится в буфере 244 вектора движения. В буфере 244 вектора движения, также хранятся векторы движения (опорные векторы движения), рассчитанные для каждого из блоков предсказания нижнего уровня. Секция 243 предсказания вектора движения генерирует предсказанный вектор движения с использованием опорных векторов движения, сохранённых в буфере 244вектора движения, в соответствии с каждым из множества кандидатов предиктора. Множество кандидатов предиктора здесь содержит вышеупомянутый межуровневый предиктор. Затем секция 243 предсказания вектора движения вычисляет дельта-вектор движения как разность между вектором движения, вычисленным секцией 242 вычисления вектора движения, и предсказанным вектором движения. Секция 245 выбора режима генерирует данные предсказанного изображения, используя вектор движения, вычисленный секцией 242 вычисления вектора движения, и оценивает значение функции стоимости, рассчитанной на основе сравнения сгенерированных данных предсказанного изображения и данных исходного изображения. Затем секция 245 выбора режима выбирает оптимальный предиктор для каждого блока предсказания. Секция 246 генерации информации генерирует информацию предиктора, показывающую оптимальный предиктор для каждого блока предсказания и информацию внешнего предсказания, включающая в себя информацию дельта-вектора движения, показывающую дельта-вектор движения. Когда вышеупомянутый межуровневый предиктор выбирается в качестве оптимального предиктора, информация предиктора может содержать индекс, который идентифицирует опорный вектор движения нижнего уровня. Затем секция 246 генерации информации246 вырабатывает информацию внешнего предсказания, значение функции стоимости и данные предсказанного изображения, которые были сгенерированы, в переключатель 27.
(3) Последовательность операций процесса
Фиг. 10 является блок-схемой алгоритма, показывающей пример последовательности операций процесса оценки параметров движения секцией 40 оценки параметров движения в соответствии с настоящим примером. Обращаясь к фиг. 10, секция 40 оценки параметров движения выполняет процесс оценки параметров движения базового уровня (этап S120). В результате, устанавливается размещение блоков предсказания в каждой ячейке кодирования и выбирается оптимальный предиктор для каждого блока предсказания. Буфер 247 информации предиктора буферизирует информацию предиктора, рассчитанную для каждого блока предсказания.
Процессы на этапах с S121 по S127 являются процессом оценки параметров движения улучшенных уровней. Из этих процессов, процессы на этапах с S121 по S126 повторяются для каждого сигнального PU каждого улучшенного уровня. В нижеследующем описании, «верхний уровень» представляет собой уровень для предсказания и «нижний уровень» представляет собой уровень, находящегося ниже уровня для предсказания.
Во-первых, секция 242 вычисления вектора движения вычисляет вектор движения одного сигнального PU верхнего уровня на основе значений пикселя исходного изображения и значений пикселей опорного изображения, поступающих на вход из памяти 25 кадров (этап S121). Затем секция 242 вычисления вектора движения вырабатывает вычисленный вектор движения в секцию 243 предсказания вектора движения и буфер 244 вектора движения.
Далее, секция 243 предсказания вектора движения генерирует предсказанный вектор движения для сигнального PU с использованием опорных векторов движения, хранящиеся в буфере 244 вектора движения, согласно каждому из множества кандидатов предиктора (этап S122). Множество кандидатов предиктора здесь содержит межуровневый предиктор. Далее, секция 243 предсказания вектора движения вычисляет дельта-вектор движения для каждого из множества кандидатов предиктора (этап S123). Затем секция 243 предсказания вектора движения вырабатывает вектор движения, и дельта-вектор движения каждого кандидата предиктора в секцию 245 выбора режима.
Далее, секция 245 выбора режима генерирует данные предсказанного изображения для каждого кандидата предиктора и оценивает значение функции стоимости для выбора оптимального предиктора (этап S124). Секция 246 генерации информации генерирует информацию предиктора, показывающую выбранный оптимальный предиктор и информацию дельта-вектора движения, показывающую соответствующий дельта-вектор движения (этап S125).
Затем, если остаётся любой необработанный PU в уровне для предсказания, процесс возвращается на этап S121 (этап S126). С другой стороны, если нет необработанных PU, то дополнительно определяется наличие уровня (любой более высокий уровень) (этап S127), и если устанавливается наличие уровня, то процессы на этапе S121 и после повторяются после того, как устанавливается уровень, который был предсказан как нижний уровень и следующий уровень как высокий уровень. Вектор движения, рассчитанный для каждого сигнального PU нижнего уровня, продолжает накапливаться в буфере 244 вектора движения. Если отсутствует уровень, то процесс оценки параметров движения, показанный на фиг. 10, заканчивается. Данные предсказанного изображения и информация внешнего предсказания (которая может содержать информацию предиктора и информацию дельта-вектора движения), генерируемые здесь, выводятся на секцию 13 вычитания и секцию 16 кодирования без потерь через переключатель 27.
Во втором примере, как описано выше, информация предиктора, показывающая, что межуровневый предиктор основывается на векторе движения нижнего уровня, используется как информация внешнего предсказания верхнего уровня, и может быть закодирована. Таким образом, становится возможным предсказывание вектора движения соответствующего блока предсказания нижнего уровня, имеющего чёткую корреляцию движения. Следовательно, повышение точности предсказания ведёт к тому, что количество кодадельта-вектора движения может быть уменьшено.
Кстати, секция 16 кодирования без потерь, которая кодирует информацию предиктора, может выделить наименьшие количество кода для внешнего предсказания среди множества кандидатов предиктора при кодировании информации предиктора верхнего уровня. Как правило, корреляция движения между уровнями сильнее пространственной корреляции или временной корреляции движения. Таким образом, распределением наименьшего количества кода для межуровневого предиктора, возможно использовать более часто более короткие кодовые слова в кодированном потоке после кодирования с переменной длиной, так что количество кода, дополнительно уменьшается.
2-3. Третий пример
Фиг. 11 представляет собой блок-схему, показывающую пример подробной конфигурации секции 40 оценки параметров движения в соответствии с третьим примером. Как показано на фиг. 11, секция 40 оценки параметров движения включает в себя секцию 341 управления оценкой, секцию 342 вычисления вектора движения, буфер 344 вектора движения, секцию 345 выбора режима, секцию346 генерации информации и буфер 347 информации объединения.
(1) Базовый уровень
В процессе оценки параметров движения базового уровня секция 341 управления оценкой располагает по меньшей мере один блок предсказания в кодирующую ячейку и инициирует работу секции 342 вычисления вектора движения для вычисления вектора движения для каждого блока предсказания. Значение вектора движения, рассчитанное секцией 342 вычисления вектора движения, подаётся в секцию 345 выбора режима и также сохраняется в буфере 344 вектора движения. Если вектор движения, рассчитанный секцией 342 вычисления вектора движения для определённого блока предсказания, является характерным для опорного вектора движения, установленным по меньшей мере для одного смежного блока предсказания, то секция 345 выбора режима устанавливает режим объединения данных блоков предсказания. В соответствии со способом, предложенным в непатентной литературе 3, описанным ранее, определённый блок предсказания может быть объединён с верхним смежным блоком предсказания или блоком предсказания, находящимся слева. Таким образом, секция 345 выбора режима может выбирать, например, один из объединённых с верхним смежным блоком предсказания, объединённым блоком предсказания, находящимся слева, и не объединённым, как режим объединения. Дополнительно, секция 345 выбора режима генерирует данные предсказанного изображения для каждого блока предсказания и рассчитывает значение функции стоимости на основании сравнения сгенерированных данных предсказанного изображения и данных исходного изображения. Секция 346 генерации информации генерирует информацию объединения, показывающую режим объединения для каждого блока предсказания и информацию внешнего предсказания, включающую в себя информацию вектора движения блока предсказания, который не был объединён с другими блоками предсказания. Затем секция 346 генерации информации вырабатывает информацию внешнего предсказания, значение функции стоимости и данные предсказанного изображения, которые были сгенерированы, в переключатель 27.
Информация объединения, полученная в данном примере, может содержать «MergeFlag» и «MergeLeftFlag». «MergeFlag», что является флагом, указывающим на то, является ли вектор движения сигнального PU общим для вектора движения по меньшей мере для одногосмежного PU. Когда, например, MergeFlag = 1, то вектор движения сигнального PU является общим для вектора движения по меньшей мере одного смежного PU. Когда MergeFlag = 0, то вектор движения сигнального PU отличается от вектора движения любого смежного PU. Когда MergeFlag = 0, то MergeLeftFlag не кодируется, и вместо этого, вектор движения (и информация движения информации опорного изображения и т.п.) сигнального PU кодируется. Когда MergeFlag = 1 и два соседних PUs имеют общий вектор движения, то MergeLeftFlag не может быть закодирован.
MergeLeftFlag является флагом, указывающим, является ли вектор движения сигнального PU общим для вектора движения левого соседнего PU. Когда, например, MergeLeftFlag = 1, то вектор движения сигнального PU является общим для вектора движения левого соседнего PU. Когда MergeLeftFlag = 0, то вектор движения сигнального PU отличается от вектора движения левого соседнего PU и является общим для вектора движения верхнего соседнего PU.
Фигуры с 12А по 12С показывают примеры информации объединения, полученной в настоящем примере. На этих трёх фигурах показан блок В20 предсказания как сигнальный PU на уровне L21. Блоки B21, B22 предсказания являются смежными блоку В20 предсказания, как левый блок предсказания и верхний блок предсказания, соответственно. Вектор MV20 движения представляет собой вектор движения, рассчитанный секцией 342 вычисления вектора движения для блока В20 предсказания. Векторы MV21, MV22 движения являются опорными векторами движения, установленными для блоков B21, B22 предсказания, соответственно.
В примере на фиг. 12А, вектор MV20 движения является общим для обоих опорных векторов MV21, MV22 движения. В этом случае секция 346 генерации информации генерирует MergeFlag = 1, как информацию объединения. MergeLeftFlag не включён в состав информации объединения. Сторона декодирования, получив такую информацию объединения, может установить общий вектор движения для вектора движения блока B21 или B22 предсказания по отношению к блоку B20 предсказания без MergeLeftFlag декодирования.
В примере на фиг. 12B, вектор MV20 движения является общим для опорного вектора MV21 движения и отличается от опорного вектора MV22 движения. В этом случае секция 346 генерации информации генерирует MergeFlag = 1 и MergeLeftFlag = 1 как информацию объединения. Сторона декодирования, получив такую информацию объединения, может установить общий вектор движения для вектора движения блока B21 предсказания и блока B20 предсказания.
В примере на фиг. 12C, вектор MV20 движения является общим для опорного вектора MV22 движения и отличается от опорного вектора MV21 движения. В этом случае секция 346 генерации информации генерирует MergeFlag = 1 и MergeLeftFlag = 0 как информацию объединения. Сторона декодирования, получив такую информацию объединения, может установить общий вектор движения для вектора движения блока B22 предсказания и блока B20 предсказания.
(2) Улучшенный уровень
В процессе оценки параметров движения улучшенного уровня, вектор движения устанавливается для каждого блока предсказания с использованием информации объединения нижнего уровня, хранящейся в буфере 347 информации объединения.
Во-первых, секция 341 управления оценкой получает информацию объединения блока предсказания на нижнем уровне, соответствующей каждому блоку предсказания в кодирующей ячейке нижнего уровня, из буфера 347 информации объединения. Затем, если полученная информация объединения указывает на отсутствие объединения (например, MergeFlag = 0), то секция 341 управления оценки инициирует работу секции 342 вычисления вектора движения для вычисления вектора движения для соответствующего блока предсказания верхнего уровня. Вектор движения, определённый секцией 342 вычисления вектора движения, вырабатывается в секцию 345 выбора режима и также сохраняется в буфере 344 вектора движения. С другой стороны, если полученная информация объединения указывает на наличие объединения с другим блоком предсказания, то секция 341 управления оценки не инициирует начало работы секции 342 вычисления вектора движения для вычисления вектора движения для соответствующего блока предсказания верхнего уровня. Вместо этого, секция 345 выбора режима генерирует данные предсказанного изображения, используя вектор движения (например, если MergeLeftFlag = 1, вектор движения блока предсказания, смежного с левой стороны) (блока предсказания для объединения), полученные из буфера 344 вектора движения для блока предсказания, который будет объединён с другим блоком предсказания, и вычисляет значение функции стоимости. С другой стороны, для блоков предсказания, которые не объединяются с другим блоком предсказания, секция 345 выбора режима генерирует данные предсказанного изображения с использованием вектора движения, поступившего из секции 342 вычисления вектора движения, и вычисляет значение функции стоимости. Секция 346 генерации информации генерирует информацию внешнего предсказания, включённую в состав информации вектора движения для блоков предсказания, которые не должны быть объединены с другим блоком предсказания. Затем секция 346 генерации информации направляет сгенерированную информацию внешнего предсказания, значение функции стоимости и данные предсказанного изображения в переключатель 27.
(3) Последовательность операций процесса
Фиг. 13 является блок-схемой алгоритма, показывающей пример последовательности операций процесса оценки параметров движения секцией 40 оценки параметров движения в соответствии с настоящим примером. Обращаясь к фиг. 13, секция 40 оценки параметров движения выполняет процесс оценки параметров движения базового уровня (этап S130). В результате, устанавливается размещение блоков предсказания в каждой ячейке кодирования и выбирается режим объединения для каждого блока предсказания. Буфер 344 вектора движения буферизирует вектор движения, рассчитанный для каждого блока предсказания. Буфер 347 информации объединения буферизует информацию объединения, показывающую режим объединения, выбранный для каждого блока предсказания как установочную информацию.
Процессы на этапах с S131 по S136 являются процессом оценки параметров движения улучшенных уровней. Из этих процессов, процессы на этапах с S131 по S135 повторяются для каждого сигнального PU каждого улучшенного уровня. В нижеследующем описании, «верхний уровень» представляет собой уровень для предсказания и «нижний уровень» представляет собой уровень, находящегося ниже уровня для предсказания.
Во-первых, секция 341 управления оценки определяет, является ли сигнальный PU верхнего уровня соответствующим PU нижнего уровня для объединения с другим PU, на основании информации объединения, хранящейся в буфере 347 информации объединения (этап S131). Если соответствующий PU нижнего уровня объединён с другим PU, то последующий процесс на этапе S132 пропускается.
На этапе S132 секция 342 вычисления вектора движения вычисляет вектор движения сигнального PU, который не объединён с другим PU на основании значений пикселей исходного изображения и значений пикселей опорного изображения, поступающих на вход из памяти 25 кадров (этап S132). Затем секция 342 вычисления вектора движения вырабатывает вычисленный вектор движения в секцию 345 выбора режима и буфер 344 вектора движения.
Далее, секция 345 выбора режима генерирует данные предсказанного изображения, используя вектор движения, вычисленный секцией 342 вычисления вектора движения или полученный из буфера 344 вектора движения, и вычисляет значение стоимостной функции (этап S133). Затем секция 346генерации информации генерирует информацию вектора движения сигнального PU, который не объединён с другим PU (этап S134).
Затем, если остаётся любой необработанный PU в уровне для предсказания, процесс возвращается на этап S131 (этап S135). С другой стороны, если нет необработанных PU, то дополнительно определяется наличие уровня (любой более высокий уровень) (этап S136), и если устанавливается наличие уровня, то процессы на этапе S131 и после повторяются после того, как устанавливается уровень, который был предсказан как нижний уровень и следующий уровень как высокий уровень. Вектор движения, рассчитанный для каждого сигнального PU нижнего уровня, продолжает накапливаться в буфере 344 вектора движения. Информация объединения продолжает накапливаться в буфере 347 информации объединения. Если отсутствует уровень, то процесс оценки параметров движения, показанный на фиг. 13, заканчивается. Данные предсказанного изображения и информация внешнего предсказания, генерируемые здесь, выводятся на секцию 13 вычитания и секцию 16 кодирования без потерь через переключатель 27.
Таким образом, в третьем примере информация объединения как информация внешнего предсказания верхнего уровня не кодируется, и информация объединения нижнего уровня повторно используется и, следовательно, количество кода информации внешнего предсказания может быть уменьшено.
2-4.Четвёртый пример
Фиг. 14 является блок-схемой, показывающей пример подробной конфигурации секции 40 оценки движения в соответствии с четвертым примером. Как показано на фиг. 14, секция 40 оценки движения включает в себя секцию 441 управления оценки, секцию 442 вычисления вектора движения, буфер 444 вектора движения, секцию 445 выбора режима и секцию 446 генерации информации.
(1) Базовый уровень
Процесс оценки параметров движения базового уровня в соответствии с настоящим примером может быть таким же, как процесс оценки параметров движения базового уровня в соответствии с третьим примером. В данном примере, однако, информация объединения базового уровня не может быть буферизована. В процессе оценки параметров движения базового уровня, секция 441 управления оценки размещает по меньшей мере один блок предсказания в кодирующей ячейке и инициирует работу секции 442 вычисления вектора движения для вычисления вектора движения для каждого блока предсказания. Вектор движения, рассчитанный секцией 442 вычисления вектора движения, вырабатывается в секцию 445 выбора режима и также сохраняется в буфере 444 вектора движения. Если вектор движения, рассчитанный секцией 442 вычисления вектора движения для определённого блока предсказания, является общим для опорного вектора движения по меньшей мере одного соседнего блока предсказания, то секция 445 выбора режима решает объединить эти блоки предсказания. Секция 445 выбора режима генерирует данные прогнозируемого изображения для каждого блока предсказания и вычисляет значение функции стоимости на основе сравнения сгенерированных данных предсказанного изображения и данных исходного изображения. Секция 346 генерации информации генерирует информацию объединения, указывающую на режим объединения для каждого блока предсказания и информацию внешнего предсказания, содержащую информацию вектора движения блока предсказания, который не объединяется с другими блоками предсказания. Затем секция 346 генерации информации вырабатывает информацию внешнего предсказания, значение функции стоимости и данные предсказанного изображения, которые были сгенерированы, в переключатель 27.
(2) Улучшенный уровень
Информация объединения, сгенерированная в процессе оценки параметров движения базового уровня в соответствии с настоящим примером, может содержать два флага "MergeFlag" и "MergeLeftFlag", как в третьем примере. В отличие, информация объединения, сгенерированная в процессе оценки параметров движения улучшенных уровней, может дополнительно содержать новый флаг "MergeBaseFlag". MergeBaseFlag, что является флагом, указывающим на вектор движения сигнального PU, который является общим для вектора движения соответствующего PU нижнего уровня. Когда, например, MergeBaseFlag = 1, то вектор движения сигнального PU является общим для вектора движения соответствующего PU нижнего уровня.
Фиг. с 15А по 15С показывают примеры информации объединения, полученной в данном примере. На этих трёх фигурах показан блок В30 предсказания как сигнальный PU в уровне L30. Блоки B31, B32 предсказания являются смежными к блоку B30 предсказания как левый блок предсказания и верхний блок предсказания, соответственно. Вектор MV30 движения представляет собой вектор движения, рассчитанный секцией 442 вычисления вектора движения для блока B30 предсказания. Векторы MV31, MV32 движения являются опорными векторами движения блоков B31, B32 предсказания, соответственно. Также показан блок В20 предсказания как PU соответствующий сигнальному PU в нижнем уровне L21. Вектор MV20 движения является опорным вектором движения, буферизованным в блоке B20 предсказания.
В примере на фиг. 15A, вектор MV30 движения является общим для всех опорных векторов MV31, MV32, MV20 движения. В этом случае секция 446 генерации информации генерирует MergeFlag = 1 как информацию объединения. MergeBaseFlag и MergeLeftFlag не включают в себя информацию объединения. Сторона декодирования, получив такую информацию объединения, может установить общий вектор движения блоков B20, B31 или B32 для блока B30 предсказания без декодирования MergeBaseFlag и MergeLeftFlag.
В примере на фиг. 15B, вектор MV30 движения является общим для опорного вектора MV20 движения и отличным от опорных векторов MV31, MV32 движения. В этом случае секция 446 генерации информации генерирует MergeFlag = 1 и MergeBaseFlag = 1, как информацию объединения. Сторона декодирования, получив такую информацию объединения, может установить общий вектор движения для вектора движения блока В20 предсказания в нижнем уровне L21 для блока B30 предсказания в верхнем уровне L30.
В примере на фиг. 15C, вектор MV30 движения является общим для опорного вектора MV31 движения и отличается от опорных векторов MV20, MV32 движения. В этом случае секция 446 генерации информации генерирует MergeFlag = 1, MergeBaseFlag = 0, и MergeLeftFlag = 1 как информацию объединения. Сторона декодирования, приняв такую информацию объединения, может установить общий вектор движения для вектора движения блока В31 предсказания и блока B30 предсказания.
В процессе оценки параметров движения улучшенного уровня, блок 441 управления оценки управления инициирует работу секции 442 вычисления вектора движения для вычисления вектора движения для каждого блока предсказания в кодирующей ячейке. Вектор движения, рассчитанный секцией 442 вычисления вектора движения, вырабатывается в секцию 445 выбора режима и также сохраняется в буфере 444 вектора движения. Также хранятся в буфере 444 вектора движения векторы движения (опорные векторы движения), рассчитанные для каждого из блоков предсказания нижнего уровня. Если вектор движения, рассчитанный секцией 442 вычисления вектора движения, для определённого блока предсказания, является общим для опорного вектора движения соседнего блока предсказания или соответствующего блока предсказания в нижнем уровне, секция 445 выбора режима решает объединить эти блоки предсказания. То есть секция 445 выбора режима может выбрать, например, один режим объединения с нижним уровнем, объединение с верхним соседнем блоком предсказания, объединение с левым соседним блоком предсказания и необъединение, в качестве режима объединения. Кроме того, секция 445 выбора режима генерирует данные предсказанного изображения для каждого блока предсказания и вычисляет значение функции стоимости на основе сравнения сгенерированных данных предсказанного изображения и данных исходного изображения. Секция 346 генерации информации генерирует информацию объединения, указывающую режим объединения для каждого блока предсказания и информацию внешнего предсказания, содержащую информацию вектора движения блока предсказания, который не объединён с другими блоками предсказания. Затем секция 346 генерации информации вырабатывает информацию внешнего предсказания, значение функции стоимости и данные предсказанного изображения, которые были сгенерированы, в переключатель 27.
(3) Последовательность операций процесса
Фиг. 16 является блок-схемой алгоритма, показывающей пример последовательности операций процесса оценки параметров движения секцией 40 оценки параметров движения в соответствии с настоящим примером. Обращаясь к фиг. 16, секция 40 оценки параметров движения выполняет процесс оценки параметров движения базового уровня (этап S140). В результате, устанавливается размещение блоков предсказания в каждой ячейке кодирования и выбирается режим объединения для каждого блока предсказания. Буфер 444 вектора движения буферизирует вектор движения, рассчитанный для каждого блока предсказания.
Процессы на этапах с S141 по S146 являются процессом оценки параметров движения улучшенных уровней. Из этих процессов, процессы на этапах с S141 по S145 повторяются для каждого сигнального PU каждого улучшенного уровня. В нижеследующем описании, «верхний уровень» представляет собой уровень для предсказания и «нижний уровень» представляет собой уровень, находящегося ниже уровня для предсказания.
Во-первых, секция 442 вычисления вектора движения вычисляет вектор движения сигнального PU верхнего уровня на основании значений пикселей исходного изображения и значений пикселей опорного изображения, поступающих на вход из памяти 25 кадров (этап S141). Затем секция 442 вычисления вектора движения вырабатывает вычисленный вектор движения в секцию 445 выбора режима и буфер 444 вектора движения.
Далее, секция 445 выбора режима выбирает режим объединения сравнением вычисленного вектора движения секцией 442 вычисления вектора движения, с опорными векторами движения, хранящиеся в буфере 444 вектора движения (этап S142). Если, например, рассчитанный вектор движения для сигнального PU, является общим для опорного вектора движения, хранящимся в буфере, для соответствующего PU в нижнем уровне, то может быть выбрано объединение с нижним уровнем.
Затем секция 445 выбора режима генерирует данные предсказанного изображения, используя вектор движения для сигнального PU и кандидатов значений стоимостной функции (этап S144). Затем секция 446генерации информации генерирует установочную информацию, включающую в себя информацию объединения (и информацию вектора движения сигнальных PUs, которые не объединены с другим PU) для сигнального PU (этап S144).
Затем, если остаётся любой необработанный PU в уровне для предсказания, то процесс возвращается на этап S141 (этап S145). С другой стороны, если нет необработанных PU, то дополнительно определяется наличие уровня (любой более высокий уровень) (этап S146), и если устанавливается наличие уровня, то процессы на этапе S141 и после повторяются после того, как устанавливается уровень, который был предсказан как нижний уровень и следующий уровень как высокий уровень. Вектор движения, рассчитанный для каждого сигнального PU нижнего уровня, продолжает накапливаться в буфере 444 вектора движения. Если отсутствует уровень, то процесс оценки параметров движения, показанный на фиг. 16, заканчивается. Данные предсказанного изображения и информация внешнего предсказания, генерируемые здесь, выводятся на секцию 13 вычитания и секцию 16 кодирования без потерь через переключатель 27.
Таким образом, в четвёртом примере информация внешнего предсказания верхнего уровня, информация объединения, указывающая, что сигнальный PU объединяется с соответствующим PU нижнего уровня (что устанавливается общий вектор движения) может быть закодирована. Следовательно, объединение блока предсказания с нижним уровнем, имеющий чёткую корреляцию движения, становится возможным и вектор движения блока предсказания для объединения на верхнем уровне не кодируется и, таким образом, количество кода может быть эффективно уменьшено.
3. Пример конфигурации устройства декодирования изображения
Фиг. 17 является блок-схемой, показывающей пример конфигурации устройства 60 декодирования изображения в соответствии с вариантом осуществления. Как показано на фиг. 17, устройство 60 декодирования изображений включает в себя буфер 61 накопления, секцию 62 декодирования без потерь, секцию 63 инверсного квантования, секцию 64 обратного ортогонального преобразования, секцию 65 сложения, деблочный фильтр 66, буфер 67 сортировки, D/А (цифро-аналоговый) преобразователь 68,память 69 кадров, переключатели 70 и 71, секцию 80 внутреннего предсказания и секцию 90 компенсации движения.
Буфер 61 накопления временно хранит кодированный входной поток, поступающий на вход по линии передачи.
Секция 62 декодирования без потерь декодирует кодированный поток, поступающий на вход из буфера 61 накопления, согласно способу кодирования, используемого во время кодирования. Кроме того, секция 62 декодирования без потерь декодирует информацию, мультиплексированную в области заголовка кодированного потока. Информация, мультиплексированная в области заголовка кодированного потока, может включать в себя информацию внешнего предсказания и информацию внутреннего предсказания, как описано ранее, например. Секция 62 декодирование без потерь вырабатывает информацию внешнего предсказания в секцию 90 компенсации движения. Кроме того, секция 62 декодирования без потерь вырабатывает информацию внутреннего предсказания в секцию 80 внутреннего предсказания.
Секция 63 инверсного квантования инверсивно квантует квантованные данные, которые были декодированы секцией 62 декодирование без потерь. Секция 64 обратного ортогонального преобразования генерирует данные ошибки предсказания посредством выполнения обратного ортогонального преобразования данных коэффициента преобразования, поступивший на вход из секции 63 инверсного квантования, в соответствии со способом ортогонального преобразования, использованном во время кодирования. Затем секция 64 обратного ортогонального преобразования вырабатывает сгенерированные данные ошибки предсказания в секцию 65 сложения.
Секции 65 сложения добавляет данные ошибки предсказания, поступившие на вход из секции 64 обратного ортогонального преобразования, и данные предсказанного изображения, поступившие на вход из переключателя 71, чтобы, таким образом, генерировать данные декодированного изображения. Затем секция 65 сложения вырабатывает сгенерированные данные декодированного изображения в деблочный фильтр 66 и память 69 кадров.
Деблочный фильтр 66 удаляет артефакты блочности фильтрацией данных декодированного изображения, поступающих на вход из секции 65 сложения, и вырабатывает данные декодированного изображения после фильтрации в буфер 67 сортировки и память 69 кадров.
Буфер 67 сортировки генерирует серию данных изображений во временной последовательности сортировкой входных изображений из деблочного фильтра 66. Затем буфер 67 сортировки вырабатывает сгенерированные данные изображения в D/А преобразователь 68.
D/А преобразователь 68 преобразует данные изображения в цифровой формат, поступающие из буфера 67 сортировки, в сигнал изображения в аналоговом формате. Затем D/А преобразователь 68 инициирует отображение изображения путём вывода аналогового сигнала изображения на дисплей (не показан), подключённый к устройству 60 декодирования изображения, например.
Память 69 кадров хранит, используя носитель данных, данные декодированного изображения до фильтрации, поступающие на вход из секции 65 сложения, и декодированные данные изображения, поступающие на вход, после фильтрации из деблочного фильтра 66.
Переключатель 70 переключает направление вывода данных изображения из памяти 69 кадров между секцией 80 внутреннего предсказания и секцией 90 компенсации движения для каждого блока в изображении, в соответствии с информацией о режиме, полученной секцией 62 декодирования. Когда, например, задан режим внутреннего предсказания, переключатель 70 выводит декодированные данные изображения перед фильтрацией, поставленные из памяти 69 кадров, в секцию 80 внутреннего предсказания в качестве данных опорного изображения. Когда задан режим внешнего предсказания, переключатель 70 выводит декодированные данные изображения после фильтрации, поставленные из памяти 69 кадров, в секцию 90 компенсации движения в качестве данных опорного изображения.
Переключатель 71 переключает выход источника данных предсказанного изображения, для подачи в секцию 65 сложения, между секцией 80 внутреннего предсказания и секцией 90 компенсации движения, в соответствии с информацией о режиме, полученной секцией 62 декодирования без потерь. Когда, например, задан режим внутреннего предсказания, переключатель 71 поставляет данные предсказанного изображения, выработанные секцией 80 внутреннего предсказания, в секцию 65 сложения. Когда указан режим внешнего предсказания, переключатель 71 поставляет данные предсказанного изображения, выработанные секцией 90 компенсации движения, в секцию 65 сложения.
Секция 80 внутреннего предсказания выполняет процесс внутреннего предсказания на основании информации внутреннего предсказания, поступающей на вход из секции 62 декодирования без потерь и данных опорного изображения из памяти 69 кадров, для генерации данных предсказанного изображения. Затем секция 80 внутреннего предсказания вырабатывает сгенерированные данные предсказанного изображения в переключатель 71.
Секция 90 компенсации движения выполняет процесс компенсации движения на основании информации внешнего предсказания, поступающей из секции 62 декодирования без потерь и данных опорного изображения из памяти 69 кадров, для генерации данных предсказанного изображения. Процесс компенсации движения секцией 90 компенсации движения, в соответствии с настоящим вариантом осуществления, реализуется путём расширения способа, описанного в непатентной литературе 2, или способом, описанным в непатентной литературе 3. Затем секция 90 компенсации движения вырабатывает данные предсказанного изображения, сгенерированные в результате осуществления процесса компенсации движения, в переключатель 71. В следующем разделе, будут описаны четыре примера подробной конфигурации секции 90 компенсации движения.
Устройство 60 для декодирования изображения повторяет ряд процессов декодирования, описанных здесь, для каждого из множества уровней масштабируемого кодирования видео. Первым уровнем для декодирования является базовый уровень. После декодирования базового уровня, декодируются один или более улучшенных уровней. Когда улучшенный уровень декодируется, информация, полученная путём декодирования базового уровня или нижнего уровня, используются как другие улучшенные уровни.
В масштабируемом декодировании видео устройством 60 декодирования изображений, вектор движения устанавливается для определённого блока предсказания в верхнем уровне, используя установочную информацию о векторе движения, установленном в соответствующем блоке предсказания в нижнем уровне. Установочная информация может содержать, например, вышеупомянутую информацию предиктора, информацию объединения или информацию о векторе движения.
4. Подробный пример конфигурации Секции Компенсации Движения
В этом разделе будут описаны четыре примера подробной конфигурации секции 90 компенсации движения, показанной на фиг. 17. Четыре примера соответствуют четырём примерам секции 40 оценки параметров движения вышеупомянутого устройства 10 кодирования изображения. Первый и второй примеры являются примерами по использования расширенного способа, описанного в непатентной литературе 2, как ранее было описано. С другой стороны, в третьем и четвёртом примерах приведены примеры использования расширенного способа, описанного в непатентной литературе 3, описанного выше.
4-1. Первый пример
Фиг. 18 является блок-схемой, показывающей пример подробной конфигурации секции 90 компенсации движения в соответствии с первым примером. Как показано на фиг. 18, секция 90 компенсации движения включает в себя секцию 191 получения информации, секцию 192 установки вектора движения, буфер 193 информации предиктора, буфер 194 вектора движения и секцию 195 компенсации.
(1) Базовый уровень
В процессе компенсации движения базового уровня, секция 191 получения информации получает информацию внешнего предсказания, декодируемую секцией 62 декодирования без потерь из кодированного потока. В настоящем примере информация внешнего предсказания может содержать информацию предиктора и информацию дельта-вектора движения (информация вектора движения для блоков предсказания, для которых вектор движения не предсказывается). Информация предиктора, полученная здесь, показывает, например, что среди вышеупомянутых различных кандидатов предиктора, предиктор выбран для каждого блока предсказания для кодирования. Секция 192 установки вектора движения устанавливает вектор движения для каждого блока предсказания. Затем вектор движения, установленный на каждый блок предсказания секцией 192 установки вектора движения, выводится в секцию 195 компенсации и также сохраняется в буфере 194 вектора движения. Кроме того, информация предиктора для каждого блока предсказания временно сохраняются в буфере 193 информации предиктора для процесса в верхнем уровне. Параметры вектора движения, установленные секцией 192 установки вектора движения, могут быть созданы с использованием предиктора, показанного информацией предиктора, для каждого блока предсказания и дельта-вектора движения, показанного информацией дельта-вектора движения. Например, когда информация предиктора для определённого блока предсказания показывает на пространственный предиктор, согласно формуле (1), то секция 192 установки вектора движения принимает опорные векторы движения соседних блоков предсказания для блока предсказания из буфера 194 вектора движения. Затем секция 192 установки вектора движения замещает полученные опорные вектора движения по формуле (1) для генерирования предсказанного вектора движения. Дополнительно, секция 192 установки вектора движения восстанавливает вектор движения путём добавления дельта-вектора движения в сгенерированный предсказанный вектор движения. Вектор движения, восстановленный таким образом, устанавливается на каждый блок предсказания. Секция 195 компенсации генерирует данные предсказанного изображения каждого блока предсказания, используя вектор движения, установленный на каждом блоке предсказания, секцией 192 установки вектора движения, и данные опорного изображения, поданные на вход из памяти 69 кадров. Затем секция 195 компенсации вырабатывает сгенерированные данные предсказанного изображения в секцию 65 сложения через переключатель 71.
(2) Улучшенный уровень
В процессе компенсации движения улучшенного уровня, осуществляется предсказание вектора движения на основании информации предиктора нижнего уровня, сохранённого в буфере 193 информация предиктора.
Во-первых, секция 191 получения информации получает информацию внешнего предсказания, декодируемую секцией 62 декодирования без потерь из кодированного потока. В настоящем примере информация внешнего предсказания улучшенного уровня может содержать информацию дельта-вектора движения (информация вектора движения для блоков предсказания, для которых вектор движения не предсказывается). Кроме того, так как установочная информации устанавливает вектора движения для каждого блока предсказания в нижнем уровне, секция 191 получения информации принимает информацию предиктора, показывающую предиктор, который используется для предсказания вектора движения, соответствующего блока предсказания в нижнем уровне, из буфера 193 информации предиктора. Информация предиктора, полученная здесь, показывает, например, один из вышеупомянутых пространственного предиктора и временного предиктора. Секция 192 установки вектора движения восстанавливает вектор движения с помощью информации дельта-вектора движения и информации предиктора, полученную секцией 191 получения информации, и устанавливает восстановленный вектор движения к каждому блоку предсказания. Вектор движения, установленный на каждый блок предсказания секцией 192 установки вектора движения, выводится в секцию 195 компенсации и также сохраняется в буфере 194 вектора движения. Секция 195 компенсации генерирует данные предсказанного изображения каждого блока предсказания, используя вектор движения, установленный на каждый блок предсказания секцией 192 установки вектора движения, и данные опорного изображения, поступившие на вход из памяти 69 кадров. Затем секция 195 компенсации вырабатывает сгенерированные данные предсказанного изображения в секцию 65 сложения через переключатель 71.
(3) Последовательность операций процесса
Фиг. 19 является блок-схемой алгоритма, показывающей пример последовательности операций процесса компенсации движения секцией 90 компенсации движения, в соответствии с настоящим примером. Обращаясь к фиг. 19, секция 90 компенсации движения выполняет процесс компенсации движения базового уровня (этап S210). В этот момент, буфер 193 информации предиктора буферизирует информацию предиктора, показывающую предиктор, выбранный для кодирования каждого блока предсказания как установочную информацию.
Процессы на этапе с S211 по S218 является процессом компенсации движения улучшенных уровней. Из этих процессов, процессы этапов с S211 по S217 повторяются для каждого сигнального PU каждого улучшенного уровня. В нижеследующем описании, «верхний уровень» представляет собой уровень для предсказания и «нижний уровень» представляет собой уровень ниже уровня для предсказания.
Во-первых, секция 191 получения информации устанавливает один PU верхнего уровня, как сигнальный PU, и получает информацию предиктора PU в нижнем уровне, соответствующий сигнальному PU из буфера 193 информации предиктора (этап S211). Секция 191 получения информации также получает информацию дельта-вектора движения, касающуюся сигнального PU (этап S212). Секция 192 установки вектора движения декодирует информацию дельта-вектора движения (этап S213).
Далее, секция 192 установки вектора движения генерирует предсказанный вектор движения сигнального PU использованием информации предиктора, полученной секцией 191 получения информации, и опорных векторов движения (этап S214). Далее, секция 192 установки вектора движения восстанавливает вектор движения путём добавления дельта-вектора движения в сгенерированный предсказанный вектор движения (этап S215). Восстановленный таким образом вектор движения, устанавливается на сигнальном PU. Кроме того, восстановленный вектор движения временно сохраняется в буфере 194 вектора движения для процесса в верхнем уровне. Для блоков предсказания, для которых вектор предсказан, предсказывается, вместо информации дельта-вектора движения, информация вектора движения может быть получена из кодированного потока декодированием вектора движения на основании информации вектора движения.
Далее, секция 195 компенсации генерирует данные предсказанного изображения сигнального PU, используя вектор движения, установленный на сигнальном PU секцией 192 установки вектора движения, и данные опорного изображения, поданные на вход из памяти 69 кадров (этап S216).
Затем, если остаётся любой необработанный PU в уровне для предсказания, процесс возвращается на этап S211 (этап S217). С другой стороны, если нет необработанных PU, то дополнительно определяется наличие уровня (любой более высокий уровень) (этап S218).Если устанавливается наличие уровня, то процессы на этапе S211 и после повторяются после того, как устанавливается уровень, который был предсказан как нижний уровень и следующий уровень как высокий уровень. Информация предиктора, показывающая предикторы, выбранные для нижнего уровня, продолжают буферизоваться в буфере 193 информации предиктора. Если отсутствует уровень, то процесс компенсации движения, показанный на фиг. 19, заканчивается. Данные предсказанного изображения, генерируемые здесь, выводятся в секцию 65 сложения через переключатель 71.
В первом примере, как было описано ранее, информация предиктора нижнего уровня может быть использована повторно для декодирования верхнего уровня и, следовательно, нет необходимости избыточно кодировать информацию предиктора для верхнего уровня. Соответственно количество кода информации внешнего предсказания может быть уменьшено.
4-2. Второй пример
Фиг. 20 является блок-схемой, показывающей пример подробной конфигурации секции 90 компенсации движения в соответствии со вторым примером. Как показано на фиг. 20, секция 90 компенсации движения включает в себя секцию 291 получения информации, секцию 292 установки вектора движения, буфер 294 вектора движения и секцию 295 компенсации.
(1) Базовый уровень
Процесс компенсации движения базового уровня в соответствии с настоящим примером может быть таким же, как процесс компенсации движения базового уровня в соответствии с первым примером. В данном примере, однако, информация предиктора базового уровня не может быть буферирована и информации вектора движения базового уровня буферируется распространением по уровням. В процессе компенсации движения базового уровня, секция 291 получения информации получает информацию внешнего предсказания, декодируемую секцией 62 декодирования без потерь из кодированного потока. В настоящем примере информация внешнего предсказания может содержать информацию предиктора и информацию дельта-вектора движения (информация вектора движения для блоков предсказания, для которых нет вектора движения, предсказывается). Информация предиктора, полученная здесь, показывает, например, среди кандидатов предиктора, может содержать вышеупомянутые пространственный предиктор и временной предиктор, предиктор, выбранный для каждого блока предсказания для кодирования. Секция 292 установки вектора движения устанавливает вектор движения для каждого блока предсказания. Затем вектор движения, установленный на каждый блок предсказания секцией 292 установки вектора движения, вырабатывается в секцию 295 компенсации и также сохраняется в буфере 294 вектора движения. Установки вектора движения секцией 292 установки вектора движения могут быть осуществлены с использованием предиктора, показанного информацией предиктора, для каждого блока предсказания и дельта-вектора движения, показанного информацией дельта-вектора движения. Секция 295 компенсации генерирует данные предсказанного изображения каждого блока предсказания, используя вектор движения, установленного на каждый блок предсказания, секцией 292 установки вектора движения, и данные опорного изображения, поданные на вход из памяти 69 кадров. Затем секция 295 компенсации вырабатывает сгенерированные данные предсказанного изображения в секцию 65 сложения через переключатель 71.
(2) Улучшенный уровень
В процессе компенсации движения улучшенного уровня, может осуществляться предсказание вектора движения с использованием межуровневого предиктора на основе опорных векторов движения нижнего уровня, хранимые в буфере 294 вектора движения.
Во-первых, секция 291 получения информации получает информацию внешнего предсказания, декодируемую секцией 62 декодирования без потерь из кодированного потока. В настоящем примере информация внешнего предсказания усовершенствованного уровня может содержать, в дополнение к информации дельта-вектора движения, информацию предиктора, показывающую предиктор, выбранный для кодирования из множества кандидатов предиктора, включающая в себя межуровневый предиктор как установочную информацию. Информация предиктора, показывающая, что выбран межуровневый предиктор, использовалось наименьшее количество кода из множества кандидатов предикторов. Секция 292 установки вектора движения восстанавливает вектор движения с помощью информации дельта-вектора движения и информации предиктора, полученной секцией 291 получения информации, и задаёт восстановленный вектор движения для каждого блока предсказания. Когда информация предиктора показывает межуровневый предиктор, секция 292 установки вектора движения может установить опорный вектор движения, увеличенный в соответствии с коэффициентом пространственного разрешения между уровнями, по формуле (9), в качестве предсказанного вектора движения. В этом случае секция 292 установки вектора движения может округлить значение предсказанного вектора движения, в соответствии с точностью вектора движения. Вектор движения, установленный на каждый блок предсказания секцией 292 установки вектора движения, вырабатывается в секцию 295 компенсации и также сохраняется в буфере 294 вектора движения. Секция 295 компенсации генерирует данные предсказанного изображения каждого блока предсказания, используя вектор движения, установленный на каждый блок предсказания секцией 292 установки вектора движения, и данные опорного изображения, поданные на вход из памяти 69 кадров. Затем секция 295 компенсации вырабатывает сгенерированные данные предсказанного изображения в секцию 65 сложения через переключатель 71.
(3) Последовательность операций процесса
Фиг. 21 является блок-схемой алгоритма, показывающей пример последовательности операций процесса компенсации движения секцией 90 компенсации движения, в соответствии с настоящим примером. Как показано на фиг. 21, секция 90 компенсации движения сначала выполняет процесс компенсации движения базового уровня (этап S220). В этот момент, буфер 294 вектора движения буферизует вектор движения, установленный на каждый блок предсказания.
Процессы на этапах с S221 по S218 является процессом компенсации движения улучшенных уровней. Из этих процессов, процессы этапов с S221 по S228 повторяются для каждого сигнального PU каждого улучшенного уровня. В нижеследующем описании, «верхний уровень» представляет собой уровень для предсказания и «нижний уровень» представляет собой уровень ниже уровня для предсказания.
Во-первых, секция 291 получения информации устанавливает один PU верхнего уровня, как сигнальный PU и получает информацию дельта-вектора движения информацию предиктора, касающуюся сигнального PU из кодированного потока (этап S221). Секция 292 установки вектора движения декодирует информацию дельта-вектора движения (этап S222). Секция 292 установки вектора движения использует информацию предиктора для идентификации предиктора, который используется для генерации предсказанного вектора движения сигнального PU (этап S223).
Далее, секция 292 установки вектора движения генерирует предсказанный вектор движения для сигнального PU с использованием опорных векторов движения буферизованных буфером 294 вектора движения, согласно идентифицированному предиктору (этап S224). Если, например, идентифицированный предиктор является межуровневым предиктором, то вектор движения, установленный на PU в нижнем уровне, соответствующим сигнальному PU, используется в качестве опорного вектора MVbase движения в вышеупомянутой формуле (8) или формуле (9). Далее, секция 292 установки вектора движения восстанавливает вектор движения добавлением дельта-вектора движения в сгенерированный предсказанный вектор движения (этап S225). Вектор движения, восстановленный таким образом, устанавливается для сигнального PU. Кроме того, восстановленный вектор движения временно сохраняется в буфере 294 вектора движения для процесса в верхнем уровне. Для блоков предсказания, для которых нет вектора предсказания, прогнозируются, вместо информации дельта-вектора движения, информация вектора движения может быть получена из кодированного потока для декодирования информации вектора движения в вектор движения.
Далее, секция 295 компенсации генерирует данные предсказанного изображения сигнального PU, используя вектор движения, установленный на сигнальном PU секцией 292 установки вектора движения, и данных опорного изображения, поступающих на вход из памяти 69 кадров (этап S226).
Затем, если остаётся любой необработанный PU в уровне для предсказания, процесс возвращается на этап S221 (этап S227). С другой стороны, если нет необработанных PU, то дополнительно определяется наличие уровня (любой более высокий уровень) (этап S228). Если устанавливается наличие уровня, то процессы на этапе S221 и после повторяются после того, как устанавливается уровень, который был предсказан как нижний уровень и следующий уровень как высокий уровень. Если отсутствует уровень, то процесс компенсации движения, показанный на фиг. 21, заканчивается. Данные предсказанного изображения, генерируемые здесь, выводятся в секцию 65 сложения через переключатель 71.
Во втором примере, как описано выше, вектор движения, используемый для компенсации движения верхнего уровня, может быть предсказан в соответствии с межуровневым предиктором на основании вектора движения, установленным в нижнем уровне. Таким образом, повышение точности прогнозирования вектора движения приведёт к уменьшению количество кодадельта-вектора движения.
4-3. Третий пример
Фиг. 22 является блок-схемой, показывающей пример подробной конфигурации секции 90 компенсации движения, в соответствии с третьим примером. Как показано на фиг. 22, секция 90 компенсации движения включает в себя секцию 391 получения информации, секцию 392 установки вектора движения, буфер 393 информации объединения, буфер 394 вектора движения и секцию 395 компенсации.
(1) Базовый уровень
В процессе компенсации движения базового уровня, секция 391 получения информации получает информацию внешнего предсказания, декодируемую секцией 62 декодирования без потерь из кодированного потока. В настоящем примере информация внешнего предсказания может содержать информацию объединения и информацию вектора движения. Информация объединения, принятая здесь, может содержать, например, MergeFlag и MergeLeftFlag, как показано на фиг. с 12А по 12С и показывают среди множества кандидатов режима объединения, выбранный режим объединения для каждого блока предсказания для кодирования. Секция 392 установки вектора движения устанавливает вектор движения для каждого блока предсказания. Затем вектор движения, установленный на каждый блок предсказания секцией 392 установки вектора движения, вырабатывается в секцию 395 компенсации и также сохраняется в буфере 394 вектора движения. Кроме того, информация объединения для каждого блока предсказания сохраняется в буфере 393 информации объединения для процесса в верхнем уровне. Если, например, информация объединения указывает на то, что определённый блок предсказания объединяется с соседним блоком предсказания, прилегающим к блоку предсказания (устанавливается общий вектор движения для этих блоков предсказания), то секция 392 установки вектора движения получает вектор движения, установленный на смежный блок предсказания из буфера 394 вектор движения и устанавливает полученный вектор движения для вышеупомянутого блока предсказания. С другой стороны, если информация объединения указывает на то, что определённый блок предсказания не объединяется с другим блоком предсказания, секция 392 установки вектора движения устанавливает восстановленный вектор движения декодированием информации вектора движения, полученной секцией 391 получения информации в вышеупомянутом блоке предсказания. Секция 395 компенсации генерирует данные предсказанного изображения каждого блока предсказания, используя вектор движения, установленный на каждый блок предсказания секцией 392 установки вектора движения, и данные опорного изображения, поступившие на вход из памяти 69 кадров. Затем секция 395 компенсации вырабатывает сгенерированные предсказанные данные изображения в секцию 65 сложения через переключатель 71.
(2) Улучшенный уровень
В процессе компенсации движения улучшенного уровня, вектор движения устанавливается на каждый блок предсказания, согласно информации объединения нижнего уровня, хранящейся в буфере 393 информации объединения.
Во-первых, секция 391 получения информации получает установочную информацию для установления вектора движения для каждого блока предсказания в верхнем уровне, соответствующей каждому блоку предсказания из буфера 393 информации объединения. Секция 391 получения информации получает информацию вектора движения, содержащуюся в информации внешнего предсказания для блока предсказания необъединённого с другим блоком предсказания. Информация объединения, полученная секцией 391 получения информации, может содержать, например, MergeFlag и MergeLeftFlag, описанную со ссылкой на фигуры с 12А по 12С. Секция 392 установки вектора движения устанавливает вектор движения для каждого блока предсказания в соответствии с информацией объединения, полученной секцией 391 получения информации. Вектор движения, установленный на каждый блок предсказания секцией 392 установки вектора движения, вырабатывается в секцию 395 компенсации и также сохраняется в буфере 394 вектора движения. Секция 392 установки вектора движения может установить вектор движения, восстановленный декодированием информации вектора движения, в блок предсказания, который не объединяется с другим блоком предсказания. Секция 395 компенсации генерирует предсказанные данные изображения каждого блока предсказания, используя вектор движения, установленный на каждый блок предсказания секцией 392 установки вектора движения, и данные опорного изображения, поступившие на вход из памяти 69 кадров. Затем секция 395 компенсации вырабатывает сгенерированные предсказанные данные изображения в секцию 65 сложения через переключатель 71.
(3) Последовательность операций процесса
Фиг. 23 является блок-схемой алгоритма, показывающей пример последовательности операций процесса компенсации движения секцией 90 компенсации движения, в соответствии с настоящим примером. Как показано на фиг. 23, секция 90 компенсации движения сначала выполняет процесс компенсации движения базового уровня (этап S230). На данный момент, буфер 393 информации объединения буферизует информацию объединения, показывающую режим объединения, выбранный для кодирования каждого блока предсказания в качестве установочной информации.
Процессы на этапах с S231 по S238 является процессом компенсации движения улучшенных уровней. Из этих процессов, процессы этапов с S231 по S237 повторяются для каждого сигнального PU каждого улучшенного уровня. В нижеследующем описании, «верхний уровень» представляет собой уровень для предсказания и «нижний уровень» представляет собой уровень ниже уровня для предсказания.
Во-первых, секция 391 получения информации устанавливает один PU верхнего уровня, как сигнальный PU и получает информацию объединения PU в нижнем уровне, соответствующая сигнальному PU, из буфера393 информации объединения (этап S231). Далее, секция 391 получения информации определяет, следует ли объединить сигнальный PU с другим PU на основании полученной информации объединения (этап S232). Когда, например, соответствующий PU в нижнем уровне объединяется с левым соседним PU, то сигнальный PU также может быть определён для объединения с левым соседним PU. Аналогичным образом, когда соответствующий PU в нижнем уровне объединяется с верхним соседним PU, то сигнальный PU также может быть определён для объединения с верхним соседним PU. В этих случаях, процесс переходит на этап S233. С другой стороны, когда соответствующий PU в нижнем уровне не объединяется с соседним PU, то сигнальный PU также может быть определён, как не подлежащий объединению с соседним PU. В этом случае процесс переходит на этап S234.
На этапе S233, секция 392 установления вектора движения принимает вектор движения, определённый в соответствии с информацией объединения из буфера 394 вектор движения и устанавливает полученный вектор движения на сигнальный PU (этап S233). На этапе S234, с другой стороны, секция 391 получения информации получает информацию вектора движения сигнального PU (этап S234). Затем секция 392 установки вектора движения декодирует полученную информацию вектора движения в вектор движения и устанавливает декодированный вектор движения в сигнальный PU (этап S235).
Далее, секция 395 компенсации генерирует предсказанные данные изображения сигнального PU, используя вектор движения, установленный на сигнальный PU секцией 392 установки вектора движения, и данные опорного изображения поступают на вход из памяти 69 кадров (этап S236).
Затем, если остаётся любой необработанный PU в уровне для предсказания, процесс возвращается на этап S231 (этап S237). С другой стороны, если нет необработанных PU, то дополнительно определяется наличие уровня (любой более высокий уровень) (этап S238).Если устанавливается наличие уровня, то процессы на этапе S231 и после повторяются после того, как устанавливается уровень, который был предсказан как нижний уровень и следующий уровень как высокий уровень. Информация объединения, показывающая выбранный режим объединения для нижнего уровня, продолжает буферироваться буфером 393 информации объединения. Если отсутствует уровень, то процесс компенсации движения, показанный на фиг. 23, заканчивается. Данные предсказанного изображения, генерируемые здесь, выводятся в секцию 65 сложения через переключатель 71.
В третьем примере, как описано выше, информация объединения нижнего уровня повторно используется для декодирования верхнего уровня и, таким образом, нет никакой необходимости в избыточном кодировании информации объединения для верхнего уровня. Таким образом, величина кода информации внешнего предсказания может быть уменьшена.
4-4.Четвёртый пример
Фиг. 24 является блок-схемой, показывающей пример подробной конфигурации секции 90 компенсации движения, в соответствии с четвертым примером. Как показано на фиг. 24, секция 90 компенсации движения включает в себя секцию 491 получения информации, секцию 492 установки вектора движения, буфер 494 вектора движения и секцию 495 компенсации.
(1) Базовый уровень
В процессе компенсации движения базового уровня, секция 491 получения информации получает информацию внешнего предсказания, декодируемую секцией 62 декодирования без потерь из кодированного потока. В настоящем примере информация внешнего предсказания может содержать информацию объединения и информацию о векторе движения. Информация объединения, полученная для базового уровня может содержать, например, MergeFlag и MergeLeftFlag, как описано с использованием фиг. с 12А по 12С и показывают, среди множества кандидатов режима объединения, выбранный режим объединения для каждого блока предсказания для кодирования. Секция 492 установки вектора движения устанавливает вектор движения для каждого блока предсказания. Затем вектор движения, установленный на каждый блок предсказания секцией 492 установки вектора движения, поставляется в секцию 495 компенсации и также сохраняется в буфере 494 вектора движения. Если, например, информация объединения указывает на то, что определённый блок предсказания объединяется с соседним блоком предсказания, прилегающим к блоку предсказания, то секция 492 установки вектора движения получает вектор движения, установленный в соседнем блоке предсказания из буфера 494 вектор движения, и устанавливает полученный вектор движения в вышеупомянутый блок предсказания. С другой стороны, если информация объединения указывает, что определённый блок предсказания не объединён с другим блоком предсказания, то секция 492 установки вектора движения устанавливает вектор движения, восстановленный декодированием информации вектора движения, полученной блоком 491 получения информации, в вышеупомянутом блоке предсказания. Секция 495 компенсации генерирует предсказанные данные изображения каждого блока предсказания, используя вектор движения, установленный на каждый блок предсказания секцией 492 установки вектора движения, и данные опорного изображения поступают на вход из памяти 69 кадров. Затем секция 495 компенсации вырабатывает сгенерированные данные предсказанного изображения в секцию 65 сложения через селектор 71.
(2) Улучшенный уровень
В процессе компенсации движения улучшенного уровня, информация объединения, включающая в себя MergeBaseFlag, показывает, что может быть использовано объединение с соответствующим блоком предсказания в нижнем уровне.
Во-первых, секция 491 получения информации получает информацию внешнего предсказания, декодированную секцией 62 декодирования без потерь из кодированного потока. Информация внешнего предсказания улучшенного уровня может содержать информацию объединения и информацию вектора движения Информация объединения может содержать, например, MergeFlag, MergeBaseFlag и MergeLeftFlag, как описано с использованием фиг. с 15А по 15С и показывает, среди множества кандидатов режима объединения, выбранный режим объединения для каждого блока предсказания для кодирования. Секция 492 установки вектора движения устанавливает вектор движения для каждого блока предсказания в соответствии с информацией объединения, полученной секцией 491 получения информации. Когда блоки предсказания объединены между уровнями, секция 492 установки вектора движения может установить увеличенный опорный вектор движения после расширения, согласно вышеупомянутой формуле (9), буферизованный вектор движения в соответствии с коэффициентом пространственного разрешения между уровнями. В этом случае секция 492 установки вектора движения может округлить значение расширенного вектора движения, в соответствии с величиной точности вектора движения. Вектор движения, установленный на каждый блок предсказания секцией 492 установки вектора движения, вырабатывается в секцию 495 компенсации и также сохраняется в буфере 494 вектора движения. Секция 492 установки вектора движения может установить вектор движения, восстановленный декодированием информации вектора движения, в блок предсказания, который не объединяется с другим блоком предсказания. Секция 495 компенсации генерирует предсказанные данные изображения каждого блока предсказания, используя вектор движения, установленный на каждый блок предсказания секцией 492 установки вектора движения, и данные опорного изображения, поданные на вход из памяти 69 кадров. Затем секция 495 компенсации вырабатывает сгенерированные предсказанные данные изображения в секцию сложения 65 через переключатель 71.
(3) Последовательность операций процесса
Фиг. 25 является блок-схемой алгоритма, показывающей пример последовательности операций процесса компенсации движения секцией 90 компенсации движения, в соответствии с настоящим примером. Как показано на фиг. 25, секция 90 компенсации движения сначала выполняет процесс компенсации движения базового уровня (этап S240). В этот момент, буфер 494 вектора движения буферизует вектор движения, установленный на каждый блок предсказания.
Процессы на этапах с S241 по S248 являются процессом компенсации движения улучшенных уровней. Из этих процессов, процессы этапов с S241 по S247 повторяются для каждого сигнального PU каждого улучшенного уровня. В нижеследующем описании, «верхний уровень» представляет собой уровень для предсказания и «нижний уровень» представляет собой уровень ниже уровня для предсказания.
Секция 491 получения информации сначала получает информацию объединения одного сигнального PU верхнего уровня (этап S241). Далее, секция 491 получения информации определяет, следует ли объединить сигнальный PU с другим PU на основании полученной информации объединения (этап S242). Например, сигнальный PU может быть объединён с соответствующим PU в нижнем уровне или соседним PU в верхнем уровне. Когда сигнальный PU объединён с другим PU, то процесс переходит на этап S243. С другой стороны, когда сигнальный PU не объединён с другим PU, то процесс переходит на этап S244.
На этапе S243, секция 492 установки вектора движения получает вектор движения, определённый в соответствии с информацией объединения из буфера 494 вектора движения, и устанавливает полученный вектор движения на сигнальном PU (этап S243). На этапе S244, с другой стороны, секция 491 получения информации получает информацию вектора движения сигнального PU (этап S244). Затем секция 492 установки вектора движения декодирует полученную информацию вектора движения в вектор движения и устанавливает декодированный вектор движения на сигнальный PU (этап S245).
Далее, секция 495 компенсации генерирует предсказанные данные изображения сигнального PU, используя вектор движения, установленный на сигнальном PU секцией 492 установки вектора движения, и данные опорного изображения, поступившие на вход из памяти 69 кадров (этап S246).
Затем, если остаётся любой необработанный PU в уровне для предсказания, процесс возвращается на этап S241 (этап S247). С другой стороны, если нет необработанных PU, то дополнительно определяется наличие уровня (любой более высокий уровень) (этап S248). Если устанавливается наличие уровня, то процессы на этапе S241 и после повторяются после того, как устанавливается уровень, который был предсказан как нижний уровень и следующий уровень как высокий уровень. Вектор движения, установленный на каждый блок предсказания нижнего уровня, буферируется буфером 494 вектором движения. Если отсутствует уровень, то процесс компенсации движения, показанный на фиг. 25, заканчивается. Данные предсказанного изображения, генерируемые здесь, выводятся в секцию 65 сложения через переключатель 71.
В четвёртом примере, как описано выше, вектор движения устанавливается на каждый блок предсказания улучшенного уровня, используя информацию объединения, показывающую выбранный режим объединения из множества кандидатов режима объединения, включающую в себя объединение блоков предсказания между уровнями. Таким образом, вектор движения блока предсказания в верхнем уровне объединяется с соответствующим блоком предсказания в нижнем уровне, имеющим чёткую корреляцию движения, не кодируясь, и поэтому количество кода может быть эффективно уменьшено.
5. Пример применения
Устройство 10 кодирования изображения и устройство 60 декодирования изображения в соответствии с вариантом осуществления, описанным выше, могут быть применены к различным электронным приборам, таким как передатчик и приёмник для спутникового вещания, кабельного вещания, при использовании в кабельном телевидении, для Интернет вещания, вещания с помощью сотовой связи и тому подобное, устройство записи, которое записывает изображения на носителе информации, такой как оптический диск, магнитный диск или флэш-память, устройство воспроизведения, которое воспроизводит изображения с такого носителя и тому подобное. Далее будут описаны четыре примера применения.
5-1. Первый пример применения
Фиг. 26 является блок-схемой, иллюстрирующей пример схематической конфигурации телевизионного устройства, применяемого в вышеупомянутом варианте осуществления. Телевизионное устройство 900 включает в себя антенну 901, тюнер 902, демультиплексор 903, декодер 904, блок 905 обработки видеосигнала, дисплей 906, блок 907 обработки аудиосигнала, громкоговоритель 908, внешний интерфейс 909, блок 910 управления, пользовательский интерфейс 911 и шину 912.
Тюнер 902 выделяет сигнал желаемого канала из широковещательного сигнала, принятого через антенну 901, и демодулирует выделенный сигнал. Тюнер 902 затем подаёт закодированный битовый поток, полученный посредством демодуляции в демультиплексор 903. То есть в телевизионном устройстве 900 тюнер 902 играет важную роль средства передачи, приняв кодированный поток, в котором закодировано изображение.
Демультиплексор 903 разделяет видеопоток и аудио поток в программе для просмотра из кодированного битового потока и направляет каждый из изолированных потоков на декодер 904. Демультиплексор 903 также извлекает вспомогательные данные, такие как EPG (электронный гид программ передач) из кодированного битового потока и поставляет извлечённые данные на блок 910 управления. Здесь демультиплексор 903 может декодировать кодированный битовый поток, когда он закодирован.
Декодер 904 декодирует видеопоток и аудио поток, которые поступают из демультиплексора 903. Декодер 904 затем направляет видеоданные, полученные в процессе декодирования, в блок 905 обработки видеосигнала. Кроме того, декодер 904 направляет аудиоданные, полученные в процессе декодирования, в блок 907 обработки аудио сигнала.
Блок 905 обработки видеосигнала воспроизводит видеоданные, поступившие на вход из декодера 904, и отображает видео на дисплее 906. Блок 905 обработки видеосигнала может также отображать экранное приложение, подаваемое через сеть на дисплей 906. Блок 905 обработки видеосигнала может дополнительно выполнять дополнительный процесс, такой как подавление шума в видеоданных в соответствии с установкой. Кроме того, блок 905 обработки видеосигнала может генерировать изображение GUI (графический интерфейс пользователя), такое как меню, кнопку или курсор и накладывать генерируемое изображение на выходное изображение.
Дисплей 906 управляется сигналом управления, поступающим из блока 905 обработки видеосигнала, и отображает видео или изображение на видеоэкране устройства отображения (например, на жидкокристаллическом дисплее, плазменном дисплее или OELD (Органическом дисплее электролюминесценции)).
Блок 907 обработки аудио сигнала выполняет процесс воспроизведения, такой как D/A преобразование и усиление аудиоданных, поступивших на вход из декодера 904, и воспроизводит звук с помощью громкоговорителя 908.Блок 907 обработки аудио сигнала может также выполнять дополнительный процесс, такой как подавление шума.
Внешний интерфейс 909 представляет собой интерфейс, который соединяет телевизионное устройство 900 с внешним устройством или сетью. Например, декодер 904 может декодировать видеопоток и аудиопоток, принятый через внешний интерфейс 909. Это означает, что в телевизионном устройстве 900 внешний интерфейс 909 также играет важную роль в качестве средства передачи, принятого кодированного потока, в котором кодируется изображение.
Блок 910 управления включает в себя процессор, такой как CPU и запоминающее устройство, например RAM и ROM. Запоминающее устройство хранит программу, исполняемую процессором, программные данные, EPG данные и данные, полученные через сеть. Программа, хранящаяся в запоминающем устройстве, считывается с помощью CPU при включении телевизионного устройства 900 и далее выполняется, например. При выполнении программы, процессор управляет работой телевизионного устройства 900 в соответствии с сигналом управления, который поступает из пользовательского интерфейса 911, например.
Пользовательский интерфейс 911 подключается к блоку 910 управления. Пользовательский интерфейс 911 включает в себя кнопку и переключатель для обеспечения управления телевизионного устройства 900 пользователем и также приёмную часть, которая принимает сигнал дистанционного управления, например. Пользовательский интерфейс 911 обнаруживает сигнал управления пользователя, используя соответствующие компоненты, генерирует сигнал управления и подаёт сформированный сигнал управления в блок 910 управления.
Шина 912 взаимно соединяет тюнер 902, демультиплексор 903, декодер 904, блок 905 обработки видеосигнала, блок 907 обработки аудио сигнала, внешний интерфейс 909 и блок 910 управления.
Декодер 904 в телевизионном устройстве 900, выполненный в соответствии с вышеописанным способом, имеет функцию устройства 60 декодирования изображения в соответствии с вышеупомянутым вариантом осуществления. Соответственно, для масштабируемого кодирования и декодирования видео изображений телевизионным устройством 900, эффективность кодирования может быть дополнительно повышена посредством использования корреляции движения между уровнями.
5-2. Второй пример применения
Фиг. 27 является блок-схемой, иллюстрирующей пример схематической конфигурации мобильного телефона, используемого в вышеупомянутом варианте осуществления. Мобильной телефон 920 включает в себя антенну 921, блок 922 связи, аудиокодек 923, динамик 924, микрофон 925, блок 926 камеры, блок 927 обработки изображения, блок 928 демультиплексирования, блок 929 записи/воспроизведения, дисплей 930, блок 931 управления, операционный блок 932 и шину 933.
Антенна 921 соединена с блоком 922 связи. Динамик 924 и микрофон 925 подключены к аудиокодеку 923. Операционный блок 932соединён с блоком 931 управления 931. Шина 933 взаимно соединяет блок 922 связи, аудиокодек 923, блок 926 камеры, блок 927 обработки изображения, блок 928 демультиплексирования, блок 929 записи /воспроизведения, дисплей 930 и блок 931 управления.
Мобильной телефон920 осуществляет передачу/приём аудиосигнала, передачу/приём электронной почты или данных изображения, визуализацию изображения или запись данных в различных режимах работы, включая режим аудио вызова, режим передачи данных, режим фотографирования и режим видеотелефона.
В режиме аудио вызова, аналоговый звуковой сигнал, генерируемый микрофоном 925, подаётся в аудиокодек 923. Аудиокодек 923 затем преобразует аналоговый аудиосигнал в аудиоданные, выполняет А/D преобразование преобразованных аудиоданных, и сжимает данные. Аудиокодек 923 затем вырабатывает сжатые аудиоданные в блок 922 связи. Блок 922 связи кодирует и модулирует аудиоданные для генерации сигнала передачи. Блок 922 связи затем передаёт сгенерированный сигнал передачи в базовую станцию (не показано) через антенну 921. Кроме того, блок 922 связи усиливает радиосигнал, принятый антенной 921, преобразует частоту сигнала и получает сигнал приёма. Блок 922 связи затем демодулирует и декодирует сигнал приёма для генерирования аудиоданных и вырабатывает сгенерированные аудиоданные в аудиокодек 923. Аудиокодек 923 расширяет аудиоданные, выполняет D/А преобразование данных и генерирует аналоговый аудио сигнал. Аудиокодек 923 затем подаёт сгенерированный аудиосигнал в громкоговоритель 924.
В режиме передачи данных, например, блок 931 управления генерирует символьные данные, конфигурирующие электронную почту, в соответствии с действиями пользователя через операционный блок 932. Блок 931 управления дополнительно отображает символ на дисплее 930. Кроме того, блок 931 управления генерирует данные электронной почты в соответствии с передаваемыми командами пользователя через операционный блок 932 и вырабатывает сгенерированные данные электронной почты в блок 922 связи. Блок 922 связи кодирует и модулирует данные электронной почты для генерирования сигнала передачи. Затем устройство 922 связи передаёт сгенерированный сигнал передачи на базовую станцию (не показан) через антенну 921. Блок 922 связи дополнительно усиливает радиосигнал, принятый антенной 921, преобразует частоту сигнала и получает сигнал приёма. Блок 922 связи затем демодулирует и декодирует сигнал приёма, восстанавливает данные электронной почты и вырабатывает восстановленные данные электронной почты в блок 931 управления. Блок 931 управления отображает контент электронной почты на дисплее 930 и также хранит данные электронной почты на носителе данных блока 929 записи /воспроизведения.
Блок 929 записи/воспроизведения включает в себя произвольный носитель памяти для чтения и записи. Например, носитель записи данных может быть встроенным носителем записи данных, таким как RAM или флэш-память или может быть внешним носителем записи данных, таким как жёсткий диск, магнитный диск, магнитооптический диск, оптический диск, USB (битовое отображение незанятого пространства) память или карту памяти.
В режиме фотосъёмки, например, блок 926 камеры осуществляет отображение объекта, генерирует данные изображения и выводит сгенерированные данные изображения в блок 927 обработки изображения. Блок 927 обработки изображения кодирует входные данные изображения из блока 96 камеры и сохраняет кодированный поток на носителе хранения данных блока 929 записи/воспроизведения.
В режиме видеотелефона, например, блок 928 демультиплексирования мультиплексирует поток видео, кодируемого блоком 927 обработки изображения и поток аудио, поступивший на вход из аудиокодека 923, и вырабатывает мультиплексированный поток в блок 922 связи. Блок 922 связи кодирует и модулирует поток для генерирования сигнала передачи. Блок 922 связи соответственно передаёт сгенерированный сигнал передачи на базовую станцию (не показано) через антенну 921. Кроме того, блок 922 связи усиливает радиосигнал, принятый антенной 921, преобразует частоту сигнала и получает сигнал приёма. Сигнал передачи и сигнал приёма могут включать в себя закодированный битовый поток. Затем блок 922 связи демодулирует и декодирует сигнал приёма для восстановления потока и вырабатывает восстановленный поток в блок 928 демультиплексирования. Блок 928 демультиплексирования разделяет видеопоток и аудиопоток из входного потока и вырабатывает поток видео и аудио потоки в блок 927 обработки изображения и аудиокодек 923, соответственно. Блок 927 обработки изображения декодирует видеопоток для генерирования видеоданных. Видеоданные затем подаются на дисплей 930, который отображает серию изображений. Аудиокодек 923 расширяет и выполняет D/А преобразование аудиопотока для генерации аналогового аудиосигнала. Аудиокодек 923 затем передаёт сгенерированный аудио сигнал в громкоговоритель 924 для воспроизведения звука.
Блок 927 обработки изображения в мобильном телефоне 920 конфигурируется в соответствии с вышеописанным способом и имеет функцию устройства 10 для кодирования изображения и устройства 60 декодирования изображений в соответствии с вышеупомянутым вариантом осуществления. Соответственно, при масштабируемом кодировании и декодировании видео изображений мобильным телефоном 920, эффективность кодирования может быть дополнительно повышена посредством использования корреляции движения между уровнями.
5-3.Третий пример применения
Фиг. 28 является блок-схемой, иллюстрирующей пример схематической конфигурации устройства записи/воспроизведения, применяемого в вышеупомянутом варианте осуществления. Устройство 940 записи/воспроизведения кодирует аудиоданные и видеоданные принятой широковещательной программы и записывает данные на носитель записи, например. Устройство 940 записи/воспроизведения может также кодировать аудиоданные и видеоданные, полученные из другого устройства и записывать данные на носитель записи, например. В ответ на команды пользователя, например, устройство 940 записи/воспроизведения воспроизводит данные, записанные на носитель записи, на экране монитора и в громкоговорителе. Устройство 940 записи/воспроизведения в это время декодирует аудиоданные и видеоданные.
Устройство 940 записи/воспроизведения включает в себя тюнер 941, внешний интерфейс 942, кодер 943, HDD (жёсткий диск) 944, драйвер 945 диска, селектор 946, декодер 947, OSD (экранная индикация) 948, блок 949 управления и пользовательский интерфейс 950.
Тюнер 941 выделяет сигнал желаемого канала из широковещательного сигнала, принятый антенной (не показано) и демодулирует выделенный сигнал. Тюнер 941 затем вырабатывает закодированный полученный битовый поток посредством демодуляции, в селектор 946. То есть тюнер 941 играет важную роль в качестве средства передачи в устройство 940 записи/воспроизведения.
Внешний интерфейс 942 представляет собой интерфейс, который соединяет устройство 940 записи/воспроизведения с внешним устройством или сетью. Внешний интерфейс 942 может представлять собой, например, IEEE 1394 интерфейс, сетевой интерфейс, интерфейс USB или интерфейс флэш-памяти. Видеоданные и аудиоданные, принятые через внешний интерфейс 942, подаются на вход кодера 943, например. То есть внешний интерфейс 942 играет важную роль в качестве средства передачи в устройство 940 записи/воспроизведения.
Кодер 943 кодирует видеоданные и аудиоданные, когда видеоданные и аудиоданные, поступающие на вход из внешнего интерфейса 942, не кодируются. Кодер 943 затем вырабатывает закодированный битовый поток в селектор 946.
HDD 944 записывает на внутренний жёсткий диск кодированный битовый поток, в котором контент данных, такой как видео и аудио, сжимается, различные программы и другие данные. HDD 944 считывает эти данные с жёсткого диска при воспроизведении видео и аудио.
Драйвер 945 диска записывает и считывает данные с/на носитель записи, который установлен в драйвере диска. Носитель записи, установленный на драйвер 945 диска, может быть, например, диском DVD (например, DVD-Video, DVD-RAM, DVD-R, DVD-RW, DVD + R или DVD + RW) или Blu- ray (зарегистрированная торговая марка) диском.
Селектор 946 выбирает кодированный битовый поток, поступающий на вход из тюнера 941 или кодера 943, когда записывается видео и аудио, и вырабатывает выбранный кодированный битовый поток на HDD 944 или драйвер 945 диска. При воспроизведении видео и аудио, с другой стороны, селектор 946 вырабатывает кодированный битовый поток, поступающий на вход из HDD 944 или драйвера 945 диска на декодер 947.
Декодер 947 декодирует закодированный битовый поток для генерирования видеоданных и аудиоданных. Декодер 904 затем вырабатывает сгенерированные видеоданные в OSD 948 и сгенерированные аудиоданные на внешний громкоговоритель.
OSD 948 воспроизводит видео данные, поступившие из декодера 947, и отображает видео. OSD 948 также может накладывать изображение GUI, такое как меню, кнопку или курсор на отображаемое видео.
Блок 949 управления включает в себя процессор, такой как CPU и запоминающее устройство, такое как RAM и ROM. Запоминающее устройство хранит программу, исполняемую CPU, а также данные программы. Программа, хранящейся в запоминающем устройстве, считывается с помощью CPU при включении устройства 940 записи/воспроизведения и выполняется, например. При выполнении программы, процессор управляет функционированием устройства 940 записи/воспроизведения в соответствии с сигналом управления, который поступает из пользовательского интерфейса 950, например.
Пользовательский интерфейс 950 подключён к блоку 949 управления. Пользовательский интерфейс 950 включает в себя кнопку и переключатель для обеспечения управления пользователем устройства 940 записи/воспроизведения, а также приёмную часть, которая принимает сигнал дистанционного управления, например. Пользовательский интерфейс 950 обнаруживает действие пользователя, используя соответствующие компоненты, генерирует сигнал управления и вырабатывает сгенерированный сигнал управления в блок 949 управления.
Кодер 943 в устройстве 940 записи/воспроизведения, сконфигурированный в соответствии с вышеупомянутым способом, имеет функцию устройства10 кодирования изображения в соответствии с вышеупомянутым вариантом осуществления. С другой стороны, декодер 947 имеет функцию устройства 60 декодирования изображения в соответствии с вышеупомянутым вариантом осуществления. Соответственно, при масштабируемом кодировании и декодировании видео изображения устройством 940 записи/воспроизведения, эффективность кодирования может быть дополнительно повышена посредством использования корреляции движения между уровнями.
5-4. Четвёртый пример применения
Фиг. 29 является блок-схемой, иллюстрирующей пример схематической конфигурации устройства обработки изображения согласно вышеупомянутому варианту осуществления. Устройство 960 обработки изображения отображает объект, генерирует изображение, кодирует данные изображения и записывает данные на носителе записи.
Устройство 960 обработки изображения включает в себя оптический блок 961, блок 962 отображения, блок 963 обработки сигнала, блок 964 обработки изображения, дисплей 965, внешний интерфейс 966, память 967, дисковод 968, OSD 969, блок 970 управления, пользовательский интерфейс 971 и шину 972.
Оптический блок 961 подключён к блоку 962 отображения. Блок 962 отображения подключён к блоку 963 обработки сигнала. Дисплей 965 соединён с блоком 964 обработки изображения. Пользовательский интерфейс 971 подключён к блоку 970 управления. Шина 972 взаимно соединяет блок 964 обработки изображений, внешний интерфейс 966, память 967, дисковод 968, OSD 969 и блок 970 управления.
Оптический блок 961 включает в себя фокусные линзы и механизм установки диафрагмы. Оптический блок 961 формирует оптическое изображение объекта на поверхности формирования изображения блока 962 отображения. Блок 962 отображения включает в себя датчик изображения, такой как СCD (устройство с зарядовой связью) или CMOS (комплементарная МОП-структура), и выполняет фотоэлектрическое преобразование для преобразования оптического изображения, сформированного на поверхности изображения в сигнал изображения как электрический сигнал. Далее, блок 962 отображения вырабатывает сигнал изображения в блок 963 обработки сигнала.
Блок 963 обработки сигнала выполняет различные процессы обработки изображения, такие как регулировка динамического диапазона контраста, коррекцию градации тонов на изображении и цветовую коррекцию сигнала изображения, поданного на вход из блока 962 отображения. Блок 963 обработки сигнала вырабатывает данные изображения, обработанные в процессе обработки изображения, в блок 964 обработки изображения.
Блок 964 обработки изображения кодирует данные изображения, поступившие на вход из блока 963 обработки сигнала, генерирует кодированные данные. Блок 964 обработки изображения затем вырабатывает сгенерированные кодированные данные на внешний интерфейс 966 или в дисковод 968. Блок 964 обработки изображения также декодирует кодированные данные, поступившие на вход из внешнего интерфейса 966 или дисковода 968, для генерирования данных изображения. Блок 964 обработки изображения затем вырабатывает сгенерированные данные изображения на дисплей 965. Кроме того, блок 964 обработки изображения может выводить на дисплей 965 данные изображения, поступившие на вход из блока 963 обработки сигнала для отображения изображения. Более того, блок 964 обработки изображения может накладывать отображаемые данные, полученные из OSD 969 на изображение, которое выводится на дисплее 965.
OSD 969 генерирует изображение GUI, такое как меню, кнопку или курсор, и выводит генерированное изображение в блок 964 обработки изображений.
Внешний интерфейс 966 выполнен в виде USB терминала ввода/вывода, например. Внешний интерфейс 966 соединяет устройство 960обработки изображения с принтером при печати изображения, например. Кроме того, дисковод подключается к внешнему интерфейсу 966 по мере необходимости. Съёмный носитель информации, такой как магнитный диск или оптический диск, устанавливается в дисковод, например, так, что программа, считанная со съёмного носителя, может быть установлена в устройство 960 обработки изображения. Внешний интерфейс 966 может также быть сконфигурирован как сетевой интерфейс, подключённый к сети, такой как LAN или Интернет. То есть внешний интерфейс 966 играет важную роль в качестве средства передачи в устройстве 960 обработки изображения.
Носитель записи информации, установленный в дисковод 968, может быть произвольным съёмным носителем для чтения и записи, такой как магнитный диск, магнитооптический диск, оптический диск или полупроводниковое запоминающее устройство. Боле того, носитель записи информации может быть жёстко прикреплён к дисководу 968 и быть выполнен в виде встроенного жёсткого диска или SSD (твердотельный накопитель), например.
Блок 949 управления включает в себя процессор, такой как CPU и запоминающее устройство, такое как RAM и ROM. Запоминающее устройство хранит программу, исполняемую CPU, а также данные программы. Программа, хранящейся в запоминающем устройстве, считывается с помощью CPU при включении устройства 960 отображения, и затем выполняется. При выполнении программы, процессор управляет функционированием устройства 960 обработки изображения в соответствии с сигналом управления, который поступает из пользовательского интерфейса 971, например.
Пользовательский интерфейс 971 подключён к блоку 970 управления. Пользовательский интерфейс 971 включает в себя кнопку и переключатель для обеспечения управления пользователем устройства 960 обработки изображения, например. Пользовательский интерфейс 971 обнаруживает действие пользователя, используя соответствующие компоненты, генерирует сигнал управления и вырабатывает сгенерированный сигнал управления в блок 970 управления.
Блок 964 обработки изображения в устройстве 960 обработки изображения выполнен в соответствии с указанным выше способом и имеет функцию устройства 10 кодирования изображения и устройства 60 декодирования изображений в соответствии с вышеупомянутым вариантом осуществления. Соответственно, при масштабируемом кодировании и декодировании видео изображений с помощью устройства 960 обработки изображения, эффективность кодирования может быть дополнительно повышена посредством использования корреляции движения между уровнями.
6. Заключение
Были описаны четыре примера устройства 10 кодирования изображения и устройства 60 декодирования изображения согласно варианту осуществления с использованием фигур с 1 по 29. В соответствии с этими примерами, в масштабируемом кодировании и декодировании видео, установочная информация для установки вектора движения во второй блок предсказания в верхнем уровне соответствующему первому блоку предсказания в нижнем уровне и соответственный вектор движения, установленный в первом блоке предсказания, используется для установки вектора движения для второго блока предсказания. Таким образом, вектор движения может быть установлен на каждый блок предсказания верхнего уровня использованием корреляции движения между уровнями. Таким образом, можно избежать избыточного кодирования информации вектора движения, информации дельта-вектора движения, информации предиктора или информации объединения и, таким образом, увеличить эффективность кодирования.
В соответствии с первым примером, например, информация предиктора, показывающая предиктор, который используется для предсказания вектора движения блока предсказания в нижнем уровне, используется повторно, когда предсказывается вектор движения блока предсказания в верхнем уровне. Следовательно, избыточного кодирования информации предиктора можно избежать.
В соответствии со вторым примером, например, межуровневый предиктор для блока предсказания в верхнем уровне на основании вектора движения, установленного в соответствующем блоке предсказания в нижнем уровне, представляется как новый кандидат предиктора. Таким образом, точность предсказания вектора движения для блока предсказания в верхнем уровне может быть повышена и количество кода, необходимого для кодирования информации дельта-вектора движения, может быть уменьшено.
В соответствии с третьим примером, например, информация объединения, показывающая выбранный режим объединения для блока предсказания в нижнем уровне, повторно используется для блока предсказания в верхнем уровне. Таким образом, можно избежать избыточного кодирования информации объединения.
В соответствии с четвертым примером, например, применяется новый режим объединения для объединения блока предсказания в верхнем уровне с соответствующим блоком предсказания в нижнем уровне. Таким образом, можно не допустить избыточного кодирования информации вектора движения для блока предсказания в верхнем уровне.
Приведённое здесь описание является примером, в котором различные фрагменты информации, такие как информация, относящаяся к внутреннему предсказанию и информация, относящаяся к внешнему предсказанию, мультиплексируются в заголовок кодированного потока, и передаётся из стороны кодирования на сторону декодирования. Способ передачи этих фрагментов информации, однако, не ограничивается данным примером. Например, эти фрагменты информации могут быть переданы или записаны как отдельные данные, ассоциированные с закодированным битовым потоком без мультиплексирования с закодированным битовым потоком. Здесь термин «ассоциация» означает наличие возможности нахождения изображения в битовом потоке (может быть часть изображения, такая как секция или блок) и информации, соответствующей текущему изображению, для установления связи при декодировании. А именно, информация 25 изображения может быть передана по различным каналам передачи (или битовый поток). Эта информация изображения может быть записана на различные носители записи информации (или различные участки записи в том же носителе записи информации) (или битового потока). Кроме того, информация и изображение 30 (или битовый поток) могут быть ассоциированы друг с другом произвольным блоком, таким как множество кадров, одним кадром или частью внутри кадра.
Предпочтительные варианты осуществления настоящего изобретения были описаны выше со ссылками на прилагаемые чертежи, в то время как настоящее изобретение не ограничено вышеописанными примерами, конечно. Специалисту в данной области техники понятно, что существуют различные изменения и модификации в пределах объёма прилагаемой формулы изобретения и следует понимать, что они, естественно, находятся в рамках технического объёма настоящего изобретения.
Дополнительно, настоящая технология также может быть выполнена, как показано ниже.
(1)
Устройство обработки изображения, включающее в себя:
модуль получения информации, выполненный с возможностью получения установочной информации для установления вектора движения во второй блок предсказания на втором уровне, соответствующий первому блоку предсказания на первом уровне масштабируемо декодируемого видеоизображения, содержащего первый уровень и второй уровень, который выше первого уровня, причем установочная информации относится к вектору движения, установленному в первый блок предсказания; и
модуль установки вектора движения, выполненный с возможностью установки вектора движения второго блока предсказания с использованием установочной информации, получаемой модулем получения информации.
(2)
Устройство обработки изображения по п. (1),
в котором установочная информация включает в себя информацию предиктора, указывающую предиктор, используемый для предсказания вектора движения первого блока предсказания,
при этом модуль установки вектора движения выполнен с возможностью предсказания вектора движения, устанавливаемого во второй блок предсказания с использованием предиктора, указываемого информацией предиктора.
(3)
Устройство обработки изображения по п. (1),
в котором установочная информация включает в себя информацию предиктора, указывающую предиктор, используемый для предсказания вектора движения второго блока предсказания,
при этом предиктор выбран из множества кандидатов предиктора, включающих в себя кандидат предиктора на основании вектора движения, установленного в первый блок предсказания.
(4)
Устройство обработки изображения по п. (3), в котором кандидату предиктора на основании вектора движения, установленного в первый блок предсказания, назначен наименьший номер код из множества кандидатов предиктора.
(5)
Устройство обработки изображения по любому из пунктов (2) - (4),
в котором модуль получения информации дополнительно выполнен с возможностью получения информации разностного вектора движения, указывающего разность между вектором движения, установленным во второй блок предсказания, и предсказанным вектором движения,
при этом модуль установки вектора движения выполнен с возможностью установки во второй блок предсказания вектор движения, генерируемый добавлением разности, указываемой информацией разностного вектора движения, к предсказанному вектору движения, предсказанному предиктором.
(6)
Устройство обработки изображения по п. (1),
в котором установочная информация включает в себя информацию объединения, указывающую, является ли установленный вектор движения общим для первого блока предсказания и блока предсказания, прилегающего к первому блоку предсказания,
при этом модуль установки вектора движения выполнен с возможностью установки общего вектора движения для второго блока предсказания и блока предсказания, прилегающего ко второму блоку предсказания, в соответствии с информацией объединения.
(7)
Устройство обработки изображения по п. (1),
в котором установочная информация включает в себя информацию объединения, указывающую, является ли установленный вектор движения общим для первого блока предсказания и второго блока предсказания, и
при этом, когда информация объединения указывает установку, общий вектор движения для первого блока предсказания и второго блока предсказания, модуль установки вектора движения выполнен с возможностью установки вектора движения, общего для первого блока предсказания, для второго блока предсказания.
(8)
Устройство обработки изображения по любому из пунктов (3), (4) и (7), в котором модуль установки вектора движения выполнен с возможностью увеличения вектора движения, установленного в первый блок предсказания, в соответствии с отношением пространственного разрешения между первым уровнем и вторым уровнем, и последующего выполнения процесса установки вектора движения для второго блока предсказания.
(9)
Устройство обработки изображения по п. (8), в котором при увеличении вектора движения, установленного в первый блок предсказания, модуль установки вектора движения выполнен с возможностью округления увеличенного вектора движения в соответствии с точностью вектора движения.
(10)
Устройство обработки изображения по любому из пунктов (1)-(7), в котором первый уровень и второй уровень являются уровнями, имеющими взаимно различное пространственное разрешение.
(11)
Устройство обработки изображения по любому из пунктов (1)-(7), в котором первый уровень и второй уровень являются уровнями, имеющими взаимно различное шумовое отношение.
(12)
Устройство обработки изображения по любому из пунктов (1)-(11), в котором первый блок предсказания является блоком предсказания на первом уровне, имеющим пиксель, соответствующий пикселю в заданной позиции во втором блоке предсказания.
(13)
Устройство обработки изображения по любому из пунктов (1)-(11), в котором среди блоков предсказания на первом уровне, перекрывающих второй блок предсказания, первым блоком предсказания является блок предсказания, имеющий наибольшую величину перекрытия.
(14)
Способ обработки изображения, включающий в себя этапы, на которых:
получают установочную информацию для установки вектора движения во второй блок предсказания на втором уровне, соответствующий первому блоку предсказания на первом уровне декодируемого масштабируемого видеоизображения, содержащего первый уровень и второй уровень, который выше первого уровня, причем установочная информация относится к вектору движения, установленному в первый блок предсказания, и
устанавливают вектор движения во второй блок предсказания с использованием полученной установочной информации.
(15)
Устройство обработки изображения, включающее в себя:
модуль генерации информации, выполненный с возможностью генерирования установочной информации для установки вектора движения во второй блок предсказания на втором уровне, соответствующий первому блоку предсказания на первом уровне декодируемого масштабируемого видеоизображения, содержащего первый уровень и второй уровень, который выше первого уровня, причем установочная информация относится к вектору движения, установленному в первый блок предсказания, и
модуль кодирования, выполненный с возможностью кодирования установочной информации, генерируемой модулем генерации информации.
(16)
Способ обработки изображения, включающий в себя этапы, на которых:
генерируют установочную информацию для установки вектора движения во второй блок предсказания на втором уровне, соответствующий первому блоку предсказания на первом уровне декодируемого масштабируемого видеоизображения, содержащего первый уровень и второй уровень, который выше первого уровня, причем установочная информация соответствует вектору движения, установленному в первый блок предсказания, и
кодируют сгенерированную установочную информацию.
Список ссылочных обозначений
10 – устройство кодирования изображения (устройство обработки изображения)
146, 246, 346, 446 – секция генерации информации
16 – секция кодирования
60 – устройство декодирования изображения (устройство обработки изображения)
191, 291, 391, 491 – секция получения информации
192, 246, 392, 492 – секция установки вектора движения