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

Область техники
Настоящее изобретение относится к устройству обработки изображений и способу обработки изображений. В частности, настоящее изобретение относится к устройству обработки изображений и способу обработки изображения, способное улучшить эффективность кодирования.
Уровень техники
В последние годы устройства, обрабатывающие информацию изображения цифрового формата, которые, в данном случае, направлены на передачу и хранение информации с высокой эффективностью, и которые соответствуют схеме, такой как MPEG (Экспертная группа по вопросам движущегося изображения), для сжатия информации изображения с использованием ортогонального преобразования, такого как дискретное косинусное преобразование, и использования компенсации движения, применяя избыточность, которая уникальна для информации изображения, получили широкое распространение как при распределении информации в радиовещательных станциях, так и при приеме информации в обычных домах.
В частности, MPEG2 (Международная организация по стандартизации и Международная электротехническая комиссия (ISO/IEC) 13818-2) определяется как схема кодирования изображения общего применения и в настоящее время широко используется как для профессионального использования, так и в домашних условиях, в качестве стандартов для изображений с чересстрочной разверткой, с построчной разверткой и стандарта изображений с высокой четкостью. При использовании схемы сжатия MPEG2, например, скорость кодирования (скорость передачи данных) от 4 до 8 Mbps выделяется для чересстрочной развертки изображения стандартного разрешения 720×480 пикселей и скорость кодирования (скорость передачи данных) от 18 до 22 Mbps выделяется для чересстрочной развертки изображения с высоким разрешением 1920×1088 пикселей. В результате, может быть реализован высокий коэффициент сжатия и обеспечено хорошее качество изображения.
MPEG2 был в основном предназначен для кодирования изображений высокого качества, но не был совместим со схемой кодирования при использовании более низкой скорости кодирования (скорость передачи данных) (более высокий коэффициент сжатия), чем у MPEG1. С ростом популярности мобильных терминалов спрос на применение такой схемы кодирования, как ожидается, в будущем увеличится. Чтобы удовлетворить данный спрос была утверждена стандартизация схем кодирования MPEG4. Что касается схемы кодирования изображения, то спецификация была утверждена в качестве международного стандарта ISO/IEC 14496-2 в декабре 1998 года.
Кроме того, в последние годы, первоначально с целью кодирования видео для обеспечения вещания телеконференций, нормативы стандарта под названием Н. 26L (ITU-Т (Международный Совет по Телекоммуникациям - Сектор по Стандартизации Телекоммуникаций) Q6/16 VCEG (Экспертная группа по видеокодированию)) были усовершенствованы. Н. 26L применяется для достижения более высокой эффективности кодирования, хотя это требует большего объема вычислений для кодирования и декодирования по сравнению с обычными схемами кодирования, такими как MPEG2 и MPEG4. Кроме того, в настоящее время, в рамках деятельности MPEG4, стандартизация для использования функций, которые не поддерживаются H.26L, в H.26L выполняется как Объединенная модель с усовершенствованным кодированием сжатого видео для реализации высокой эффективности кодирования.
График введения стандартизации показал, что эта модель стала международным стандартом под названием Н. 264 и MPEG-4 Part 10 (Усовершенствованное кодирование видеосигнала, именуемое в дальнейшем AVC) в марте 2003 года.
Тем не менее, установка размера макроблока 16×16 пикселей не является оптимальной для большого кадра изображения под названием UHD (Сверхвысокая четкость; 4000×2000 пикселей), что станет объектом схемы кодирования нового поколения.
Таким образом, стандартизация системы кодирования под названием HEVC (Высокоэффективное видеокодирование) была в настоящее время разработана JCTVC (Объединенной группой по видеокодированию), которая является совместной организацией стандартизации ITU-T и ISO/IEC, созданной с целью дальнейшего повышения эффективности кодирования по сравнению с AVC (например, см., непатентный документ 1).
В схеме HEVC кодирования, кодирующая ячейка (CU) определяется как тот же блок обработки, что и макроблок в AVC схеме. Размер CU не фиксируется размером 16×16 пикселей, в отличие от макроблока AVC схемы, но указан в информации сжатия изображения в соответствующих последовательностях.
Однако для того, чтобы улучшить кодирование векторов движения с использованием усредненного предсказания, как определено в схеме AVC, был принят во внимание способ, который обеспечивает наличие "временного предсказателя" и "пространственно-временного предсказателя", а также "пространственного предсказателя", которые будет использоваться в качестве кандидатов для предсказуемых векторов движения (см., например, непатентный документ 2).
Кроме того, предлагается способ, называемый способом объединения раздельного движения, в котором передаются merge_flag и merge_left_flag в качестве одной из схем кодирования информации движения (см., например, непатентный документ 3).
Список ссылок
Непатентный документ
Непатентный документ 1: Thomas Wiegand, Woo-Jin Han, Benjamin Bross, Jens-Rainer Ohm, Gary J. Sullivan, "Working Draft 1 of High-Efficiency Video Coding", JCTVC - C403, Joint Collaborative Team on Video Coding (JCT-VC) ITU-T SG16 WP3 и ISO/IEC JTC1/SC29/WG11 3rd Meeting: Guangzhou, CN, 7-15 октября 2010 г.
Непатентный документ 2: Joel Jung, Guillaume Laroche, "Competition-Based Scheme for Motion Vector Selection and Coding" VCEG-AC06, ITU- Telecommunications Standardization Sector STUDY GROUP 16 Question 6, Video Coding Experts Group (VCEG) 29th Meeting: Klagenfurt, Austria, 17-18 июля 2006 г.
Непатентный документ 3: Martin Winken, Sebastian Bosse, Benjamin Bross, Philipp Helle, Tobias Hinz, Heiner Kirchhoffer, Haricharan Lakshman, Detlev Marpe, Simon Oudin, Matthias Preiss, Heiko Schwarz, Mischa Siekmann, Karsten Suehring и Thomas Wiegand, "Description of video coding technology proposed by Fraunhofer HHI", JCTVC - Al 16, апрель, 2010.
Раскрытие изобретения
Задачи, решаемые с помощью изобретения
Однако эти технологии обеспечивают реализацию процессов только в одном ракурсе и не могут выполнять межкадровое предсказание вектора в случае многоракурсного кодирования. Таким образом, эффективность кодирования может уменьшаться.
Настоящее изобретение учитывает данные обстоятельства и ставит своей целью не допустить снижения эффективности кодирования.
Решение задач
В соответствии с аспектом настоящего изобретения, предлагается устройство обработки изображений, включающее в себя: блок генерирования вектора предсказания, который генерирует вектор предсказания для текущего вектора параллакса текущего блока, используемого при предсказании, с использованием корреляции в направлении параллакса с использованием опорного вектора параллакса, на который ссылаются при генерировании вектора предсказания движения, при кодировании текущего вектора параллакса; и блок генерирования вектора разности, который генерирует вектор разности между текущим вектором параллакса и вектором предсказания, генерируемого блоком генерирования вектора предсказания.
Блок генерирования вектора предсказания может генерировать вектор предсказания текущего вектора параллакса с использованием вектора параллакса совмещенного блока, включенного в совмещенный кадр, относящийся к моменту времени, отличному от текущего изображения того же ракурса, что и текущий ракурс.
Блок генерирования вектора предсказания может устанавливать доступность совмещенного блока, когда свойство вектора текущего блока совпадает со свойством вектора совмещенного блока.
Свойство вектора представляет собой тип вектора, а блок генерирования вектора предсказания может устанавливать доступность совмещенного блока, когда свойство вектора текущего блока является вектором параллакса и свойство вектора совмещенного блока является вектором параллакса.
Блок генерирования вектора предсказания движения может определять свойство вектора текущего блока и свойство вектора совмещенного блока с использованием РОС (счетчика очередности кадров), указывающего на порядок вывода изображений.
Блок генерирования вектора предсказания движения может определять свойство вектора текущего блока и свойство вектора совмещенного блока с помощью РОС текущего кадра, РОС текущего опорного кадра, на который ссылается текущий кадр, РОС совмещенного кадра и РОС совмещенного опорного кадра, на который ссылается совмещенный кадр.
Блок генерирования вектора предсказания движения может определить, что свойство вектора текущего блока и свойство вектора совмещенного блока являются векторами параллакса, когда РОС текущего кадра совпадает с РОС текущего опорного кадра, на которое ссылается текущий кадр, а РОС совмещенного кадра идентичен РОС совмещенного опорного кадра, на который ссылается совмещенный кадр.
Блок генерирования вектора предсказания может установить недоступность совмещенного блока, когда свойство вектора текущего блока отлично от свойства вектора совмещенного блока.
Свойство вектора представляет собой тип опорного кадра, и блок генерирования вектора предсказания может устанавливать недоступность совмещенного блока, когда тип опорного кадра текущего блока отличается от типа опорного кадра совмещенного блока.
Свойство вектора представляет собой тип опорного кадра, и блок генерирования вектора предсказания может пропустить процесс поиска опорного индекса, когда тип опорного кадра текущего блока является длинным опорным типом и тип опорного кадра совмещенного блока является длинным опорным типом.
Блок генерирования вектора предсказания может генерировать вектор предсказания текущего вектора параллакса с использованием вектора параллакса опорного блока, включенного в кадр того же момента времени, что текущий кадр ракурса, отличного от текущего ракурса.
Блок генерирования вектора предсказания может масштабировать опорный вектор параллакса на основании позиционного соотношения между текущим кадром и опорным кадром, на который ссылается при генерировании вектора предсказания движения для генерирования вектора предсказания текущего вектора параллакса.
Блок генерирования вектора предсказания может генерировать вектор предсказания текущего вектора движения с использованием опорного вектора движения, на который ссылается при генерировании вектора предсказания движения, при кодировании текущего вектора движения текущего блока, используемого в предсказании с использованием корреляции во временном направлении, а блок генерирования вектора разности может генерировать разностный вектор между текущим вектором движения и вектором предсказания, генерируемым блоком генерирования вектора предсказания.
Блок генерирования вектора предсказания может генерировать вектор предсказания текущего вектора движения с использованием вектора движения опорного блока, включенного в кадр, относящийся к тому же моменту времени, что и текущий кадр ракурса, отличного от текущего ракурса.
Блок генерирования вектора предсказания может генерировать вектор предсказания текущего вектора движения с использованием вектора движения опорного блока, включенного в кадр, относящийся к моменту времени, отличному от момента времени текущего кадра того же ракурса, что и текущий ракурс.
Блок генерирования вектора предсказания может масштабировать опорный вектор движения на основании позиционной взаимосвязи между текущим кадром и опорным кадром, на который ссылаются при генерировании вектора предсказания движения для генерирования вектора предсказания текущего вектора движения.
Блок генерирования вектора предсказания может генерировать вектор предсказания с использованием вектора блока, находящегося в той же позиции, что и текущий блок, в состоянии, при котором смещается позиция пикселя кадра, относящегося к тому же моменту времени, что и текущий кадр ракурса, отличный от текущего ракурса.
Блок генерирования вектора предсказания может устанавливать величину смещения изображения в соответствии с вектором параллакса смежной области текущего блока.
Блок генерирования вектора предсказания может использовать вектор параллакса в Х-направлении смежного блока, у которого величина вектора параллакса в Y-направлении не равна нулю, в качестве величины смещения.
Блок генерирования вектора предсказания может использовать значение, вычисленное из векторов параллакса в Х-направлении множества смежных блоков, у которых значение вектора параллакса в Y-направлении не равно нулю, в качестве величины смещения.
Блок генерирования вектора предсказания может использовать среднее значение или медианное значение векторов параллакса в Х-направлении для множества смежных блоков, у которых значение вектора параллакса в Y-направлении не равно нулю, в качестве величины смещения изображения.
Блок генерирования вектора предсказания может устанавливать величину смещения изображения в соответствии с глобальным вектором параллакса.
Дополнительно, согласно аспекту настоящего изобретения, обеспечивается способ обработки изображения устройством обработки изображения, обеспечивающий выполнение устройством обработки изображения: генерирования вектора предсказания для текущего вектора параллакса текущего блока, используемого при предсказании, с использованием корреляции в направлении параллакса с использованием опорного вектора параллакса, служащего в качестве опорного при генерировании вектора предсказания движения, при кодировании текущего вектора параллакса; и генерирования вектора разности между текущим вектором параллакса и генерируемым вектором предсказания.
Согласно другому аспекту настоящего изобретения, обеспечивается устройство обработки изображения, которое включает в себя: блок генерирования вектора предсказания, генерирующий вектор предсказания для текущего вектора параллакса текущего блока, используемого при предсказании, с использованием корреляции в направлении параллакса, используя опорный вектор параллакса, служащий в качестве опорного при генерировании вектора предсказания движения, при декодировании текущего вектора параллакса; и арифметический блок, выполняющий операцию сложения вектора предсказания, генерируемого блоком генерирования вектора предсказания, с вектором разности между текущим вектором параллакса и вектором предсказания для восстановления текущего вектора параллакса.
Дополнительно, согласно другому аспекту настоящего изобретения, обеспечивается способ обработки изображения устройством обработки изображения, обеспечивающий выполнение устройством обработки изображения: генерирование вектора предсказания для текущего вектора параллакса текущего блока, используемого при предсказании с использованием корреляции в направлении параллакса, используя опорный вектор параллакса, служащий в качестве опорного при генерировании вектора предсказания движения, при декодировании текущего вектора параллакса; и выполнения операции сложения генерируемого вектора предсказания с вектором разности между текущим вектором параллакса и вектором предсказания для восстановления текущего вектора параллакса.
Согласно другому аспекту настоящего изобретения, обеспечивается устройство обработки изображения, включающее в себя: блок генерирования вектора предсказания, устанавливающий недоступность совмещенного блока, когда тип опорного кадра текущего блока отличается от типа опорного кадра совмещенного блока, включенного в состав совмещенного кадра другого момента времени, чем момент времени текущего кадра, при кодировании текущего вектора движения текущего блока, используемого при предсказании, с использованием корреляции во временном направлении, и генерирующий вектор предсказания текущего вектора движения с использованием опорного вектора движения, служащего в качестве опорного при генерировании вектора предсказания движения; и блок генерирования вектора разности, генерирующий вектор разности между текущим вектором движения и вектором предсказания, генерируемым блоком генерирования вектора предсказания.
Дополнительно, согласно другому аспекту настоящего изобретения, обеспечивается способ обработки изображения устройством обработки изображения, обеспечивающий выполнение устройством обработки изображения: установки недоступности совмещенного блока, когда тип опорного кадра текущего блока отличается от типа опорного кадра совмещенного блока, включенного в состав совмещенного кадра другого момента времени, чем момент времени текущего кадра, при кодировании текущего вектора движения текущего блока, используемого при предсказании, с использованием корреляции во временном направлении, и генерирования вектора предсказания текущего вектора движения с использованием опорного вектора движения, служащего в качестве опорного при генерировании вектора предсказания движения; и генерирования вектора разности между текущим вектором движения и сгенерированным вектором предсказания.
В одном аспекте настоящего изобретения, вектор предсказания текущего вектора параллакса текущего блока, используемого при предсказании с использованием корреляции в направлении параллакса, генерируется с использованием опорного вектора параллакса, служащего в качестве опорного при генерировании вектора предсказания движения, при кодировании текущего вектора параллакса; и генерируется вектор разности между текущим вектором параллакса и генерируемым вектором предсказания, генерируется.
Согласно другому аспекту настоящего изобретения, вектор предсказания текущего вектора параллакса текущего блока, используемого при предсказании с использованием корреляции в направлении параллакса, генерируется с использованием опорного вектора параллакса, служащего в качестве опорного при генерировании вектора предсказания движения, при декодировании текущего вектора параллакса; и выполняется операция сложения сгенерированного вектора предсказания с вектором разности между текущим вектором параллакса и вектором предсказания для восстановления текущего вектора параллакса.
Согласно еще одному аспекту настоящего изобретения, устанавливается недоступность совмещенного блока, когда тип опорного кадра текущего блока отличается от типа опорного кадра совмещенного блока, включенного в состав совмещенного кадра другого момента времени, чем момент времени текущего изображения, при кодировании текущего вектора движения текущего блока, используемого при предсказании, с использованием корреляции во временном направлении; генерируется вектор предсказания текущего вектора движения, генерируемый с использованием опорного вектора движения, служащего в качестве опорного при генерировании вектора предсказания движения, и генерируется вектор разности между текущим вектором движения и генерируемым вектором предсказания.
Полезные результаты изобретения
В соответствии с настоящим изобретением, можно обрабатывать изображения. В частности, можно не допустить снижения эффективности кодирования.
Краткое описание чертежей
Фиг.1 представляет собой схему для описания примера типов блоков предсказания.
Фиг.2 представляет собой схему для описания примера смежных областей, используемых для определения индекса опорного изображения в режиме объединения области временной корреляции.
Фиг.3 является схемой, описывающей пример условий определения опорного индекса изображения в режиме объединения области временной корреляции.
На фиг.4 показана схема для описания примера способа определения области временной корреляции.
На фиг.5 показана схема для описания примера способа определения изображения, которое включает в себя область временной корреляции.
На фиг.6 показана схема для описания примера позиционного соотношения между текущей областью и областью временной корреляции.
Фиг.7 является схемой, иллюстрирующей пример масштабирования вектора движения области временной корреляции.
Фиг.8 является схемой, иллюстрирующей пример опорного соотношения 3-ракурсного изображения.
Фиг.9 является схемой, описывающей пример распределения опорного изображения при предсказании вектора параллакса по отношению к текущей области.
На фиг.10 показана схема для описания примера распределения опорного изображения, при предсказании вектора движения по отношению к текущей области.
Фиг.11 представляет собой блок-схему, иллюстрирующую основной пример конфигурации устройства кодирования изображения.
Фиг.12 представляет собой блок-схему, иллюстрирующую основной пример конфигурации блока компенсации/предсказания параллакса движения.
Фиг.13 представляет собой блок-схему, иллюстрирующую основной пример конфигурации блока генерирования вектора предсказания параллакса временной корреляции.
Фиг.14 является схемой для описания примера выбора схемы. Фиг.15 является схемой для описания способа определения наличия совмещенного вектора.
Фиг.16 представляет собой схему для описания примера, в котором совмещенный вектор доступен.
Фиг.17 представляет собой схему, иллюстрирующую пример синтаксиса набора параметров последовательности.
Фиг.18 представляет собой схему, иллюстрирующую пример синтаксиса секции заголовка.
Фиг.19 представляет собой схему, иллюстрирующую пример синтаксиса блока предсказания.
Фиг.20 является блок-схемой алгоритма для описания примера последовательности операций процесса кодирования.
Фиг.21 является блок-схемой алгоритма для описания примера блок-схемы алгоритма процесса межкадрового предсказания.
Фиг.22 является блок-схемой алгоритма для описания примера последовательности операций процесса в режиме объединения.
Фиг.23 является блок-схемой алгоритма для описания примера последовательности операций процесса предсказания вектора параллакса движения.
Фиг.24 является блок-схемой алгоритма для описания примера последовательности операций процесса предсказания параллакса временной корреляции.
Фиг.25 является блок-схемой алгоритма, которая является продолжением блок-схемы алгоритма, показанной на фиг.22, описывающая пример последовательности операций процесса предсказания параллакса временной корреляции.
Фиг.26 является блок-схемой алгоритма, которая является продолжением блок-схемы алгоритма, показанной на фиг.23, описывающая пример последовательности операций процесса предсказания параллакса временной корреляции.
Фиг.27 является блок-схемой алгоритма, которая является продолжением блок-схемы алгоритма, показанной на фиг.24, описывающая пример последовательности операций процесса предсказания параллакса временной корреляции.
Фиг.28 является блок-схемой алгоритма, описывающей пример последовательности операций процесса по схеме 1.
Фиг.29 является блок-схемой алгоритма, описывающей пример последовательности операций процесса по схеме 3.
Фиг.30 является блок-схемой алгоритма, описывающей пример последовательности операций процесса по схеме 4- 2.
Фиг.31 представляет собой блок-схему алгоритма, иллюстрирующую основной пример конфигурации устройства декодирования изображения.
Фиг.32 представляет собой блок-схему алгоритма, иллюстрирующую основной пример конфигурации блока компенсации параллакса движения.
Фиг.33 является блок-схемой алгоритма, описывающей пример последовательности операций процесса декодирования.
Фиг.34 является блок-схемой алгоритма, описывающей пример последовательности операций процесса предсказания.
Фиг.35 является блок-схемой алгоритма, описывающей пример последовательности операций процесса компенсации параллакса движения.
Фиг.36 является блок-схемой алгоритма, описывающей пример последовательности операций процесса генерирования вектора параллакса движения.
Фиг.37 является блок-схемой алгоритма, иллюстрирующей другой пример конфигурации устройства кодирования изображения.
Фиг.38 представляет собой блок-схему, иллюстрирующую основной пример конфигурации блока компенсации/предсказания движения.
Фиг.39 представляет собой блок-схему, иллюстрирующую основной пример конфигурации блока предсказания вектора.
Фиг.40 представляет собой блок-схему, иллюстрирующую основной пример конфигурации блока генерирования вектора предсказания на основании разностного изображения.
Фиг.41 является блок-схемой алгоритма, описывающей пример последовательности операций процесса предсказания / компенсации движения.
Фиг.42 является блок-схемой алгоритма, описывающей пример последовательности операций процесса вектора предсказания.
Фиг.43 является блок-схемой алгоритма, описывающей пример последовательности операций процесса генерации вектора предсказания.
Фиг.44 является блок-схемой алгоритма, описывающей пример последовательности операций процесса генерирования вектора предсказания на основании разностного изображения.
Фиг.45 является блок-схемой алгоритма, описывающей пример последовательности операций процесса определения величины смещения.
Фиг.46 представляет собой схему, иллюстрирующую пример расположения текущего блока и смежных блоков.
Фиг.47 является блок-схемой, иллюстрирующей другой пример конфигурации устройства декодирования изображения.
Фиг.48 представляет собой блок-схему, иллюстрирующую основной пример конфигурации блока компенсации движения.
Фиг.49 представляет собой блок-схему, иллюстрирующую основной пример конфигурации блока декодирования вектора.
Фиг.50 представляет собой блок-схему, иллюстрирующую основной пример конфигурации блока генерирования вектора предсказания на основании разностного изображения.
Фиг.51 является блок-схемой алгоритма, описывающей пример последовательности операций процесса компенсации движения.
Фиг.52 является блок-схемой алгоритма, описывающей пример последовательности операций процесса декодирования вектора.
Фиг.53 является блок-схемой алгоритма, описывающей пример последовательности операций процесса генерирования вектора предсказания.
Фиг.54 является блок-схемой алгоритма, описывающей пример последовательности операций процесса генерирования вектора предсказания на основании разностного изображения.
Фиг.55 является блок-схемой алгоритма, описывающей пример последовательности операций процесса определения величины смещения.
Фиг.56 представляет собой схему, иллюстрирующую пример способа генерации вектора предсказания.
Фиг.57 является схемой, описывающую параллакс и глубину.
Фиг.58 представляет собой схему описания примера способа генерирования вектора предсказания.
Фиг.59 является блок-схемой алгоритма описания примера последовательности операций процесса генерирования вектора предсказания.
Фиг.60 является блок-схемой алгоритма описания примера последовательности операций процесса генерирования вектора предсказания на основании разностного изображения.
Фиг.61 является блок-схемой алгоритма, которая является продолжением осуществления последовательности операций, показанной на фиг.60, для описания примера последовательности операций процесса генерации вектора предсказания на основании разностного изображения.
Фиг.62 является схемой для описания примера аспекта опорного изображения для неподвижного фонового приложения.
Фиг.63 является схемой описания примера аспекта опорного изображения для стерео применения.
Фиг.64 является схемой сравнения примеров типов опорного изображения и свойств вектора.
Фиг.65 является схемой описания примера смежного блока.
Фиг.66 является схемой описания примера процесса обработки блока временной корреляции и смежного блока.
Фиг.67 является блок-схемой алгоритма описания примера последовательности операций процесса генерирования опорного индекса и вектора движения (параллакса) PU.
Фиг.68 является блок-схемой алгоритма описания примера последовательности операций процесса режима объединения (пропуска).
Фиг.69 является блок-схемой алгоритма описания примера последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блока временной корреляции.
Фиг.70 является блок-схемой алгоритма описания примера последовательности операций процесса определения наличия процесса масштабирования для вектора движения (параллакса) блока временной корреляции и наличие кандидата.
Фиг.71 является блок-схемой алгоритма описания примера последовательности операций процесса в режиме AMVP.
Фиг.72 является блок-схемой алгоритма, описывающей пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из пространственно смежных блоков.
Фиг.73 является блок-схемой алгоритма, описывающей пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блоков, находящиеся слева.
Фиг.74 является блок-схемой алгоритма, которая является продолжением алгоритма, показанного на фиг.73, описывающей пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блоков, находящиеся на левой стороне.
Фиг.75 является блок-схемой алгоритма, описывающей пример последовательности операций процесса определения наличия процесса масштабирования для вектора движения (параллакса) смежного блока и наличие кандидата.
Фиг.76 является блок-схемой алгоритма, описывающей пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блоков, находящиеся сверху.
Фиг.77 является блок-схемой алгоритма, которая является продолжением алгоритма, показанного на фиг.76, описывающей пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блоков, находящиеся сверху.
Фиг.78 является блок-схемой алгоритма, описывающей пример последовательности операций процесса генерирования вектора движения (параллакса) PU и опорного индекса.
Фиг.79 является блок-схемой алгоритма, описывающей пример последовательности операций процесса режима объединения (пропуска).
Фиг.80 является блок-схемой алгоритма, описывающей пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блока временной корреляции.
Фиг.81 является блок-схемой алгоритма, описывающей пример последовательности операций процесса в режиме AMVP.
Фиг.82 является схемой для описания примера процесса обработки смежного блока.
Фиг.83 является блок-схемой алгоритма для описания другого примера последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блоков, находящиеся на левой стороне.
Фиг.84 является блок-схемой алгоритма, которая является продолжением алгоритма, показанного на фиг.83, описывающей другой пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блоков, находящихся на левой стороне.
Фиг.85 является блок-схемой алгоритма, описывающей пример последовательности операций процесса определения наличия кандидата вектора движения (параллакса) для смежного блока.
Фиг.86 является блок-схемой алгоритма, описывающей другой пример последовательности операций процесса определения наличия процесса масштабирования для вектора движения (параллакса) смежного блока и наличие кандидата.
Фиг.87 является блок-схемой алгоритма, описывающей другой пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блоков, находящиеся на верхней стороне.
Фиг.88 является блок-схемой алгоритма, которая является продолжением алгоритма, показанного на фиг.87, описывающей другой пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блоков, находящихся на верхней стороне.
Фиг.89 является блок-схемой алгоритма, которая является продолжением алгоритма, показанного на фиг.88, описывающей другой пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блоков, находящиеся на верхней стороне.
Фиг.90 представляет собой схему, описывающей еще один пример процесса обработки блока временной корреляции и смежного блока.
Фиг.91 является блок-схемой алгоритма, описывающей еще другой пример последовательности операции процесса генерации кандидата векторов движения (параллакса) из блоков, находящиеся на левой стороне.
Фиг.92 является блок-схемой алгоритма, которая является продолжением алгоритма, показанного на фиг.91, описывающей еще один пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блоков, находящиеся на левой стороне.
Фиг.93 является блок-схемой алгоритма, описывающей еще один пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блоков, находящиеся на верхней стороне.
Фиг.94 является блок-схемой алгоритма, которая является продолжением алгоритма, показанного на фиг.93, описывающей еще один пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блоков, находящиеся на верхней стороне.
Фиг.95 представляет собой блок-схему, иллюстрирующую основной пример конфигурации персонального компьютера.
Фиг.96 является блок-схемой, иллюстрирующей пример схематичной конфигурации телевизионного приспособления.
Фиг.97 является блок-схемой, иллюстрирующей пример схематичной конфигурации мобильного телефона.
Фиг.98 является блок-схемой, иллюстрирующей пример схематической конфигурации приспособления для записи / воспроизведения.
Фиг.99 является блок-схемой, иллюстрирующей пример схематичной конфигурации приспособления формирования изображения.
Осуществление изобретения
Здесь и далее, будут описаны режимы (здесь и далее именуемые как варианты осуществления) осуществления настоящего изобретения. Описание будет дано в следующем порядке:
1. Первый вариант осуществления (устройство кодирования изображения)
2. Второй вариант (устройство декодирования изображения)
3. Третий вариант осуществления (устройство кодирования изображения)
4. Четвертый вариант осуществления (устройство декодирования изображения)
5. Пятый вариант осуществления (устройство кодирования изображения и устройство декодирования изображения)
6. Шестой вариант осуществления (устройство кодирования изображения и устройство декодирования изображения)
7. Седьмой вариант (компьютер)
8. Восьмой вариант осуществления (пример применения)
1. Первый вариант осуществления
Предсказание движения
В технологиях кодирования изображения, таких как AVC (Усовершенствованное кодирование видеосигнала) или HEVC (Высокоэффективное видеокодирование), осуществляется предсказание движения с использованием корреляции во временном направлении (между кадрами).
AVC определяет многоуровневые блоки, таких как макроблоки или суб-макроблоки в качестве блоков обработки такого процесса предсказания, и HEVC определяет кодирующие ячейки (CUs).
CU, которая также называется древовидным кодером (СТВ), является частичной областью основного изображения, которое играет ту же роль, что и макроблок в AVC. Размер макроблока зафиксирован как 16×16 пикселей, в то время как размер CU не зафиксирован, но указан в информации сжатия изображения в соответствующих последовательностях.
Например, наибольший размер (LCU: наибольшая кодирующая ячейка) и наименьший размер (SCU: наименьшая кодирующая ячейка) CU определены в наборе параметров последовательности (SPS), включенный в состав выходных кодированных данных.
Каждая LCU может быть разбита на CUs меньшего размера, но не меньше, чем размер SCU, установкой split_flag=1. CU, которая имеет размер 2N×2N, разбита на CUs, имеющие размер N×N, которая является одним уровнем ниже, когда значение splitflag равно "1".
Более того, CU разбивается на блоки предсказания (PUs), которые являются областями (частичные области основного изображения), выступающие в качестве блоков обработки внутрикадрового предсказания или межкадрового предсказания. Кроме того, CU разбивается на блоки преобразования (TUs), которые являются областями (частичные области основного изображения), выступающие в качестве блоков обработки ортогонального преобразования. В настоящее время HEVC можете использовать ортогональное преобразование над блоками размером 16×16 и 32×32 в дополнение к ортогональному преобразованию над блоками размером 4×4 и 8×8.
В схемах кодирования, в которых определены CUs и выполняются различные процессы в блоках CUs, как и в HEVC, возможно рассматривать, что макроблоки в AVC соответствуют LCUs. Тем не менее, CUs имеют уровневую структуру, размер LCUs на самом верхнем уровне, как правило, установлен на 128×128 пикселей, например, что больше, чем размер макроблоков AVC.
В нижеследующем описании, «область» включает в себя все различные типы областей, описанные выше (например, макроблоки, суб-макроблоки, LCUs, CUs, SCUs, PUs, TUs и т.п.) (и может быть любой из данных областей). "Область" может естественно, включать в себя, кроме описанных выше блоков, и блоки, которые не могут быть использованы в соответствии с описанием, где использование надлежащим образом исключено.
Фиг.1 иллюстрирует пример конфигурации блоков предсказания (PUs), которые являются блоками процесса предсказания для CUs, которые являются блоками процесса кодирования. Как показано на фиг.1, четыре типа PUs могут быть сформированы для одной CU. Четыре больших квадрата, показанных на фиг.1, обозначают CUs и прямоугольники или квадраты внутри больших квадратов обозначают PUs. Цифры указывают на индекс каждого PU, но не обозначают контент изображения.
Как показано на фиг.1, в примере в верхнем левом углу, CU включает в себя один PU (2N×2N). То есть, в этом случае, CU эквивалентна PU. Кроме того, в примере в верхнем правом углу, CU вертикально разбита на две области и включает в себя два PUs по горизонтали (2N×N). Дополнительно, в примере в нижнем левом углу, CU вертикально разбита на две области и включает в себя два PUs по вертикали (N×2N). Кроме того, в примере на нижнем правом углу, CU вертикально и горизонтально разбита на две области (четыре области в общей сложности) и включает в себя четыре квадрата PUs (N×N). Шаблон для использования выбирается из данных шаблонов и определяется в соответствии с контентом (значение функции стоимости результатов предсказания) изображения.
Непатентный 3 документ предлагает способ (режим объединения) под названием Объединение раздельного движения как схему кодирования информации движения. В этом способе два флага, то есть MergeFlag и MergeLeftFlag, передаются как информация объединения, которая является информацией о режиме объединения. MergeFlag=1 указывает, что информация о движении текущей области (также называемая как целевая область) X, которая является целью обработки, представляет собой информацию о движении верхней соседней области Т, смежной с текущей областью или левой соседней области L, прилегающей к текущей области. В этом случае, MergeLeftFlag включен в состав информации объединения и передается. MergeFlag=0 указывает, что информация о движении текущей области X отличается от информации о движении любой из смежной области Т и смежной области L. В этом случае, передается информация о движении текущей области X.
Когда информация о движении текущей области X является такой же, как информация о движении смежной области L, то выполняется условие MergeFlag=1 и MergeLeftFlag=1. Когда информация о движении текущей области X является такой же, как информация о движении смежной области Т, то выполняется условие MergeFlag=1 и MergeLeftFlag=0.
В таком режиме объединения, временно смежная область (область временной корреляции), а также пространственно смежные области L и Т, рассматриваются для использования в качестве вероятной области для объединения с текущей областью X.
Как показано на фиг.2, индексы опорного кадра определяются как указано в таблице на фиг.3, на основании индексов опорного изображения левой смежной области А, верхней смежной области В, верхней правой смежной области С, прилегающих к текущей области (текущий блок), которая является целевой для обработки.
В таблице, как показано на фиг.3, со второго по четвертый столбец слева соответственно указаны статусы индексов опорного изображения смежных областей с А по С. В первой колонке слева указывается индекс опорного кадра. "X ", "Y" и "Z" обозначают необязательные натуральные числа и "-1" указывает, что смежная область может не упоминаться.
Когда упоминается только одна область среди смежных областей от А до С, то используется индекс опорного кадра данного блока. Более того, когда две области могут быть упомянуты среди смежных областей от А до С, то применяется наименьший индекс опорного кадра. Дополнительно, когда все смежные области от А до С не могут быть упомянуты, то индекс опорного кадра устанавливается на 0.
Область временной корреляции, расположенная временно около текущей области, которая является целевой для обработки, определяется, как показано на фиг.4. На фиг.4, левые области обозначают частичные области текущего изображения (CurrPic) (также называемая как целевое изображение), которые является целевыми для обработки, и верхний левый прямоугольник среди областей представляет собой текущую область (CurrPU). Кроме того, области, расположенные справа, как показано на фиг.4, показывают частичные области временной корреляции изображений (colPic), расположенные временно вокруг текущего изображения. В этой временной корреляции изображений, область, включающая в себя пиксель на том же позиции, как и нижний правый пиксель текущей области, представляет собой область временной корреляции (colPU). Когда данная область не упоминается, то область, включающая в себя пиксель на той же позиции, что и центральный пиксель области декодирования, устанавливается как область временной корреляции (colPU).
Кроме того, временная корреляция изображений устанавливается, как показано на фиг.5. Например, когда текущий кадр является В-кадром и collocated_from_10_flag равен "1", кадр обозначается индексом «0» опорного кадра из списка L1 используется в качестве временной корреляции изображений. Более того, когда текущим кадром является Р-кадр или В-кадр и collocated_from_10 flag является "0", то кадр обозначается индексом "0" опорного кадра списка L0 используется в качестве временной корреляции изображений.
Дополнительно, флаг перехода устанавливается, как показано на фиг.6, в соответствии с позиционным соотношением между текущим кадром и временной корреляцией изображения. Например, как показано на верхней части фиг.6, временная позиция временной корреляции изображений в качестве опорного кадра обходит текущий кадр (текущий кадр находится между кадром временной корреляции и опорным кадром), флаг перехода установлен на "1".
Кроме того, временное положение кадра временной корреляции в опорном кадре не обходит текущий кадр (текущий кадр не находится между кадром временной корреляции и опорным кадром), флаг перехода установлен на "0". Когда флаг перехода установлен на "1", в связи с тем, что текущая область вставляется между областью временной корреляции и опорным кадром области временной корреляции, то надежность вектора предсказания высока.
Более того, хотя вектор mvCol движения области временной корреляции используется при формировании вектора pmv предсказания, в данном случае, вектор движения области временной корреляции масштабируется аналогично примеру, показанному на фиг.7. То есть, масштабирование выполняется как показано в следующих выражениях (1) и (2) на основании временного интервала А между текущей областью и опорным кадром текущей области, и временной интервал В между областью временной корреляции и опорным кадром области временной корреляции.
<mrow><mtext>pmv</mtext><mo>=</mo><mtext>mvCol</mtext><mo>…</mo><mtext>(1)</mtext></mrow>
Если А и В идентичны, то
<mrow><mtext>pmv</mtext><mo>=</mo><mtext>mvCol</mtext><mo>×</mo><mtext>(A/B)</mtext><mo>…</mo><mtext>(1)</mtext></mrow>
Если А и В не являются идентичными, то
Тем не менее, в случае многоракурсных изображений, когда изображение включает в себя множество ракурсов, также осуществляется предсказание параллакса, используя корреляцию между ракурсами (в направлении параллакса). Фиг.8 иллюстрирует пример опорного соотношения 3-ракурсного изображения.
3-ракурсное изображение, показанное на фиг.8, включает в себя изображения трех ракурсов 0, 1, и 2. На фиг.8, РОС указывает на индекс времени. Кроме того, PicNum указывает на индекс последовательности декодирования.
Ракурс 0 называется основным ракурсом и кодируется с использованием временного предсказания, которое осуществляет предсказание с использованием временной корреляции. Ракурс 1 называется дополнительным ракурсом и кодируется с использованием временного предсказания и предсказания параллакса. При предсказании параллакса могут упоминаться кодированные ракурсы 0 и 2. Ракурс 2 называется дополнительным ракурсом и кодируется с использованием временного предсказания и предсказания параллакса. При предсказании параллакса может упоминаться кодированный ракурс 0.
Однако, как описано выше, обычный вектор предсказания относится только к вектору движения и кодирование (предсказание) вектора параллакса, указывающий на позиционное соотношение между частичными изображениями, которые могут быть одинаковыми или наиболее близкими между ракурсами, генерируемые при предсказании параллакса через ракурсы не были приняты во внимание. Вектор параллакса представляет собой информацию, которая соответствует вектору движения временного предсказания, и используется для временного предсказания, который генерирует предсказанное изображение текущей области с использованием различных изображений различных ракурсов одновременно. Таким образом, невозможно предсказать векторы параллакса надлежащим образом и эффективность кодирования может уменьшаться.
Таким образом, при использовании существующих технологий, как описано ниже, осуществляется предсказание векторов параллакса и векторов движения (векторов параллакса движения) многоракурсного изображения.
Например, предсказание вектора параллакса (также называемого, как текущий вектор параллакса) текущей области выполняется аналогично примеру, показанного на фиг.9. В этом примере, опорное изображение того же ракурса (view_id=1) выделено для индекса 0 из списка 1 опорного изображения, и опорное изображение иного ракурса (viewid=2) выделяется для индекса 1 опорного изображения.
Когда индекс 0 (RefPicList [0]) из списка 1 опорного изображения используется для временной корреляции изображений, то вектор области (colPicB) временной корреляции, включенный в состав кадра временной корреляции, используются в качестве вектора предсказания во время вектора параллакса, которые относится к различным ракурсам одновременно.
Более того, когда индекс 1 (RefPicList [1]) списка 1 опорного изображения используется для ракурсной корреляции изображения, то вектор области (colPicA) ракурсной корреляции, включенный в состав изображения ракурсной корреляции, используется в качестве вектора предсказания во время вектора параллакса, который относится к иному ракурсу одновременно.
То есть, в данном способе для предсказания текущего вектора параллакса, все индексы опорного изображения используются в качестве кандидатов для корреляции изображения. Кроме того, определятся, является ли вектор каждой корреляционной области вектором параллакса аналогичным вектору текущей области.
Более того, предсказание вектора движения (также называемого как текущий вектор движения) текущей области осуществляется аналогично примеру, показанного на фиг.10. В этом примере, опорное изображение того же ракурса (view_id=1) выделяется для индекса 0 из списка 1 опорного изображения и опорное изображение иного ракурса (view_id=2) выделяется для индекса 1 опорного изображения.
Когда индекс 0 (RefPicList [0]) из списка 1 опорного изображения используется для временной корреляции изображений, вектор области (colPicB) временной корреляции, включенный в состав изображения временной корреляции, используется в качестве вектора предсказания вектора движения, который относится к иному временному отрезку одного и того же ракурса.
Более того, когда индекс 1 (RefPicList [1]) списка 1 опорного изображения используется для ракурсной корреляции изображений, вектор области (colPicA) ракурсной корреляции, включенный в состав изображения ракурсной корреляции, используется в качестве вектора предсказания во время вектора движения, который относится к разным временным отрезкам время одного и того же ракурса.
То есть, в данном способе для предсказания текущего вектора движения, все индексы опорного изображения используются в качестве кандидатов для корреляции изображения. Кроме того, определяют, является ли вектор каждой корреляционной области вектором движения аналогичным вектору текущей области.
Кроме того, осуществляется процесс масштабирования, когда вектор параллакса используется в качестве вектора предсказания, как описано далее. То есть, вектор предсказания масштабируется на основании межкадрового интервала между текущей областью и опорным изображением таковой и межкадрового интервала между областью корреляции и опорным изображением таковой.
В традиционной технологии, когда предсказывается только вектор движения, используется только временной интервал. Тем не менее, в случае наличия многоракурсных изображений, необходимо предсказывать вектор параллакса и, таким образом, настоящая технология также использует межкадровый интервал. Соответственно, можно повысить эффективность кодирования.
Устройство кодирования изображения
Фиг.11 представляет собой блок-схему, иллюстрирующую основную пример конфигурации устройства кодирования изображения, которое представляет собой устройство обработки изображения.
Устройство 100 кодирования изображения, как показано на фиг.11, кодирует данные изображения, используя процесс предсказания аналогично схеме кодирования, такой как AVC или HEVC. Однако устройство 100 кодирования изображения кодирует многоракурсное изображение, включающее в себя множество ракурсов изображения. В нижеследующем описании, будет описан случай, когда 3-ракурсное изображение, включающее в себя три ракурса изображения, обрабатывается в качестве примера многоракурсного изображения. Однако, на самом деле, устройство 100 кодирования изображения может кодировать многоракурсное изображение, включающее в себя необязательное количество точек просмотра (ракурсов).
Как показано на фиг.11, устройство 100 кодирования изображения включает в себя A/D конвертер 101, буфер 102 реконфигурации экрана, арифметическое устройство 103, блок 104 ортогонального преобразования, блок 105 квантования, блок 106 кодирования без потерь и буфер 107 накопления. Более того, устройство 100 кодирования изображения включает в себя блок 108 обратного квантования, блок 109 обратного ортогонального преобразования, арифметическое устройство ПО, контурный фильтр 111, буфер 112 декодированного изображения, селектор 113, блок 114 внутрикадрового предсказания, блок 115 предсказания/компенсации параллактического движения, селектор 116 предсказанного изображения и буфер 121 декодированного многоракурсного изображения.
A/D конвертер 101 выполняет A/D преобразование входных данных изображения и поставляет преобразованные данные изображения (цифровые данные) в буфер 102 реконфигурации экрана, который хранит данные изображения. Буфер 102 реконфигурации экрана осуществляет реконфигурацию кадров изображения, расположенных в порядке хранения в соответствии с GOP (группой изображений), так что кадры реконфигурируются в порядке для кодирования, чтобы получить изображение, в котором порядок кадров реконфигурируется, и поставляет изображение в арифметическое устройство 103 вместе с ID ракурса и РОС изображения.
Буфер 102 реконфигурации экрана поставляет изображение, в котором порядок кадров реконфигурирован, в блок 114 внутрикадрового предсказания и блок 115 предсказания/компенсации параллакса движения вместе с ID ракурса и РОС изображения. ID ракурса представляет собой информацию для идентификации точки просмотра и РОС является информацией для идентификации временного интервала.
Арифметическое устройство 103 вычитает предсказанное изображение, поставленное из блока 114 внутрикадрового предсказания или из блока 115 предсказания/компенсации параллакса движения через селектор 116 предсказанного изображения, из изображения, считываемого из буфера 102 реконфигурации экрана, для получения разностной информации и подает разностную информацию в блок 104 ортогонального преобразования.
Например, в случае изображения, которое подвергается внутрикадровому кодированию, арифметическое устройство 103 вычитает предсказанное изображение, поставленное из блока 114 внутрикадрового предсказания, из изображения, считываемого из буфера 102 реконфигурации экрана. Кроме того, например, в случае изображения, которое подвергаются межкадровому кодированию, арифметическое устройство 103 вычитает предсказанное изображение, поставленное из блока 115 предсказания/компенсации параллакса движения, из изображения, считываемого из буфера 102 реконфигурации экрана.
Блок 104 ортогонального преобразования выполняет ортогональное преобразование, такое как дискретное косинусное преобразование или преобразование Карунена-Лоэва по отношению к разностной информации, поставленной из арифметического устройства 103. Способ ортогонального преобразования является не обязательным. Блок 104 ортогонального преобразования поставляет коэффициенты преобразования в блок 105 квантования.
Блок 105 квантования квантует коэффициенты преобразования, поставленные из блока 104 ортогонального преобразования. Блок 105 квантования устанавливает параметры квантования, на основании информации о целевой скорости кодирования, и выполняет квантование. Способ квантования является необязательным. Блок 105 квантования поставляет квантованные коэффициенты преобразования в блок 106 кодирования без потерь.
Блок 106 кодирования без потерь кодирует квантованные коэффициенты преобразования блоком 105 квантования в соответствии с необязательной схемой кодирования. Кроме того, блок 106 кодирования без потерь получает информацию внутрикадрового предсказания, включающую в себя информацию или т.п., которая указывает режим внутрикадрового предсказания из блока 114 внутрикадрового предсказания, и получает информацию межкадрового предсказания, включающую в себя информацию, которая указывает режим межкадрового предсказания, информацию вектора параллакса движения и т.п. из блока 115 предсказания/компенсации параллакса движения. Дополнительно, блок 106 кодирования без потерь получает коэффициенты фильтра и т.п., используемые в контурном фильтре 111.
Блок 106 кодирования без потерь кодирует эти различные типы информации в соответствии с необязательной схемой кодирования и включает в состав (мультиплексирует) информацию, как часть информации заголовка закодированных данных. Блок 106 кодирования без потерь поставляет кодированные данные, полученные кодированием, в буфер 107 накопления, который накапливает кодированные данные.
Примеры схемы кодирования блоком 106 кодирования без потерь включают в себя кодирование с переменной длиной и арифметическое кодирование. Пример кодирования переменной длины включает в себя контекстно-зависимое адаптивное кодирование с переменной длинной кодового слова (CAVLC), который определяется в схеме Н. 264/AVC. Пример арифметического кодирования включает в себя контекстно-зависимое адаптивное бинарное арифметическое кодирование (СABAC).
Буфер 107 накопления временно хранит кодированные данные, поставленные из устройства 106 кодирования без потерь. Буфер 107 накопления выводит кодированные данные, хранящиеся в нем, в устройство записи (носитель записи) (не показано) по линии передачи на последующей этапе обработки, например, в заданный момент времени как битовый поток. То есть, различная кодированная информация подается в декодирующую секцию.
Кроме того, квантованные коэффициенты преобразования в блоке 105 квантования также подаются в блок 108 обратного квантования. Блок 108 обратного квантования выполняет обратное квантование квантованных коэффициентов преобразования в соответствии со способом, соответствующим квантованию блока 105 квантования. Способ обратного квантования является необязательным, пока способ соответствует процессу квантования блока 105 квантования. Блок 108 обратного квантования поставляет полученные коэффициенты преобразования в блок 109 обратного ортогонального преобразования.
Блок 109 обратного ортогонального преобразования выполняет обратное ортогональное преобразование коэффициентов преобразования, поставленных из блока 108 обратного квантования в соответствии со способом, соответствующим процессу ортогонального преобразования блока 104 ортогонального преобразования. Способ обратного ортогонального преобразования является необязательным до тех пор, пока способ соответствует процессу ортогонального преобразования блока 104 ортогонального преобразования. Выходной сигнал (локально восстановленная разностная информация), полученный посредством обратного ортогонального преобразования, поставляется в арифметическое устройство 110.
Арифметическое устройство 110 добавляет предсказанное изображение, поставленное из блока 114 внутрикадрового предсказания или из блока 115 предсказания/компенсации параллакса движения, через селектор 116 предсказанного изображения для получения результата обратного ортогонального преобразования, то есть, локально восстановленную разностную информацию, поставленную из блока 109 обратного ортогонального преобразования, для получения локально восстановленного изображения (здесь и далее называется как восстановленное изображение). Восстановленное изображение подается в контурный фильтр 111 или в буфер 112 декодированного изображения.
Контурный фильтр 111 включает в себя фильтр устранения блочности, адаптивный контурный фильтр или тому подобное, и выполняет процесс фильтрации декодированного изображения соответствующим образом, поставленного из арифметического устройства 110. Например, контурный фильтр 111 устраняет артефакты блочности декодированного изображения посредством выполнения процесса фильтрации декодированного изображения. Кроме того, например, контурный фильтр 111 улучшает качество изображения путем выполнения процесса фильтрации с использованием фильтра Винера результирующего сигнала после фильтрации, устраняя артефакты блочности (декодированное изображение, в котором устранены артефакты блочности).
Контурный фильтр 111 может выполнять необязательный процесс фильтрации декодированного изображения. Кроме того, контурный фильтр 111 поставляет информацию, такую как коэффициенты фильтрации, используемые для процесса фильтрации, в блоке 106 кодирования без потерь, по мере необходимости, при кодировании информации.
Контурный фильтр 111 поставляет результирующий сигнал фильтрации (здесь и далее упоминается как декодированное изображение) в буфер 112 декодированного изображения.
Буфер 112 декодированного изображения хранит восстановленное изображение, поставленное из арифметического устройства ПО, и декодированное изображение, поставленное из контурного фильтра 111. Кроме того, буфер 112 декодированного изображения хранит ID ракурса и РОС изображения.
Буфер 112 декодированного изображения поставляет восстановленное изображение (с ID ракурса и РОС изображения), хранящееся в нем, в блок 114 внутрикадрового предсказания через селектор 113 в заданный момент времени или на основе запроса от внешнего блока, такого как блок 114 внутрикадрового предсказания. Кроме того, буфер 112 декодированного изображения поставляет декодированное изображение (с ID ракурса и РОС изображения), хранящееся на нем, в блок 115 предсказания/компенсации параллакса движения через селектор 113 в заданный момент времени или на основе запроса от внешнего блока, такого как блок 115 предсказания/компенсации параллакса движения.
Селектор 113 обозначает направление подачи выходного изображения из буфера 112 декодированного изображения. Например, в случае внутрикадрового предсказания, селектор 113 считывает изображение (восстановленное изображение), которое не фильтруется из буфера 112 декодированного изображения, и подает изображение в блок 114 внутрикадрового предсказания как смежные пиксели.
Более того, например, в случае межкадрового предсказания, селектор 113 считывает отфильтрованное изображение (декодированное изображение) из буфера 112 декодированного изображения и передает изображение в блок 115 предсказания/компенсации параллакса движения в качестве опорного изображения.
После получения изображений (смежные изображения) из смежных областей, расположенных вокруг целевой области обработки из буфера 112 декодированного изображения, блок 114 внутрикадрового предсказания выполняет внутрикадровое предсказание (внутриполевое предсказание), генерируя предсказанное изображение в основном с использованием блока предсказания (PU) в качестве блока обработки, с использованием значений пикселя смежных изображений. Блок 114 внутрикадрового предсказания выполняет внутрикадровое предсказание во множестве режимов (режимы внутрикадрового предсказания), подготовленных заранее.
Блок 114 внутрикадрового предсказания генерирует предсказанные изображения во всех вероятных режимах внутрикадрового предсказания, оценивает значения функции стоимости соответствующих предсказанных изображений с помощью входного изображения, поставленного из буфера 102 реконфигурации экрана, и выбирает оптимальный режим. Когда выбран оптимальный режим внутрикадрового предсказания, блок 114 внутрикадрового предсказания поставляет предсказанное изображение, генерируемое в оптимальном режиме, в селектор 116 предсказанного изображения.
Более того, блок 114 внутрикадрового предсказания поставляет информацию внутрикадрового предсказания, включающую в себя информацию о внутрикадровом предсказании, такую как информацию об оптимальном режиме внутрикадрового предсказания, надлежащим образом в блок 106 кодирования без потерь, который кодирует информацию внутрикадрового предсказания.
Блок 115 предсказания/компенсации параллакса движения выполняет предсказание движения и предсказание параллакса (межкадровое предсказание) в основном с помощью PU в качестве блока обработки, используя входного изображение, поступающее из буфера 102 реконфигурации экрана, и опорное изображение, подаваемое из буфера 112 декодированного изображения, выполняет процесс компенсации в зависимости от обнаруженного вектора параллакса движения, и генерирует предсказанное изображение (информация межкадрового предсказания). Блок 115 предсказания/компенсации параллакса движения выполняет межкадровое предсказание (межкадровое предсказание) во множестве режимов заранее подготовленных режимов (режимов межкадрового предсказания).
Блок 115 предсказания/компенсации параллакса движения генерирует предсказанные изображения во всех возможных режимах межкадрового предсказания, оценивает значения функции стоимости соответствующих предсказанных изображений, выбирая оптимальный режим. При выборе оптимального режима межкадрового предсказания, блок 115 предсказания/компенсации параллакса движения поставляет предсказанное изображение, генерированное в оптимальном режиме, в селектор 116 предсказанного изображения.
Кроме того, блок 115 предсказания/компенсации параллакса движения поставляет информацию межкадрового предсказания, включающую в себя информацию о межкадровом предсказании, такую как информацию об оптимальном режиме межкадрового предсказания, в блок 106 кодирования без потерь, который кодирует информацию межкадрового предсказания.
Селектор 116 предсказанного изображения выбирает источник подачи предсказанного изображения, поставляемого в арифметическое устройство 103 и в арифметическое устройство ПО. Например, в случае внутрикадрового кодирования, селектор 116 предсказанного изображения выбирает блок 114 внутрикадрового предсказания в качестве источника подачи предсказанного изображения и поставляет предсказанное изображение, поставленное из блока 114 внутрикадрового предсказания, в арифметическое устройство 103 и арифметическое устройство ПО. Кроме того, например, в случае межкадрового кодирования, селектор 116 предсказанного изображения выбирает блок 115 предсказания/компенсации параллакса движения в качестве источника подачи предсказанного изображения и передает предсказанное изображение, поступающее из блока 115 предсказания/компенсации параллакса движения, в арифметическое устройство 103 и арифметическое устройство 110.
Хотя буфер 112 декодированного изображения хранит только изображение целевого ракурса обработки (ID ракурса и РОС изображения), но буфер 121 декодированного многоракурсного изображения хранит изображения из соответствующих точек просмотра (ракурсов) (ID ракурсов и РОС изображений). То есть, буфер 121 декодированного многоракурсного изображения получает декодированное изображение (ID ракурсов и РОС изображений), поставленное в буфер 112 декодированного изображения и сохраняет декодированное изображение (ID ракурсов и РОС изображений) вместе с буфером 112 декодированного изображения.
Хотя буфер 112 декодированного изображения стирает декодированное изображение при изменении целевого ракурса обработки, буфер 121 декодированного многоракурсного изображения сохраняет декодированное изображение, как это было. Кроме того, буфер 121 декодированного многоракурсного изображения поставляет хранимое декодированное изображение (ID ракурсов и РОС изображений) в буфере 112 декодированного изображения как "декодированное изображение нецелевого ракурса обработки" в соответствии с запросом буфера 112 декодированного изображения или тому подобное. Буфер 112 декодированного изображения поставляет "декодированное изображение нецелевого ракурса обработки (ID ракурсов и РОС изображений)", считанное из буфера 121 декодированного многоракурсного изображения, в блок 115 предсказания/компенсации параллакса движения через селектор 113.
Блок предсказания/компенсации параллакса движения
Фиг.12 является блок-схемой, иллюстрирующей пример конфигурации основного блока предсказания/компенсации параллакса движения, показанного на фиг.11.
Как показано на фиг.12, блок 115 предсказания/компенсации параллакса движения включает в себя блок 131 поиска вектора параллакса движения, блок 132 генерирования предсказанного изображения, буфер 133 накопления кодированной информации и селектор 134. Кроме того, блок 115 предсказания/компенсации параллакса движения включает в себя блок 135 генерирования вектора предсказания пространственной корреляции, блок 136 генерирования вектора предсказания временной корреляции параллакса, селектор 137, блок 138 вычисления стоимости кодирования и блок 139 определения режима.
Блок 131 поиска вектора параллакса движения получает значение пикселя декодированного изображения из буфера 112 декодированного изображения и получает значение пикселя оригинального изображения из буфера 102 реконфигурации экрана. Блок 131 поиска вектора параллакса движения определяет индекс опорного изображения текущей области, которая является целевой областью обработки с использованием этих значений, осуществляет поиск движения во временном направлении и в параллактическом направлении, и генерирует текущий вектор движения и текущий вектор параллакса.
В последующем описании, когда нет необходимости различать вектор движения, указывающий движение во временном направлении (то есть, между кадрами (изображениями)) и вектор параллакса, указывающий движение в направлении параллакса (то есть, между ракурсами) или оба вектора обозначены, вектор (ы) будет упоминаться как вектор параллакса движения. Вектор параллакса движения текущей области также упоминается как текущий вектор параллакса движения.
Блок 131 поиска вектора параллакса движения поставляет индекс опорного изображения и вектор параллакса движения в блок 132 генерирования предсказанного изображения и блок 138 вычисления стоимости кодирования.
Блок 132 генерирования предсказанного изображения получает индекс опорного изображения и вектор параллакса движения из блока 131 поиска вектора параллакса движения и получает значение пикселя декодированного изображения из буфера 112 декодированного изображения. Блок 132 генерирования предсказанного изображения генерирует предсказанное изображение текущей области, используя эти значения. Блок 132 генерирования предсказанного изображения поставляет значение пикселя предсказанного изображения в блок 138 вычисления стоимости кодирования.
Буфер 133 накопления кодированной информации хранит информацию о режиме, которая указывает на выбранный режим как оптимальный режим в блоке 139 определения режима, индекс опорного изображения и вектор параллакса движения режима. Буфер 133 накопления кодированной информации поставляет хранимую информацию в селектор 134 в заданный момент времени или в соответствии с запросом от внешнего устройства.
Селектор 134 поставляет информацию о режиме, индекс опорного изображения и вектор параллакса движения, поставленную из буфера 133 накопления кодированной информации с пространственной корреляцией, в блок 135 генерирования вектора предсказания пространственной корреляции или блок 136 генерирования вектора предсказания временной корреляции параллакса.
Блок 135 генерирования вектора предсказания пространственной корреляции и блок 136 генерирования вектора предсказания временной параллактической корреляции генерирует предсказанное значение (вектор предсказания) вектора движения (текущий вектор движения) текущей области, которая является целевой областью обработки.
Блок 135 генерирования вектора предсказания пространственной корреляции генерирует вектор предсказания (вектор предсказания пространственной корреляции), используя пространственную корреляцию. Более конкретно, блок 135 генерирования вектора предсказания пространственной корреляции получает информацию (информация о режиме, индекс опорного изображения, вектор параллакса движения и т.п.) о движении смежной области (пространственно смежная область), которая расположена пространственно вокруг текущей области того же кадра (текущий кадр (также называемый как целевой кадр)) как текущая область, из буфера 133 накопления кодированной информации с пространственной корреляцией через селектор 134.
Например, блок 135 генерирования вектора предсказания пространственной корреляции выполняет операцию осреднения с использованием векторов движения (векторы движения пространственно смежных) множества пространственно смежных областей для генерирования вектора предсказания пространственной корреляции. Блок
135 генерирования вектора предсказания пространственной корреляции поставляет сгенерированный вектор предсказания пространственной корреляции в селектор 137.
Блок 136 генерирования вектора предсказания временной корреляции параллакса генерирует вектор предсказания (вектор предсказания временной корреляции или вектор предсказания параллактической корреляции), используя временную корреляцию или параллактическую корреляцию. Более конкретно, например, блок 136 генерирования вектора предсказания временной параллактической корреляции получает информацию о движении смежной области (временно смежной области), которая расположена временно вокруг текущей области из буфера 133 накопления кодированной информации через селектор 134. Временно смежная область обозначает область (или окружающие области таковой), расположенную на позиции, соответствующей текущей области кадра (изображения), отличной от текущего кадра, того же самого ракурса (текущий ракурс (также называемый как целевой ракурс)) как текущая область.
Кроме того, например, блок 136 генерирования вектора предсказания временной корреляции параллакса получает информацию о движении смежной области (параллактической смежной области), расположенный параллактически вокруг текущей области, из буфера 133 накопления кодированной информации через селектор 134. Параллактически смежная область обозначает область (или окружающие области таковой), расположенную в позиции, соответствующей текущей области кадра (изображения) в то же самое время, что и текущий кадр ракурса, отличного от ракурса (текущий ракурс) текущей области.
Например, блок 136 генерирования вектора предсказания временной корреляции параллакса выполняет операцию осреднения с использованием векторов движения (временно смежных векторов движения) множества временно смежных областей для генерирования вектора предсказания временной корреляции. Кроме того, например, блок 136 генерирования вектора предсказания временной корреляции параллакса выполняет операцию осреднения с использованием векторов движения (параллактически смежные векторы движения) из множества параллактически смежных областей для генерирования вектора предсказания параллактической корреляции.
Блок 136 генерирования вектора предсказания временной корреляции параллакса поставляет вектор предсказания временной параллактической корреляции, сгенерированный таким образом, в селектор 137.
Блок 135 генерирования вектора предсказания пространственной корреляции и блок 136 генерирования вектора предсказания временной корреляции параллакса соответственно генерирует вектор предсказания в каждом режиме межкадрового предсказания.
Селектор 137 поставляет вектор предсказания пространственной корреляции, поставленный из блока 135 генерирования вектора предсказания пространственной корреляции, и вектор предсказания временной параллактической корреляции, поставленный из блока 136 генерирования вектора предсказания временной корреляции параллакса, в блок 138 вычисления стоимости кодирования.
Блок 138 вычисления стоимости кодирования вычисляет значение разности (разностное изображение) между предсказанным изображением и исходным изображением в каждом режиме межкадрового предсказания с использованием значения пикселя предсказанного изображения, поставленного из блока 132 генерирования предсказанного изображения, и значения пикселя исходного изображения, поставленного из буфера 102 реконфигурации экрана. Кроме того, блок 138 вычисления стоимости кодирования вычисляет значение функции стоимости (также упоминаемое как значение стоимости кодирования) в каждом режиме межкадрового предсказания, используя значение пикселя разностного изображения.
Дополнительно, блок 138 вычисления стоимости кодирования выбирает вектор предсказания, который ближе к вектору движения параллакса текущей области, поставленный из блока 131 поиска вектора параллакса движения среди вектора предсказания пространственной корреляции и вектора предсказания временной параллактической корреляции, поставленного из селектора 137 как вектор предсказания текущей области. Кроме того, блок 138 вычисления стоимости кодирования генерирует разностный вектор параллакса движения, который представляет собой разницу между вектором предсказания и вектором параллакса движения текущей области. Блок 138 вычисления стоимости кодирования генерирует разностный вектор параллакса движения в каждом режиме межкадрого предсказания.
Блок 138 вычисления стоимости кодирования поставляет значение стоимости кодирования, значение пикселя предсказанного изображения и разностную информацию параллакса движения, включающую в себя вектор разностного параллакса движения для каждого режима межкадрового предсказания, и информацию предсказания, включающую в себя вектор предсказания и индекс опорного изображения, в блок 139 определения режима.
Блок 139 определения режима выбирает режим межкадрового предсказания, в котором значение стоимости кодирования минимизируется в качестве оптимального режима. Блок 139 определения режима направляет значение пикселя предсказанного изображения режима межкадрового предсказания, выбранного в качестве оптимального режима, в селектор 116 предсказанного изображения.
Когда выбран режим межкадрового предсказания селектором 116 предсказанного изображения, блок 139 определения режима поставляет информацию о режиме, которая является информацией о режиме межкадрового предсказания, выбранного в качестве оптимального режима, разностную информацию параллакса движения и информацию предсказания в режиме межкадрового предсказания в блок 106 кодирования без потерь, который кодирует информацию. Эти элементы информации кодируются и передаются на сторону декодирования.
Более того, блок 139 определения режима поставляет информацию о режиме, разностную информацию параллакса движения и информацию предсказания в режиме межкадрового предсказания, выбранного в качестве оптимального режима, в буфер 133 накопления кодированной информации, который хранит информацию. Эти элементы информации используются в качестве информации о смежных областях в процессе для другой области, обработанной позднее текущей области.
Блок генерирования вектора предсказания временной корреляции параллакса
Фиг.13 представляет собой блок-схему, иллюстрирующую основную пример конфигурации блока генерирования вектора предсказания временной корреляции параллакса.
Как показано на фиг.13, блок генерирования вектора предсказания временной корреляции параллакса включает в себя процессор 151 текущей области (процессор целевой области), процессор 152 области корреляции, процессор 153 L1 предсказания, процессор 154 L0 предсказания, процессор 155 схемы-1, процессор 156 схемы-2, процессор 157 схемы-3, процессор 158 схемы-4 и блок 159 генерирования вектора предсказания.
Процессор 151 текущей области выполняет процесс получения информации о текущей области. Процессор 151 текущей области поставляет полученную информацию о текущей области в соответствующие блоки, начиная с процессора 152 области корреляции до процессора 154 L0 предсказания. Процессор 152 области корреляции выполняет процесс получения информации об области корреляции.
Область корреляции является областью, которая упоминается для того, чтобы использовать корреляцию с текущей областью. Например, временная область корреляции представляет собой область, которая упоминается для того, чтобы использовать временную корреляцию с текущей областью и временно смежной областью, имеющую вектор движения, используемый для генерирования вектора предсказания временной корреляции. Кроме того, область корреляции параллакса представляет собой область, которая упоминается для того, чтобы использовать корреляцию параллакса с текущей областью и является параллактической смежной областью, имеющей вектор движения, используемый для генерации вектора предсказания корреляции параллакса. Область корреляции включает в себя эти области.
Процессор 152 области корреляции поставляет информацию об области корреляции в процессор 153 L1 предсказания и процессор 154 L0 предсказания.
Процессор 153 L1 предсказания выполняет процесс предсказания в направлении L1. Процессор 153 L1 предсказания получает необходимую информацию из буфера 102 реконфигурации экрана и буфер 112 декодированного изображения. Кроме того, процессор 153 L1 предсказания получает информацию, поставленную из процессора 151 текущей области и процессора 152 области корреляции. Процессор 153 L1 предсказания выполняет процесс предсказания в направлении L1, используя эти элементы информации.
Предусмотрены четыре способа схем с 1 по 4 как процесс предсказания. Процессор L1 предсказания выбирает любой один из данных способов и предоставляет информацию в процессор, соответствующий способу, выбранному соответствующими процессорами с процессора 155 схемы-1 по процессор 158 схемы-4.
Процессор 154 L0 предсказания выполняет процесс предсказания в направлении L0 аналогично процессору 153 L1 предсказания.
Схема 1 представляет собой схему, в которой кадр (опорное изображение) того же временного отрезка, что и текущий кадр, ракурса отличного от текущего ракурса, выделенный индексом 1 списка 1 опорного изображения, используется в качестве корреляции изображения, и когда вектор области корреляции является вектором параллакса, вектор параллакса (опорный вектор параллакса) используются в качестве вектора предсказания. Процессор 155 схемы-1 выполняет процесс генерации вектора предсказания согласно такой схеме. Процессор 155 схемы-1 поставляет различные параметры, полученные в процессе в блок 159 генерирования вектора предсказания.
Схема 2 представляет собой схему, в которой кадр (опорное изображение) временного периода отличается от текущего кадра такого же ракурса, что и текущий ракурс, выделенный индексом 0 списка 1 опорного изображения, используется в качестве корреляции изображений, и когда вектор области корреляции является вектором параллакса, вектор параллакса (опорный вектор параллакса) используются в качестве вектора предсказания. Процессор 156 схемы-2 выполняет процесс генерации вектора предсказания согласно такой схеме. Процессор 156 схемы-2 поставляет различные параметры, полученные в процессе в блок 159 генерирования вектора предсказания.
Схема 3 представляет собой схему, в которой кадр (опорное изображение) временного периода отличается от текущего кадра, такого же ракурса, что и текущий ракурс, выделенный индексом 1 списка 1 опорного изображения, используется в качестве корреляции изображений, и когда вектор области корреляции является вектором движения, вектор движения (опорный вектор параллакса) используются в качестве вектора предсказания. Процессор 157 схемы-3 выполняет процесс генерации вектора предсказания согласно такой схеме. Процессор 157 схемы-3 поставляет различные параметры, полученные в процессе в блок 159 генерирования вектора предсказания.
Схема 4 является схемой, в которой кадр (опорное изображение) временного отрезка отличается от текущего кадра, того же ракурса, что и текущий ракурс, выделенный индексом 0 списка 1 опорного изображения, используется в качестве корреляции изображений, и когда вектор области корреляции является вектором движения, вектор движения (опорный вектор параллакса) используют в качестве вектора предсказания. Процессор 158 схемы-4 выполняет процесс генерации вектора предсказания согласно такой схеме. Процессор 158 схемы-4 поставляет различные параметры, полученные в процессе в блок 159 генерирования вектора предсказания.
Блок 159 генерирования вектора предсказания генерирует вектор предсказания временной корреляции параллакса, используя информацию, предоставленную процессорами от процессора 155 схемы-1 до процессора 158 схемы-4, информацию о ракурсе, информацию о времени и тому подобное опорного изображения, полученную из буфера 112 декодированного изображения. В этом случае, блок 159 генерирования вектора предсказания выполняет процесс масштабирования, используя информацию, поставленную из процессоров с процессора 155 схемы-1 до процессора 158 схемы-4. В этом случае, блок 159 генерирования вектора предсказания выполняет масштабирование во временном направлении для вектора предсказания корреляционного движения и выполняет масштабирование в направлении параллакса для вектора предсказания корреляционного параллакса. Блок 159 генерирования вектора предсказания поставляет сгенерированный вектор предсказания временного корреляционного параллакса в блок 138 вычисления стоимости кодирования через селектор 137.
Поступая таким образом, блок 136 генерирования вектора предсказания временной корреляции параллакса может генерировать вектор предсказания корреляционного параллакса, а также вектор предсказания корреляционного движения. Таким образом, блок 115 предсказания/компенсации параллакса движения может генерировать вектор предсказания с высокой точностью предсказания даже тогда, когда вектор текущей области является вектором параллакса. Соответственно, устройство 100 кодирования изображения может устранить причины снижения эффективности кодирования. Пример выбора схемы
Фиг.14 иллюстрирует примеры, в которых показаны выбранные схемы. Как показано на фиг.14, область, которая имеет позиционное соотношение (присутствует ли опорное изображение во временном направлении или в предсказании параллакса) с опорным изображением, является текущей областью (целевой областью), которая выбирается в качестве области корреляции. То есть, позиционное соотношение между текущей областью и опорным изображением текущей области аналогично позиционному соотношению между областью корреляции и опорным изображением области корреляции. Кроме того, схема определяется на основании позиционного соотношения между текущей областью и опорным изображением текущей области и позиционного соотношения между текущей областью и областью корреляции.
В таблице на фиг.14, с первой по четвертой строчке снизу показываются пример позиционного соотношения соответствующих изображений и с А по Е обозначают пример значений ID ракурса или РОС в каждой строке. То есть, важно здесь понимать, что не сколько значение имеет важное значение, но являются ли ID или РОС изображения идентичными параметрам другого изображения.
В примере в четвертой строчке снизу, как текущей области, так и область корреляции имеют разные опорные изображения и IDs ракурса, но имеют одинаковые РОС. То есть, векторы текущей области и области корреляции являются векторами параллакса. Более того, текущая область и область корреляции имеют разные IDs ракурса и имеют одинаковые POCs. То есть, область корреляции является изображением ракурса другого кадра в то же время, как и текущая область. Таким образом, выбирается схема 1, как показано в таблице на фиг.14. Схема 1 является эффективной в области, в которой изменение в параллаксе между точками наблюдения является постоянным.
В примере в третьей строчке снизу, как текущая область, так и область корреляции имеют разные опорные изображения и IDs ракурса, но имеют одинаковые РОС. То есть, векторы текущей области и области корреляции являются векторами параллакса. Кроме того, текущая область и область корреляции имеют одинаковые IDs ракурса и имеют различные POCs. То есть, область корреляции представляет собой изображение кадра в другое время того же ракурса, что и текущей области. Таким образом, выбирается схема 2, как показано в таблице на фиг.14. Схема 2 эффективна, когда изменение во временном движении незначительно.
В примере второй строчке снизу, как текущей области, так и области корреляции имеют одинаковые опорные изображения и IDs ракурса, но имеют различные POCs. То есть, векторы текущей области и области корреляции являются векторами движения. Более того, текущая область и область корреляции имеют разные IDs ракурса и имеют одинаковые POCs. То есть, область корреляции является изображением ракурса другого кадра, в то же время что и текущая область. Выбирается схема 3, как показано в таблице на фиг.14. Схема 3 является эффективной, когда изменение величины параллакса между точками наблюдения является небольшим.
В примере в первой строке снизу, как текущая область, так и область корреляции имеют одинаковые опорные изображения и IDs ракурса, но имеют различные РОС. То есть, векторы текущей области и области корреляции являются векторами движения. Кроме того, текущая область и область корреляции имеют одинаковые IDs ракурса и различные POCs. То есть, область корреляции представляет собой изображение кадра в другое время того же ракурса, что и текущая область. Таким образом, выбирается схема 4, как показано в таблице на фиг.14.
То есть, например, когда любое одно (например, изображение для левого глаза) из левого и правого изображений 3D изображения является основным ракурсом, и другое (например, изображение для правого глаза) является зависимым ракурсом, и в зависимом ракурсе свойство вектора (вектор кодирования) текущей области идентично свойству вектора (совмещенный вектор) области корреляции (совмещенный блок) кадра другого временного периода того же ракурса, то устанавливается доступный совмещенный блок. Иными словами, в зависимом ракурсе, когда свойства вектора кодирования и совмещенного вектора не совпадают, совмещенный блок устанавливается как не доступный. Естественно, то же самое может быть применено к основному ракурсу.
Например, процессор 153 L1 предсказания и процессор 154 L0 предсказания, как показано на фиг.13, осуществляют такую установку.
Идентичность или неидентичность свойств вектора кодирования и совмещенного вектора может быть определена, например, сравнением POCs текущей области и совмещенного блока с POCs соответствующих опорных изображений, как показано на фиг.15. Например, процессор 153 L1 предсказания и процессор 154 L0 предсказания на фиг.13 осуществляют такое определение.
Например, когда РОС (CurrPOC) текущей области и РОС (CurrRefPOC) опорного изображения текущей области не идентичны и РОС (ColPOC) совмещенного блока и РОС (ColRefPOC) опорного изображения совмещенного блока не идентичны ((СurrPOC!==CurrRefPOC) && (ColPOC!==ColRefPOC)), процессор 153 L1 - предсказания и процессор 154 L0 предсказания определяют, что и вектор кодирования и совмещенный блок являются векторами движения (А на фиг.16).
Более того, например, когда РОС (СurrPОС) текущей области и РОС (CurrRefPOC) опорного изображения текущей области идентичны и РОС (ColPOC) совмещенного блока и РОС (ColRefPOC) опорного изображения совмещенного блока идентичны ((СurrРОС==CurrRefPOC) && (ColPOC=ColRefPOC)), процессор 153 L1 предсказания и процессор 154 L0 предсказания определяют, что и вектор кодирования и совмещенный блок являются векторами параллакса (межкадровые векторы) (В на фиг.16).
Процессор 153 L1 предсказания и процессор 154 L0 предсказания устанавливают доступность совмещенного вектора, как показано в нижней части таблицы на фиг.15, на основании результатов определения.
Например, когда оба вектор кодирования и совмещенный блок определены как векторы движения или векторы параллакса (межкадровый вектор), совмещенный вектор устанавливается как доступный (А на фиг.16 или В на фиг.16).
И наоборот, когда один из вектор кодирования и совмещенный блок определяется как вектор движения, а другой определяется как вектор параллакса (межкадровый вектор), то совмещенный вектор устанавливается как доступный.
Синтаксис
Фиг.17 иллюстрирует пример синтаксиса набора параметров последовательности в данном случае. Как показано с десятой строчки до третьей строчки снизу на фиг.17, информация, такая как общее количество ракурсов, ID для идентификации ракурсов, количество предсказаний параллакса в списке LO, ID ракурса ссылаемого на предсказание параллакса в списке L0, количество предсказаний параллакса в списке L1 и ID ракурса, ссылаемого на предсказание параллакса в списке L1, входит в набор параметров последовательности. Эти элементы информации являются информацией, необходимой для многоракурсных изображений. Другими словами, настоящая технология может быть применена без добавления нового синтаксиса в набор параметров последовательности.
Фиг.18 иллюстрирует пример синтаксиса секции заголовка этом случае. Как показано в восьмой строчке снизу на фиг.18, ID для идентификации ракурсов включен в состав секции заголовка. Эта информация является информацией, необходимой для многоракурсных изображений. Другими словами, настоящая технология может быть применена без добавления нового синтаксиса в секцию заголовка.
Фиг.19 иллюстрирует пример синтаксиса блока предсказания данного случая. Как показано на фиг.19, настоящая технология может быть применена без добавления нового синтаксиса к блоку предсказания. Однако, так как применение настоящей технологии увеличивает количество кандидатов области корреляции по сравнению с традиционной технологией, необходимо расширить тип синтаксиса или изменить контент процесса для ID режима объединения и ID вектора предсказания.
Последовательность операций процесса кодирования
Далее, будет описана последовательность операций соответствующих процессов, выполняемых устройством 100 кодирования изображения, имеющее такую конфигурацию. Во-первых, пример последовательности операций процесса кодирования будет описан со ссылкой на блок-схему алгоритма, как показано на фиг.20.
На этапе S101, A/D конвертер 101 выполняет A/D преобразование входного изображения. На этапе S102, буфер 102 реконфигурации экрана хранит A/D-преобразованное изображение и реконфигурируют соответствующие изображения так, что изображения, размещенные в порядке отображения, реконфигурируется в порядке кодирования.
На этапе S103 блок 114 внутрикадрового предсказания выполняет процесс внутрикадрового предсказания. На этапе S104, блок 115 предсказания/компенсации параллакса движения выполняет процесс предсказания межкадрового движения. На этапе S105 селектор 116 предсказанного изображения выбирает любое одно предсказанное изображение, генерируемое внутрикадровым предсказанием, и предсказанное изображение, генерируемое межкадровым предсказанием.
На этапе S106, арифметическое устройство 103 вычисляет (генерирует разностное изображение) величину разности между изображением, реконфигурированным в процессе на этапе S102, и предсказанным изображением, выбранным при осуществлении процесса на этапе S105. Генерированное разностное изображение имеет меньший объем данных, чем исходное изображение. Таким образом, можно сжать объем данных по сравнению с тем, когда изображение кодируется, как оно есть.
На этапе S107, блок 104 ортогонального преобразования выполняет ортогональное преобразование разностного изображения, сформированного при выполнении процесса на этапе S106. В частности, реализуется ортогональное преобразование, такое как дискретное косинусное преобразование или преобразование Карунена-Лоэва, вырабатываются коэффициенты ортогонального преобразования. На этапе S108, блок 105 квантования квантует коэффициенты ортогонального преобразования, полученные при реализации процесса на этапе S107.
Разностное изображение, квантованное при выполнении процесса на этапе S108, локально декодируется следующим образом. То есть, на этапе S109, блок 108 обратного квантования выполняет обратное квантование квантованных коэффициентов ортогонального преобразования (также называемые как коэффициенты квантования), генерируемые в процессе на этапе S108 в соответствии со свойством, соответствующим свойству блока 105 квантования. На этапе S110, блок 109 обратного ортогонального преобразования выполняет обратное ортогональное преобразование коэффициента ортогонального преобразования, полученного при реализации процесса на этапе S109, в соответствии со свойством, соответствующим свойству блока 104 ортогонального преобразования. Таким образом, восстанавливается разностное изображение.
На этапе S111, арифметическое устройство 110 добавляет предсказанное изображение, выбранное на этапе S105, к разностному изображению, сформированному на этапе S110, для генерирования локально декодированного изображения (восстановленного изображения). На этапе S112, контурный фильтр 111 выполняет процесс фильтрации, включающий в себя процесс фильтрации устранения блочности или адаптивный процесс фильтрации соответственно в отношении восстановленного изображения, полученного из процесса на этапе S111 для генерации декодированного изображения.
На этапе S113, буфер 112 декодированного изображения и буфер 121 декодированного многоракурсного изображения хранят декодированное изображение, сформированное в процессе на этапе S112 и восстановленное изображение, сформированного в процессе на этапе S111.
На этапе S114, блок 106 кодирования без потерь кодирует коэффициенты ортогонального преобразования, квантованные в процессе на этапе S108. То есть, кодирование без потерь, такое как кодирование с переменной длиной или арифметическое кодирование, выполняется по отношению к разностному изображению. Блок 106 кодирования без потерь кодирует информацию предсказания, информацию о квантовании, информацию о процессе фильтрации и тому подобное и добавляет закодированную информацию в битовый поток.
На этапе S115, буфер 107 накопления накапливает битовый поток, полученный из процесса на этапе S114. Кодированные данные, накопленные в буфере 107 накопления, соответствующим образом считываются и передаются на сторону декодирования посредством линии передачи или носителя записи.
На этапе S116, блок 105 квантования управляет скоростью квантования на основании скорости кодирования (скорость кодирования события) закодированных данных, накопленных в буфере 107 накопления в процессе на этапе S115, так что переполнение или незаполение не возникает.
Когда процесс на этапе S116 заканчивается, то процесс кодирования заканчивается.
Последовательность операций процесса предсказания межкадрового перемещения
Далее будет описан пример последовательности операций процесса предсказания межкадрового перемещения, выполняемого на этапе S104, как показано на фиг.20, со ссылкой на блок-схему алгоритма, проиллюстрированную на фиг.21.
На этапе S131, блок 131 поиска вектора параллакса движения выполняет поиск движения по отношению к режиму межкадрового предсказания целевой обработки для генерации вектора параллакса движения (вектор движения или вектор параллакса) текущей области, которая является целью обработки. На этапе S132, блок 132 генерирования предсказанного изображения выполняет процесс компенсации движения, используя вектор параллакса движения, полученный на этапе S131, для генерирования предсказанного изображения. На этапе S133, блок 138 вычисления стоимости кодирования генерирует разностное изображение между предсказанным изображением, генерируемого на этапе S132, и исходным изображением (входное изображение).
На этапе S134, блок 138 вычисления стоимости кодирования вычисления выполняет процесс режима объединения с использованием блока 135 генерирования вектора предсказания пространственной корреляции, блока 136 генерирования вектора предсказания временной корреляции параллакса и тому подобное.
На этапе S135, блок 138 вычисления стоимости кодирования сравнивает вектор параллакса движения текущей области, сформированного на этапе S131, и вектор предсказания текущей области, генерируемого при выполнении процесса на этапе S134, чтобы определить, применим ли режим объединения к текущей области.
Когда определено, что оба не являются идентичными, и режим объединения не применим, то блок 138 вычисления стоимости кодирования переходит к процессу этапа S136 и выполняет процесс предсказания вектора параллакса движения с использованием блока 135 генерирования вектора предсказания пространственной корреляции, блока 136 генерирования вектора предсказания временной корреляции параллакса и тому подобное. Когда процесс на этапе S136 заканчивается, блок 138 вычисления стоимости кодирования переходит к процессу этапа S137.
Кроме того, на этапе S135, когда определяется, что вектор параллакса движения и вектор предсказания текущей области идентичны и режим объединения применим к текущей области, то блок 138 вычисления стоимости кодирования пропускает процесс этапа S136 и переходит на этап S137.
На этапе S137, блок 138 вычисления стоимости кодирования определяет, выполняться ли описанный выше процесс во всех режимах межкадрового предсказания. Когда определено наличие необработанного режима межкадрового предсказания, то последовательность выполнения операций возвращается на этап S131, и управление осуществляется так, что последующие процессы повторно осуществляется по отношению к необработанному режиму межкадрового предсказания. То есть, процессы на этапах с S131 по S137 выполняются в соответствующих режимах межкадрового предсказания.
Когда определено, что процесс был выполнен во всех режимах межкадрового предсказания на этапе S137, то блок 138 вычисления стоимости кодирования переходит к процессу этапа S138. На этапе S138, блок 138 вычисления стоимости кодирования вычисляет значение функции стоимости каждого режима межкадрового предсказания.
На этапе S139, блок 139 определения режима определяет режим межкадрового предсказания, в котором значение функции стоимости (величина стоимости кодирования), вычисленное на этапе S138, является наименьшим, в качестве оптимального режима (оптимальный режим межкадрового предсказания).
На этапе S140, блок 132 генерирования предсказанного изображения генерирует предсказанное изображение в оптимальном режиме межкадрового предсказания. Предсказанное изображение подается в селектор 116 предсказанного изображения.
На этапе S141, буфер 133 накопления кодированной информации хранит информацию о режиме и информации о движении (вектор параллакса движения, индекс опорного изображения и т.п.) оптимального режима межкадрового предсказания, когда выбрано межкадровое предсказание на этапе S105, как показано на фиг.20. Когда выбран режим внутрикадрового предсказания, то нулевой вектор хранится в виде вектора параллакса движения. Когда выбрано межкадровое предсказание на этапе S105, как показано на фиг.20, то эти элементы информации подаются и кодируются в блоке 106 кодирования без потерь, и кодированная информация передается на сторону декодирования.
Когда процесс на этапе S141 заканчивается, то буфер 133 накопления кодированной информации завершает процесс медкадрового предсказания и последовательность выполнения операций переходит к блок-схеме алгоритма, показанной на фиг.20.
Последовательность операций процесса режима объединения
Далее будет описан пример последовательности операций процесса режима объединения, выполняемого на этапе S134, как показано на фиг.21, со ссылкой на блок-схему алгоритма на фиг.22.
Когда начинается процесс режима объединения на этапе S161, блок 135 генерирования вектора предсказания пространственной корреляции выполняет процесс предсказания пространственной корреляции генерированием вектора предсказания пространственной корреляции, используя корреляцию с пространственно смежной областью. На этапе S162, блок 136 генерирования вектора предсказания временной корреляции параллакса выполняет процесс предсказания временной корреляции генерирования вектора предсказания временной корреляции параллакса, используя корреляцию с временно смежной областью или параллактической смежной областью.
На этапе S163, блок 138 вычисления стоимости кодирования удаляет вектор перекрытия из вектора предсказания пространственной корреляции, генерированного на этапе S161, и вектора предсказания временного параллакса, генерированного на этапе S162.
На этапе S164, блок 138 вычисления стоимости кодирования определяет наличие вектора. Когда определено, что существует, по меньшей мере, один вектор предсказания пространственной корреляции или вектор предсказания временной корреляции параллакса, блок 138 вычисления стоимости кодирования переходит к процессу этапа S165.
На этапе S165, блок 138 вычисления стоимости кодирования определяет наличие множества векторов. Когда определено, что множество векторов присутствует, то блок 138 вычисления стоимости кодирования переходит к выполнению процесса этапа S166 для получения индекса объединения. Когда определено, что множество векторов отсутствует, то блок 138 вычисления стоимости кодирования пропускает процесс на этапе S166.
Когда вектор предсказания пространственной корреляции или вектор предсказания временной корреляции параллакса идентичны, то вектор движения текущей области присутствует, блок 138 вычисления стоимости кодирования получает идентичный вектор, как вектор предсказания на этапе S167, и получает индекс опорного изображения на этапе S168.
Когда процесс на этапе S168 заканчивается, то блок 138 вычисления стоимости кодирования завершает процесс режима объединения и процесс возвращается в блок-схему алгоритма на фиг.21.
Более того, когда определено, что ни вектор предсказания пространственной корреляции, ни вектор предсказания временной корреляции параллакса не присутствует на этапе S164, блок 138 вычисления стоимости кодирования переходит к процессу этапа S169.
На этапе S169, блок 138 вычисления стоимости кодирования присваивает начальное значение (например, нулевой вектор) вектору предсказания. Кроме того, на этапе S170, блок 138 вычисления стоимости кодирования присваивает начальное значение (например, 0) индексу опорного изображения.
Когда процесс этапа S170 заканчивается, блок 138 вычисления стоимости кодирования завершает процесс режима объединения и процесс возвращается в блок-схему алгоритма на фиг.21.
Последовательность операций процесса предсказания вектора параллакса движения
Далее будет описан пример последовательности операций процесса предсказания вектора параллакса движения, выполняемого на этапе S136, как показано на фиг.21, со ссылкой на блок-схему алгоритма на фиг.23.
Когда начинается процесс предсказания вектора параллакса движения на этапе S191, блок 135 генерирования вектора предсказания пространственной корреляции выполняет процесс предсказания пространственной корреляции для создания вектора предсказания пространственной корреляции. На этапе S192, блок 136 генерирования вектора предсказания временной корреляции параллакса выполняет процесс предсказания временной корреляции параллакса, чтобы генерировать вектор предсказания временной корреляции параллакса.
На этапе S193, блок 138 вычисления стоимости кодирования удаляет вектор перекрытия из вектора предсказания пространственной корреляции, сформированного на этапе S191, и вектора предсказания временного параллакса, сформированного на этапе S192.
Блок 138 вычисления стоимости кодирования выбирает ближайший вектор к вектору движения текущей области среди остальных векторов, создает индекс вектора предсказания, указывающий на вектор на этапе S194, и использует вектор как вектор предсказания на этапе S195. Когда процесс на этапе S195 заканчивается, блок 138 вычисления стоимости кодирования завершает процесс предсказания вектора параллакса движения и процесс возвращается в блок-схему алгоритма, показанную на фиг.21.
Последовательность операций процесса предсказания временной корреляции параллакса
Далее будет описан пример последовательности операций процесса предсказания временной корреляции параллакса, выполняемого на этапе S162, как показано на фиг.22 или на этапе S192 на фиг.23, со ссылкой на блок-схему алгоритма, показанную на фигурах с 24 по 27.
При начале выполнения процесса предсказания временной корреляции параллакса, процессор 151 текущей области получает ID ракурса и РОС текущей области на этапе S211, как показано на фиг.24. На этапе S212, процессор 151 текущей области определяет опорный индекс текущей области. На этапе S213, процессор 151 текущей области получает ID ракурса и РОС опорного изображения.
На этапе S214, процессор 152 области корреляции выбирает корреляцию изображения в порядке возрастания индексов списка L1 опорного изображения. На этапе S215, процессор 152 области корреляция определяет, были ли найдены все индексы опорного изображения. Когда определено, что все индексы опорного изображения были найдены, то процесс предсказания корреляции временного параллакса заканчивается и процесс возвращается на блок-схему алгоритма, как показано на фиг.22 или фиг.23.
Кроме того, когда определено на этапе S215, что присутствует индекс необработанного опорного изображения, то процессор 152 области корреляции переходит к выполнению процесса этапа S216. На этапе S216, процессор 152 области корреляции определяет область корреляции и последовательность выполнения операций переходит к блок-схеме алгоритма на фиг.25.
На этапе S221, как показано на фиг.25, процессор 152 области корреляции определяет, является ли область корреляции областью внутрикадрового предсказания или областью, которая не относится к другой области. Когда определено, что область корреляции является областью внутрикадрового предсказания или областью, которая не относится к другой области, то процессор 152 области корреляции переходит к выполнению операций блок-схемы алгоритма на фиг.26.
Кроме того, когда определено на этапе S221 на фиг.25, что область корреляции является областью межкадрового предсказания и областью, которая не относится к другой области, то процессор 152 области корреляции переходит к выполнению процесса этапа S222.
На этапе S222, процессор 153 L1 предсказания получает ID ракурса и РСО области корреляции. На этапе S223, процессор 153 L1 предсказания получает ID ракурса и РОС опорного изображения L1 предсказания области корреляции.
На этапе S224, процессор 153 L1 предсказания определяет, имеют ли текущая область и область корреляции одинаковые IDs ракурса. Когда оба являются идентичными, то область корреляции представляет собой совмещенный блок. Когда определено, что текущая область и область корреляции имеют одинаковые IDs ракурса, процессор 153 L1 предсказания переходит к выполнению процесса этапа S225 для выполнения процесса схем -4-2 таким образом, что вектор предсказания генерируется согласно схеме 4 или 2. Когда процесс на этапе S225 заканчивается, то последовательность выполнения операций переходит к блок-схеме алгоритма, как показано на фиг.26.
Более того, когда определено на этапе S224 на фиг.25, что текущая область и область корреляции не имеют идентичные IDs ракурса, то процессор 153 L1 предсказания переходит к выполнению процесса этапа S226.
На этапе S226, процессор 153 L1 предсказания определяет, имеют ли текущая область и область корреляции одинаковые POCs. Когда определено, что текущая область и область корреляции не имеют одинаковые POCs, то процессор 153 L1 предсказания переходит к блок-схеме алгоритма на фиг.26.
Более того, когда определено на этапе S226 на фиг.25, что текущая область и область корреляции имеют одинаковые POCs, то процессор 153 L1 предсказания переходит к выполнению процесса этапа S227.
На этапе S227, процессор 153 L1 предсказания определяет, имеют ли опорное изображение текущей области и опорное изображение области корреляции одинаковые POCs. Когда определено, что опорное изображение текущей области и опорное изображение области корреляции имеют одинаковые POCs, то процессор 153 L1 предсказания переходит к выполнению процесса этапа S228 для выполнения процесса схемы-1 так, что вектор предсказания генерируются в соответствии со схемой 1. Когда процесс на этапе S228 заканчивается, то процессор 153 L1 предсказания переходит к блок-схеме алгоритма на фиг.26.
Кроме того, когда определено на этапе S227 на фиг.25, что опорное изображение текущей области и опорное изображение области корреляции не имеют одинаковые POCs, то процессор 153 L1 предсказания переходит к выполнению процесса этапа S229 для выполнения процесса схемы - 3, так что вектор предсказания генерируется в соответствии со схемой 3. Когда процесс на этапе S229 заканчивается, то процессор 153 L1 предсказания переходит к блок-схеме алгоритма на фиг.26.
На фиг.26, процессор 154 L0 предсказания выполняет тот же самый процесс, что и L1 предсказание, показанный на фиг.25, по отношению к L0 предсказанию области корреляции. То есть, процессор 154 L0 предсказания выполняет те же самые процессы этапов с S231 по S238 как процессы этапов с S222 по S229 на фиг.25.
Тем не менее, в случае, показанном на фиг.26, опорное изображение области корреляции является опорным изображением L0 предсказания. Более того, когда процесс этапов S234, S237 или S238 заканчивается, или когда определено на этапе S235, что текущая область и область корреляции не имеют одинаковые POCs, то процессор 154 L0 предсказания переходит к блок-схеме алгоритма на фиг.27.
На этапе S241, как показано на фиг.27, блок 159 генерирования вектора предсказания определяет наличие, по меньшей мере, одного кандидата вектора предсказания. Когда определено, что ни один кандидат вектора предсказания не присутствует, то блок 159 генерирования вектора предсказания возвращается к выполнению процесса этапа S214, как показано на фиг.24.
Более того, когда определено на этапе S241, как показано фиг.27, что, по меньшей мере, присутствует один кандидат вектора предсказания, блок 159 генерирования вектора предсказания переходит к выполнению процесса этапа S242. На этапе S242, блок 159 генерирования вектора предсказания определяет факт того, что флаг перехода L1 равен 1 или же флаги перехода L0 или L1 идентичны, и ссылается на L1.
Когда определено, что флаг перехода L1 только равен 1 или флаги перехода L0 и L1 идентичны, и ссылается на L1, то блок 159 генерирования вектора предсказания переходит к выполнению процесса этапа S243.
На этапе S243, блок 159 генерирования вектора предсказания получает L1 опорный вектор. На этапе S244, блок 159 генерирования вектора предсказания получает индекс опорного изображения L1 и последовательность выполнения операций переходит на этап S247.
Кроме того, когда определено на этапе S242, что флаг перехода L1 не равен 1 или флаг перехода L0=0, и что флаги перехода L0 и L1 не являются идентичными или L1 не упоминается, то блок 159 генерирования вектора предсказания переходит к выполнению процесса этапа S245.
На этапе S245, блок 159 генерирования вектора предсказания получает L0 опорный вектор. На этапе S246, блок 159 генерирования вектора предсказания получает индекс опорного изображения L0 и последовательность выполнения операций переходит на этап S247.
На этапе S247, блок 159 генерирования вектора предсказания использует L1 опорный вектор или L0 опорный вектор, полученный как вектор предсказания. В этом случае, блок 159 генерирования вектора предсказания масштабирует вектор с использованием интервала до опорного изображения в текущей области или области корреляции и использует результат масштабирования как вектор предсказания.
Когда процесс на этапе S247 заканчивается, блок 159 генерирования вектора предсказания возвращается в блок-схему алгоритма, как показано на фиг.24, для завершения выполнения процесса предсказания временной корреляции параллакса, и последовательность выполнения операций возвращается на блок-схему алгоритма, показанную на фиг.22 или на фиг.23.
Последовательность выполнения операций процесса схемы - 1
Далее будет описан пример последовательности выполнения операций процесса схемы - 1, как показано на фиг.25 или фиг.26, со ссылкой на блок-схему алгоритма на фиг.28.
Когда начинается процесс реализации схемы-1 на этапе S261, то процессор 155 схемы-1 определяет, являются ли POCs текущей области и опорного изображения текущей области идентичными. Когда определено, что POCs текущей области и опорного изображения текущей области не идентичны, то процессор 155 схемы-1 завершает процесс схемы-1 и последовательность выполнения операций возвращается на блок-схему алгоритма на фиг.25 или фиг.26.
Кроме того, когда определено на этапе S261, что POCs текущей области и опорное изображение текущей области идентичны, то процессор 155 схемы-1 переходит к выполнению процесса этапа S262.
На этапе S262, процессор 155 схемы-1 определяет, являются ли POCs области корреляции и опорное изображение области корреляции одинаковы. Когда определено, что POCs области корреляции и опорное изображение области корреляции не идентичны, то процессор 155 схемы-1 завершает процесс схемы-1 и последовательность выполнения операций возвращается на блок-схему алгоритма на фиг.25 или фиг.26.
Кроме того, когда определено на этапе S262, что POCs области корреляции и опорное изображение области корреляции одинаковы, то процессор 155 схемы-1 переходит к выполнению процесса этапа S263.
На этапе S263, процессор 155 схемы-1 вычисляет межракурсное расстояние 1 между текущей областью и опорным изображением текущей области. На этапе S264, процессор 155 схемы-1 вычисляет межракурсное расстояние 2 между областью корреляции и опорным изображением области корреляции. На этапе S265, процессор 155 схемы-1 определяет флаг перехода опорного изображения и последовательность выполнения операций возвращается на блок-схему алгоритма на фиг.25 или фиг.26. Эти параметры (межракурсное расстояние 1, межракурсное расстояния 2, флаг перехода) используются в процессе, показанном на фиг.27.
Последовательность выполнения операций процесса схемы-3
Далее будет описан пример последовательности выполнения операций процесса схемы-3, как показано на фиг.25 или фиг.26, со ссылкой на блок-схему алгоритма на фиг.29.
Когда начинается процесс схемы-3 на этапе S271, процессор 157 схемы-3 определяет, являются ли IDs ракурса текущей области и опорного изображения текущей области идентичными. Когда IDs ракурса текущей области и опорного изображения текущей области не являются идентичными, то процессор 157 схемы-3 завершает процесс схемы-3 и процесс возвращается к блок-схеме алгоритма, показанной на фиг.25 или фиг.26.
Кроме того, когда определено на этапе S271, что IDs ракурса текущей области и опорного изображения текущей области идентичны, то процессор 157 схемы-3 переходит к процессу этапа S272.
На этапе S272, процессор 157 схемы-3 определяет, являются ли IDs ракурса области корреляции и опорного изображения области корреляции идентичными. Когда определено, что IDs ракурса области корреляции и опорного изображения области корреляции не идентичны, то процессор 157 схемы-3 завершает процесс схемы-3 и процесс возвращается на блок-схему алгоритма на фиг.25 или фиг.26.
Более того, когда определено на этапе S272, что IDs ракурса области корреляции и опорного изображения области корреляции одинаковы, то процессор 157 схемы-3 переходит к процессу этапа S273.
На этапе S273, процессор 157 схемы-3 вычисляет межракурсное расстояние 1 между текущей области и опорным изображением текущей области. На этапе S274, процессор 157 схемы-3 вычисляет межракурсное расстояние 2 между областью корреляции и опорным изображением области корреляции. На этапе S275 процессор 157 схемы-3 определяет флаг перехода опорного изображения и последовательность выполнения операций возвращается на блок-схему алгоритма на фиг.25 или фиг.26. Эти параметры (межракурсное расстояние 1, межракурсное расстояния 2 и флаг перехода) используются в процессе, как показано на фиг.27.
Последовательность выполнения операций процесса схем-4-2
Далее будет описан пример последовательности выполнения операций процесса схем-4-2, как показано на фиг.25 или фиг.26, со ссылкой на блок-схему алгоритма на фиг.30.
Когда начинается процесс схем-4-2 на этапе S281, процессор 153 L1 предсказания или процессор 154 L0 предсказания определяет, являются ли IDs ракурса текущей области и опорное изображение текущей области идентичными. Когда оба идентичны, то вектор кодирования представляет собой вектор движения. Когда определено, что IDs ракурса текущей области и опорного изображения текущей области идентичны, то последовательность выполнения операций переходит на этап S282.
На этапе S282, процессор 153 L1 предсказания или процессор 154 L0 предсказания определяет, являются ли IDs ракурса области корреляции (совмещенного блока) и опорное изображение области корреляции одинаковыми. Когда оба не являются идентичными, то совмещенный вектор является вектором параллакса. Когда определено, что IDs ракурса области корреляции и опорное изображение области корреляции не идентичны, то процессор 153 L1 предсказания или процессор 154 L0 предсказания завершает процесс схем-4-2 и процесс возвращается на блок-схему алгоритма на фиг.25 или фиг.26.
То есть, в данном случае, так как вектор кодирования является вектором движения и совмещенный вектор является вектором параллакса, свойство вектора кодирования не совпадает со свойством совмещенного вектора. Таким образом, совмещенный блок устанавливается как отсутствующий и процесс схем-4-2 заканчивается.
Кроме того, когда определено на этапе S282, что IDs ракурса области корреляции и опорное изображение области корреляции одинаковы, то процессор 153 L1 предсказания или процессор 154 L0 предсказания переходит к процессу этапа S283. Когда оба идентичны, то совмещенный вектор является вектором движения. То есть, в данном случае, когда оба вектор кодирования и совмещенный вектор являются вектором движения и свойства обоих векторов одинаковы. Таким образом, в этом случае, совмещенный вектор устанавливается как доступный.
На этапе S283, процессор 158 схемы-4 вычисляет межракурсное расстояние 1 между текущей областью и опорным изображением текущей области. На этапе S284, процессор 158 схемы-4 вычисляет межракурсное расстояние 2 между областью корреляции и опорным изображением области корреляции. На этапе S285, процессор 158 схемы-4 определяет флаг перехода опорного изображения и последовательность выполнения операций процесса возвращается на блок-схему алгоритма на фиг.25 или фиг.26. Эти параметры (межракурсное расстояние 1, межракурсное расстояния 2 и флаг перехода) используются в процессе на фиг.27.
Кроме того, когда определено на этапе S281, что IDs ракурса текущей области и опорное изображение текущей области не идентичны, то процессор 153 L1 предсказания или процессор 154 L0 предсказания переходит к процессу этапа S286.
На этапе S286, процессор 153 предсказания 153 или процессор 154 L0 предсказания определяет, являются ли POCs текущей области и опорное изображение текущей области идентичными. Когда определено, что POCs текущей области и опорное изображение текущей области не являются идентичными, то процессор 153 предсказания или процессор 154 L0 предсказания завершает выполнение операций процесса схемы-4- 2 и процесс возвращается на блок-схему алгоритма на фиг.25 или фиг.26.
Более того, когда определено на этапе S286, что POCs текущей области и опорное изображение текущей области идентичны, то процессор 153 предсказания или процессор 154 L0 предсказания переходит к процессу этапа S287. Когда оба идентичны, то вектор кодирования является вектором параллакса.
На этапе S287, процессор 153 предсказания или процессор 154 L0 предсказания определяет, являются ли POCs области корреляции и опорное изображение области корреляции одинаковы. Когда оба не являются идентичными, то совмещенный вектор является вектором движения. Когда определено, что POCs области корреляции и опорное изображение области корреляции не являются идентичными, то процессор 153 предсказания или процессор 154 L0 предсказания завершает процесс схемы-4-2 и последовательность выполнения операций процесса возвращается на блок-схему алгоритма на фиг.25 или фиг.26.
То есть, в данном случае, так как вектор кодирования является вектором параллакса и совмещенный вектор является вектором движения, то свойство вектора кодирования не совпадает со свойством совмещенного вектора. Таким образом, совмещенный блок устанавливается как отсутствующий и процесс схем-4-2 заканчивается.
Более того, когда определено на этапе S287, что POCs области корреляции и опорное изображение области корреляции одинаковы, то процессор 153 L1 предсказания или процессор 154 L0 предсказания возвращается к процессу этапа S283. Когда оба идентичны, то совмещенный вектор является вектором параллакса. То есть, в данном случае, вектор кодирования и совмещенный вектор являются вектором параллакса и свойства обоих векторов одинаковы. Таким образом, в этом случае совмещенный вектор установлен как доступный.
В этом случае, процессор 156 схемы-2 выполняет процессы этапов с S283 по S285 аналогично процессору 158 схеме-4. Когда процесс на этапе S285 заканчивается, то процессор 156 схемы-2 завершает процесс схем-4-2 и процесс возвращается на блок-схему алгоритма на фиг.25 или фиг.26.
Выполняя соответствующие процессы таким образом, блок 136 генерирования вектора предсказания временной корреляции параллакса может генерировать вектор предсказания корреляции параллакса, а также вектор предсказания движения корреляции. Таким образом, блок 115 предсказания/компенсации параллакса движения может генерировать вектор предсказания с высокой точностью предсказания, даже когда вектор текущей области является вектором параллакса. В связи с этим, устройство 100 кодирования изображения может не допустить уменьшения эффективности кодирования.
2. Второй вариант осуществления
Устройство декодирования изображения
Фиг.31 представляет собой блок-схему, иллюстрирующую основную пример конфигурации устройства декодирования изображения, которое представляет собой устройство обработки изображения. Устройство 300 декодирования изображения, как показано на фиг.31, является устройством, которое соответствует устройству 100 кодирования изображения, показанному на фиг.11. То есть, устройство 300 декодирования изображения декодирует кодированные данные (битовый поток), который генерируется посредством кодирования многоракурсного изображения устройством 100 кодирования изображения в соответствии со способом декодирования, соответствующего способу кодирования устройством 100 кодирования изображений для получения декодированного многоракурсного изображения.
Как показано на фиг.31, устройство 300 декодирования изображения включает в себя буфер 301 накопления, блок 302 декодирования без потерь, блок 303 обратного квантования, блок 304 обратного ортогонального преобразования, арифметическое устройство 305, контурный фильтр 306, буфер 307 реконфигурации экрана и D/A конвертер 308. Более того, устройство 300 декодирования изображения включает в себя буфер 309 декодированного изображения, селектор 310, блок 311 внутрикадрового предсказания, блок 312 компенсации параллакса движения и селектор 313.
Дополнительно, устройство 300 декодирования изображения включает в себя буфер 321 декодированного многоракурсного изображения.
Буфер 301 накопления накапливает кодированные данные, переданные в буфер, и направляет кодированные данные в блок 302 декодирования без потерь в заданный момент времени. Блок 302 декодирования без потерь декодирует информацию, закодированную с помощью блока 106 кодирования без потерь, показанного на фиг.11, которая подается из буфера 301 накопления в соответствии со схемой, соответствующей схеме кодирования блоком 106 кодирования без потерь. Блок 302 декодирования без потерь поставляет данные квантованного коэффициента разностного изображения, полученного путем декодирования блоком 303 обратного квантования
Кроме того, блок 302 декодирования без потерь ссылается на информацию об оптимальном режиме предсказания, полученной декодированием кодированных данных для определения выбора либо режима внутрикадрового предсказания, либо режима межкадрового предсказания в качестве режима оптимального предсказания. Блок 302 декодирования без потерь поставляет информацию о режиме оптимального предсказания в блок 311 внутрикадрового предсказания или в блок 312 компенсации параллакса движения на основании результата определения. То есть, например, когда устройство 100 кодирования изображения осуществляет выбор режима внутрикадрового предсказания в качестве оптимального режима предсказания, информация внутрикадрового предсказания, которая является информацией об оптимальном режиме предсказания или т.п., поставляется в блок 311 внутреннего предсказания. Кроме того, например, когда устройство 100 кодирования изображения осуществляет выбор режима межкадрового предсказания в качестве оптимального режима предсказания, информация межкадрового предсказания, которая является информацией об оптимальном режиме предсказания или т.п., поставляется в блок 312 компенсации параллакса движения.
Блок 303 обратного квантования выполняет обратное квантование данных коэффициента квантования, которые получаются декодированием блоком 302 декодирования без потерь в соответствии со схемой, соответствующей схеме квантования блоком 105 квантования, показанного на фиг.11, и поставляет полученные данные коэффициента в блок 304 обратного ортогонального преобразования. Блок 304 обратного ортогонального преобразования выполняет процесс обратного ортогонального преобразования данных коэффициента, поставленных из блока 303 обратного квантования, в соответствии со схемой, соответствующей схеме ортогонального преобразования блоком 104 ортогонального преобразования, как показано на фиг.11. Блок 304 обратного ортогонального преобразования получает разностное изображение, соответствующее разностному изображению до осуществления ортогонального преобразования изображения устройством 100 кодирования изображения в результате выполнения процесса обратного ортогонального преобразования.
Разностное изображение, полученное посредством обратного ортогонального преобразования, подается в арифметическое устройство 305. Кроме того, предсказанное изображение из блока 311 внутрикадрового предсказания или из блока 312 компенсации параллакса движения подается в арифметическое устройство 305 через селектор 313.
Арифметическое устройство 305 добавляет разностное изображение к предсказанному изображению для получения восстановленного изображения, соответствующее изображению до вычитания предсказанного изображения арифметическим устройством 103 устройства 100 кодирования изображения. Арифметическое устройство 305 направляет восстановленное изображение в контурный фильтр 306.
Контурный фильтр 306 выполняет процесс фильтрации, включающий в себя процесс фильтрации устранения артефактов блочности, адаптивный фильтр давления контура и тому подобное по отношению к поставленному восстановленному изображению для генерации декодированного изображения. Например, контурный фильтр 306 удаляет артефакты блочности выполнением посредством реализации процесса фильтрации артефактов блочности на восстановленном изображении. Кроме того, например, контурный фильтр 306 улучшает качество изображения выполнением процесса фильтрации с использованием фильтра Винера (восстановленное изображение, в котором удалены артефакты блочности).
Процесс фильтрации, выполняемый контурным фильтром 306 является дополнительным, и может быть реализован процесс фильтрации, кроме описанного выше. Кроме того, контурный фильтр 306 может выполнять процесс фильтрации с использованием коэффициентов фильтрации, поставленных из устройства 100 кодирования изображений, как показано на фиг.11.
Контурный фильтр 306 поставляет декодированное изображение, которое является результатом процесса фильтрации, в буфер 307 реконфигурации экрана и буфер 309 декодированного изображения. Процесс фильтрации контурного фильтра 306 может быть опущен. То есть, выходной сигнал арифметического устройства 305 может быть сохранен в буфере 309 декодированного изображения, не подвергаясь процессу фильтрации. Например, блок 311 внутрикадрового предсказания использует значения пикселей, включенных в состав данного изображения в качестве значений пикселей, смежных пикселей.
Буфер 307 реконфигурации экрана осуществляет реконфигурацию поставленного декодированного изображения. То есть, реконфигурированная последовательность кадров порядка кодирования буфером 102 реконфигурации экрана, согласно фиг.11, реконфигурируется в оригинальной последовательности отображения. D/A конвертер 308 выполняет D/A преобразование декодированного изображения, поставленного из буфера 307 реконфигурации экрана, вырабатывает преобразованное изображение в дисплей (не показан) и отображает изображение.
Буфер 309 декодированного изображения хранит поставленное восстановленное изображение (и ID ракурса и РОС изображения) и декодированное изображение (и ID ракурса и РОС изображения). Кроме того, буфер 309 декодированного изображения поставляет хранимое восстановленное изображение (и ID ракурса и РОС изображения) или декодированное изображение (и ID ракурса и РОС изображения) в блок 311 внутрикадрового предсказания и в блок 312 компенсации параллакса движения через селектор 310 в заданный момент времени или на основании запроса внешнего блока, такого как блока 311 внутрикадрового предсказания или блока 312 компенсации параллакса движения.
Блок 311 внутрикадрового предсказания выполняет в основном тот же процесс, как блок 114 внутрикадрового предсказания, как показано на фиг.11. Однако, блок 311 внутрикадрового предсказания выполняет внутрикадровое предсказание только по отношению к области, в которой предсказанное изображение формируется внутрикадровым предсказанием при кодировании.
Блок 312 компенсации параллакса движения осуществляет компенсацию параллакса движения на основании информации межкадрового предсказания, поставленной из блока 302 декодирования без потерь для генерации предсказанного изображения. Блок 312 компенсации параллакса движения выполняет компенсацию параллакса движения по отношению к области, в которой выполняется межкадровое предсказание при кодировании только на основании информации межкадрового предсказания, поставленной из блока 302 декодирования без потерь.
Блок 312 компенсации параллакса движения поставляет сгенерированное предсказанное изображение в арифметическое устройство 305 через селектор 313 для каждой области блоков предсказания.
Селектор 313 поставляет предсказанное изображение из блока 311 внутрикадрового предсказания или предсказанное изображение, поставленное из блока 312 компенсации параллакса движения, в арифметическое устройство 305.
Хотя буфер 309 декодированного изображения хранит только изображение целевого ракурса обработки (и ID ракурса и РОС изображения), буфер 321 декодированного многоракурсного изображения хранит изображения соответствующих точек просмотра (ракурсов) (и IDs ракурса и POCs изображений). То есть, буфер 321 декодированного многоракурсного изображения получает декодированное изображение (и ID ракурса и РОС изображения), поставленное в буфер 309 декодированного изображения, и сохраняет декодированное изображение (и ID ракурса и РОС изображения) вместе с буфером 309 декодированного изображения.
Хотя буфер 309 декодированного изображения стирает декодированное изображение при изменении целевого ракурса обработки, но буфер 321 декодированного многоракурсного изображения хранит декодированное изображение, как оно есть. Кроме того, буфер 321 декодированного многоракурсного изображения поставляет хранимое декодированное изображение (и ID ракурса и РОС изображения) в буфер 309 декодированного изображения как "декодированное изображение необрабатываемого целевого ракурса" в соответствии с запросом буфера 309 декодированного изображения или тому подобное. Буфер 309 декодированного изображения поставляет "декодированное изображение необрабатываемого целевого ракурса (и ID ракурса и РОС изображения)", считанного из буфера 321 декодированного многоракурсного изображения, в блок 312 компенсации параллакса движения через селектор 310. Блок компенсации параллакса движения
Фиг.32 является блок-схемой, иллюстрирующей пример основной конфигурации блока 312 компенсации параллакса движения.
Как показано на фиг.32, в блок 312 компенсации параллакса движения включает в себя буфер 331 накопления кодированной информации, блок 332 генерирования вектора предсказания пространственной корреляции, блок 333 генерирования вектора предсказания временной корреляции параллакса, селектор 334, арифметическое устройство 335 и блок 336 генерирования предсказанного изображения.
Буфер 331 накопления кодированной информации получает информацию о режиме, разностную информацию о параллаксе движения и информацию предсказания, полученную в блоке 302 декодирования без потерь. Более того, буфер 331 накопления кодированной информации хранит декодированный вектор параллакса движения, используемый в блоке 336 генерирования предсказанного изображения. Вектор параллакса движения используется в качестве вектора параллакса движения смежной области в процессе для другой области.
Буфер 331 накопления кодированной информации поставляет информацию о режиме или декодированный вектор параллакса движения смежной области в блок 332 генерирования вектора предсказания пространственной корреляции или в блок 333 генерирования вектора предсказания временной корреляции параллакса, в соответствии с типом (вектор предсказания пространственной корреляции или вектор предсказания временной корреляции параллакса) вектора предсказания, указанным в информации предсказания.
Кроме того, буфер 331 накопления кодированной информации поставляет разностный вектор параллакса движения, включенный в состав разностной информации параллакса движения, в арифметическое устройство 335. Более того, буфер 331 накопления кодированной информации поставляет индекс опорного изображения, включенный в состав информации предсказания, блок 336 генерирования предсказанного изображения.
Блок 332 генерирования вектора предсказания пространственной корреляции генерирует вектор предсказания пространственной корреляции на основании информации, поставленной из буфера 331 накопления кодированной информации. Способ генерации тот же, что используется блоком 135 генерирования вектора предсказания пространственной корреляции. Однако, так как оптимальный режим межкадрового предсказания определяется заранее, то блок 332 генерирования вектора предсказания пространственной корреляции может генерировать вектор предсказания пространственной корреляции только в этом режиме. Блок 332 генерирования вектора предсказания пространственной корреляции поставляет сгенерированный вектор предсказания пространственной корреляции в арифметическое устройство 335 через селектор 334.
Блок 333 генерирования вектора предсказания временной корреляции параллакса генерирует вектор предсказания временной корреляции параллакса на основании информации, например информации, подаваемой из буфера 331 накопления кодированной информации, информации, такой как ID ракурса и РСО текущей области, подаваемой из блока 302 декодирования без потерь, и информации, такой как ID ракурса и РСО опорного изображения, переданной из буфера 309 декодированного изображения. Способ генерации тот же, который использовался блоком 136 генерирования вектора предсказания временной корреляции параллакса. Однако, так как оптимальный режим межкадрового предсказания определяется заранее, то блок 333 генерирования вектора предсказания временной корреляции параллакса может генерировать вектор предсказания временной корреляции параллакса только в этом режиме. Блок 333 генерирования вектора предсказания временной корреляции параллакса поставляет сгенерированный вектор предсказания временной корреляции параллакса в арифметическое устройство 335 через селектор 334.
Когда вектор предсказания пространственной корреляции подается из блока 332 генерирования вектора предсказания пространственной корреляции, то селектор 334 поставляет вектор в арифметическое устройство 335. Более того, вектор предсказания временной корреляции параллакса поставляется из блока 333 генерирования вектора предсказания временной корреляции параллакса, селектор 334 поставляет вектор в арифметическое устройство 335.
Арифметическое устройство 335 добавляет разностный вектор параллакса движения, поставленный из буфера 331 накопления кодированной информации, к вектору предсказания пространственной корреляции или вектору предсказания временной корреляции параллакса, поставленный из селектора 334, для восстановления вектора параллакса движения текущей области. Арифметическое устройство 335 поставляет восстановленный вектор параллакса движения текущей области в блок 336 генерирования предсказанного изображения.
Блок 336 генерирования предсказанного изображения генерирует предсказанное изображение, используя восстановленный вектор параллакса движения текущей области, поставленный из арифметического устройства 335, индекс опорного изображения, поставленный из буфера 331 накопления кодированной информации, значения пикселя смежных изображений, которые являются изображениями смежной области, поставленные из буфера 309 декодированного изображения. Блок 336 генерирования предсказанного изображения поставляет сгенерированное значение пикселя предсказанного изображения в селектор 313.
Поступая таким образом, блок 333 генерирования вектора предсказания временной корреляции параллакса может генерировать вектор предсказания корреляции параллакса, а также вектор предсказания корреляции движения по аналогии с блоком 136 генерирования вектора предсказания временной корреляции параллакса. Таким образом, блок 312 компенсации параллакса движения может восстановить вектор предсказания корреляции параллакса, даже когда вектор текущей области является вектором параллакса. То есть, устройство 300 декодирования изображения может улучшить эффективность кодирования, поскольку устройство 300 декодирования изображения может правильно декодировать кодированные данные, генерируемые устройством 100 кодирования изображения.
Последовательность выполнения операций процесса декодирования
Далее будет описана последовательность выполнения операций соответствующих процессов, выполняемых устройством 300 декодирования изображения, имеющее такую конфигурацию. Во-первых, пример последовательности выполнения операций процесса декодирования будет описан со ссылкой на блок-схему алгоритма, показанную на фиг.33.
Когда начинается процесс декодирования на этапе S301, буфер 301 накопления накапливает переданный битовый поток. На этапе S302, блок 302 декодирования без потерь декодирует битовый поток кодированной информации (кодированная информация разностного изображения), поставленного из буфера 301 накопления. В этом случае, различные типы информации, кроме информации разностного изображения, включенные в состав битового потока, такая как, информация внутрикадрового предсказания или информация межкадрового предсказания, также декодируется.
На этапе S303 блок 303 обратного квантования выполняет обратное квантование квантованный коэффициентов ортогонального преобразования, полученных в результате выполнения процесса на этапе S302. На этапе S304, блок 304 обратного ортогонального преобразования выполняет обратное ортогональное преобразование коэффициентов ортогонального преобразования, которые были подвергнуты процессу обратного квантования на этапе S303.
На этапе S305, блок 311 внутрикадрового предсказания или блок 312 компенсации параллакса движения выполняет процесс предсказания с использованием предоставленной информации. На этапе S306, арифметическое устройство 305 добавляет предсказанное изображение, генерируемое на этапе S305, к информации разностного изображения, полученного посредством обратного ортогонального преобразования на этапе S304. Таким образом, генерируется восстановленное изображение.
На этапе S307, контурный фильтр 306 соответствующим образом выполняет процесс фильтрации, включающий в себя процесс фильтрации устранения артефактов блочности, адаптивный процесс фильтрации и т.п.в отношении восстановленного изображения, полученного на этапе S306.
На этапе S308, буфер 307 реконфигурации экрана реконфигурирует декодированное изображение, генерированное при выполнении процесса фильтрации на этапе S307. То есть, последовательность кадров для кодирования буфером 307 реконфигурации экрана устройства 100 кодирования изображения, реконфигурируется в исходной порядок отображения.
На этапе S309, D/A конвертер 308 выполняет D/A преобразование декодированного изображения, в котором последовательность кадров реконфигурирована. Декодированное изображение выводится на дисплей (не показан) и отображается.
На этапе S310, буфер 309 декодированного изображения сохраняет декодированное изображение, полученное посредством выполнения процесса фильтрации на этапе S307. Это декодированное изображение используется в качестве опорного изображения в процессе межкадрового предсказания.
Когда процесс на этапе S310 заканчивается, то процесс декодирования завершается.
Последовательность выполнения операций процесса предсказания
Далее будет описан пример последовательности выполнения операций процесса предсказания, выполняемого на этапе S305, как показано на фиг.33, со ссылкой на блок-схему алгоритма, показанную на фиг.34.
Когда начинается процесс предсказания на этапе S331, блок 302 декодирования без потерь определяет, является ли текущая область целью обработки для выполнения внутрикадрового предсказания при кодировании. Когда определено, что текущая область была подвергнута обработке внутрикадрового предсказания, то блок 302 декодирования без потерь переходит к выполнению процесса этапа S332.
В этом случае, блок 311 внутрикадрового предсказания получает информацию о режиме внутрикадрового предсказания из блока 302 декодирования без потерь на этапе S332 и генерирует предсказанное изображение внутрикадровым предсказанием на этапе S333. Когда предсказанное изображение сгенерировано, то блок 311 внутрикадрового предсказания завершает процесс предсказания и последовательность операций возвращается к блок-схеме алгоритма на фиг.33.
Кроме того, когда определено на этапе S331, что текущая область является областью, подвергнутая межкадровому предсказанию, то блок 302 декодирования без потерь переходит к выполнению процесса этапа S334. На этапе S334, блок 312 компенсации параллакса движения выполняет процесс компенсации параллакса движения. По окончании выполнения процесса компенсации параллакса движения, блок 312 компенсации параллакса движения завершает процесс предсказания и процесс возвращается в блок-схему алгоритма на фиг.33.
Последовательность выполнения операций процесса компенсации параллакса движения
Далее будет описан пример последовательности выполнения операций процесса компенсации параллакса движения, выполняемого на этапе S334, как показано на фиг.34, со ссылкой на блок-схему алгоритма, показанную на фиг.35.
При начале выполнения операций процесса компенсации параллакса движения на этапе S351, буфер 331 накопления кодированной информации хранит информацию о режиме, информацию параллакса движения и информацию предсказания, декодированную на этапе S351.
На этапе S352 блок 332 генерирования вектора предсказания пространственной корреляции, блок 333 генерирования вектора предсказания временной корреляции параллакса, селектор 334 и арифметическое устройство 335 осуществляют процесс генерирования вектора параллакса движения для восстановления вектора параллакса движения текущей области.
Когда вектор параллакса движения восстановлен на этапе S353, то блок 336 генерирования предсказанного изображения генерирует предсказанное изображение, используя вектор параллакса движения.
Когда предсказанное изображение генерировано, то блок 336 генерирования предсказанного изображения заканчивает выполнение процесса компенсации параллакса движения и последовательность операций возвращается к блок-схеме алгоритма на фиг.34.
Последовательность выполнения операций процесса генерирования вектора параллакса движения
Далее будет описан пример последовательности выполнения операций процесса генерирования вектора параллакса движения, выполняемого на этапе S352, как показано на фиг.35, со ссылкой на блок-схему алгоритма, показанную на фиг.36.
При начале выполнения процесса генерирования вектора параллакса движения на этапе S371, буфер 331 накопления кодированной информации определяет факт необходимости поставки информации предсказания в данном режиме. Когда определено, что этот режим является режимом пропуска, то буфер 331 накопления кодированной информации переходит к процессу этапа S372. На этапе S372, блок 332 генерирования вектора предсказания пространственной корреляции до арифметического устройства 335 выполняет процесс режима объединения для восстановления вектора параллакса движения в режиме объединения. В процессе режима объединения, осуществляются те же самые процессы, что и процессы, описанные со ссылкой на блок-схему алгоритма, показанную на фиг.22. Когда заканчивается процесс режима объединения, то арифметическое устройство 335 завершает процесс генерации вектора параллакса движения и процесс возвращается к блок-схеме алгоритма на фиг.35.
Кроме того, когда определено на этапе S371, как показано на фиг.36, что режим следует выполнить, то буфер 331 накопления кодированной информации переходит к процессу этапа S373. На этапе S373 буфер 331 накопления кодированной информации определяет из информации предсказания, является ли этот режим режимом объединения. Когда определено, что этот режим является режимом объединения, то буфер 331 накопления кодированной информации возвращается к процессу этапа S372 для выполнения процесса режима объединения.
Более того, когда это определено на этапе S373, что этот режим не является режимом объединения, то буфер 331 накопления кодированной информации переходит к процессу этапа S374.
На этапе S374, буфер 331 накопления кодированной информации получает индекс опорного изображения. На этапе S375 буфер 331 накопления кодированной информации получает вектор параллакса разностного движения.
На этапе S376, блок 332 генерирования вектора предсказания пространственной корреляции или блок 333 генерирования вектора предсказания временной корреляции параллакса выполняет процесс предсказания вектора параллакса движения. Этот процесс предсказания вектора параллакса движения выполняется таким же образом, как описано со ссылкой на блок-схему алгоритма на фиг.23. Тем не менее, в этом случае, так как способ предсказания определяется заранее, то выполняется любой один (обозначается с помощью информации предсказания) процесс предсказания пространственной корреляции и процесс предсказания параллакса временной корреляции.
На этапе S377 арифметическое устройство 335 добавляет вектор предсказания, восстановленный на этапе S376, к вектору параллакса разностного движения для восстановления вектора параллакса движения.
Когда процесс на этапе S377 заканчивается, то арифметическое устройство 335 завершает процесс генерации вектора параллакса движения и последовательность выполнения операций возвращается в блок-схему алгоритма, показанную на фиг.35.
При выполнении соответствующих описанных ранее процессов, блок 333 генерирования вектора предсказания временной корреляции параллакса может генерировать вектор предсказания корреляции параллакса, а также вектор предсказания корреляции движения по аналогии с блоком 136 генерирования вектора предсказания временной корреляции параллакса. Таким образом, блок 312 компенсации параллакса движения можно восстановить вектор предсказания корреляции параллакса, даже когда вектор текущей области является вектором параллакса. То есть, устройство 300 декодирования изображения может улучшить эффективность кодирования, поскольку устройство 300 декодированного изображения может правильно декодировать кодированные данные, генерируемые устройством 100 кодирования изображения.
3. Третий вариант осуществления
Ракурс
В случае наличия многоракурсного изображения, позиции изображений смещены между ракурсами, что приводит к появлению параллакса. Таким образом, когда выбран блок в направлении просмотра, даже если выбран блок на той же позиции (относительно него), то точность предсказания предсказанного изображения может уменьшиться, и существует вероятность того, что будет невозможным создать соответствующий вектор предсказания.
Таким образом, когда блок в направлении просмотра выбран для того, чтобы генерировать вектор предсказания, то выбирается блок на смещенной позиции. То есть, вектор предсказания генерируется с использованием вектора такой области, которая находится в той же позиции, что и текущая область в состоянии, где позиция изображения того же момента времени, что и текущая область, сдвигается.
Величина смещения вычисляется в заданном порядке из вектора параллакса смежного блока. С использованием того же порядка в обоих устройствах, как в устройстве кодирования, так и в устройстве декодирования, то же самое предсказание может быть выполнено как на стороне кодирования, так и на стороне декодирования.
Смежный блок для вычисления величины смещения может быть явно назначен и данная информация может быть передана со стороны кодирования на сторону декодирования. Кроме того, информация о способе вычисления величины смещения может быть передана со стороны кодирования на сторону декодирования.
Таким образом, устройство кодирования изображения и устройство декодирования изображения могут генерировать вектор предсказания из выровненных блоков между ракурсами. Таким образом, можно повысить точность предсказания предсказанного изображения и улучшить эффективность кодирования.
Это будет описано подробно ниже.
Устройство кодирования изображения
Фиг.37 показывает блок-схему, иллюстрирующую другой пример конфигурации устройства кодирования изображения, к которому применяется настоящая технология.
Устройство 400 кодирования изображения, показанное на фиг.37, в основном является тем же устройством, что и устройство 100 кодирования изображения, описанное ранее. Однако, устройство 400 кодирования изображения генерирует вектор предсказания из выровненных блоков между ракурсами.
Как показано на фиг.37, устройство 400 кодирования изображения включает в себя блок 415 компенсации/предсказания движения и кодер 421 основного ракурса.
Блок 415 компенсации/предсказания движения генерирует вектор предсказания, который ссылается на блоки в направлении просмотра с использованием декодированного изображения, полученного из буфера 112 декодированного изображения, и информацию движения основного ракурса, полученной из кодера 421 основного ракурса.
Кодер 421 основного ракурса кодирует основной ракурс. Кодер 421 основного ракурса поставляет декодированное изображение основного ракурса в буфер 112 декодированного изображения, который хранит декодированное изображение. Буфер 112 декодированного изображения также сохраняет декодированное изображение дополнительного ракурса, поставленного из контурного фильтра 111.
Кодер 421 основного ракурса предоставляет информацию о движении основного ракурса в блок 415 компенсации/пред сказания движения.
Блок компенсации/предсказания движения
Фиг.38 представляет собой блок-схему, иллюстрирующую основной пример конфигурации блока 415 компенсации/предсказания движения, показанного на фиг.37.
Как показано на фиг.38, блок 415 компенсации/предсказания движения включает в себя блок 431 межрежимного генерирования, блок 432 определения опорного индекса, блок 433 предсказания вектора, блок 434 предсказания вектора и блок 435 определения режима. Как показано на фиг.38, осуществляется обмен информацией между соответствующими блоками обработки.
В случае режима межкадрового предсказания, блок 433 предсказания вектора генерирует предсказанное изображение. В случае режима пропуска, режима объединения или т.п., блок 434 предсказания вектора генерирует вектор предсказания для генерации предсказанного изображения. Вектор предсказания и предсказанное изображение, сгенерированные в этих блоках предсказания вектора, поставляются в блок 435 определения режима.
Блок 435 определения режима определяет режим на основании этих элементов информации и поставляет информацию о режиме, указывающую на выбранный режим и вектор предсказания режима, в блок 106 кодирования без потерь. Кроме того, предсказанное изображение выбранного режима поставляется в селектор 116 предсказанного изображения.
Блок предсказания вектора
Фиг.39 представляет собой блок-схему, иллюстрирующую пример основной конфигурации блока 433 предсказания вектора.
Как показано на фиг.39, блок 433 предсказания вектора включает в себя блок 451 поиска вектора движения/параллакса, блок 452 генерирования предсказанного изображения, блок 453 вычисления стоимости вектора, блок 454 определения вектора, буфер 455 накопления информации вектора, блок 456 генерирования поблочно-смежного вектора предсказания, блок 457 генерирования вектора предсказания на основании разностного изображения и селектор 458. Обмен информацией, как показано на фиг.39, осуществляется между соответствующими блоками обработки.
Блок 457 генерирования вектора предсказания на основании разностного изображения генерирует вектор предсказания, который ссылается на различные изображения. То есть, блок 457 генерирования вектора предсказания на основании разностного изображения ссылается на различные изображения во временном направлении и в направлении просмотра для генерации вектора предсказания. При генерировании вектора предсказания, который ссылается на различные изображения в направлении просмотра, блок 457 генерирования вектора предсказания на основании разностного изображения получает информацию о движении основного ракурса из кодера 421 основного ракурса и генерирует вектор предсказания с использованием информации о движении.
Вектор предсказания, сгенерированный блоком 457 генерирования вектора предсказания на основании разностного изображения, поставляется в блок 453 вычисления стоимости вектора через селектор 458 и рассчитывается значение функции стоимости, которая используется для определения режима.
Блок генерирования вектора предсказания на основании разных кадров
Фиг.40 представляет собой блок-схему, иллюстрирующую пример основной конфигурации блока 457 генерирования вектора предсказания на основании разных кадров.
Как показано на фиг.40, блок 457 генерирования вектора предсказания на основании разных кадров включает в себя блок 471 определения вектора параллакса, блок 472 генерирования межракурсного опорного вектора и блок 473 генерирования внутриракурсного опорного вектора.
Блок 471 определения вектора параллакса вычисляет величину смещения опорного изображения из вектора параллакса смежного блока. Способ расчета величины смещения является необязательным. Например, может быть выбран любой один из векторов параллакса смежных блоков и может быть использован в качестве величины смещения. Кроме того, например, среднее значение или усредненное значение векторов параллакса смежных блоков могут быть использованы в качестве величины смещения.
Блок 471 определения вектора параллакса поставляет величину смещения, полученную таким образом, в блок 472 генерирования межракурсного опорного вектора как вектор параллакса.
Блок 472 генерирования межракурсного опорного вектора генерирует вектор предсказания, который ссылается на различные изображения в направлении просмотра.
Блок 472 генерирования межракурсного опорного вектора генерирует вектор предсказания, посредством учета вектора параллакса, используя вектор параллакса (величину смещения), выбранный блоком 471 определения вектора параллакса, вектор движения (в том числе и вектор параллакса в случае наличия дополнительного ракурса) основного ракурса, поставленного из кодера 421 основного ракурса, и информацию, такую, как индекс опорного изображения или вектор межракурсного параллакса/движения того же времени, что считывается из буфера 455 накопления информации вектора.
То есть, блок 472 генерирования межракурсного опорного вектора выравнивает (смещает) изображения с использованием величины смещения, рассчитанной блоком 471 определения вектора параллакса. Более того, блок 472 генерирования межракурсного опорного вектора генерирует вектор предсказания из выровненных блоков.
Блок 472 генерирования межракурсного опорного вектора поставляет сгенерированный вектор предсказания в блок 453 вычисления стоимости вектора через селектор 458 (не показано на фиг.40).
Блок 473 генерирования внутриракурсного опорного вектора генерирует вектор предсказания, который ссылается на различные кадры во временном направлении.
При выполнении процесса, блок 472 генерирования межракурсного опорного вектора может создать соответствующий вектор предсказания с высокой точностью предсказания. Таким образом, устройство 400 кодирования изображения может улучшить эффективность кодирования.
Последовательность выполнения операций процесса компенсации/предсказания движения
Пример последовательности выполнения операций процесса компенсации/предсказания движения будет описан со ссылкой на блок-схему алгоритма, как показано на фиг.41.
Когда начинается выполнение операций процесса компенсации/предсказания движения на этапе S401, блок 431 межрежимного генерирования выбирает либо режим межкадрового предсказания, либо режим пропуска, либо режим объединения и т.п. и генерирует межкадровый режим, который представляет собой информацию, обозначающую выбранный режим.
На этапе S402 блок 431 межрежимного генерирования определяет, является ли сгенерированный межкадровый режим режимом межкадрового предсказания.
Когда межкадровый режим является режимом межкадрового предсказания, то блок 431 межрежимного генерирования определяет опорное изображение на этапе S403 и блок 433 предсказания вектора выполняет процесс предсказания вектора на этапе S404.
Кроме того, когда межкадровый режим не является режимом межкадрового предсказания на этапе S404, то блок 434 предсказания вектора выполняет процесс предсказания вектора.
На этапе S405 блок 435 определения режима определяет режим на основании вектора предсказания или тому подобное, сгенерированного на этапе S404. Этот режим используется в процессе на этапе S401.
На этапе S405 блок 106 кодирования без потерь кодирует информацию о режиме, определенную на этапе S405.
Последовательность выполнения операций процесса предсказания вектора
Пример последовательности выполнения операций процесса предсказания вектора, выполняемого блоком 433 предсказания вектора на этапе S404, как показано на фиг.41, будет описан со ссылкой на блок-схему алгоритма, показанную на фиг.42.
Когда начинается процесс предсказания вектора, блок 451 поиска вектора движения/параллакса осуществляет поиск векторов на этапе S421.
На этапе S422 блок 452 генерирования предсказанного изображения генерирует предсказанное изображение.
На этапе S423 блок 453 вычисления стоимости вектора генерирует послеизображение.
На этапе S424 блок 456 генерирования поблочно-смежного вектора предсказания и блок 457 генерирования вектора предсказания на основании разностного изображения генерирует вектор предсказания из кодированного вектора.
На этапе S425 блок 453 вычисления стоимости вектора вычисляет остаток вектора.
На этапе S426 блок 454 определения вектора определяет вектор предсказания, имеющий наименьшую стоимость. Этот результат обработки отражается на процессе на этапе S424.
На этапе S427 буфер 455 накопления информации вектора аккумулирует информацию о векторе и последовательность выполнения операций процесса возвращается в блок-схему алгоритма, как показано на фиг.41.
Последовательность выполнения операций процесса генерации вектора предсказания
Далее будет описан пример последовательности выполнения операций процесса генерации вектора предсказания, выполняемого на этапе S424, как показано на фиг.42, со ссылкой на блок-схему алгоритма, показанного на фиг.43.
Когда начинается процесс генерирования вектора предсказания на этапе S441, селектор 458 определяет на какой блок необходимо ссылаться.
Когда определено, что ссылаться необходимо на смежный блок изображения на этапе S442, то блок 456 генерирования поблочно-смежного вектора предсказания устанавливает кодированный вектор смежного блока как вектор предсказания и последовательность выполнения операций процесса возвращается в блок-схему алгоритма, как показано на фиг.42.
Более того, когда это определено на этапе S441, что ссылаться необходимо на блок иного изображения, то селектор 458 переходит к процессу этапа S443 для определения ракурса, которого изображения осуществляется ссылка.
Когда определено, что осуществляется ссылка на изображение другого ракурса на этапе S444, то блок 457 генерирования вектора предсказания на основании разностного изображения генерирует вектор предсказания направления просмотра из закодированного совмещенного блока, который раскрывается в направлении просмотра и последовательность операций возвращается к блок-схеме алгоритма, показанной на фиг.42.
Кроме того, когда определено на этапе S443, что необходимо ссылаться на изображение того же ракурса на этапе S445, то блок 457 генерирования вектора предсказания на основании разностного изображения генерирует вектор предсказания временного направления из кодированного совмещенного блока и последовательность операций возвращается к блок-схеме алгоритма, показанной на фиг.42.
Последовательность выполнения операций процесса генерирования вектора предсказания на основании разностного изображения
Далее будет описан пример последовательности выполнения операций процесса генерирования вектора предсказания на основании разностного изображения, выполняемого на этапе S444, как показано на фиг.43, со ссылкой на блок-схему алгоритма, показанную на фиг.44.
Когда начитается выполнение процесса генерирования вектора предсказания на основании разностного изображения на этапе S461, блок 471 определения вектора параллакса определяет величину смещения вектора параллакса смежного блока.
На этапе S462, блок 472 генерирования межракурсного опорного вектора выбирает совмещенный блок на смещенной позиции.
На этапе S463 блок 472 генерирования межракурсного опорного вектора генерирует вектор предсказания из совмещенного блока и последовательность выполнения операций процесса возвращается в блок-схему алгоритма, показанную на фиг.43.
Последовательность выполнения операций процесса определения величины смещения
Далее будет описан пример последовательности выполнения операций процесса определения величины смещения, выполняемого на этапе S461, как показано на фиг.44, со ссылкой на блок-схему алгоритма, показанную на фиг.45.
На этапе S481, блок 471 определения вектора параллакса определяет факт того, что множество блоков, в которых величина вектора Y-направления вектора параллакса смежного блока не равна нулю.
Смежный блок представляет собой блок, расположенный около (в том числе "соседний") текущего блока (текущий блок) цели обработки. Например, как показано на фиг.46, блок (левый) рядом слева от текущего блока (Сurr), блок (выше) рядом выше текущего блока и блок (справа вверху) рядом в правом верхнем углу текущего блока, используются в качестве смежных блоков. Естественно, блок, кроме этих блоков, может быть включен в состав смежного блока, и часть или все эти блоки не могут быть использованы в качестве смежного блока.
Позиции смежных блоков могут быть одинаковыми для всех блоков и могут отличаться от блока к блоку. Например, когда блок примыкает к краю экрана или части границы, то они используются в качестве текущего блока, часть смежных блоков может быть установлена как не применимые.
Когда определено на этапе S481 отсутствие множества блоков, в которых значение вектора Y-направления не равно нулю, то блок 471 определения вектора параллакса переходит к процессу этапа S482, используя вектор параллакса в Х-направлении цели, как величина смещения, последовательность выполнения операций процесса возвращается на блок-схему алгоритма, показанную на фиг.44.
Более того, когда определено на этапе S481, что существует множество блоков, в которых значение вектора Y-направления не равно нулю, то блок 471 определения вектора параллакса переходит к процессу этапа S483 для установления среднего значения векторов параллакса в Х-направлении цели в качестве величины смещения, и процесс возвращается в блок-схему алгоритма, как показано на фиг.44.
При выполнении процессов как описано ранее, блок 415 компенсации/предсказания движения может создать соответствующий вектор предсказания с высокой точностью предсказания. Таким образом, устройство 400 кодирования изображения может улучшить эффективность кодирования.
4. Четвертый вариант осуществления
Устройство декодирования изображения
Фиг.47 показывает блок-схему, иллюстрирующую другой пример конфигурации устройства декодирования изображения, к которому применяется настоящая технология.
Устройство 500 декодирования изображения, как показано на фиг.47, в основном представляет собой то же устройство, что и описанное ранее устройство 300 декодирования изображения. Однако, устройство 500 декодирования изображения генерирует вектор предсказания из блоков, выровненных между ракурсами аналогично устройству 400 кодирования изображения.
Как показано на фиг.47, устройство 500 декодирования изображения включает в себя блок 512 компенсации движения и декодер 521 основного ракурса.
Блок 512 компенсации движения генерирует вектор предсказания, который ссылается на блоки в направлении просмотра с использованием декодированного изображения, полученного из буфера 309 декодированного изображения, и информации о движении основного ракурса, полученной из декодера 521 основного ракурса.
Декодер 521 основного ракурса кодирует основной ракурс. Декодер 521 основного ракурса поставляет декодированное изображение основного ракурса в буфер 309 декодированного изображения, который хранит декодированное изображение. Буфер 309 декодированного изображения также сохраняет декодированное изображение дополнительного ракурса, поставленного из контурного фильтра 306.
Декодер 521 основного ракурса поставляет информацию о движении основного ракурса в блок 512 компенсации движения.
Блок компенсации движения
Фиг.48 представляет собой блок-схему, иллюстрирующую пример основной конфигурации блока 512 компенсации движения, как показано на фиг 47.
Как показано на фиг.48, блок 512 компенсации движения включает в себя блок 531 определения режима, блок 532 определения опорного индекса, блок 533 декодирования вектора и блок 534 декодирования вектора. Как показано на фиг.48, осуществляется обмен информацией между соответствующими блоками обработки.
В случае режима межкадрового предсказания, блок 533 декодирования вектора декодирует остаточный вектор, переданный из устройства 400 кодирования изображения для генерирования вектора предсказания. Кроме того, блок 533 декодирования вектора генерирует предсказанное изображение с помощью вектора предсказания. Предсказанное изображение поставляется в селектор 313 предсказанного изображения.
В случае режима пропуска или в режиме объединения, блок 534 декодирования вектора декодирует 534 остаточный вектор, переданный из устройства 400 кодирования изображения для генерации вектора предсказания. Более того, блок 534 декодирования вектора генерирует предсказанное изображение с помощью вектора предсказания. Предсказанное изображение поставляется в селектор 313 предсказанного изображения.
Блок декодирования вектора
Фиг.49 представляет собой блок-схему, иллюстрирующую пример основной конфигурации блока 533 декодирования вектора.
Как показано на фиг.49, блок 533 декодирования вектора включает в себя селектор 551, блок 552 генерирования вектора предсказания на основании поблочной смежности, блок 553 генерирования вектора предсказания на основании другого изображения, селектор 554, арифметическое устройство 555, блок 556 генерирования предсказанного изображения и буфер 557 накопления информации вектора. Как показано на фиг.49, осуществляется обмен информацией между соответствующими блоками обработки.
Селектор 551 поставляет индекс вектора, поставленный из блока 302 декодирования без потерь, в блок 552 генерирования вектора предсказания на основании поблочной смежности (в случае режима пропуска, режим объединения и т.п.) или в блок 553 генерирования вектора предсказания на основании разностного изображения (в случае режима межкадрового предсказания) в соответствии с режимом межкадрового предсказания.
Блок 552 генерирования вектора предсказания на основании поблочной смежности, с поставленным индексом вектора, генерирует вектор предсказания из смежных блоков в текущем изображении, используя информацию вектора, полученную из буфера 557 накопления информации вектора.
Блок 553 генерирования вектора предсказания на основании разных кадров, с поставленным индексом вектора, генерирует вектор предсказания из различных кадров текущего ракурса, используя информацию вектора, полученную из буфера 557 накопления информации вектора. Более того, блок 553 генерирования вектора предсказания на основании разных кадров генерирует вектор предсказания из различных изображений разных ракурсов, используя информацию вектора, полученную из буфера 557 накопления информации вектора или информацию о движении основного ракурса, поставленную из декодера 521 основного ракурса.
Блок 553 генерирования вектора предсказания на основании разных кадров является таким же блоком обработки как блок 471 определения вектора параллакса блока 457 генерирования вектора предсказания на основании разных кадров и генерирует вектор предсказания в соответствии с тем же способом.
Селектор 554 поставляет вектор предсказания, сгенерированный блоком 552 генерирования вектора предсказания на основании поблочной смежности или блоком 553 генерирования вектора предсказания на основании разностного изображения в арифметическое устройство 555.
Арифметическое устройство 555 суммирует значение разности (остаточный вектор) вектора движения/параллакса, поставленного из блока 302 декодирования без потерь, с вектором предсказания для генерирования вектора движения/параллакса текущей области. Арифметическое устройство 555 поставляет вектор движения/параллакса в блок 556 генерирования предсказанного изображения. Кроме того, арифметическое устройство 555 поставляет вектор движения/параллакса в буфер 557 накопления информации вектора, который хранит вектор движения/параллакса.
Блок 556 генерирования предсказанного изображения генерирует предсказанное изображение, используя вектор движения/параллакса текущей области, поставленный из арифметического устройства 555, индекс опорного изображения, поставленный из блока 302 декодирования без потерь и декодированное значение пикселя изображения, переданное из буфера 309 декодированного изображения. Блок 556 генерирования предсказанного изображения поставляет сгенерированный предсказанное значение пикселя изображения в селектор 313 предсказанного изображения.
Блок генерирования вектора предсказания на основании разных кадров
Фиг.50 представляет собой блок-схему, иллюстрирующую пример основной конфигурации блока 553 генерирования вектора предсказания на основании разных кадров.
Как показано на фиг.50, блок 553 генерирования вектора предсказания на основании разных кадров включает в себя блок 571 определения вектора параллакса, блок 572 генерирования вектора опорного изображения межракурсного предсказания и блок573 генерирования вектора опорного изображения внутриракурсного предсказания.
Блок 571 определения вектора параллакса, блок 572 генерирования вектора опорного изображения межракурсного предсказания и блок 573 генерирования вектора опорного изображения внутриракурсного предсказания являются теми же блоками обработки и выполняют те же процессы, что и блок 471 определения вектора параллакса, блок 472 генерирования межракурсного опорного вектора, блок 473 генерирования опорного вектора внутрикадрового предсказания и блок 457 генерирования вектора предсказания на основании разных кадров, соответственно.
То есть, блок 571 определения вектора параллакса вычисляет величину смещения изображения ракурса опорного направления в соответствии с тем же способом, что и у блока 471 определения вектора параллакса, и смещает изображение.
Таким образом, блок 553 генерирования вектора предсказания на основании разных кадров может правильно декодировать остаточный вектор для создания такого же соответствующего вектора предсказания с высокой точностью предсказания, как и вектор предсказания, сгенерированный блоком 457 генерирования вектора предсказания на основании разных кадров. То есть, блок 553 декодирования вектора предсказания может генерировать то же предсказанное изображение, которое сгенерировано блоком 433 предсказания вектора. Таким образом, устройство 500 декодирования изображения может улучшить эффективность кодирования, поскольку устройство 500 декодирования изображения может правильно декодировать кодированные данные, генерируемые устройством 400 кодирования изображения.
Способ вычисления величины смещения, выполняемый блоком 571 определения вектора параллакса не ограничивается данным способом, при условии, что он идентичен способу, реализованному блоком 471 определения вектора параллакса, но этот способ является необязательным. Например, любой один из векторов параллакса из смежных блоков может быть выбран и выбранный вектор параллакса может быть использован в качестве величины смещения. Кроме того, например, среднее значение или усредненное значение векторов параллакса смежных блоков могут быть использованы в качестве величины смещения.
Последовательность операций процесса компенсации движения
Пример последовательности операций процесса компенсации движения будет описан со ссылкой на блок-схему алгоритма, как показано на фиг.51.
Когда начинается процесс предсказания движения/компенсации, блок 531 определения режима декодирует в режиме межкадрового предсказания на этапе S501 и определяет, является ли режим межкадрового предсказания режимом межкадрового предсказания на этапе S502.
Когда режим является режимом межкадрового предсказания, блок 533 декодирования вектора определяет опорное изображение на этапе S503 и выполняет процесс декодирования вектора для декодирования остаточного вектора для генерирования предсказанного изображения на этапе S504.
Более того, когда режим не является режимом межкадрового предсказания, блок 534 декодирования вектора выполняет процесс декодирования вектора для декодирования остаточного вектора для генерирования предсказанного изображения на этапе S504.
Последовательность операций процесса декодирования вектора
Пример последовательности операций процесса декодирования вектора, выполняемый блоком 533 декодирования вектора на этапе S504, как показано на фиг.51, будет описан со ссылкой на блок-схему алгоритма, показанную на фиг.52.
Когда начинается процесс декодирования вектора на этапе S521, блок 302 декодирования без потерь декодирует остаточный вектор (разностный вектор).
На этапе S522 блок 302 декодирования без потерь блок декодирует индекс опорного изображения.
На этапе S523 блок 302 декодирования без потерь блок декодирует индекс вектора.
На этапе S524 блок 552 генерирования вектора предсказания на основании поблочной смежности и блок 553 генерирования вектора предсказания на основании разностного изображения генерируют вектор предсказания из кодированного вектора. Арифметическое устройство 555 суммирует вектор предсказания и остаточный вектор для генерации вектора движения/параллакса текущей области.
На этапе S525 блок 556 генерирования предсказанного изображения генерирует предсказанное изображение, используя вектор движения/параллакса, полученный на этапе S524.
На этапе S526 буфер 455 накопления информации вектора накапливает информацию вектора и последовательность операций процесса возвращается в блок-схему алгоритма, как показано на фиг.51.
Последовательность операций процесса генерирования вектора предсказания
Далее будет описан пример последовательности операций процесса генерирования вектора предсказания, выполняемого на этапе S524, как показано на фиг.52, со ссылкой на блок-схему алгоритма, показанную на фиг.53.
Когда начинается процесс генерирования вектора предсказания на этапе S541, селектор 554 определяет блок, на который необходимо ссылаться.
Когда определено, что необходимо ссылаться на смежный блок текущего изображения на этапе S542, блок 552 генерирования вектора предсказания на основании поблочной смежности использует закодированный вектор смежного блока, как вектор предсказания и последовательность операций процесса возвращается к блок-схеме алгоритма, как показано на фиг.52.
Более того, когда это определено на этапе S541, что необходимо ссылаться на блок другого изображения, то селектор 554 переходит к процессу этапа S543 для определения ракурса которого изображения необходимо ссылаться.
Когда определено, что необходимо ссылаться на изображение другого ракурса на этапе S544, то блок 553 генерирования вектора предсказания на основании разностного изображения генерирует вектор предсказания в направлении просмотра из закодированного совмещенного блока, который раскрывается в направлении просмотра и последовательность операций процесса возвращается к блок-схеме алгоритма, как показано на фиг.52.
Кроме того, когда определено на этапе S543, что необходимо ссылаться на изображение того же ракурса на этапе S545, то блок 553 генерирования вектора предсказания на основании разных кадров генерирует вектор предсказания временного направления из закодированного совмещенного блока и последовательность операций процесса возвращается к блок-схеме алгоритма, как показано на фиг.52.
Последовательность операций процесса генерирования вектора предсказания на основании разных кадров
Далее будет описан пример последовательности операций процесса генерирования вектора предсказания на основании разных кадров, выполняемого на этапе S544, как показано на фиг.53, со ссылкой на блок-схему алгоритма, показанной на фиг.54.
Когда начинается процесс генерирования вектора предсказания на основании разных кадров на этапе S561, блок 7571 определения вектора параллакса определяет величину смещения от вектора параллакса смежного блока.
На этапе S562 блок 572 генерирования вектора опорного изображения межракурсного предсказания выбирает совмещенный блок на смещенной позиции.
На этапе S563 блок 572 генерирования вектора опорного изображения межракурсного предсказания генерирует вектор предсказания из совмещенного блока и последовательность операций процесса возвращения в блок-схему алгоритма, как показано на фиг.53.
То есть, процесс выполняется в той же последовательности операций процесса, как показано на блок-схеме алгоритма на фиг.44.
Последовательность операций процесса определения величины смещения
Далее будет описан пример последовательности операций процесса определения величины смещения, выполняемого на этапе S561, как показано на фиг.54, со ссылкой на блок-схему алгоритма, показанную на фиг.55.
На этапе S581 блок 571 определения вектора параллакса определяет, имеется ли множество блоков, в которых величина вектора Y-направления вектора параллакса смежного блока не равна нулю.
Когда определено на этапе S581, что нет множества блоков, в которых значение вектора Y-направления не равно нулю, то блок 571 определения вектора параллакса переходит к процессу этапа S582, используя вектор параллакса в Х- направлении цели в качестве величины смещения и последовательность операций процесса возвращается на блок-схему алгоритма, как показано на фиг.54.
Кроме того, когда определено на этапе S581, что существует множество блоков, в которых значение вектора Y-направления не равно нулю, блок 571 определения вектора параллакса переходит к процессу этапа S583, используя среднее значение векторов параллакса в Х-направлении цели в качестве величины смещения и последовательность операций процесса возвращается в блок-схему алгоритма, как показано на фиг.54.
То есть, процесс выполняется согласно той же последовательности операций, которая показана на блок-схеме алгоритма на фиг.45. То же самое справедливо для смежного блока.
При выполнении процессов, как описано ранее, блок 512 компенсация движения может создать соответствующий вектор предсказания с высокой точностью предсказания. Таким образом, устройство 500 декодирования изображения может улучшить эффективность кодирования.
Как описано выше, информация, такая как смежный блок, для вычисления величины смещения и способ вычисления величины смещения, может передаваться из устройства 400 кодирования изображения в устройство 500 декодирования изображения.
5. Пятый вариант осуществления
Вектор предсказания
Как описано в третьем и четвертом вариантах осуществления, может быть выбран блок в смещенном положении, когда блок направления просмотра выбран для того, чтобы генерировать вектор предсказания.
Кандидаты для вектора предсказания могут быть генерированы с использованием вектора (совмещенного блока) совмещенного блока, который представляет собой блок на той же позиции, что и принадлежащий изображению в другой момент времени, того же ракурса, что и текущая область, или глобальный вектор параллакса.
Например, как показано на фиг.56, любое одно (например, изображение для просмотра левым глазом) правого и левого изображений SD-изображения используется в качестве основного ракурса, и другое изображение (например, изображение для просмотра правым глазом) используется в качестве зависимого ракурса.
Когда вектор (вектор кодирования) 621 текущей области 611 текущего изображения 601 зависимого ракурса предсказывается, то вектор предсказания, может быть получен с использованием вектора 622 движения (совмещенного вектора) совмещенного блока 612 на той же позиции, что и текущая область совмещенного изображения 602, которое представляет собой изображение другого момента времени того же ракурса, что и текущая область, например, или глобальный вектор параллакса (не показан).
Например, вектор 623 блока 613 на смещенной позиции совмещенным блоком 622 или глобальным вектором параллакса (вектор 631) из той же позиции, что и текущая область 611 изображения 603 основного ракурса того же самого момента времени, что и текущее изображение 601, могут быть использованы в качестве вектора предсказания (PMV) вектора кодирования (MV) 621. Кроме того, совмещенный блок 622 или глобальный вектор параллакса могут быть использованы в качестве вектора предсказания вектора 621 кодирования (MV).
С помощью такой же последовательности, как на стороне устройства кодирования, так и на стороне устройства декодирования, то же самое предсказание может быть выполнено, как на стороне кодирования, так и на стороне декодирования.
Информация, указывающая, который один из совмещенных блоков и глобальный вектор параллакса будет использоваться, информация о совмещенном блоке или о глобальном векторе параллакса и тому подобное, может быть явно обозначена, и такая информация может быть передана со стороны кодирования на сторону декодирования. Более того, информация о способе вычисления величины смещения может быть передана со стороны кодирования на сторону декодирования.
Таким образом, устройство кодирования изображения и устройство декодирования изображения могут генерировать вектор предсказания из блоков, выровненных аналогичным образом между ракурсами. Таким образом, можно повысить точность предсказания предсказанного изображения и улучшить эффективность кодирования. Глобальный вектор параллакса
Далее будет описан глобальный вектор параллакса. Глобальный вектор параллакса является типовым вектором параллакса, который является глобальным (для каждого из заданных блоков, таких как изображения, секции, LCUs или CUs, например). Например, глобальный вектор параллакса, сгенерированный для каждого изображения, указывает на величину параллакса между ракурсами. Способ генерирования глобального вектора параллакса является необязательным.
Конкретный пример глобального вектора параллакса раскрывается в «3D - HEVC -СЕЗ результат при расширенном движении KWU и способ предсказания дисбаланса на основе глобального дисбаланса" Международная организация по стандартизации ISO/IEC JTC1/SC29/WG11 Кодирование движущихся изображений и звука, ISO/IEC JTC1/SC29/WG11 MPEG 2011/М23620, февраль 2012, Сан-Хосе, штат Калифорния.
Фиг.57 является схемой для описания параллакса и глубины.
Как показано на фиг.57, когда цветное изображение объекта М захватывается камерой c1, расположенной на позиции С1 и камерой С2, расположенной на позиции С2, то глубина Z, которая является расстоянием от объекта М в направлении глубины от камеры c1 (камеры с2), определяется выражением (1) как ниже указано.
"L" представляет собой расстояние (в дальнейшем упоминается как расстояние между камерами) в горизонтальном направлении между позициями С1 и С2. Кроме того, "d" является значением (то есть, параллаксом (несоответствием)), которое получено путем вычитания расстояния и2 в горизонтальном направлении от центра цветного изображения, позиции объекта М на цветном изображении, захваченном камерой с2 с расстояния u1 в горизонтальном направлении от центра цветного изображения позиции объекта М на цветном изображении, захваченном камерой c1. Дополнительно, «f» представляет собой фокусное расстояние камеры c1, и в выражении (1), предполагается, что фокусные расстояния камер c1 и с2 являются одинаковыми.
То есть, параллакс d определяется выражением (2), как ниже указано.
[Математическая формула 1]
Как показано в выражениях (1) или (2), параллакс d и глубина Z могут быть преобразованы однозначно. Таким образом, в настоящем описании, изображение, указывающее параллакс d 2-х ракурсного цветного изображения, захваченного камерами С1 и С2, и изображение, показывающее глубину Z, будут коллективно называться как глубина изображения (параллакс изображения).
Глубина изображение (параллакс изображения) может быть изображением, которое указывает параллакс d или глубину Z. Нормализованное значение параллакса d, нормированное значение обратной дроби 1/Z глубины Z или тому подобное, в отличие от параллакса d или глубина Z, могут быть использованы в качестве значения пикселя глубины изображения (параллакса изображения).
Значение глубины Z может быть получено использованием выражения (3), как ниже указано.
Математическая формула 2
В выражении (3), Zfar является наибольшим значением глубины Z и Znear является наименьшим значением глубины Z. Наибольшее значение Zfar и наименьшее значение Znear могут быть установлены для одного блока экрана или могут быть установлены для множества блоков экрана.
Как описано выше в настоящем описании, принимая тот факт, что параллакс d и глубина Z могут быть преобразованы однозначно, изображение которого значение пикселя является нормализованным значением I параллакса d и изображение, которое значение пикселя является нормированным значением у обратной дроби 1/Z глубины Z будет совместно ссылаться на глубину изображения (параллакс изображения). В этом примере, хотя цветовой формат глубины изображения (параллакс изображения) является YUV420 или YUV400, может быть использован другой цветовой формат.
Когда информация о стоимости I или у, в отличие от значения пикселя глубины изображения (параллакса изображения), сфокусирована на значении I или у используются в качестве информации о глубине (информация параллакса). Дополнительно, одна из карт значения I или у используется в качестве карты глубины (параллакс карты).
Генерация вектора предсказания
Вектор предсказания, сгенерированный в соответствии со способом, соответствующим свойствам как вектора кодирования и совмещенного вектора, например, как в таблице, показанной на фиг.58.
Например, как показано в шестой строчке снизу таблицы на фиг.58, когда оба вектор кодирования и совмещенный вектор являются векторами движения, совмещенный вектор используется в качестве кандидата вектора предсказания.
Кроме того, например, как показано во второй строчке снизу таблицы, иллюстрированной на фиг.58, когда оба вектор кодирования и совмещенный вектор являются векторами параллакса (межракурсные векторы), совмещенный вектор используется в качестве кандидата вектора предсказания.
Напротив, например, как показано в пятой строчке снизу таблицы на фиг.58, когда вектор кодирования является вектором движения и совмещенный вектор является вектором параллакса (межракурсный вектор), вектор движения основного ракурса блока, смещенного совмещенным вектором, используется в качестве кандидата вектора предсказания.
Кроме того, например, как показано на четвертой строчке нижней части таблицы на фиг.58, когда вектор кодирования является вектором движения и совмещенный блок является режимом внутрикадрового предсказания, вектор движения основного ракурса блока, смещенного глобальным вектором параллакса, используется в качестве кандидата вектора предсказания.
Дополнительно, например, как показано в третьей строчке снизу таблицы на фиг.58, когда вектор кодирования является вектором параллакса (межракурсным вектором) и совмещенный вектор представляет собой вектор движения, глобальный вектор параллакса используется в качестве кандидата вектора предсказания.
Дополнительно, например, как показано в первой строке снизу таблицы на фиг.58, когда вектор кодирования является вектором параллакса (межракурсным вектором) и совмещенный блок является режимом внутрикадрового предсказания, глобальный вектор параллакса используется в качестве кандидата вектора предсказания.
При увеличении количества способов генерирования кандидатов векторов предсказания, возможно повысить точность предсказания вектора предсказания и улучшить эффективность кодирования.
Устройство кодирования изображения
В этом случае, пример конфигурации устройства кодирования изображения является такой же, как и у устройства 400 кодирования изображения, показанного на фиг.35-38, и их описание опускается.
Последовательность операций процесса
Более того, процесс предсказания движения/компенсации выполняется таким же образом, как описано со ссылкой на блок-схему алгоритма, показанную на фиг.39. Более того, процесс предсказания вектора в этом случае выполняется таким же образом, как описано со ссылкой на блок-схему алгоритма, как показано на фиг.40. Таким образом, описание этих процессов опускается.
Пример последовательности операций процесса генерации вектора предсказания в этом случае будет описан со ссылкой на блок-схему алгоритма, как показано на фиг.59.
При начале выполнения процесса генерации вектора предсказания на этапе S601, селектор 458 определяет на какой блок необходимо ссылаться.
Когда определено, что необходимо ссылаться на смежный блок, то последовательность операций переходит на этап S602. На этапе S602 блок 456 генерирования поблочно-смежного вектора предсказания использует закодированный вектор смежного блока в качестве вектора предсказания. Когда процесс этапа S602 заканчивается, процесс генерации вектора предсказания заканчивается и последовательность операций возвращается к блок-схеме алгоритма, показанной на фиг.40.
Кроме того, когда определено на этапе S601, что блок другого изображения выбран в качестве опорного направления, последовательность операций переходит на этап S603. На этапе S603 блок 457 генерирования вектора предсказания на основании другого изображения использует кодированный вектор блока другого момента времени/ракурса как вектор предсказания. Когда процесс этапа S603 заканчивается, процесс генерации вектора предсказания заканчивается, и последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.40.
Далее будет описан пример последовательности операций процесса генерирования вектора предсказания на основании другого изображения, выполняемого на этапе S603, как показано на фиг.59, со ссылкой на блок-схему алгоритма, показанную на фиг 60 и 61.
При начале процесса генерирования вектора предсказания на основании другого изображения на этапе S621, блок 471 определения вектора параллакса определяет, является ли вектор кодирования вектором движения. Когда определено, что вектор кодирования является вектором движения, последовательность операций процесса переходит на этап S622.
На этапе S622, блок 471 определения вектора параллакса определяет режим совмещенного блока. Когда определено, что режим совмещенного блока является вектором движения, последовательность операций переходит на этап S623.
На этапе S623, блок 473 генерирования внутриракурсного опорного вектора устанавливает совмещенный вектор как вектор предсказания. Когда процесс на этапе S623 заканчивается, процесс генерирования вектора предсказания на основании другого изображения заканчивается, и последовательность операций возвращается к блок-схеме алгоритма на фиг.59.
Кроме того, когда определено на этапе S622, что режим совмещенного блока является внутрикадровым предсказанием, то последовательность операций переходит на этап S624.
На этапе S624 блок 472 генерирования межракурсного опорного вектора получает глобальный вектор параллакса и устанавливает вектор блока основного ракурса, смещенного глобальным вектором параллакса, как вектор предсказания. Когда процесс на этапе S624 заканчивается, процесс генерирования вектора предсказания на основании другого изображения заканчивается, и последовательность операций процесса возвращается на блок-схему алгоритма, как показано на фиг.59.
Более того, когда определено на этапе S622, что режим совмещенного блока является вектором параллакса, то последовательность операций процесса переходит на этап S625.
На этапе S625 блок 472 генерирования межракурсного опорного вектора устанавливает вектор блока основного ракурса, смещенного совмещенным вектором, как вектор предсказания. Когда процесс на этапе S625 заканчивается, процесс генерирования вектора предсказания на основании другого изображения заканчивается, и последовательность операций возвращается к блок-схеме алгоритма на фиг.59.
Более того, когда определено на этапе S621, что кодирующий вектор является вектором параллакса, то процесс переходит к блок-схеме алгоритма на фиг.61.
На этапе S631, как показано на фиг.61, блок 471 определения вектора параллакса определяет режим совмещенного блока. Когда определено, что режим совмещенного блока является вектором параллакса, то последовательность операций переходит на этап S632.
На этапе S632 блок 473 генерирования внутриракурсного опорного вектора устанавливает совмещенный вектор как вектор предсказания. Когда процесс на этапе S632 заканчивается, то процесс генерирования вектора предсказания на основании другого изображения заканчивается, и последовательность операций возвращается к блок-схеме алгоритма на фиг.59.
Более того, когда определено на этапе S631, что режим совмещенного блока является вектором движения, то последовательность операций переходит на этап S634. На этапе S634 блок 472 генерирования межракурсного опорного вектора устанавливает глобальный вектор параллакса как вектор предсказания. Когда процесс на этапе S634 заканчивается, процесс генерирования вектора предсказания на основании другого изображения заканчивается, и последовательность операций возвращается к блок-схеме алгоритма на фиг.59.
Дополнительно, когда определено на этапе S631, что режим совмещенного блока является внутрикадровым предсказанием, то последовательность операций переходит на этап S635. На этапе S635 блок 472 генерирования межракурсного опорного вектора устанавливает глобальный вектор параллакса как вектор предсказания. Когда процесс на этапе S635 заканчивается, то процесс генерации вектора предсказания на основании другого изображения заканчивается, и последовательность операций возвращается к блок-схеме алгоритма на фиг.59.
При выполнении соответствующих процессов, как описано ранее, устройство кодирования изображения в этом случае может генерировать вектор предсказания, используя совмещенный блок и глобальный вектор параллакса. В связи с этим, устройство кодирования изображения может улучшить точность предсказания вектора предсказания и улучшить эффективность кодирования.
Устройство декодирования изображения
Далее будет описано устройство декодирования изображения, соответствующее устройству кодирования изображения. Конфигурация устройства декодирования изображения в этом случае такая же, как конструкция устройства 500 декодирования изображения, показанного на фиг.45-48, аналогично устройству кодирования изображения, и их описание будет опущено.
Последовательность операций процесса
Далее будет описана последовательность операций различных процессов, выполняемых устройством декодирования изображения в данном случае. В этом случае, устройство декодирования изображения выполняет в основном тот же самый процесс, как и устройство кодирования изображения. То есть, процесс компенсации движения выполняется таким же образом, как описано со ссылкой на блок-схему алгоритма, показанную на фиг.49. Кроме того, процесс декодирования вектора выполняется таким же образом, как описано со ссылкой на блок-схему алгоритма, показанную на фиг.50.
Процесс генерирования вектора предсказания выполняется таким же образом, как было (то есть, выполняется устройством кодирования изображения) описано со ссылкой на блок-схему алгоритма на фиг.59.
Тем не менее, в этом случае, селектор 551 выполняет процесс на этапе S601. Кроме того, на этапе S602, блок 552 генерирования вектора предсказания на основании поблочной смежности использует декодированный вектор смежного блока в качестве вектора предсказания. Дополнительно, на этапе S603 блок 553 генерирования вектора предсказания на основании другого изображения использует декодированного вектор блока другого момента времени/ракурса как вектор предсказания.
Более того, процесс генерирования вектора предсказания на основании другого изображения выполняется таким же образом, что и (то есть, выполняется устройством кодирования изображения) описывается со ссылкой на блок-схемы алгоритма на фиг.60 и 61.
Тем не менее, в данном случае, блок 571 определения вектора параллакса выполняет процессы этапов S621, S622 и S631, блок 573 генерирования вектора опорного изображения внутриракурсного предсказания выполняет процессы этапов S623 и S632 и блок 572 генерирования вектора опорного изображения межракурсного предсказания выполняет процессы этапов S624, S625, S634 и S635.
При выполнении соответствующих процессов таким образом, устройство декодирования изображения в этом случае может генерировать вектор предсказания, используя совмещенный блок и глобальный вектор параллакса аналогично устройству кодирования изображения. В связи с этим, устройство декодирования изображения может улучшить точность предсказания вектора предсказания и улучшить эффективность кодирования.
6. Шестой вариант осуществления изобретения
Тип опорного изображения
Например, в случае HEVC, опорное изображение имеет два типа, а именно, короткое опорное изображение и длинное опорное изображение. Поскольку короткое опорное изображение является изображением, которое находится временно вблизи кодируемого изображения, то процесс масштабирования, основанный на временном расстоянии, выполняется на векторе предсказания. В противоположность этому, так как длинное опорное изображение является изображением, которое временно удалено от кодированного изображения, то масштабирование вектора предсказания не создает значения и, таким образом, не выполняется.
С помощью этих опорных изображений соответствующим образом в соответствии с движением изображения или тому подобное, можно дополнительно уменьшить скорость кодирования.
Хотя типы (короткое опорное изображение или длинное опорное изображение) опорных изображений вектора кодирования и вектора предсказания разные, но вектор предсказания установлен как доступный.
Когда типы опорных изображений вектора кодирования и вектора предсказания различны, то можно ожидать, что корреляция этих векторов является низкой. Таким образом, существует возможность того, что эффективность кодирования уменьшится, если векторы включены в список кандидатов вектора. Например, существует возможность того, что вектор, имеющий высокую корреляцию, направляется в конец списка кандидатов и скорость кодирования индекса для обозначения вектора возрастает. Кроме того, например, существует возможность того, что вектор, имеющий высокую корреляцию, отводится в конец списка кандидатов, исключая из списка кандидатов, и не может быть определен.
Таким образом, когда типы (короткое опорное изображение или длинное опорное изображение) опорного изображения вектора кодирования и вектора предсказания различны, то вектор предсказания устанавливается как не доступный.
Поскольку свойство вектора, который ссылается на короткое опорное изображение, отличается от свойства вектора, который ссылается на длинное опорное изображение, ожидается, что корреляция низка. Таким образом, за счет исключения векторов из кандидатов в векторы, в этом случае, можно улучшить эффективность кодирования.
Например, фиг.62 является схемой, описывающей пример аспекта опорного изображения неподвижного фонового приложения. В случае такого движущегося изображения (неподвижный фон приложения), где движущийся объект находится на передней стороне фонового изображения неподвижного изображения, так как фон (в частности, область окклюзии), который является неподвижной областью, относится к длинному опорному изображению, то вектор движения имеет тенденцию иметь нулевое значение. В противоположность этому, так как движущийся объект, находящийся на фронтальной стороне, относится к короткому опорному изображению, то вектор движения появляется. Если типы опорных изображений отличаются таким образом, корреляция векторов движения является низкой (на фиг.64). Таким образом, как описано выше, когда типы опорных изображений вектора кодирования и вектора предсказания различны, то за счет исключения векторов из вектора-кандидата, можно повысить эффективность кодирования.
Более того, например, фиг.63 является схемой, описывающей пример аспекта опорного изображения стерео приложения. В случае такого движущегося изображения (стерео приложения), где изображение (изображение для просмотра левым глазом) для левого глаза и изображение (изображение для просмотра правым глазом) для правого глаза подготовлены для стереоскопического просмотра, когда зависимый ракурс (в этом примере, изображение для просмотра правым глазом) кодируется, основной ракурс (в данном примере, изображение для просмотра левым глазом) обозначен как длинное опорное изображение, и кодированное изображение зависимого ракурса обозначается как короткое опорное изображение.
Когда ссылаются на зависимый ракурс, выполняется масштабирование, так как IDs кадра опорного адресата и источника опорных сигналов различны. Однако, когда осуществляется ссылка на основной ракурс, IDs кадра опорного адресата и источника опорных сигналов идентичны. Таким образом, при масштабировании, знаменатель может стать 0 и реализовать масштабирование становиться затруднительно. Таким образом, в HEVC или т.п. основной ракурс обозначается как длинное опорное изображение, в котором масштабирование не выполняется.
Таким образом, в случае применения стерео, вектор, который относится к длинному опорному изображению, становится вектором параллакса и вектор, который относится к короткому опорному изображению, становится вектором движения. Таким образом, корреляция вектора движения (параллакса) низка между типами изображения (В на фиг.64). Таким образом, как описано выше, когда типы опорных изображений вектора кодирования и вектора предсказания различны, за счет исключения векторов из кандидатов, эффективность кодирования может быть улучшена.
В нижеследующем описании, блок (CU, PU или тому подобное) целевой обработки называют блоком кодирования (или текущим блоком). Кроме того, блок, который находится временно вблизи блока кодирования (то есть, совмещенный блок изображения, которое находится временно около изображения (текущее изображение), в котором блок кодирования присутствует), называется блоком временной корреляции. Дополнительно, блок, который находится пространственно вблизи блока кодирования (то есть, блок, который находится рядом с блоком кодирования в текущем изображении или блок, расположенный рядом с блоком кодирования), упоминается как смежный блок.
Фиг.65 иллюстрирует пример смежного блока. Блоки, расположенные на позициях А0 и А1, являются смежными блоками блока кодирования (текущий блок) и также упоминаются как левосторонние блоки. Кроме того, блоки, находящиеся на позициях В0, В1 и В2, являются смежными блоками блока кодирования (текущий блок), и которые также называются верхними блоками.
Краткое изложение процесса обработки вектора движения (параллакса)
Фиг.66 является схемой, описывающей пример обработки блока временной корреляции и смежного блока. При предсказании вектора, вектор движения (параллакса) блока временной корреляции будет ли включен в состав вектора-кандидата, и масштабирование будет ли осуществляться, определяется, как показано в таблице, изображенной на фиг.66.
То есть, например, когда тип опорного изображения блока кодирования идентичен типу опорного изображения блока временной корреляции (то есть, когда оба опорныхизображения являются короткими опорными изображениями или длинными опорными изображениями), то вектор движения (параллакса) блока временной корреляции используется в качестве кандидата. Когда типы обоих опорных изображений не идентичны, то векторы исключаются из кандидатов. Дополнительно, когда оба опорное изображение блока кодирования и опорное изображение блока временной корреляции являются короткими опорными изображениями, то осуществляется масштабирование вектора движения (параллакса) блока временной корреляции. Когда оба опорных изображения являются длинными опорными изображениями, то масштабирование вектора движения (параллакса) блока временной корреляции не выполняется.
Более того, при предсказании вектора, вектор движения (параллакса) смежного блока будет ли включен в состав вектора-кандидата, и масштабирование будет ли осуществляться, определяется, как указано в таблице, изображенной на В на фиг.66. То есть, это то же самое, как в случае блока временной корреляции.
То есть, например, если тип опорного изображения блока кодирования идентичен типу опорного изображения смежного блока (то есть, когда оба опорных изображения являются короткими опорными изображениями или длинными опорными изображениями), то вектор движения (параллакса) смежного блока используется в качестве кандидата. Когда типы обоих опорных изображений не идентичны, то векторы исключены из кандидатов. Кроме того, когда оба опорное изображение блока кодирования и опорное изображение смежного блока являются короткими опорными изображениями, то выполняется масштабирование вектора движения (параллакса) смежного блока. Когда оба опорных изображения являются длинными опорными изображениями, то масштабирование вектора движения (параллакса) смежного блока не выполняется.
Последовательность операций процесса при кодировании
Пример последовательности операций процесса во время кодирования для реализации такого управления будет описан ниже. Такое управление может быть реализовано с помощью устройства 400 кодирования изображения (фиг.37), описанное в третьем варианте осуществления.
Процесс кодирования изображения, выполняемый устройством 400 кодирования изображения, осуществляется таким же образом, как (первый вариант осуществления) было описано со ссылкой на блок-схему алгоритма, показанную на фиг.20.
Пример последовательности операций процесса генерирования опорного индекса и вектора движения (параллакса) PU осуществляется блоком 415 компенсации/предсказания движения, как процесс, соответствующий процессу межкадрового предсказания, выполненный на этапе S104, как показано на фиг.20, как будет описан со ссылкой на блок-схему алгоритма, показанную на фиг.67.
На этапе S701, блок 431 межрежимного генерирования (фиг.38) генерирует межкадровый режим. На этапе S702, блок 431 межрежимного генерирования определяет, является ли межкадровый режим режимом объединения (пропуска).
Когда определено, что межкадровый режим является режимом объединения (пропуска), последовательность операций процесса переходит на этап S703. На этапе S703, блок 432 определения опорного индекса и блок 434 предсказания вектора выполняют процесс режима объединения (пропуска) для генерирования вектора движения (параллакса) и опорного индекса. Когда процесс заканчивается на этапе S703, то последовательность операций переходит на этап S707.
Более того, когда определено на этапе S702, что межкадровый режим не является режимом объединения (пропуска), то процесс переходит к этапу S704. На этапе S704 блок 433 предсказания вектора получает вектор остаточного движения (параллакса) и индекс.На этапе S705, блок 433 предсказания вектора выполняет процесс режима AMVP для генерации вектора движения (параллакса). На этапе S706 блок 435 определения режима добавляет вектор остаточного движения (параллакса) к вектору предсказания движения (параллакса).
На этапе S707 блок 435 определения режима возвращается на этап S701 до обработки всех режимов и определяет оптимальный режим, когда все режимы были обработаны.
На этапе S708 блок 106 кодирования без потерь кодирует выбранную информацию. Когда процесс на этапе S708 заканчивается, то последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.20.
Далее будет описан пример последовательности операций процесса режима объединения (пропуска), выполняемого на этапе S703, как показано на фиг.67, со ссылкой на блок-схему алгоритма, показанную на фиг.68.
Когда начинается процесс на этапе S711, блок 432 определения опорного индекса 432 кандидата вектора движения (параллакса) и опорный индекс из пространственно смежных блоков.
На этапе S712 блок 432 определения опорного индекса генерирует опорный индекс для блоков временной корреляции.
На этапе S713 блок 434 предсказания вектора генерирует кандидата вектора движения (параллакса) из блоков временной корреляции.
На этапе S714 блок 434 предсказания вектора генерирует список кандидатов векторов движения (параллакса) векторов и опорные индексы. Число элементов этого списка называется Y.
На этапе S715 блок 434 предсказания вектора устанавливает наибольшее число X из списка кандидатов.
На этапе S716 блок 434 предсказания вектора определяет, является ли число Y элементов списка меньше, чем наибольшее число X списка кандидатов (Y<X). Когда определено, что число Y элементов списка меньше, чем наибольшее число X списка кандидатов (Y<Х), то последовательность операций переходит на этап S717.
На этапе S717 блок 434 предсказания вектора объединяет соответствующие элементы списка кандидатов для генерирования нового вектора движения (параллакса) и нового опорного индекса.
На этапе S718 блок 434 предсказания вектора обновляет список кандидатов. Количество элементов списка в этом случае обозначается как Y'.
На этапе S719 блок 434 предсказания вектора определяет, является ли количество Y' из элементов списка меньше, чем наибольшее количество X из списка кандидатов (Y'<X). Когда определено, что количество Y' из элементов списка меньше, чем наибольшее количество X списка кандидатов (Y'<X), то последовательность операций переходит на этап S720.
На этапе S720 блок 434 предсказания вектора генерирует новый нулевой вектор движения (параллакса) и новый нулевой опорный индекс. Когда процесс заканчивается на этапе S720, то последовательность операций переходит на этап S721.
Более того, когда это определено на этапе S716, что количество Y из элементов списка больше, чем наибольшее число X из списка кандидатов (не Y<X), последовательность операций переходит к этапу S721. Кроме того, когда определено на этапе S719, что количество Y' элементов из списка больше, чем наибольшее число X из списка кандидатов (не Y<Х) последовательность операций переходит на этап S721.
На этапе S721 блок 434 предсказания вектора генерирует индекс элемента списка кандидата.
На этапе S722 блок 434 предсказания вектора получает вектор движения (параллакса) и опорный индекс, обозначенный индексом элемента. Когда процесс на этапе S722 заканчивается, то последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.67.
Далее будет описан пример последовательности операций процесса генерирования кандидата векторов движения (параллакса) из блока временной корреляции, выполняемого на этапе S713, как показано на фиг.68, со ссылкой на блок-схему алгоритма, показанную на фиг 69.
Когда процесс начинается на этапе S731, блок 434 предсказания вектора генерирует индекс, который обозначает изображение временной корреляции.
На этапе S732 блок 434 предсказания вектора определяет изображение временной корреляции.
На этапе S733 блок 434 предсказания вектора выбирает правый нижний блок кодирования PU (блок кодирования), который находится в изображении временной корреляции.
На этапе S734 блок 434 предсказания вектора определяет, является ли правый нижний блок внутрикадровым режимом или он не доступен. Когда определено, что нижний правый блок является внутрикадровым режимом или он недоступен, то последовательность операций переходит на этап S735.
На этапе S735 блок 434 предсказания вектора выбирает центральный блок кодирующего PU, находящийся в изображении временной корреляции.
На этапе S736 блок 434 предсказания вектора определяет, является ли центральный блок внутрикадровым режимом или недоступен. Когда определено, что центральный блок является внутрикадровым режимом или не доступен, то последовательность операций переходит на этап S737.
На этапе S737 блок 434 предсказания вектора исключает вектор движения (параллакса) блока временной корреляции из кандидата. Когда процесс на этапе S737 заканчивается, то последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.68.
Кроме того, когда определено на этапе S734, что нижний правый блок не является ни внутрикадровом режимом, ни не является доступным, то последовательность операций переходит на этап S738. Аналогичным образом, когда определено, что центральный блок не является ни внутрикадровым режимом, ни не является доступным, то последовательность операций переходит на этап S738.
На этапе S738 блок 434 предсказания вектора определяет вектор движения (параллакса) и опорный индекс блока временной корреляции.
На этапе S739 блок 434 предсказания вектора определяет наличие процесса масштабирования для вектора движения (параллакса) блока временной корреляции и наличия кандидата.
На этапе S740 блок 434 предсказания вектора определяет, необходимо ли исключить вектор движения (параллакса) блока временной корреляции из кандидата на основании результата определения на этапе S739.
Когда определено, что вектор движения (параллакса) должен быть исключен из кандидатов, то последовательность операций возвращается на этап S737. Кроме того, когда определено на этапе S740, что вектор движения (параллакса) не должен быть исключен из кандидатов (которые включены в кандидаты), то последовательность операций переходит на этап S741.
На этапе S741 блок 434 предсказания вектора определяет, является ли масштабирование необходимым для вектора движения (параллакса) блока временной корреляции на основании результата определения на этапе S739.
Когда определено, что масштабирование необходимо, то последовательность операций переходит на этап S742. На этапе S742 блок 434 предсказания вектора выполняет процесс масштабирования для вектора движения (параллакса) блока временной корреляции. Когда процесс на этапе S742 заканчивается, то последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.68.
Более того, когда определено на этапе S741, что масштабирование не является необходимым, то последовательность операций возвращается на блок-схему, показанную на фиг.68.
Далее будет описан пример последовательности операций процесса определения наличия процесса масштабирования для вектора движения (параллакса) блока временной корреляции и наличия кандидата, выполняемого на этапе S739, как показано на фиг.69, со ссылкой на блок-схему алгоритма, показанную на фиг.70.
Когда начинается процесс на этапе S751, блок 434 предсказания вектора определяет, является ли опорное изображение блока кодирования коротким опорным изображением или длинным опорным изображением.
На этапе S752 блок 434 предсказания вектора определяет, является ли опорное изображение блока временной корреляции коротким опорным изображением или длинным опорным изображением.
На этапе S753 блок 434 предсказания вектора определяет, является ли опорное изображение блока кодирования длинным опорным изображением на основании результата определения на этапе S751.
Когда определено, что опорное изображение блока кодирования является длинным опорным изображением, то последовательность операций переходит на этап S754. На этапе S754 блок 434 предсказания вектора определяет, является ли опорное изображение блока временной корреляции длинным опорным изображением на основании результата определения на этапе S752.
Когда определено, что опорное изображение блока временной корреляции является длинным опорным изображением, то последовательность операций переходит на этап 5755. В этом случае, векторы движения (параллакса) блока кодирования и блок временной корреляции являются длинными опорными изображениями. Таким образом, на этапе S755 блок 434 предсказания вектора включает вектор движения (параллакса) блока временной корреляции в состав кандидата и устанавливает необходимость масштабирования. Когда процесс на этапе S755 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.69.
Более того, когда определено на этапе S754 на фиг.70, что опорное изображение блока временной корреляции является коротким опорным изображением, то последовательность операций переходит на этап S756. В этом случае, типы векторов движения (параллакса) блока кодирования и блока временной корреляции не являются идентичными. Таким образом, на этапе S756 блок 434 предсказания вектора устанавливает то, что вектор движения (параллакса) блока временной корреляции должен быть исключен из кандидата. Когда процесс на этапе S756 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.69.
Более того, когда определено на этапе S753 на фиг.70, что опорное изображение блока кодирования является коротким опорным изображением, то последовательность операций переходит на этап S757. На этапе S757 блок 434 предсказания вектора определяет, является ли опорное изображение блока временной корреляции длинным опорным изображением на основании результата определения на этапе S752.
Когда определено, что опорное изображение блока временной корреляции является длинным опорным изображением, то последовательность операций возвращается на этап
5756. То есть, в данном случае, когда типы векторов движения (параллакса) блока кодирования и блока временной корреляции не идентичны, то вектор движения (параллакса) блока временной корреляции должен быть исключен из кандидата.
Более того, когда определено на этапе S757, что опорное изображение блока временной корреляции является коротким опорным изображением, то последовательность операций переходит на этап S758. В этом случае, векторы движения (параллакса) блока кодирования и блока временной корреляции являются короткими опорными изображениями. Таким образом, на этапе S758 блок 434 предсказания вектора включает вектор движения (параллакса) блока временной корреляции в состав кандидата и устанавливает необходимость масштабирования. Когда процесс на этапе S758 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.69.
Далее будет описан пример последовательности операций процесса AMVP режима, выполняемого на этапе S705, как показано на фиг.67, со ссылкой на блок-схему алгоритма, показанную на фиг.71.
Когда начинается процесс на этапе S761, блок 433 предсказания вектора (фиг.38) генерирует кандидата вектора движения (параллакса) из пространственно смежного блока.
На этапе S762 блок 433 предсказания вектора генерирует список кандидатов векторов движения (параллакса). Количество элементов этого списка кандидата обозначено как А.
На этапе S763 блок 433 предсказания вектора определяет, является ли количество А элементов списка кандидатов меньше, чем 2 (<2).
Когда определено, что количество А элементов списка кандидатов меньше, чем 2 (А<2), то последовательность операций переходит на этап S764. На этапе S764 блок 433 предсказания вектора генерирует кандидата вектора движения (параллакса) из блока временной корреляции. Этот процесс является таким же, как описан со ссылкой на блок-схему алгоритма, как показано на фиг.69, и описание такового будет опущено.
На этапе S765 блок 433 предсказания вектора генерирует список кандидатов векторов движения (параллакса) и опорных индексов. Количество элементов этого списка кандидата обозначается как А'.
На этапе S766 блок 433 предсказания вектора определяет, является ли количество А элементов списка кандидатов меньше, чем 2 (А'<2).
Когда определено, что количество А' элементов списка кандидатов меньше, чем 2 (А'<2), то последовательность операций переходит на этап S767. На этапе S767 блок 433 предсказания вектора генерирует новый нулевой вектор движения (параллакса) и новый нулевой опорный индекс. Когда процесс на этапе S767 заканчивается, то последовательность операций переходит к этапу S768.
Более того, когда определено на этапе S763, что количество А элементов списка кандидатов больше, чем 2 (не А<2), то последовательность операций переходит на этап S768. Кроме того, когда определено на этапе S766, что количество А' элементов списка кандидатов больше, чем 2 (не А<2), то последовательность операций переходит к этапу S768.
На этапе S768 блок 433 предсказания вектора генерирует индекс (флаг) элемента списка кандидатов.
На этапе S769 блок 433 предсказания вектора получает вектор движения (параллакса), указанный индексом элемента. Когда процесс на этапе S769 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.67.
Далее будет описан пример последовательности операций процесса генерации кандидата вектора движения (параллакса) из пространственно смежного блока, выполняемого на этапе S761, как показано на фиг.71, со ссылкой на блок-схему алгоритма, показанную на фиг.72.
Когда начинается процесс, блок 433 предсказания вектора генерирует кандидата вектора движения (параллакса) из левого блока на этапе S771.
На этапе S772 блок 433 предсказания вектора генерирует кандидата вектора движения (параллакса) из верхнего блока.
Когда процесс на этапе S722 заканчивается, то последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.71.
Далее будет описан пример последовательности операций процесса генерации кандидата вектора движения (параллакса) из левого блока, выполняемого на этапе S771, как показано на фиг.72, со ссылкой на блок-схему алгоритма, показанную на фиг.73 и 74.
Когда начинается процесс, блок 433 предсказания вектора выбирает блок на позиции АО на этапе S781.
На этапе S782, блок 433 предсказания вектора определяет, является ли блок на позиции АО внутрикадровым режимом или он отсутствует, то последовательность операций переходит на этап S783. На этапе S783 блок 433 предсказания вектора определяет, ссылается ли блок на позиции АО на то же опорное изображение как и блок кодирования.
Когда определено, что блок на позиции АО ссылается на то же опорное изображение, как и блок кодирования, последовательность операций переходит на этап S784. На этапе S784 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции АО как кандидат. Когда процесс на этапе S784 заканчивается, последовательность операций возвращается на блок-схему алгоритма, показанная на фиг.72.
Более того, когда определено на этапе S782, как показано на фиг.73, что блок на позиции А0 является внутрикадровым режимом или отсутствует, то последовательность операций переходит на этап S785. Более того, когда определено на этапе S783, что блок на позиции А0 относится к опорному изображению, отличному от блока кодирования, последовательность операций переходит на этап S785.
На этапе S785 блок 433 предсказания вектора выбирает блок на позиции А1.
На этапе S786 блок 433 предсказания вектора определяет, является ли блок на позиции А1 внутрикадровым режимом или отсутствует.
Когда определено, что блок на позиции А1 является внутрикадровым режимом или отсутствует, то последовательность операций переходит на этап S787. На этапе S787 блок 433 предсказания вектора определяет, относится ли блок на позиции А1 к тому же опорному изображению как блок кодирования.
Когда определено, что блок на позиции А1 относится к тому же опорному изображению как блок кодирования, последовательность операций переходит на этап S788. На этапе S788 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции А1 как кандидата. Когда процесс на этапе S788 заканчивается, то последовательность операций возвращается на блок-схему алгоритму, показанную на фиг.72.
Более того, когда определено на этапе S786 на фиг.73, что блок на позиции А1 представляет собой внутрикадровый режим или отсутствует, то последовательность операций переходит на этап S791, показанный на фиг.74. Кроме того, когда определено на этапе S787, как показано на фиг.73, что блок на позиции А1 относится к опорному изображению, отличному от блока кодирования, то последовательность операций переходит к этапу S791, показанному на фиг.74.
На этапе S791 на фиг.74 блок 433 предсказания вектора выбирает блок на позиции А0.
На этапе S792 блок 433 предсказания вектора определяет, является ли блок на позиции А0 внутрикадровым режимом или не доступен.
Когда определено, что блок на позиции А0 является ли внутрикадровым режимом или не доступен, то последовательность операций переходит на этап S793. На этапе S793 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции A0 как кандидата. Когда процесс на этапе S793 заканчивается, то последовательность операций переходит к этапу S797.
Более того, когда определено на этапе S792, как показано на фиг.74, что блок на позиции АО является внутрикадровым режимом или недоступен, то последовательность операций переходит на этап S794.
На этапе S794 блок 433 предсказания вектора выбирает блок на позиции А1.
На этапе S795 блок 433 предсказания вектора определяет, является ли блок на позиции А1 внутрикадровым режимом или отсутствует.
Когда определено, что блок на позиции А0 является внутрикадровым режимом или отсутствует, то последовательность операций возвращается на блок-схему алгоритма на фиг.72.
Кроме того, когда определено на этапе S795 на фиг.74, что блок на позиции А1 не является ни внутрикадровым режимом, ни отсутствует, последовательность операций возвращается на этап S796. На этапе S796 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции А1 как кандидат. Когда процесс на этапе S796 заканчивается, последовательность операций переходит к этапу S797.
На этапе S797 блок 433 предсказания вектора определяет наличие процесса масштабирования для вектора движения (параллакса) смежного блока и наличие кандидата.
На этапе S798 блок 433 предсказания вектора определяет, должен ли вектор движения (параллакса) смежного блока быть исключен из кандидатов на основании результата определения на этапе S797.
Когда определено, что вектор движения (параллакса) должен быть исключен из кандидатов, последовательность операции переходит на этап S799. На этапе S799 блок 433 предсказания вектора исключает вектор движения (параллакса) левого блока из кандидата. Когда процесс на этапе S799 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.72.
Более того, когда определено на этапе S798, как показано на фиг.74, что вектор движения (параллакса) не должен быть исключен из кандидатов (включен в состав кандидата), то последовательность операций переходит к этапу S800.
На этапе S800 блок 433 предсказания вектора определяет, необходимо ли выполнить масштабирование для вектора движения (параллакса) смежного блока на основании результата определения на этапе S797.
Когда определено, что масштабирование необходимо, то последовательность операций переходит на этап S801. На этапе S801 блок 433 предсказания вектора выполняет процесс масштабирования для вектора движения (параллакса) смежного блока. Когда процесс заканчивается на этапе S801, то последовательность операций обработки возвращается к блок-схеме алгоритма, показанной на фиг.72.
Кроме того, когда определено на этапе S800, как показано на фиг.74, что масштабирование не является необходимым, то последовательность операций процесса возвращается на блок-схему алгоритма, показанную на фиг.72.
Далее будет описан пример последовательности операций процесса определения наличия процесса масштабирования для вектора движения (параллакса) смежного блока и наличия кандидата, выполняемого на этапе S797 на фиг.74, со ссылкой на блок-схему алгоритма, показанную на фиг.75.
Когда начинается процесс на этапе S811, то блок 433 предсказания вектора определяет, является ли опорное изображение блока кодирования коротким опорным изображением или длинным опорным изображением.
На этапе S812 блок 433 предсказания вектора определяет, является ли опорное изображение смежного блока коротким опорным изображением или длинным опорным изображением.
На этапе S813 блок 433 предсказания вектора определяет, является ли опорное изображение блока кодирования длинным опорным изображением на основании результата определения на этапе S811.
Когда определено, что опорное изображение блока кодирования является длинным опорным изображением, то последовательность операций переходит на этап S814. На этапе S814 блок 433 предсказания вектора определяет, является ли опорное изображение смежного блока длинным опорным изображением на основании результата определения на этапе S812.
Когда определено, что опорное изображение смежного блока является длинным опорным изображением, то последовательность операций переходит на этап S815. В этом случае, векторы движения (параллакса) блока кодирования и смежного блока являются длинными опорными изображениями. Таким образом, на этапе S815 блок 433 предсказания вектора включает вектор движения (параллакса) смежного блока в кандидаты и устанавливает отсутствие необходимости масштабирования. Когда процесс на этапе S815 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.74.
Кроме того, когда определено на этапе S814, как показано на фиг.75, что опорное изображение смежного блока является коротким опорным изображением, то последовательность операций переходит к этапу S816. В этом случае, типы векторов движения (параллакса) блока кодирования и смежного блока не являются идентичными. Таким образом, на этапе S816 блок 433 предсказания вектора устанавливает вектор движения (параллакса) смежного блока, который исключается из кандидата. Когда процесс на этапе S816 заканчивается, то последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.74.
Дополнительно, когда определено на этапе S813 на фиг.75, что опорное изображение блока кодирования является коротким опорным изображением, то последовательность операций переходит на этап S817. На этапе S817 блок 433 предсказания вектора определяет, является ли опорное изображение смежного блока длинным опорным изображением на основании результата определения на этапе S812.
Когда определено, что опорное изображение смежного блока является длинным опорным изображением, то последовательность операций возвращается на этап S816. То есть, в этом случае, поскольку типы векторов движения (параллакса) блока кодирования и смежного блока не идентичны, то вектор движения (параллакса) смежного блока исключается из кандидатов.
Более того, когда определено на этапе S817, что опорное изображение смежного блока является коротким опорным изображением, то последовательность операций переходит на этап S818. В этом случае, векторы движения (параллакса) блока кодирования и смежного блока являются короткими опорными изображениями. Следовательно, на этапе S818 блок 433 предсказания вектора включает вектор движения (параллакса) смежного блока в состав кандидата и устанавливает необходимость масштабирования. Когда процесс на этапе S818 заканчивается, то последовательность операций возвращается на блок-схему алгоритма, как показано на фиг.74.
Далее будет описан пример последовательности операций процесса генерации кандидата вектора движения (параллакса) из верхнего блока, выполняемого на этапе S772, как показано на фиг.72, со ссылкой на блок-схему алгоритма на фиг.76 и 77.
Когда начинается процесс, блок 433 предсказания вектора выбирает блок на позиции В0 на этапе S821.
На этапе S822 блок 433 предсказания вектора определяет, является ли блок на позиции В0 внутрикадровым режимом или недоступен.
Когда определено, что блок на позиции ВО является ни внутрикадровым режимом, ни недоступен, то последовательность выполнения операций переходит на этап S823. На этапе S823 блок 433 предсказания вектора определяет, ссылается ли блок на позиции В0 на то же опорное изображение как блок кодирования.
Когда определено, что блок на позиции ВО относится к тому же опорному изображению как блок кодирования, то последовательность операций переходит на этап S824. На этапе S824 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции B0 как кандидата. Когда процесс на этапе S824 заканчивается, то последовательность операций возвращается на блок-схему алгоритма, как показано на фиг.72.
Более того, когда определено на этапе S822 на фиг.76, что блок на позиции В0 является внутрикадровым режимом или недоступен, то последовательность операций переходит на этап S825. Кроме того, когда определено на этапе S823, что блок на позиции В0 ссылается на опорное изображение, отличное от блока кодирования, тогда последовательность операций переходит на этап S825.
На этапе S825 блок 433 предсказания вектора выбирает блок на позиции В1.
На этапе S826 блок 433 предсказания вектора определяет, является ли блок на позиции В1 внутрикадровым режимом или недоступен.
Когда определено, что блок на позиции В1 не является ни внутрикадровым режимом, ни недоступен, то последовательность операций переходит на этап S827. На этапе S827 блок 433 предсказания вектора определяет, ссылается ли блок на позиции В1 на то же опорное изображение как блок кодирования.
Когда определено, что блок на позиции В1 ссылается на то же опорное изображение как блок кодирования, то последовательность операций переходит на этап S828. На этапе S828 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции В1 как кандидата. Когда процесс на этапе S828 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.72.
Более того, когда определено на этапе S826 на фиг.76, что блок на позиции В1 является внутрикадровым режимом или недоступен, то последовательность операций переходит на этап S829. Кроме того, когда определено на этапе S827, что блок на позиции В1 ссылается на опорное изображение, отличное от блока кодирования, то последовательность операций переходит на этап S829.
На этапе S829 блок 433 предсказания вектора выбирает блок на позиции В2.
На этапе S830 блок 433 предсказания вектора определяет, является ли блок на позиции В2 внутрикадровым режимом или недоступен.
Когда определено, что блок на позиции В2 не является ни внутрикадровым режимом, ни недоступен, то последовательность операций переходит на этап S831. На этапе S831 блок 433 предсказания вектора определяет, ссылается ли блок на позиции В2 на то же опорное изображение как блок кодирования.
Когда определено, что блок на позиции В2 ссылается на то же опорное изображение как блок кодирования, то последовательность операций переходит на этап S832. На этапе S832 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции В2 как кандидата. Когда процесс на этапе S832 заканчивается, то последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.72.
Кроме того, когда определено на этапе S830 на фиг.76, что блок на позиции В2 является внутрикадровым режимом или недоступен, то последовательность операций переходит на этап S841 на фиг.77. Кроме того, когда определено на этапе S831 на фиг.76, что блок на позиции В2 ссылается на опорное изображение, отличное от блока кодирования, то последовательность операций переходит на этап S841 на фиг.77.
На этапе S841 на фиг.77 блок 433 предсказания вектора определяет, генерируется ли кандидат вектора движения (параллакса) из левого блока.
На этапе S842 блок 433 предсказания вектора выбирает блок на позиции В0.
На этапе S843 блок 433 предсказания вектора определяет, является ли блок на позиции ВО внутрикадровым режимом или недоступен.
Когда определено, что блок на позиции В0 не является ни внутрикадровым режимом или недоступным, то последовательность операций переходит на этап S844. На этапе S844 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции В0 как кандидата. Когда процесс на этапе S844 заканчивается, то последовательность операций переходит на этап S851.
Более того, когда определено на этапе S843, что блок на позиции В0 является внутрикадровым режимом или недоступен, то последовательность операций переходит на этап S845.
На этапе S845 блок 433 предсказания вектора выбирает блок на позиции В1.
На этапе S846 блок 433 предсказания вектора определяет, является ли блок на позиции В1 внутрикадровым режимом или недоступным.
Когда определено, что блок в положении В1 не является, ни внутрикадровым режимом, ни недоступен, то последовательность операций переходит на этап S847. На этапе S847 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции В1 как кандидата. Когда процесс на этапе S847 заканчивается, то последовательность операций переходит к этапу S851.
Кроме того, когда определено на этапе S846, что блок на позиции В1 является внутрикадровым режимом или недоступен, то последовательность операций переходит на этап S848.
На этапе S848 блок 433 предсказания вектора выбирает блок на позиции В2.
На этапе S849 блок 433 предсказания вектора определяет, является ли блок на позиции В2 внутрикадровым режимом или недоступен.
Когда определено на этапе S849, что блок на позиции В2 является внутрикадровым режимом или отсутствуют, то последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.72.
Более того, когда определено, что блок в положении В2 не является, ни внутрикадровым режимом или отсутствует, то последовательность операций переходит на этап S850. На этапе S850 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции В2 как кандидата. Когда процесс на этапе S850 заканчивается, то последовательность операций переходит на этап S851.
На этапе S851 блок 433 предсказания вектора определяет наличие процесса масштабирования для вектора движения (параллакса) смежного блока и наличие кандидата. Так как этот процесс выполняется таким же образом, как описано со ссылкой на блок-схему алгоритма на фиг.75, то данное описание будет опущено. В этом случае, когда процесс на блок-схеме алгоритма, показанной на фиг.75, заканчивается, то последовательность операций процесса возвращается в блок-схему алгоритма, показанную на рис.77, взамен блок-схемы алгоритма, показанной на фиг.74.
На этапе S852 блок 433 предсказания вектора определяет, исключать ли вектор движения (параллакса) смежного блока из кандидатов на основании результата определения на этапе S851.
Когда определено, что вектор движения (параллакса) должен быть исключен из кандидатов, то последовательность операций переходит на этап S853. На этапе S853 блок 433 предсказания вектора исключает вектор движения (параллакса) верхнего блока из кандидатов. Когда процесс на этапе S853 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.72.
Кроме того, когда определено на этапе S852, как показано на фиг.77, что вектор движения (параллакса) не должен быть исключен из кандидата (включен в состав кандидатов), то последовательность операций переходит на этап S854.
На этапе S854 блок 433 предсказания вектора определяет необходимость масштабирования для вектора движения (параллакса) смежного блока на основании результата определения на этапе S851.
Когда определено, что масштабирование необходимо, последовательность операций переходит на этап S855. На этапе S855 блок 433 предсказания вектора выполняет процесс масштабирования для вектора движения (параллакса) смежного блока. Когда процесс на этапе S855 заканчивается, то последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.72.
Более того, когда определено на этапе S854 на фиг.77, что масштабирование не является необходимым, то последовательность операций процесса возвращается на блок-схему алгоритма, показанную на фиг.72.
При выполнении соответствующих процессов как описано ранее, устройство 400 кодирования изображения может устранить причины, вызывающие снижение эффективности кодирования.
Последовательность операций процесса во время декодирования
Для того чтобы правильно декодировать кодированные данные, полученные кодированием как описано ранее, предсказание может быть выполнено на стороне декодирования таким же способом, как на стороне кодирования. То есть, на стороне декодирования, когда типы опорных изображений (короткое опорное изображение или длинное опорное изображение) вектора кодирования и вектора предсказания различны, вектор предсказания устанавливается как отсутствующий.
То есть, например, если тип опорного изображения блока кодирования идентичен типу опорного изображения блока временной корреляции (то есть, когда оба опорных изображения являются короткими опорными изображениями или длинными опорными изображениями), то вектор движения (параллакса) блока временной корреляции используется как кандидат. Когда типы обоих опорных изображений не идентичны, то векторы исключаются из кандидатов. Дополнительно, когда оба опорное изображение блока кодирования и опорное изображение блока временной корреляции являются короткими опорными изображениями, то осуществляется масштабирование вектора движения (параллакса) блока временной корреляции. Когда оба опорных изображения являются длинными опорными изображениями, то масштабирование вектора движения (параллакса) блока временной корреляции не выполняется.
Более того, например, когда тип опорного изображения блока кодирования идентичен типу опорного изображения смежного блока (то есть, когда оба опорных изображения являются короткими опорными изображениями или длинными опорными изображениями), то вектор движения (параллакса) смежного блока используется в качестве кандидата. Когда типы обоих опорных изображений не идентичны, то векторы исключаются из кандидатов. Кроме того, когда оба опорное изображение блока кодирования и опорное изображение смежного блока являются короткими опорными изображениями, то выполняется масштабирование вектора движения (параллакса) смежного блока. Когда оба опорных изображения являются длинными опорными изображениями, то масштабирование вектора движения (параллакса) смежного блока не выполняется.
Выполнив вышеописанный процесс, можно устранить причины, вызывающие снижение эффективности кодирования.
Далее будет описан пример последовательности операций процесса во время кодирования для реализации такого управления. Такой способ управления может быть реализован с помощью устройства 500 декодирования изображения (фиг.47), описанное в четвертом варианте осуществления.
Процесс декодирования, осуществляемый устройством 500 декодирования изображения, выполняется таким же образом, как (согласно второму варианту осуществления), вариант, описанный со ссылкой на блок-схему алгоритма на фиг.33. Более того, процесс предсказания на этапе S305, показанный на фиг.33, выполняется таким же образом, как описано со ссылкой на блок-схему алгоритма, показанную на фиг.34.
Пример последовательности операций процесса генерирования опорного индекса и вектора движения (параллакса) PU, выполняемого блоком 512 компенсации движения, как процесс, соответствующий процессу компенсации параллакса движения, выполняемый на этапе S334 на фиг.34, будет описан со ссылкой на блок-схему алгоритма, показанную на фиг.78.
Этот процесс выполняется в основном таким же образом, что и процесс (фиг.67) на стороне кодирования. Однако, так как режим предсказания определяется на стороне кодирования, то устройство на стороне декодирования может выполнять процесс используемый только в режиме предсказания.
Когда начинается процесс на этапе S861, блок 302 декодирования без потерь декодирует режим предсказания, поставленный со стороны кодирования.
На этапе S862 блок 531 определения режима определяет, является ли режим предсказания режимом объединения (пропуска).
Когда определено, что режим предсказания является режимом объединения (пропуска), то последовательность операций переходит на этап S863. На этапе S863 блок 532 определения опорного индекса и блок 534 декодирования вектора выполняют процесс режима объединения (пропуска) для генерирования вектора движения (параллакса) и опорного индекса. Когда процесс на этапе S863 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.34.
Более того, когда определено на этапе S862 на фиг.78, что режим предсказания не является режимом объединения (пропуска), то последовательность операций переходит на этап S863. На этапе S864 блок 533 декодирования вектора получает остаточный вектор движения (параллакса) и опорный индекс. На этапе S865 блок 533 декодирования вектора выполняет процесс режима AMVP для генерации вектора предсказания движения (параллакса). На этапе S866 блок 533 декодирования вектора добавляет остаточный вектор движения (параллакса) к предсказанному вектору движения (параллакса). Когда процесс на этапе S866 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.34.
Далее будет описан пример процесса режима объединения (пропуска), выполняемый на этапе S863, как показано на фиг.78, со ссылкой на блок-схему, показанную на фиг.79. Этот процесс выполняется в основном таким же образом, как процесс (фиг.68) на стороне кодирования.
Соответствующие процессы на этапах с S871 по S874 выполняются таким же образом, как в соответствующие процессы на этапах с S711 по S714, показанные на фиг.68. Однако, процессы на этапах S871 и S872 выполняются блоком 532 определения опорного индекса и процессы на этапах S873 и S874 выполняются блоком 534 декодирования вектора.
На этапе S875 блок 534 декодирования вектора декодирует наибольшее значение X из списка кандидатов.
Процессы на этапах с S876 по S880 выполняются таким же образом, как процессы на этапах с S716 по S720, как показано на фиг.68. Однако, эти процессы выполняются блоком 534 декодирования вектора.
На этапе S881 блок 534 декодирования вектора декодирует индекс элемента списка кандидата. На этапе S882 блок 534 декодирования вектора получает вектор движения (параллакса) и опорный индекс, указанный индексом элемента. Когда процесс на этапе S882 заканчивается, то последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.78.
Далее будет описан пример последовательности операций процесса генерации кандидата вектора движения (параллакса) из блока временной корреляции, выполняемого на этапе S873, как показано на фиг.79, со ссылкой на блок-схему алгоритма, показанную на фиг.80. Этот процесс выполняется в основном таким же образом, как процесс (фиг.69) на стороне кодирования.
Когда начинается процесс, то блок 534 декодирования вектора декодирует индекс, указывающий изображение временной корреляции на этапе S891.
Процессы на этапах с S892 по S902 выполняются таким же образом, как процессы этапов с S732 по S742, показанные на фиг.69. Однако, эти процессы выполняются блоком 534 декодирования вектора.
Процесс определения наличия процесса масштабирования для вектора движения (параллакса) блока временной корреляции и наличие кандидата, выполняемый на этапе S899 на фиг.80, выполняется таким же образом, как описано со ссылкой на блок-схему алгоритма, показанную на фиг.70, и данное описание опускается. Однако, в этом случае, процесс выполняется блоком 534 декодирования вектора и когда процесс, показанный на блок-схеме алгоритма на фиг.70, заканчивается, то последовательность операций процесса возвращается на блок-схему алгоритма, показанную на фиг.80.
Далее будет описан пример последовательности операций процесса режима AMVP, выполняемого на этапе S865, как показано на фиг.78, со ссылкой на блок-схему алгоритма, показанную на фиг.81. Этот процесс выполняется в основном таким же образом, как процесс (фиг.71) на стороне декодирования. Процессы этапов с S911 по S917 выполняются таким же образом, как процессы этапов с S761 по S767, показанные на фиг.71. Однако эти процессы выполняются блоком 533 декодирования вектора.
На этапе S918 блок 533 декодирования вектора декодирует индекс элемента (флаг) списка кандидатов. На этапе S919 блок 533 декодирования вектора получает вектор движения (параллакса), указанный индексом элемента. Когда процесс на этапе S919 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.78.
Процесс генерации кандидата вектора движения (параллакса) из пространственно смежного блока, выполняемого на этапе S911, как показано на фиг.81, осуществляется таким же образом, как описано со ссылкой на блок-схемы алгоритма на фиг.72-77, и их описание будет опущено. Однако, в этом случае процесс выполняется блоком 533 декодирования вектора и когда процесс блок-схемы алгоритма на фиг.72 заканчивается, то последовательность операций процесса возвращается на блок-схему алгоритма, показанную на фиг.81.
Более того, процесс генерирования кандидата вектора движения (параллакса) из блока временной корреляции, выполняемого на этапе S914, как показано на фиг.81, осуществляется таким же образом, как описано со ссылкой на блок-схему алгоритма, показанную на фиг.80, и данное описание будет опущено. Однако, в этом случае процесс выполняется блоком 533 декодирования вектора и когда процесс на блок-схеме алгоритма, как показано на фиг.80, заканчивается, то последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.81.
При выполнении процессов как описано ранее, устройство 500 декодирования изображения может правильно декодировать кодированные данные и устранять причины, вызывающие снижение эффективности кодирования.
Краткое изложение процесса обработки вектора движения (параллакса)
В приведенном выше примере, когда вектор движения (параллакса) генерируется из смежного блока в режиме AMVP, вектор движения (параллакса) извлекается в порядке позиций А0 и А1 для левого смежного блока, например, и процесс заканчивается, когда вектор движения (параллакса) будет найден. Аналогично, вектор движения (параллакса) извлекается в порядке позиций В0, В1 и В2 для верхнего смежного блока, например, и процесс заканчивается, когда вектор движения (параллакса) будет найден. В этом случае, так как определяется, что вектор движения (параллакса) может быть использован как кандидат, например, даже когда вектор движения (параллакса) найден на определенной позиции и не может быть использован как кандидат, извлечение вектора движения (параллакса) на последующих позициях не выполняется.
Способ генерирования вектора движения (параллакса) из смежного блока не ограничивается этим. Например, устанавливается возможность использования вектора движения (параллакса) на всех позициях А0 и А1 или позициях В0, В1 и В2 как кандидата. То есть, присутствие кандидата определяется для смежных блоков на соответствующих позициях и совместно определяется наличие процесса масштабирования.
Таким образом, можно определить, должны ли быть включены в состав кандидата векторы движения (параллакса) на соответствующих позициях, несмотря на то, что процесс становится более сложным, чем описанный ранее пример. То есть, можно получить более подходящие кандидаты и дополнительно увеличить эффективность кодирования.
Фиг.82 является таблицей, где описан пример обработки смежного блока. При предсказании вектора, во-первых, устанавливается необходимость включения вектора движения (параллакса) смежного блока на каждом позиции в состав кандидата вектора, как проиллюстрировано в таблице, изображенной на фиг.82.
То есть, например, когда типы опорного изображения блока кодирования и опорного изображения смежного блока идентичны (то есть, когда оба опорных изображения являются короткими опорными изображениями или длинными опорными изображениями), то вектор движения (параллакса) блока временной корреляции используется как кандидат. Когда типы обоих опорных изображений не идентичны, то векторы исключаются из кандидатов.
После выбора кандидата, определяется необходимость выполнения масштабирования кандидата вектора, как проиллюстрировано в таблице части В на фиг.82.
То есть, например, когда оба опорное изображение блока кодирования и опорное изображение смежного блока являются короткими опорными изображениями, то выполняется масштабирование вектора движения (параллакса) смежного блока. В других случаях, масштабирование вектора движения (параллакса) смежного блока не выполняется.
Последовательность операций процесса при кодировании
Будет описан пример последовательности операций процесса генерирования кандидата вектора движения (параллакса) из левого блока в данном случае, со ссылкой на блок-схему алгоритма, как показано на фиг.83 и 84. Так как процессы, описанные со ссылкой на блок-схемы алгоритма, показанные на фиг.67-72, выполнены таким же образом, как процессы данного случая, то описание данных процессов будет опущено.
Процессы этапов с S921 по S928 на фиг.83 выполнены таким же образом, как процессы этапов с S781 по S788 на фиг.73. Когда процесс на этапах S924 или S928 заканчивается, то процесс генерации кандидата вектора движения (параллакса) из левого блока заканчивается, и последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.72. Кроме того, когда определено на этапе S926, что блок на позиции А1 представляет собой внутрикадровый режим или отсутствует или если определено на этапе S927, что блок на позиции А1 ссылается на опорное изображение отличное от блока кодирования, то последовательность операции переходит к этапу S931, как показано на фиг.84.
На этапе S931 на фиг.84, блок 433 предсказания вектора выбирает блок на позиции А0.
На этапе S932 блок 433 предсказания вектора определяет, является ли блок на позиции А0 внутрикадровым режимом или отсутствует.
Когда определено, что блок на позиции А0 не является ни внутрикадровым режимом, ни отсутствует, то последовательность операции переходит на этап S933. На этапе S933 блок 433 предсказания вектора определяет наличие кандидата вектора движения (параллакса) блока на позиции А0.
На этапе S934 блок 433 предсказания вектора определяет факт включения в состав кандидата на основании результата определения на этапе S933.
Когда определено, что кандидат должен быть включен в состав, последовательность операций переходит на этап S935. На этапе S935 блок 433 предсказания вектора использует вектор движения (параллакса) на позиции А0 как кандидата. Когда процесс на этапе S935 заканчивается, то последовательность операций переходит к этапу S943.
Более того, когда определено на этапе S934, что кандидат не должен быть включен в состав, то последовательность операций переходит на этап S936. На этапе S936 блок 433 предсказания вектора исключает вектор движения (параллакса) блока на позиции АО из кандидатов.
Когда процесс на этапе S936 заканчивается, то последовательность операций переходит к этапу S937. Кроме того, когда определено на этапе S932, что блок на позиции А0 не является ни внутрикадровым режимом, ни отсутствует, то алгоритм переходит на этап S937.
На этапе S937 блок 433 предсказания вектора выбирает блок на позиции А1. На этапе S938 блок 433 предсказания вектора определяет, является ли блок на позиции А1 внутрикадровым режимом или отсутствует. Когда определено, что блок на позиции А1 является внутрикадровым режимом или недоступен, то процесс генерации кандидата вектора движения (параллакса) из левого блока заканчивается, последовательность операций возвращается в блок-схему алгоритма на фиг.72.
Более того, когда определено на этапе S938 на фиг.84, что блок на позиции А1 не является ни внутрикадровым режимом, ни недоступен, то последовательность операций переходит на этап S939. На этапе S939 блок 433 предсказания вектора определяет наличие кандидата вектора движения (параллакса) блока а позиции А1.
На этапе S940 блок 433 предсказания вектора определяет, должен ли быть включен в состав кандидат на основе результата определения на этапе S939.
Когда определено, что кандидат должен быть включен в состав, то последовательность операций переходит на этап S941. На этапе S941 блок 433 предсказания вектора использует вектор движения (параллакса) на позиции А1 как кандидата. Когда процесс на этапе S941 заканчивается, то последовательность операций переходит на этап S943.
Более того, когда определено на этапе S940, что кандидат не должен быть включен в состав, то последовательность операций переходит на этап S942. На этапе S942 блок 433 предсказания вектора исключает вектор движения (параллакса) блока на позиции А1 из кандидата. Когда процесс на этапе S942 заканчивается, то последовательность операций процесса генерации кандидата вектора движения (параллакса) с левого блока заканчивается, и последовательность операций процесса возвращается в блок-схему алгоритма на фиг.72.
На этапе S943 на фиг.84 блок 433 предсказания вектора определяет наличие процесса масштабирования для вектора движения (параллакса) смежного блока.
На этапе S944 блок 433 предсказания вектора определяет, необходимо ли осуществить масштабирование для вектора движения (параллакса) смежного блока на основании результата определения на этапе S943.
Когда определено, что масштабирование необходимо, то последовательность операций переходит на этап S945. На этапе S945 блок 433 предсказания вектора выполняет процесс масштабирования вектора движения (параллакса) смежного блока. Когда процесс на этапе S945 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.72.
Более того, когда определено на этапе S944 на фиг.84, что масштабирование не является необходимым, то последовательность операций процесса возвращается на блок-схему алгоритма на фиг.72.
Далее будет описан пример последовательности операций процесса определения наличия кандидата вектора движения (параллакса) смежного блока, выполняемого на этапах S933 и S939 на фиг.84, со ссылкой на блок-схему алгоритма на фиг.85.
Процессы на этапах с S951 по S954 и S957 на фиг.85 выполнены таким же образом, как процессы этапов с S811 по S814 и S817 на фиг.75.
Когда определено на этапе S953, что опорное изображение блока кодирования является длинным опорным изображением, и определено на этапе S954, что опорное изображение смежного блока является длинным опорным изображением, то блок 433 предсказания вектора устанавливает, что вектор движения (параллакса) смежного блока (блока на позиции А0 или А1) должен быть включен в кандидаты на этапе S955.
Более того, когда определено на этапе S953, что опорное изображение блока кодирования является длинным опорным изображением, и определено на этапе S954, что опорное изображение смежного блока является коротким опорным изображением или когда определено на этапе S953, что опорное изображение блока кодирования является коротким опорным изображением и определено на этапе S957, что опорное изображение смежного блока является длинным опорным изображением, так как типы опорных изображений блока кодирования и смежного блока разные, то блок 433 предсказания вектора устанавливает вектор движения (параллакса) смежного блока (блока на позиции А0 или А1) для исключения из кандидатов на этапе S956.
Более того, когда определено на этапе S953, что опорное изображение блока кодирования является коротким опорным изображением и определено на этапе S957, что опорное изображение смежного блока является коротким опорным изображением, блок 433 предсказания вектора устанавливает вектор движения (параллакса) смежного блока (блок на позиции А0 или А1) для включения в состав кандидатов на этапе S958.
Когда процесс на этапах S955, S956 или S958 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.84.
Далее будет описан пример последовательности операций процесса определения наличия процесса масштабирования для вектора движения (параллакса) смежного блока, выполняемого на этапе S943 на фиг.84, со ссылкой на блок-схему алгоритма на фиг.86.
Процессы на этапах с S961 по S963 и S965 на фиг.86 выполняются таким же образом, как процессы на этапах с S811 по S813 и S817 на фиг.75.
Когда определено на этапе S963, что опорное изображение блока кодирования является длинным опорным изображением, или когда определено на этапе S963, что опорное изображение блока кодирования является коротким опорным изображением, и определено на этапе S965, что опорное изображение смежного блока является длинным опорным изображением, то последовательность операций переходит на этап S964. То есть, если определено, что, по меньшей мере, одно из опорное изображение блока кодирования и опорное изображением смежного блока является длинным опорным изображением, то последовательность операций переходит на этап S964.
На этапе S964 блок 433 предсказания вектора устанавливает, что масштабирование не требуется. Когда процесс на этапе S964 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.84.
Более того, когда определено на этапе S963 на фиг.86, что опорное изображение блока кодирования является коротким опорным изображением, и определено на этапе S965, что опорное изображение смежного блока является коротким опорным изображением (то есть, когда определено, что оба опорные изображения блока кодирования и смежного блока являются короткими опорными изображениями), то последовательность операций переходит к этапу S966.
На этапе S966 блок 433 предсказания вектора устанавливает необходимость осуществления масштабирования. Когда процесс на этапе S966 заканчивается, по последовательность операций возвращается на блок-схему алгоритма на фиг.84.
Далее будет описан пример последовательности операций процесса генерации кандидата вектора движения (параллакса) из верхнего блока со ссылкой на блок-схемы алгоритма, показанные на фиг.87-89.
Процессы этапов с S971 по S982 на фиг.87 выполнены таким же образом, как процессы этапов с S821 по S832 на фиг.76. Когда процессы на этапе S974, S978 или S982 заканчиваются, то последовательность операций переходит на этап S1017 на фиг.89. Более того, когда определено на этапе S980, что блок на позиции В2 является внутрикадровым режимом или отсутствует или если определено на этапе S981, что блок на позиции В2 ссылается на опорное изображение отличное от опорного изображения блока кодирования, то последовательность операций переходит к этапу S991 на фиг.88.
На этапе S991 на фиг.88 блок 433 предсказания вектора определяет, генерирован ли кандидат вектора движения (параллакса) из левого блока.
На этапе S992 блок 433 предсказания вектора выбирает блок на позиции В0.
На этапе S993 блок 433 предсказания вектора определяет, является ли блок на позиции В0 внутрикадровым режимом или отсутствует.
Когда определено, что блок на позиции В0 не является ни внутрикадровым режимом, ни отсутствует, то последовательность операций переходит на этап S994. На этапе S994 блок 433 предсказания вектора определяет наличие кандидата вектора движения (параллакса) блока на позиции В0. Так как этот процесс выполняется таким же образом, как описано со ссылкой на блок-схему алгоритма на фиг.85, то его описание будет опущено.
На этапе S995 блок 433 предсказания вектора определяет, должен ли кандидат быть исключен на основании результата определения на этапе S994.
Когда вектор движения (параллакса) должен быть исключен из кандидата, по последовательность операций переходит к этапу S996. На этапе S996 блок 433 предсказания вектора исключает вектор движения (параллакса) блока на позиции В0 из кандидатов. Когда процесс на этапе S996 заканчивается, по последовательность операций переходит к этапу S998.
Более того, когда определено на этапе S995, что вектор движения (параллакса) не должен быть исключен из кандидатов, то последовательность операций переходит на этап S997. На этапе S997 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции ВО как кандидата. Когда процесс на этапе S997 заканчивается, то последовательность операций переходит на этап S1017 на фиг.89.
Более того, когда определено на этапе S993, что блок на позиции ВО является внутрикадровым режимом или отсутствует, то последовательность операций переходит на этап S998.
На этапе S998 блок 433 предсказания вектора выбирает блок на позиции В1.
На этапе S999 блок 433 предсказания вектора определяет, является ли блок на позиции В1 внутрикадровым режимом или отсутствует.
Когда определено, что блок на позиции В1 не является ни внутрикадровым режимом, ни недоступен, то последовательность операций переходит к этапу S1000. На этапе S1000 блок 433 предсказания вектора определяет наличие кандидата вектора движения (параллакса) блока на позиции В1. Так как этот процесс выполняется таким же образом, как описано со ссылкой на блок-схему алгоритма на фиг.85, то его описание опускается.
На этапе S1001 блок 433 предсказания вектора определяет, должен ли кандидат быть исключен на основании результата определения на этапе S1000.
Когда вектор движения (параллакса) должен быть исключен из кандидатов, то последовательность операций переходит к этапу S1002. На этапе S1002 блок 433 предсказания вектора исключает вектор движения (параллакса) блока на позиции В1 из кандидатов. Когда процесс заканчивается на этапе S1002, то последовательность операций переходит на этап S1011 на фиг 89.
Более того, когда определено на этапе S1001 на фиг.88, что вектор движения (параллакса) не должен быть исключен из кандидатов, то последовательность операций переходит на этап S1003. На этапе S1003 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции В1 как кандидата. Когда процесс заканчивается на этапе S1003, то последовательность операций переходит на этап S1017 на фиг.89.
Более того, когда определено на этапе S999, что блок на позиции В1 является внутрикадровым режимом или отсутствует, то последовательность операций переходит на этап S1011 на фиг 89.
На этапе S1011 на фиг.89 блок 433 предсказания вектора выбирает блок на позиции В2.
На этапе S1012 блок 433 предсказания вектора определяет, является ли блок на позиции В2 внутрикадровым режимом или отсутствует.
Когда определено, что блок на позиции В2 не является ни внутрикадровым режимом, ни недоступен, то последовательность операций переходит к этапу S1013. На этапе S1013 блок 433 предсказания вектора определяет наличие кандидата вектора движения (параллакса) блока на позиции В2. Так как этот процесс выполняется таким же образом, как описано со ссылкой на блок-схему алгоритма на фиг.85, то его описание будет опущено.
На этапе S1014 блок 433 предсказания вектора определяет, должен ли кандидат быть исключен на основании результата определения на этапе S1013.
Когда вектор движения (параллакса) должен быть исключен из кандидатов, последовательность операций переходит к этапу S1015. На этапе S1015 блок 433 предсказания вектора исключает вектор движения (параллакса) блока на позиции В2 из кандидатов. Когда процесс на этапе S1015 заканчивается, то последовательность операций переходит на этап S1017.
Более того, когда определено на этапе S1014, что вектор движения (параллакса) не должен быть исключен из кандидатов, то последовательность операций переходит на этап S1016. На этапе S1016 блок 433 предсказания вектора использует вектор движения (параллакса) блока на позиции В2 как кандидата. Когда процесс на этапе S1016 заканчивается, то последовательность операций переходит на этап S1017.
На этапе S1017 блок 433 предсказания вектора определяет наличие процесса масштабирования для вектора движения (параллакса) смежного блока. Так как этот процесс выполняется таким же образом, как описано со ссылкой на блок-схему алгоритма на фиг.86, то его описание будет опущено.
На этапе S1018 блок 433 предсказания вектора определяет необходимость масштабирования для вектора движения (параллакса) смежного блока на основании результата определения на этапе S1017.
Когда определено, что масштабирование необходимо, то последовательность операций переходит на этап S1019. На этапе S1019 блок 433 предсказания вектора выполняет процесс масштабирования вектора движения (параллакса) смежного блока. Когда процесс на этапе S1019 заканчивается, то последовательность операций возвращается на блок-схему алгоритма на фиг.72.
Более того, когда определено на этапе S1018 на фиг.89, что масштабирование не является необходимым, последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.72.
При выполнении соответствующих процессов как описано выше, устройство 400 кодирования изображения может устранить причины, вызывающие снижение эффективности кодирования.
Поскольку устройство 500 декодирования изображения выполняет данные процессы таким же образом, как устройство 400 кодирования изображения, как описано выше, их описание не будет предоставлено. В связи с этим, устройство 500 декодирования изображения может правильно декодировать кодированные данные и устранить причины, вызывающие снижение эффективности кодирования.
Краткое изложение процесса обработки вектора движения (параллакса)
Первый пример был описан ранее со ссылкой на фиг.66-81 и второй пример был описан со ссылкой на фиг.82-89.
Помимо этих примеров, например, в первом примере, когда оба опорное изображение блока кодирования и опорное изображение смежного блока являются длинными опорными изображениями, вектор движения (параллакса) смежного блока может быть использован как кандидат только тогда, когда блок кодирования и смежный блок ссылаются на одинаковые опорные изображения. Когда блок кодирования и смежный блок ссылаются на разные опорные изображения, вектор движения (параллакса) смежного блока может быть исключен из кандидатов и процесс извлечения не может быть обеспечен.
Как описано выше, длинное опорного изображения применяется к фиксированной области, такой как фоновое изображение и изображение другого ракурса. Таким образом, даже когда оба опорное изображение блока кодирования и опорное изображение смежного блока имеют такие длинные опорные изображения, если опорные изображения являются различными изображениями, ожидается, что опорные изображения имеют низкую корреляцию. То есть, можно ожидать, что корреляция между векторами движения (параллакса) блока кодирования и смежного блока незначительна.
Таким образом, за счет исключения шаблона (случай, когда оба опорное изображение блока кодирования и смежного блока имеют длинные опорные изображения и оба изображения являются различными изображениями), когда предполагается, что такая корреляция низка, из кандидатов векторов, можно дополнительно предпринять меры для устранения причин снижения эффективности кодирования. Более того, посредством невыполнения процесса определения наличия кандидата и наличия необходимости масштабирования, можно снизить нагрузку обработки.
Фиг.90 представляет собой таблицу, описывающую другой пример обработки блока временной корреляции и смежного блока. При предсказании вектора, должен ли вектор движения (параллакса) блока временной корреляции быть включен в кандидаты вектора и необходимо ли осуществление масштабирования, определяются на основании данных, указанных в части А таблицы, показанной на фиг.90.
То есть, это то же самое, как в случае, показанном на фиг.66.
Более того, при предсказании вектора, должен ли вектор движения (параллакса) смежного блока быть включен в кандидаты вектора и должно ли быть осуществлено масштабирование, определяются на основании данных, указанных в таблице, показанной в части В на фиг.90.
То есть, например, когда оба опорные изображения блока кодирования и смежного блока имеют длинные опорные изображения и вектор движения (параллакса) смежного блока используется как кандидат только тогда, когда опорные изображения являются одинаковыми. Кроме того, когда эти опорные изображения отличаются, вектор движения (параллакса) смежного блока исключается из кандидата и процесс определения наличия кандидата и наличия масштабирования не осуществляется.
Когда оба опорное изображение блока кодирования и опорное изображение смежного блока являются короткими опорными изображениями, масштабирование вектора движения (параллакса) смежного блока выполняется. Когда оба опорные изображения являются длинными опорными изображениями, масштабирование вектора движения (параллакса) смежного блока не выполняется.
Последовательность операций процесса при кодировании
Будет описан пример последовательности операций процесса генерирования кандидата вектора движения (параллакса) из левого блока данного случая со ссылкой на блок-схемы алгоритма, показанные на фиг.91 и 92. Так как процессы, описанные со ссылкой на блок-схемы алгоритма, показанные на фиг.67-72 выполнены таким же образом, как процессы данного случая, то их описание не приводится.
Процессы на этапах с S1031 по S1038 на фиг.91 выполнены в основном таким же образом, как процессы на этапах с S781 по S788 на фиг.73. Когда процессы на этапе S1034 или S1038 заканчиваются, то последовательность операций процесса генерирования кандидата вектора движения (параллакса) из левого блока заканчивается, и последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.72. Более того, когда определено на этапе S1035, что блок на позиции А1 является внутрикадровым режимом или отсутствует, то последовательность операций переходит к этапу S1041 на фиг.92.
Однако, когда определено на этапе S1037 на фиг.91, что блок на позиции А1 ссылается на опорное изображение, отличное от блока кодирования, то алгоритм переходит на этап S1039.
На этапе S1039 блок 433 предсказания вектора определяет, являются ли оба опорные изображения блока кодирования и смежного блока длинными опорными изображениями.
Когда определено, что оба опорные изображения блока кодирования и смежного блока являются длинными опорными изображениями, то процесс генерирования кандидата вектора движения (параллакса) из левого блока заканчивается, и последовательность операций возвращается на блок-схему алгоритма, показанную на фиг.72.
Более того, когда определено, что, по меньшей мере, одно из опорных изображений блока кодирования и смежного блока является коротким опорным изображением, последовательность операций переходит на этап S1041 на фиг.92.
Процессы этапов с S1041 по S1051 на фиг.92 выполнены таким же образом, как процессы этапов с S791 по S799 на фиг.74.
То есть, когда определено, что оба опорные изображения блока кодирования и смежного блока являются длинными опорными изображениями, все процессы на блок-схеме на фиг.92 не предусмотрены. Таким образом, можно уменьшить нагрузку обработки.
Далее будет описан пример последовательности операций процесса генерирования кандидата вектора движения (параллакса) верхнего блока данного случая со ссылкой на блок-схемы алгоритма, показанные на фиг.93 и 94.
Процессы этапов с S1071 по S1082 на фиг.93 выполнены в основном таким же образом, как процессы этапов с S821 по S832 на фиг.76. Когда процесс на этапе S1074, S1078 или S1082 заканчивается, процесс генерации кандидата вектора движения (параллакса) верхнего блока заканчивается и процесс возвращается на блок-схему алгоритма на фиг.72. Более того, когда определено на этапе S1080, что блок на позиции В2 является внутрикадровым режимом или отсутствует, то последовательность операций переходит к этапу S1091 на фиг.94.
Однако, когда определено на этапе S1081 на фиг.93, что блок на позиции В2 относится к опорному изображению, отличному от блока кодирования, то последовательность операций переходит на этап S1083.
На этапе S1083 блок 433 предсказания вектора определяет, является ли оба опорных изображения блока кодирования и смежного блока длинными опорными изображениями.
Когда определено, что оба опорные изображения блока кодирования и смежного блока являются длинными опорными изображениями, процесс генерации кандидата вектора движения (параллакса) верхнего блока заканчивается, то процесс возвращается на блок-схему алгоритма на фиг.72.
Более того, когда определено, что, по меньшей мере, одно опорное изображение блока кодирования и смежного блока является коротким опорным изображением, то последовательность операций переходит на этап S1091 на фиг.94.
Процессы этапов с S1091 по S1105 на фиг.94 выполнены таким же образом, как процессы этапов с S841 по S855 на фиг.77.
То есть, когда определено, что оба опорные изображения блока кодирования и смежного блока являются длинными опорными изображениями, все процессы на блок-схеме алгоритма на фиг.94 не предусмотрены. Таким образом, можно уменьшить нагрузку обработки.
Ряд процессов могут быть применены при кодировании и декодировании многоракурсного изображения (многоракурсный кодер и декодер). То есть, эффективность кодирования может быть повышена при осуществлении кодирования и декодирования многоракурсного изображения. Ряд процессов могут быть применены к уровню кодированного изображения (пространственная масштабируемость) и к уровню декодированного изображения (многоуровневый кодер и декодер). То есть, эффективность кодирования может быть улучшена при осуществлении кодирования и декодирования уровней изображений.
Более того, последовательность процессов может быть применена к так называемому 2D изображению одноракурсному изображению (1-ракурс).
Настоящая технология может быть применена к устройству кодирования информации изображения и способу декодирования изображения, которые используются, когда информация изображения (битовый поток), который был сжат ортогональным преобразованием, таким как дискретным косинусным преобразованием и компенсацией движения, как в случае MPEG, Н.26х, и т.п., принимается через сетевую среду, такую как спутниковое вещание, кабельное телевидение, интернет или сотовый телефон. Более того, настоящая технология может быть применена для устройства кодирования изображения и устройства декодирования изображения, которые используются, когда информация изображения (битовый поток) обрабатывается на носителе данных, таком как оптический или магнитный диск или флэш-память. Дополнительно, настоящая технология может быть применена к устройству компенсации предсказания движения, включенного в состав устройства кодирования изображения, устройства декодирования изображения и тому подобное.
7. Седьмой вариант осуществления
Компьютер
Описанная выше последовательность процессов может быть выполнена не только посредством аппаратных средств, но также посредством программного обеспечения. Когда серия процессов выполняются с помощью программного обеспечения, программа, включенная в состав программного обеспечения, устанавливается на компьютере. Здесь, компьютер может представлять собой компьютер, интегрированный в эксклюзивный вариант аппаратных средств или быть типовым персональным компьютером, который может выполнять различные функции путем установки различных программ в компьютер.
На фиг.95 показан CPU (центральный процессор) 701 персонального компьютера 700, который выполняет различные процессы в соответствии с программой, сохраненной в ROM (постоянное запоминающее устройство) 702, или программой, загруженной из блока 713 памяти в RAM (оперативное запоминающее устройство) 703. Данные, необходимые для CPU 701 для выполнения различных процессов, также соответствующим образом хранятся в RAM 703.
CPU 701, ROM 702 и RAM 703 соединены друг с другом через шину 704. Входной/выходной интерфейс 710 также подключен к шине 704.
Входной блок 711 представляет собой клавиатуру, мышь и т.п., выходной блок 712 является дисплеем, имеющий CRT (электронно-лучевую трубку) и LCD (жидкокристаллический дисплей), громкоговоритель и тому подобное, блок 713 памяти представляет собой жесткий диск и т.п., и блок 714 связи образован модемом и т.п.подключены к входному/выходному интерфейсу 710. Устройство 714 связи выполняет процесс коммуникации через сеть, в том числе используя Интернет.
Дисковод 715 подключен к входному/выходному интерфейсу 710 при необходимости, съемный носитель 721 информации, такой как магнитный диск, оптический диск, магнитооптический диск и полупроводниковое запоминающее устройство, надлежащим образом установленный на нем, и компьютерная программа, считываемая с носителя, устанавливается на блоке 713 памяти по мере необходимости.
Когда серия процессов выполняется с помощью программного обеспечения, программа, включенная в состав программного обеспечения, устанавливается через сеть или носитель информации.
Носитель информации состоит не только из съемного носителя 721, представляющий собой магнитный диск (в том числе гибкий диск), оптический диск (в том числе CD-ROM (постоянная память на компакт-диске) и DVD (цифровой универсальный диск)), магнитооптический диск (в том числе MD (мини-диск)) и полупроводниковое запоминающее устройство, в котором записана программа, для распределения пользователем программ отдельно от основного устройства, но также и ROM 702, в котором программа записывается, и жесткий диск блока 713 памяти используется пользователем в состоянии, будучи встроенным заранее в основное устройство, как показано на фиг.95, например.
Программа, выполняемая компьютером, может быть программой осуществления обработки во временно-последовательном порядке в соответствии с процедурами, описанными в данном описании, и может быть программой для выполнения параллельной обработки или в необходимый момент времени, как ответ на запрос.
Здесь, в этом описании, этапы, описывающие программу, записанную на носителе информации, включают в себя не только обработку, которая выполняется во временно-последовательном порядке, в соответствии с описанными процедурами, но также обработку, которая выполняется параллельно и/или по отдельности, даже если это не всегда выполняются временно-последовательным образом.
В данном описании термин "система" используется для обозначения устройства в целом, которая включает в себя множество устройств (приспособлений).
В приведенном выше описании, конфигурация, описанная как одно приспособление (или процессор), может быть разделена на множество приспособлений (или процессоров). Альтернативно, конфигурация, описанная как множество устройств (или процессоров) может быть интегрирована в одно устройство (или процессор). Более того, конфигурация, кроме тех, которые обсуждались выше, может быть включена в состав описанной выше конфигурации каждого приспособления (или каждого процессора). Если рассматривается конфигурация и функционирование системы в целом, по существу, представляет собой то же самое, что и часть конфигурации приспособления (или процессора), которая может быть добавлена к конфигурации другого приспособления (или другого процессора). Варианты осуществления настоящего изобретения не ограничивается вышеописанными вариантами осуществления, но различные модификации могут быть сделаны в рамках сущности настоящего изобретения. 8. Восьмой вариант осуществления
Устройство кодирования изображения и устройство декодирования изображения в соответствии с вышеописанными вариантами осуществления могут быть применены в различных электронных устройствах, таких как передатчик или приемник, которые передают сигналы кабельного вещания (например, спутниковое вещание или кабельное телевидение) или по сети интернет и доставляют сигналы на оконечные устройства сотовой связи, записывающие устройства, которые записывает изображения на носителе, таком как оптический диск, магнитный диск или флэш-память, или воспроизводящие устройства, которое воспроизводит изображения с этих носителей информации. Четыре примера применения будут описаны ниже.
Первый пример применения: Телевизионное устройство
Фиг.96 иллюстрирует пример схематической конфигурации телевизионного устройства, к которому применяется вышеописанный вариант осуществления.
Телевизионное устройство 900 включает в себя антенну 901, тюнер 902, демультиплексор 903, декодер 904, процессор 905 видеосигнала, дисплей 906, процессор 907 аудио сигнала, громкоговоритель 908, внешний интерфейс 909, блок 910 управления, пользовательский интерфейс 911 и шину 912.
Тюнер 902 извлекает сигнал желаемого канала из широковещательной сигнала, принятого через антенну 901 и демодулирует извлеченный сигнал. Затем тюнер 902 вырабатывает закодированный битовый поток, полученный путем демодуляции демультиплексором 903. То есть, тюнер 902 служит в качестве средства передачи в телевизионном приспособлении 900, которое принимает кодированный поток, в котором закодировано изображение.
Демультиплексор 903 разделяет видеопоток и аудиопоток программы для просмотра из кодированного битового потока и поставляет каждый отделенный поток в декодер 904. Более того, демультиплексор 903 извлекает вспомогательные данные, такие как EPG (электронный телегид) из закодированного битового потока, и поставляет выделенные данные в блок 910 управления. Демультиплексор 903 может дескремблировать, когда кодированный битовый поток скремблирован.
Декодер 904 декодирует видеопоток и аудиопоток, поданный на вход из демультиплексора 903. Затем декодер 904 вырабатывает видеоданные, генерируемые в результате выполнения процесса декодирования, в процессор 905 видеосигнала. Кроме того, декодер 904 направляет аудиоданные, генерируемые в процессе декодирования, в процессор 907 аудио сигнала.
Процессор 905 видеосигнала воспроизводит видеоданные, поданные на вход из декодера 904, обеспечивая возможность дисплею 906 отображать видеосигнал. Процессор 905 видеосигнала также может обеспечить возможность дисплею 906 отображать экранное приложение, поставляемое через сеть. Процессор 905 видеосигнала также может выполнять дополнительный процесс, такой как удаление шума, например, в видеоданных в соответствии с настройками. Кроме того, процессор 905 видеосигнала может генерировать GUI (графический интерфейс пользователя) изображение, такое как меню, кнопки и курсор, например, наложить сгенерированное изображение на выходное изображение.
Дисплей 906 управляется сигналом управления, подаваемым процессором 905 видеосигнала, для отображения видеосигнала или изображения на экране дисплея (например, на жидкокристаллическом дисплее, плазме, OELD (органическом электролюминесцентном дисплее (органический EL дисплей) и тому подобное).
Процессор 907 аудио сигнала выполняет процесс воспроизведения, такой как D/A преобразование и усиление аудио данных, поставленных на вход из декодера 904, и обеспечивает работу громкоговорителя 908 для выработки аудио сигнала. Процессор 907 аудио сигнала может также выполнять дополнительный процесс, такой как удаление шума из аудио данных.
Внешний интерфейс 909 представляет собой интерфейс для подключения телевизионного приспособления 900 к внешнему устройству или сети. Например, видеопоток или аудио поток, принятый через внешний интерфейс 909 может быть декодирован декодером 904. То есть, внешний интерфейс 909 также служит в качестве средства передачи в телевизионном приспособлении 900, которое принимает кодированный поток, в который кодируется изображение.
Блок 910 управления включает в себя процессор, такой как CPU и память, такую как RAM и ROM. Память хранит программу, исполняемую процессором, данные программы, данные EPG, данные, полученные через сеть и тому подобное. Программа сохраняется в памяти и считывается с помощью CPU при запуске телевизионного приспособления 900 для выполнения, например. CPU управляет функционированием телевизионного приспособления 900, согласно сигналу управления, поданного на вход с пользовательского интерфейса 911, например, путем выполнения программы.
Пользовательский интерфейс 911 подключен к блоку 910 управления. Пользовательский интерфейс 911 включает в себя кнопку и переключатель для пользователя для управления работой телевизионного приспособления 900, приемником сигнала управления пульта дистанционного управления и тому подобное, например. Пользовательский интерфейс 911 обнаруживает управляющее действие, осуществляемое пользователем с помощью компонентов для генерирования сигналов управления, и выводит сгенерированный сигнал управления в блок 910 управления.
Шина 912 соединяет тюнер 902, демультиплексор 903, декодер 904, процессор 905 видеосигнала, процессор 907 аудио сигнала, внешний интерфейс 909 и блок 910 управления друг с другом.
В телевизионном устройстве 900, выполненным таким образом, декодер 904 имеет функции устройства 50 декодирования изображения в соответствии с описанным выше вариантом осуществления. Таким образом, когда изображение декодируется в телевизионном устройстве 900, может быть осуществлены меры, направленные на устранение причин снижения эффективности кодирования.
Второй пример применения: мобильный телефон
Фиг.97 иллюстрирует пример схематичной конфигурации мобильного телефона, к которому применяется вышеописанный вариант осуществления. Мобильный телефон 920 включает в себя антенну 921, блок 922 связи, аудиокодек 923, громкоговоритель 924, микрофон 925, блок 926 камеры, процессор 927 изображения, блок 928 мультиплексирования/отделения, блок 929 записи/воспроизведения, дисплей 930, блок 931 управления, операционный блок 932 и шину 933.
Антенна 921 подключена к устройству 922 связи. Громкоговоритель 924 и микрофон 925 подключены к аудиокодек 923. Операционный блок 932 соединен с блоком 931 управления. Шина 933 соединяет блок 922 связи, аудиокодек 923, блок 926 камеры, процессор 927 изображения, блок 928 мультиплексирования/отделения, блок 929 записи/воспроизведения, дисплей 930 и блок 931 управления друг с другом.
Мобильный телефон 920 выполняет операции, такие как передача/прием аудио сигнала, передача/прием сообщений электронной почты или данных изображения для использования и записи данных в различных режимах работы, включающие в себя режим аудио связи, режим передачи данных, режим съемки и режим видеотелефона.
В режиме аудио связи, аналоговый звуковой сигнал, генерируемый микрофоном 925, подается в аудиокодек 923. Аудиокодек 923 преобразует аналоговый аудио сигнал в аудио данные и A/D преобразовывает преобразованные аудио данные сжатием. Затем, аудиокодек 923 поставляет сжатые аудиоданные в блок 922 связи. Блок 922 связи кодирует и модулирует аудиоданные для генерирования сигнала передачи. Затем блок 922 связи передает сгенерированный сигнал передачи в базовую станцию (не показано) через антенну 921. Более того, блок 922 связи усиливает беспроводной сигнал, принятый антенной 921, и применяет преобразование частоты для получения сигнала приема. Затем блок 922 связи генерирует аудиоданные посредством демодуляции и декодирования сигнала приема и подает сгенерированные аудиоданные в аудиокодек 923. Аудиокодек 923 распаковывает аудиоданные и осуществляет D/A преобразование для генерации аналогового аудио сигнала. Далее, аудиокодек 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 и последовательность изображений отображается на дисплеем 930. Аудиокодек 923 распаковывает аудио поток и осуществляет D/A преобразование для генерации аналогового аудио сигнала. Затем, аудиокодек 923 поставляет сгенерированный аудио сигнал в громкоговоритель 924 для воспроизведения звукового сигнала.
В мобильном телефоне 920, выполненным таким образом, процессор 927 изображения имеет функции устройства 10 кодирования изображения и устройства 50 декодирования изображения в соответствии с вышеописанным вариантом осуществления. Таким образом, когда изображения кодируются и декодируются в мобильном телефоне 920, можно принять меры, предотвращающие снижение эффективности кодирования.
Третий пример применения: устройство записи/воспроизведения
Фиг.98 иллюстрирует пример схематической конфигурации устройство записи/воспроизведения, к которому применяется вышеописанный вариант осуществления. Данное устройство 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 может быть интерфейсом ШЕЕ 13 94, сетевым интерфейсом, интерфейсом 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 disk (зарегистрированный товарный знак) и тому подобное, например.
Селектор 946 выбирает закодированный битовый поток, поданный на вход из тюнера 941 или кодера 943, и направляет выбранный кодированный битовый поток на HDD 944 или дисковод 945 для записи видео и аудио. Кроме того, селектор 946 выводит кодированный входной битовый поток, поданный на вход их HDD 944 или дисковода 945, в декодер 947 при воспроизведении видео и аудио.
Декодер 947 декодирует закодированный битовый поток для генерации видеоданных и аудиоданных. Затем, декодер 947 направляет сгенерированные видеоданные в OSD 948. Более того, декодер 904 выводит сгенерированные аудиоданные на внешний громкоговоритель.
OSD 948 воспроизводит поступившие на вход видеоданные из декодера 947 для отображения видео. OSD 948 может также наложить GUI изображение, например, меню, кнопку и курсор, например, на отображаемого видео.
Блок 949 управления включает в себя процессор, такой как CPU и память, такую как RAM и ROM. Память хранит программу, исполняемую CPU, данные программы и тому подобное. Программа, хранящаяся в памяти, считывается CPU для выполнения при включении устройства 940 записи/воспроизведения, например. CPU управляет работой устройства 940 записи/воспроизведения согласно вводу сигнала управления из пользовательского интерфейса 950, например, путем выполнения программы.
Пользовательский интерфейс 950 подключен к блоку 949 управления. Пользовательский интерфейс 950 включает в себя кнопку и переключатель для обеспечения управления устройства 940 записи/воспроизведения пользователем и приемник управляющего сигнала пульта дистанционного управления, например. Пользовательский интерфейс 950 обнаруживает действие пользователя через компоненты для генерирования сигнала управления и направляет сгенерированный управляющий сигнал в блок 949 управления.
В устройстве 940 записи/воспроизведения, выполненным таким образом, кодер 943 имеет функции устройства 10 кодирования изображения в соответствии с вышеописанным вариантом осуществления. Более того, декодер 947 имеет функции устройства 50 декодирования изображения в соответствии с описанным выше вариантом осуществления. Таким образом, когда изображения кодируются и декодируются в приспособлении 940 для записи/воспроизведения, причины, вызывающие снижение эффективности кодирования, могут быть устранены.
Четвертый пример применения: устройство формирования изображения
Фиг.99 иллюстрирует пример схематичной конфигурации устройство формирования изображения, к которому применяется вышеописанный вариант осуществления. Устройство 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 формирования изображения включает в себя датчик изображения, такой как CCD (прибор с зарядовой связью) и CMOS (комплементарный металлооксидный полупроводник), и преобразует оптическое изображение, сформированное на поверхности формирования изображения, в сигнал изображения в виде электрического сигнала, полученного при фотоэлектрическом преобразовании. Затем, блок 962 формирования изображения подает сигнал изображения в процессор 963 сигнала.
Процессор 963 сигнала выполняет различные процессы обработки сигнала камеры, такие как коррекция излома характеристики, гамма-коррекция и цветовая коррекция сигнала изображения, поданного на вход из блока 962 формирования изображения. Процессор 963 сигнала направляет данные изображения после процесса обработки сигнала камеры в процессор 964 изображения.
Процессор 964 изображения кодирует данные изображения, поступившие на вход из процессора 963 сигнала для генерации кодированных данных. Затем, процессор 964 изображения выводит сгенерированные кодированные данные на внешний интерфейс 966 или медиа-накопитель 968. Более того, процессор 964 изображения декодирует кодированные данные, поступившие на вход из внешнего интерфейса 966 или медиа-накопителя 968 для генерации данных изображения. Затем процессор 964 изображения выводит данные изображения в блок 965 отображения. Процессор 964 изображения может также вырабатывать данные изображения, поступившие на вход из процессора 963 сигнала 963, на блок 965 отображения для отображения изображения. Процессор 964 изображения также может накладывать данные для отображения, полученные из OSD 969, на изображение, направленное в блок 965 отображения.
OSD 969 генерирует изображение GUI, такое как меню, кнопку и курсор, например, и выводит сгенерированное изображение в процессор 964 изображения.
Внешний интерфейс 966 выполнен как входной/выходной терминал USB, например. Внешний интерфейс 966 подключает устройство 960 формирования изображения и принтер при печати изображения, например. Более того, дисковод подключается к внешнему интерфейсу 966 по мере необходимости. Съемный носитель, такой как магнитный диск и оптический диск, устанавливается на дисководе, например, и программа, считываемая со съемного носителя, может быть установлена на устройстве 960 формирования изображения. Дополнительно, внешний интерфейс 966 может быть сконфигурирован как сетевой интерфейс, подключенный к сети, такой как LAN и Интернету. То есть, внешний интерфейс 966 служит как средство передачи в устройство 960 формирования изображения.
Носитель записи, установленный на медиа-накопитель 968, может быть произвольным съемным носителем считывания/записи, таким как магнитный диск, магнитооптический диск, оптический диск и полупроводниковой памятью, например. Более того, носитель записи может быть закреплен на медиа-накопителе 968, образовывая не портативное устройство памяти, такое как встроенный привод жесткого диска или SSD (твердотельный накопитель), например.
Блок 970 управления включает в себя процессор, такой как, CPU и память, такую как RAM и ROM. Память хранит программу, исполняемую CPU и данных программы. Программа хранится в памяти, которая считывается CPU для выполнения при включении устройства 960 формирования изображения, например. CPU управляет работой устройства 960 формирования изображения в соответствии с сигналом управления, поданным на вход из пользовательского интерфейса 971, например, путем выполнения программы.
Пользовательский интерфейс 971 подключен к блоку 970 управления. Пользовательский интерфейс 971 включает в себя кнопку, переключатель и т.п.для обеспечения управления устройством 960 формирования изображения пользователем, например. Пользовательский интерфейс 971 обнаруживает действие пользователя через компоненты для генерирования сигналов управления и направляет сгенерированный сигнал управления в блок 970 управления.
В устройстве 960 формирования изображения, выполненного таким образом, процессор 964 изображения имеет функции устройства 10 кодирования изображения и устройства 50 декодирования изображения в соответствии с вышеописанным вариантом осуществления. Таким образом, когда изображения кодируются и декодируются в устройстве 960 формирования изображения, могут быть применены меры, предотвращающие снижение эффективности кодирования.
В данном описании описан пример, в котором различные типы информации, такие как пороговые значения, мультиплексируются в заголовках и передаются со стороны кодирования на сторону декодирования. Тем не менее, способ передачи таких элементов информации не ограничивается этим примером. Например, данные элементы информации могут быть переданы или записаны в виде отдельных данных, ассоциированные с кодированным битовым потоком, вместо того, чтобы быть мультиплексированными в кодированный битовый поток. Здесь термин "ассоциированный" означает, что изображение (или часть изображения, как срез и блок), включенное в состав битового потока, и информация, соответствующая изображению, могут быть связаны друг с другом во время декодирования. То есть, информация может быть передана посредством линии передачи, помимо изображения (или битового потока). Дополнительно, информация может быть записана на другом носителе записи (или на другой области записи одного и того же носителя записи), отличного от изображения (или битового потока). Кроме того, информация и изображение (или битовый поток) могут быть ассоциированы друг с другом в необязательных блоках, таких как множества кадров, один кадр или части кадра, например.
Хотя предпочтительные варианты осуществления настоящего изобретения были описаны подробно со ссылкой на прилагаемые чертежи, настоящее изобретение не ограничивается данными вариантами осуществления. Специалистам в данной области техники понятно, что различные модификации и изменения могут быть сделаны в варианте осуществления без отступления от технической сущности, как описано в формуле изобретения. Соответственно, все такие модификации и изменения предназначены для включения в объем настоящего изобретения, как определено в формуле изобретения.
Данная технология может включать в себя следующие положения.
(1) Устройство обработки изображения, включающее в себя:
блок генерирования вектора предсказания, который при кодировании текущего вектора параллакса генерирует вектор предсказания текущего вектора параллакса текущего блока, используемого при предсказании с использованием корреляции в направлении параллакса, используя опорный вектор параллакса, служащий в качестве опорного при генерировании вектора предсказания движения; и
блок генерирования вектора разности, который генерирует вектор разности между текущим вектором параллакса и вектором предсказания, генерируемого блоком генерирования вектора предсказания.
(2) Устройство обработки изображения по (1), в котором
блок генерирования вектора предсказания генерирует вектор предсказания текущего вектора параллакса, используя вектор параллакса совмещенного блока, входящего в состав совмещенного кадра, относящегося к моменту времени, отличному от момента времени текущего кадра, и полученного с того же ракурса, что и текущий ракурс.
(3) Устройство обработки изображения по (2), в котором,
блок генерирования вектора предсказания устанавливает доступность совмещенного блока, когда свойство вектора текущего блока идентично свойству вектора совмещенного блока.
(4) Устройство обработки изображения по (3), в котором
свойство вектора является типом вектора, а
блок генерирования вектора предсказания устанавливает доступность совмещенного блока, когда свойство вектора текущего блока является вектором параллакса и свойство вектора совмещенного блока является вектором параллакса.
(5) Устройство обработки изображения по (3) или (4), в котором
блок генерирования вектора предсказания движения определяет свойство вектора текущего блока и свойство вектора совмещенного блока с использованием РОС (счетчика очередности кадров), который указывает на порядок вывода кадров.
(6) Устройство обработки изображения по (5), в котором
блок генерирования вектора предсказания движения определяет свойство вектора текущего блока и свойство вектора совмещенного блока с помощью РОС текущего кадра, РОС текущего опорного кадра, служащего опорным для текущего кадра, РОС совмещенного кадра и РОС совмещенного опорного кадра, служащего опорным для совмещенного кадра.
(7) Устройство обработки изображения по (6), в котором
блок генерирования вектора предсказания движения определяет, что свойство вектора текущего блока и свойство вектора совмещенного блока являются векторами параллакса, когда РОС текущего кадра совпадает с РОС текущего опорного кадра, служащего в качестве опорного для текущего кадра, и РОС совмещенного кадра совпадает с РОС совмещенного опорного кадра, служащего в качестве опорного для совмещенного кадра.
(8) Устройство обработки изображения по любому из (2) - (7), в котором
блок генерирования вектора предсказания устанавливает недоступность совмещенного блока, когда свойство вектора текущего блока отличается от свойства вектора совмещенного блока.
(9) Устройство обработки изображения по (8), в котором
свойство вектора является типом опорного кадра,
при этом блок генерирования вектора предсказания устанавливает недоступность совмещенного блока, когда тип опорного кадра текущего блока отличается от типа опорного кадра совмещенного блока.
(10) Устройство обработки изображения по (8) или (9), в котором
свойство вектора является типом опорного изображения,
при этом блок генерирования вектора предсказания пропускает процесс поиска опорного индекса, когда тип опорного кадра текущего блока является длинным опорным типом и тип опорного кадра совмещенного блока является длинным опорным типом.
(11) Устройство обработки изображения по любому из (1)-(10), в котором
блок генерирования вектора предсказания генерирует вектор предсказания текущего вектора параллакса с использованием вектора параллакса опорного блока, входящего в состав кадра, относящегося к тому же моменту времени, что и момент текущего кадра и полученного с ракурса, отличного от текущего ракурса.
(12) Устройство обработки изображения по любому из (1)-(11), в котором
блок генерирования вектора предсказания масштабирует опорный вектор параллакса на основании позиционного соотношения между текущим кадром и опорным кадром, служащим в качестве опорного при генерировании вектора предсказания движения, для генерирования вектора предсказания текущего вектора параллакса.
(13) Устройство обработки изображения по любому из (1)-(12), в котором
блок генерирования вектора предсказания генерирует вектор предсказания текущего вектора движения с использованием опорного вектора движения, служащего в качестве опорного при генерировании вектора предсказания движения, при кодировании текущего вектора движения текущего блока, используемого в предсказании с использованием корреляции во временном направлении, и
блок генерирования вектора разности генерирует разностный вектор между текущим вектором движения и вектором предсказания, генерируемый блоком генерирования вектора предсказания.
(14) Устройство обработки изображений по (13), в котором
блок генерирования вектора предсказания генерирует вектор предсказания текущего вектора движения с использованием вектора движения опорного блока, входящего в состав кадра, относящегося к тому же моменту времени, что и момент времени текущего изображения, и полученного с ракурса, отличного от текущего ракурса.
(15) Устройство обработки изображения по (13) или (14), в котором
блок генерирования вектора предсказания генерирует вектор предсказания текущего вектора движения с использованием вектора движения опорного блока, входящего в состав кадра, относящегося к моменту времени, отличному от момента времени текущего изображения, полученного с того же ракурса, что и текущий ракурс.
(16) Устройство обработки изображений по (15), в котором
блок генерирования вектора предсказания масштабирует опорный вектор движения на основании позиционного соотношения между текущим кадром и опорным кадром, служащим в качестве опорного при генерировании вектора предсказания движения, для генерирования вектора предсказания текущего вектора движения.
(17) Устройство обработки изображения по любому из (1) - (16), в котором
блок генерирования вектора предсказания генерирует вектор предсказания с использованием вектора блока, находящегося в той же позиции, что и текущий блок, в состоянии, когда позиция пикселя кадра, относящегося к тому же моменту времени, что и момент времени текущего кадра, и полученного с ракурса, отличного от текущего ракурса, смещена.
(18) Устройство обработки изображений по (17), в котором
блок генерирования вектора предсказания устанавливает величину смещения изображения в соответствии с вектором параллакса смежной области текущего блока.
(19) Устройство обработки изображений по (18), в котором
блок генерирования вектора предсказания использует в Х-направлении вектор параллакса смежного блока, у которого величина вектора параллакса в Y-направлении не равна нулю, в качестве величины смещения.
(20) Устройство обработки изображения по (18) или (19), в котором
блок генерирования вектора предсказания использует значение, вычисленное из векторов параллакса в Х-направлении для множества смежных блоков, у которых значение вектора параллакса в Y-направлении не равно нулю, в качестве величины смещения.
(21) Устройство обработки изображений по (20), в котором
блок генерирования вектора предсказания использует среднее значение или медианное значение векторов параллакса в Х-направлении для множества смежных блоков, у которых значение вектора параллакса в Y-направлении не равно нулю, в качестве величины смещения изображения.
(22) Устройство обработки изображения по любому из (7)-(21), в котором
блок генерирования вектора предсказания устанавливает величину смещения изображения в соответствии с глобальным вектором параллакса.
(23) Способ обработки изображения устройства обработки изображения, обеспечивающий выполнение устройством обработки изображения:
генерирования вектора предсказания для текущего вектора параллакса текущего блока, используемого при предсказании, с использованием корреляции в направлении параллакса, используя опорный вектор параллакса, служащий в качестве опорного при генерировании вектора предсказания движения, при кодировании текущего вектора
параллакса; и
генерирования вектора разности между текущим вектором параллакса и генерируемым вектором предсказания.
(24) Устройство обработки изображений, включающее в себя:
блок генерирования вектора предсказания, который генерирует вектор предсказания для текущего вектора параллакса текущего блока, используемого при предсказании, с использованием корреляции в направлении параллакса, используя опорный вектор параллакса, служащий в качестве опорного при генерировании вектора предсказания движения, при декодировании текущего вектора параллакса; и
арифметический блок, который выполняет операцию сложения вектора предсказания, генерируемого блоком генерирования вектора предсказания, с вектором разности между текущим вектором параллакса и вектором предсказания для восстановления текущего вектора параллакса.
(25) Способ обработки изображения устройства обработки изображения, обеспечивающий выполнение устройством обработки изображения:
генерирования вектора предсказания для текущего вектора параллакса текущего блока, используемого при предсказании, с использованием корреляции в направлении параллакса, используя опорный вектор параллакса, служащий в качестве опорного при генерировании вектора предсказания движения, при декодировании текущего вектора параллакса; и
выполнение операции сложения сгенерированного вектора предсказания с вектором разности между текущим вектором параллакса и вектором предсказания, для восстановления текущего вектора параллакса.
(26) Устройство обработки изображений, включающее в себя:
блок генерирования вектора предсказания, который устанавливает доступность совмещенного блока, когда тип опорного кадра текущего блока отличается от типа опорного кадра совмещенного блока, входящего в состав совмещенного кадра, относящегося к другому моменту времени, чем момент времени текущего кадра, при кодировании текущего вектора движения текущего блока, используемого при предсказании, с использованием корреляции во временном направлении, и генерирует вектор предсказания текущего вектора движения с использованием опорного вектора движения, служащего в качестве опорного при генерировании вектора предсказания движения; и
блок генерирования вектора разности, который генерирует вектор разности между текущим вектором движения и вектором предсказания, генерируемым блоком генерирования вектора предсказания.
(27) Способ обработки изображения устройства обработки изображения, обеспечивающий выполнение устройством обработки изображения:
установки недоступности совмещенного блока, когда тип опорного кадра текущего блока отличается от типа опорного кадра совмещенного блока, входящего в состав совмещенного кадра, относящегося к другому моменту времени, чем момент времени текущего кадра, при кодировании текущего вектора движения текущего блока, используемого при предсказании, с использованием корреляции во временном направлении, и генерирования вектора предсказания текущего вектора движения с использованием опорного вектора движения, служащего в качестве опорного при генерировании вектора предсказания движения; и
генерирования вектора разности между текущим вектором движения и сгенерированным вектором предсказания.
Перечень ссылочных позиций
100 устройство кодирования изображения
115 блок компенсации/предсказания параллакса движения
121 буфер многоракурсного декодированного изображения
131 блок поиска вектора параллакса движения
132 блок генерирования предсказанного изображения
133 буфер накопления кодированной информации
134 селектор
135 блок генерирования вектора предсказания пространственной корреляции
136 блок генерирования вектора предсказания параллакса временной корреляции
137 селектор
138 блок вычисления стоимости кодирования
139 блок определения режима
151 процессор текущей области
152 процессор области корреляции
153 процессор L1 предсказания
154 процессор L0 предсказания
155 процессор схемы 1
156 процессор схемы 2
157 процессор схемы 3
158 процессор схемы 4
159 блок генерирования вектора предсказания
300 устройство декодирования изображения
312 блок компенсации параллакса движения
321 буфер декодированного многоракурсного изображения
331 буфер накопления кодированной информации
332 блок генерирования вектора предсказания пространственной корреляции
333 блок генерирования вектора предсказания параллакса временной корреляции
334 селектор
335 арифметическое устройство
336 блок генерирования предсказанного изображения
400 устройство кодирования изображения
415 блок компенсации/предсказания движения
421 кодер основного ракурса
433, 434 блок предсказания вектора
457 блок генерирования вектора предсказания на основании разностного изображения
471 блок определения вектора параллакса
472 блок генерирования опорного межракурсного вектора
473 блок генерирования опорного внутрикадрового вектора
500 устройство декодирования изображения
512 блок компенсации движения
521 декодер основного ракурса
533, 534 блок декодирования вектора
553 блок генерирования вектора предсказания на основании разностного изображения
571 блок определения вектора параллакса
572 блок генерирования опорного межкадрового вектора
573 блок генерирования опорного внутрикадрового вектора