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

Область техники
[0001] Настоящее изобретение относится к устройству и способу кодирования с предсказанием движущегося изображения и к устройству и способу декодирования с предсказанием движущегося изображения и, более конкретно, к обработке фильтрации соседних выборок для использования в предсказании внутри изображения.
Предшествующий уровень техники
[0002] Технологии кодирования со сжатием используются для эффективной передачи и накопления данных движущихся изображений. Стандарты от MPEG-1 до MPEG-4 и от Н.261 до Н.264 являются широко используемыми технологиями кодирования видео.
[0003] В таких технологиях кодирования видео, обработка кодирования и обработка декодирования выполняются после того, как изображение, подлежащее кодированию, делится на множество блоков. В кодировании с предсказанием внутри изображения, сигнал предсказания генерируют с использованием ранее реконструированного сигнала соседнего изображения (полученного путем восстановления сжатых данных изображения), расположенного в пределах текущего изображения, в которое включен целевой блок, и затем получают разностный сигнал путем вычитания сигнала предсказания из сигнала целевого блока и кодируют. В кодировании с предсказанием между изображений, обращаясь к ранее реконструированному сигналу изображения в пределах изображения, отличного от изображения, в пределы которого включен целевой блок, выполняют компенсацию движения и генерируют сигнал предсказания. Сигнал предсказания вычитают из сигнала целевого блока, чтобы генерировать разностный сигнал, и кодируют разностный сигнал.
[0004] Обычно, в кодировании с предсказанием между изображениями (интер-предсказанием, внешним предсказанием) сигнал предсказания генерируют путем поиска ранее реконструированных изображений для сигнала, сходного с пиксельным сигналом блока, подлежащего кодированию. Вектор движения, который представляет величину пространственного смещения между целевым блоком и областью, образованной найденным сигналом, и остаточный сигнал между пиксельным сигналом целевого блока и сигналом предсказания кодируются. Метод поиска соответствующих блоков для вектора движения таким образом называется проверкой блоков на соответствие.
[0005] Фиг. 10 является схематичной диаграммой для пояснения процесса проверки блоков на соответствие. Здесь процедура для генерации сигнала предсказания описана для примера, в котором изображение 703 включает в себя целевой блок 702, подлежащий кодированию. Опорное изображение 703 было ранее реконструировано. Область 704 расположена в пространственно том же самом положении, где расположен целевой блок 702. В процессе проверки блоков на соответствие определяют область 705 поиска, соседнюю с областью 704, и из пиксельных сигналов в области поиска должна быть определена область 706, которая имеет наименьшую сумму абсолютных разностей из пиксельных сигналов целевого блока 702. Сигнал области 706 становится сигналом предсказания, и величина смещения от области 704 до области 706 определяется как вектор 707 движения. Кроме того, обычно используется способ, в котором множество опорных изображений 703 идентифицируются для каждого целевого блока, выбирается опорное изображение, на котором выполняется проверка блоков на соответствие, и генерируется информация выбора опорного изображения. В Н.264, для того чтобы справиться с локальными изменениями особенностей в изображениях, обеспечивается множество типов предсказания, которые используются с различными размерами блоков каждый для кодирования вектора движения. Типы предсказания согласно Н.264 описаны, например, в патентном документе 2.
[0006] Н.264 также выполняет кодирование с предсказанием внутри изображения (интра-предсказанием, внутренним предсказанием), в котором сигнал предсказания генерируется путем экстраполяции, в предопределенных направлениях, значений ранее реконструированных пикселов, смежных с блоком, подлежащим кодированию. На Фиг. 11 представлена схематичная диаграмма для пояснения предсказания внутри изображения, используемого в ITU H.264. На Фиг. 11(А) целевой блок 802 является блоком, подлежащим кодированию, и пиксельная группа (группа опорных выборок) 801 получена из смежной области, которая включает в себя сигнал изображения, ранее реконструированный в предыдущей обработке, и группа включает в себя пикселы от А до М, смежные с границей целевого блока 802.
[0007] В этом случае сигнал предсказания генерируется путем расширения пиксельной группы (группы опорных выборок) 801 смежных пикселов непосредственно выше целевого блока 802 в направлении вниз. На Фиг. 11(В) сигнал предсказания генерируется путем расширения ранее реконструированных пикселов (от I до L), расположенных слева от целевого блока 804 в направлении вправо. Детальное пояснение для генерации сигнала предсказания приведено, например, в патентном документе 1. Разность от пиксельного сигнала целевого блока вычисляется для каждого из девяти сигналов предсказания, сгенерированных, как показано на Фиг. 11(А)–11(В). Сигнал предсказания, имеющий наименьшее значение разности, выбирается в качестве оптимального сигнала предсказания. Как описано выше, сигналы предсказания (выборки интра-предсказания) могут генерироваться путем экстраполяции пикселов. Описание, приведенное выше, предоставлено в патентном документе 1, указанном ниже.
[0008] Предсказание внутри изображения, показанное в непатентном документе 1, обеспечивает 25 типов способов генерации сигнала предсказания, все из которых выполняются в различных направлениях расширения опорных выборок, в дополнение к 9 типам, описанным выше (всего 34 типа).
[0009] В непатентном документе 1, чтобы подавить искажения в опорных выборках, опорные выборки подвергаются низкочастотной фильтрации, прежде чем будет генерирован сигнал предсказания. Более конкретно, 121-фильтр, имеющий весовые коэффициенты 1:2:1, применяется к опорным выборкам перед процедурой экстраполяции. Эта обработка называется интра-сглаживанием.
[0010] Со ссылкой на Фиг. 7 и 8, описывается предсказание внутри изображения согласно непатентному документу 1. Фиг. 7 показывает пример разделения на блоки. Пять блоков 220, 230, 240, 250 и 260, смежных с целевым блоком 210, который имеет размер N×N выборок, были ранее реконструированы. Для интра-предсказания целевого блока 210, использованы опорные выборки, обозначенные как ref[x] (x=0 до 4N). Фиг. 8 показывает поток процесса интра-предсказания. Во-первых, на этапе 310, опорные выборки ref[x] (x=0 до 4N) извлекаются из памяти, в которую генератор сигнала предсказания для выполнения процесса предсказания внутри изображения сохраняет реконструированные пикселы. На этом этапе некоторые из смежных блоков могут быть не реконструированы из-за порядка кодирования, и все 4N+1 выборок ref[x] могут быть не извлечены. Если это имеет место, пропущенные выборки замещаются выборками, сгенерированными посредством процесса заполнения (значения соседних выборок копируются), при этом подготавливаются 4N+1 опорных выборок. Детали процесса заполнения описаны в непатентном документе 1. Затем, на этапе 320, генератор сигнала предсказания выполняет процесс сглаживания над опорными выборками с использованием 121-фильтра. Наконец, на этапе 330 генератор сигнала предсказания предсказывает сигнал в целевом блоке путем экстраполяции (в направлениях предсказания внутри изображения) и генерирует сигнал предсказания (т.е. выборки интра-предсказания).
Список цитируемых документов
Патентные документы
[0011] Патентный документ 1: Патент США № 6765964
Патентный документ 2: Патент США № 7003035
Непатентные документы
[0012] Непатентный документ 1: B. Bross et al., “High efficiency video coding (HEVC) text specification draft 8”, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, JCTVC-J1003, 10th Meeting: Stockholm, Sweden, 11-20 July, 2012
Сущность изобретения
Техническая задача
[0013] Фиг. 9 показывает пример сигнала, представляющего плоскую область, в которой пиксельные значения являются сходными. Когда исходные пиксельные значения (исходные значения выборок) 410 кодированы грубым квантованием, реконструированные значения (реконструированные значения выборок) 420 в блоке принимают постоянное значение, и ступенчатое искажение появляется на границе 430 блока. Это искажение известно как блоковый шум и обычно устраняется применением фильтра устранения блокового шума к реконструированному изображению. Однако опорная выборка, используемая при предсказании внутри изображения (картинки), является сигналом, подготовленным заранее перед применением процесса фильтрации для удаления блокового шума, так что блоковый шум, остающийся в опорной выборке на границе блока, распространяется на сигнал предсказания (выборки интра-предсказания) целевого блока через предсказание внутри изображения. Блоковый шум, который распространился на сигнал предсказания, не может быть удален посредством процесса устранения блокового шума для реконструированного сигнала и поэтому распространяется непосредственно на группу опорных выборок для следующего целевого блока.
[0014] В непатентном документе 1, 34 различных типа направлений экстраполяции подготовлены в способе экстраполяции предсказания внутри изображения (в направлениях предсказания внутри изображения), так что блоковый шум распространяется при изменении направлений. В результате, множество артефактов оконтуривания формируются в реконструированном сигнале плоской области в изображении. В частности, когда шум распространяется на блок большого размера, артефакты оконтуривания перемещаются по большому блоку, создавая неприятный визуальный эффект.
[0015] 121-фильтр, описанный в разделе, характеризующем предшествующий уровень техники, может эффективно устранять шум в опорных выборках, но не может устранить ступенчатый шум, как показано на Фиг. 9, из-за малого количества отводов.
[0016] Задачей настоящего изобретения является подавить искусственный шум, такой как артефакты оконтуривания, описанные выше.
Решение задачи
[0017] Устройство кодирования с предсказанием движущегося изображения согласно аспекту настоящего изобретения включает в себя средство разделения на блоки для разделения входного изображения на множество блоков, средство генерации сигнала предсказания для генерации с использованием ранее реконструированных опорных выборок, расположенных смежно с целевым блоком, подлежащим кодированию, среди полученных разделением блоков от средства разделения на блоки, сигнала предсказания внутри изображения блока, имеющего высокую корреляцию с целевым блоком. Устройство кодирования с предсказанием движущегося изображения дополнительно включает в себя средство генерации остаточного сигнала для генерации остаточного сигнала между сигналом предсказания целевого блока и пиксельным сигналом целевого блока, средство сжатия остаточного сигнала для сжатия остаточного сигнала, сгенерированного средством генерации остаточного сигнала, средство восстановления остаточного сигнала для генерации реконструированного остаточного сигнала путем восстановления сжатого остаточного сигнала, средство кодирования для кодирования данных сжатия опорного сигнала, и средство хранения блока для восстановления пиксельного сигнала целевого блока путем суммирования сигнала предсказания с реконструированным остаточным сигналом, и сохранение реконструированного пиксельного сигнала целевого блока, подлежащего использованию в качестве опорных выборок. Средство генерации сигнала предсказания выводит опорные выборки из ранее реконструированных блоков, сохраненных в средстве хранения блоков, которые соседствуют с целевым блоком, выбирает две или более ключевых опорных выборки из опорных выборок, выполняет процесс интерполяции между ключевыми опорными выборками для генерации интерполированных опорных выборок, определяет направление предсказания внутри изображения и генерирует сигнал предсказания внутри изображения путем экстраполяции интерполированных опорных выборок на основе определенного направления предсказания внутри изображения. Средство кодирования кодирует информацию о направлении предсказания внутри изображения вместе с данными сжатия остаточного сигнала.
[0018] В устройстве кодирования с предсказанием движущегося изображения, описанном выше, средство генерации сигнала предсказания может избирательным образом выполнять процесс интерполяции опорных выборок или процесс сглаживания опорных выборок, основываясь на сравнении между ключевыми опорными выборками и предопределенным порогом.
[0019] В устройстве кодирования с предсказанием движущегося изображения, описанном выше, опорные выборки могут быть таким опорными выборками, как расположенные на конце группы опорных выборок, и процесс интерполяции может быть процессом билинейной интерполяции, выполняемым над опорными выборками между ключевыми опорными выборками.
[0020] Устройство декодирования с предсказанием движущегося изображения согласно аспекту настоящего изобретения включает в себя средство декодирования для декодирования, из кодированных данных сжатия для множества полученных разделением блоков, информации о направлении предсказания внутри изображения, подлежащей использованию при предсказании внутри изображения целевого блока, подлежащего декодированию, и сжатого остаточного сигнала, средство генерации сигнала предсказания для генерации сигнала предсказания внутри изображения с использованием информации о направлении предсказания внутри изображения и ранее реконструированных опорных выборок, расположенных смежно с целевым блоком, средство восстановления остаточного сигнала для восстановления реконструированного остаточного сигнала целевого блока из сжатого остаточного сигнала и средство хранения блоков для восстановления пиксельного сигнала целевого блока путем суммирования сигнала предсказания с реконструированным остаточным сигналом и сохранения реконструированного пиксельного сигнала целевого блока, подлежащего использованию в качестве опорных выборок. Средство генерации сигнала предсказания получает опорные выборки из ранее реконструированных блоков, сохраненных в средстве хранения блоков, которые соседствуют с целевым блоком, выбирает две или более ключевых опорных выборок из опорных выборок, выполняет процесс интерполяции между ключевыми опорными выборками для генерации интерполированных опорных выборок, и генерирует сигнал предсказания внутри изображения путем экстраполяции интерполированных опорных выборок на основе направления предсказания внутри изображения.
[0021] В устройстве декодирования с предсказанием движущегося изображения, описанном выше, средство генерации сигнала предсказания может избирательно выполнять процесс интерполяции опорных выборок или процесс сглаживания опорных выборок, на основе сравнения между ключевыми опорными выборками и предопределенным порогом.
[0022] В устройстве декодирования с предсказанием движущегося изображения, описанном выше, опорные выборки могут быть такими опорными выборками, как расположенные на конце группы опорных выборок, и процесс интерполяции может быть процессом билинейной интерполяции, выполняемым над опорными выборками между ключевыми опорными выборками.
[0023] Настоящее изобретение может быть осуществлено, как относящееся к способу кодирования с предсказанием движущегося изображения к способу декодирования с предсказанием движущегося изображения, к программе кодирования с предсказанием движущегося изображения и к программе декодирования с предсказанием движущегося изображения и может быть описано следующим образом.
[0024] Способ кодирования с предсказанием движущегося изображения согласно аспекту настоящего изобретения выполняется устройством кодирования с предсказанием движущегося изображения. Способ кодирования с предсказанием движущегося изображения включает в себя этап разделения на блоки для разделения входного изображения на множество блоков, этап генерации сигнала предсказания для генерации, с использованием ранее реконструированных опорных выборок, расположенных смежно с целевым блоком, подлежащим кодированию, среди полученных разделением блоков с этапа разделения на блоки, сигнала предсказания внутри изображения блока, имеющего высокую корреляцию с целевым блоком, этап генерации остаточного сигнала для генерации остаточного сигнала между сигналом предсказания целевого блока и пиксельным сигналом целевого блока, этап сжатия остаточного сигнала для сжатия остаточного сигнала, сгенерированного на этапе генерации остаточного сигнала, этап восстановления остаточного сигнала для генерации реконструированного остаточного сигнала путем восстановления сжатого остаточного сигнала, этап кодирования для кодирования сжатого остаточного сигнала, и этап сохранения блока для восстановления пиксельного сигнала целевого блока путем суммирования сигнала предсказания с реконструированным остаточным сигналом и сохранения реконструированного пиксельного сигнала целевого блока, подлежащего использованию в качестве опорных выборок. На этапе генерации сигнала предсказания опорные выборки получают из ранее реконструированных блоков, которые сохранены и соседствуют с целевым блоком, выбирают две или более ключевых опорных выборки из опорных выборок, выполняют процесс интерполяции между ключевыми опорными выборками для генерации интерполированных опорных выборок, определяют направление предсказания внутри изображения и генерируют сигнал предсказания внутри изображения путем экстраполяции интерполированных опорных выборок на основе определенного направления предсказания внутри изображения. На этапе кодирования кодируют информацию о направлении предсказания внутри изображения вместе с данными сжатия остаточного сигнала.
[0025] Способ декодирования с предсказанием движущегося изображения согласно аспекту настоящего изобретения выполняется устройством декодирования с предсказанием движущегося изображения. Способ декодирования с предсказанием движущегося изображения включает в себя этап декодирования для декодирования, из кодированных данных сжатия для множества полученных разделением блоков, информации о направлении предсказания внутри изображения, подлежащей использованию при предсказании внутри изображения целевого блока, подлежащего декодированию, и сжатого остаточного сигнала, этап генерации сигнала предсказания для генерации сигнала предсказания внутри изображения с использованием информации о направлении предсказания внутри изображения и ранее реконструированных опорных выборок, расположенных смежно с целевым блоком, этап восстановления остаточного сигнала для восстановления реконструированного остаточного сигнала целевого блока из сжатого остаточного сигнала, и этап сохранения блоков для восстановления пиксельного сигнала целевого блока путем суммирования сигнала предсказания с реконструированным остаточным сигналом и сохранения реконструированного пиксельного сигнала целевого блока, подлежащего использованию в качестве опорных выборок. На этапе генерации сигнала предсказания получают опорные выборки из ранее реконструированных блоков, которые сохранены и соседствуют с целевым блоком, выбирают две или более ключевых опорных выборок из опорных выборок, выполняют процесс интерполяции между ключевыми опорными выборками для генерации интерполированных опорных выборок, и генерируют сигнал предсказания внутри изображения путем экстраполяции интерполированных опорных выборок на основе направления предсказания внутри изображения.
[0026] Программа кодирования с предсказанием движущегося изображения в соответствии с аспектом настоящего изобретения побуждает компьютер функционировать как средство разделения на блоки для разделения входного изображения на множество блоков, средство генерации сигнала предсказания для генерации, с использованием ранее реконструированных опорных выборок, расположенных смежно с целевым блоком, подлежащим кодированию, среди полученных разделением блоков от средства разделения на блоки, сигнала предсказания внутри изображения блока, имеющего высокую корреляцию с целевым блоком, средство генерации остаточного сигнала для генерации остаточного сигнала между сигналом предсказания целевого блока и пиксельным сигналом целевого блока, средство сжатия остаточного сигнала для сжатия остаточного сигнала, сгенерированного средством генерации остаточного сигнала, средство восстановления остаточного сигнала для генерации реконструированного остаточного сигнала путем восстановления сжатого остаточного сигнала, средство кодирования для кодирования данных сжатия опорного сигнала, и средство хранения блоков для восстановления пиксельного сигнала целевого блока путем суммирования сигнала предсказания с реконструированным остаточным сигналом и сохранения реконструированного пиксельного сигнала целевого блока, подлежащего использованию в качестве опорной выборки. Средство генерации сигнала предсказания выводит опорные выборки из ранее реконструированных блоков, сохраненных в средстве хранения блоков, которые соседствуют с целевым блоком, выбирает две или более ключевых опорных выборки из опорных выборок, выполняет процесс интерполяции между ключевыми опорными выборками для генерации интерполированных опорных выборок, определяет направление предсказания внутри изображения и генерирует сигнал предсказания внутри изображения путем экстраполяции интерполированных опорных выборок на основе определенного направления предсказания внутри изображения. Средство кодирования кодирует информацию о направлении предсказания внутри изображения вместе с данными сжатия остаточного сигнала.
[0027] Программа декодирования с предсказанием движущегося изображения в соответствии с аспектом настоящего изобретения побуждает компьютер функционировать как средство декодирования для декодирования, из кодированных сжатых данных для множества полученных разделением блоков, информации о направлении предсказания внутри изображения, подлежащей использованию при предсказании внутри изображения целевого блока, подлежащего декодированию, и сжатого остаточного сигнала, средство генерации сигнала предсказания для генерации сигнала предсказания внутри изображения с использованием информации о направлении предсказания внутри изображения и ранее реконструированных опорных выборок, расположенных смежно с целевым блоком, средство восстановления остаточного сигнала для восстановления реконструированного остаточного сигнала целевого блока из сжатого остаточного сигнала, и средство хранения блоков для восстановления пиксельного сигнала целевого блока путем суммирования сигнала предсказания с реконструированным остаточным сигналом и сохранения реконструированного пиксельного сигнала целевого блока, подлежащего использованию в качестве опорных выборок. Средство генерации сигнала предсказания получает опорные выборки из ранее реконструированных блоков, сохраненных в средстве хранения блоков, которые соседствуют с целевым блоком, выбирает две или более ключевых опорных выборок из опорных выборок, выполняет процесс интерполяции между ключевыми опорными выборками для генерации интерполированных опорных выборок и генерирует сигнал предсказания внутри изображения путем экстраполяции интерполированных опорных выборок на основе направления предсказания внутри изображения.
Эффекты изобретения
[0028] С использованием процесса фильтрации, применяемого на опорных выборках посредством билинейной интерполяции в соответствии с настоящим изобретением, сигналы в опорных выборках становятся постепенно изменяющимися с использованием выборок на обоих концах опорных выборок, тем самым подавляя такой искусственный шум как артефакты оконтуривания.
Краткое описание чертежей
[0029] Фиг. 1 – блок-схема, показывающая устройство кодирования с предсказанием движущегося изображения согласно варианту осуществления настоящего изобретения.
Фиг. 2 – блок-схема, показывающая устройство декодирования с предсказанием движущегося изображения согласно варианту осуществления настоящего изобретения.
Фиг. 3 – блок-схема последовательности операций, показывающая способ предсказания внутри изображения согласно варианту осуществления настоящего изобретения.
Фиг. 4 – блок-схема последовательности операций, показывающая другой пример способа предсказания внутри изображения согласно варианту осуществления настоящего изобретения.
Фиг. 5 – диаграмма, показывающая аппаратную конфигурацию компьютера для исполнения программы, сохраненной на носителе записи.
Фиг. 6 – общий вид компьютера для исполнения программы, сохраненной на носителе записи.
Фиг. 7 – диаграмма, иллюстрирующая пример опорных выборок, используемых при предсказании внутри изображения.
Фиг. 8 – блок-схема последовательности операций, показывающая способ предсказания внутри изображения согласно уровню техники.
Фиг. 9 – диаграмма, показывающая соотношение между исходным сигналом и реконструированным сигналом в плоской области.
Фиг. 10 – схематичная диаграмма для пояснения процесса оценивания движения при предсказании внутри изображения.
Фиг. 11 – схематичная диаграмма для пояснения предсказания внутри изображения посредством экстраполяции опорных выборок.
Фиг. 12 – диаграмма, иллюстрирующая другой пример опорных выборок, используемых при предсказании внутри изображения.
Фиг. 13 – блок-схема последовательности операций, иллюстрирующая процесс в генераторе 103 сигнала предсказания на Фиг. 1.
Фиг. 14 - блок-схема последовательности операций, иллюстрирующая процесс в генераторе 208 сигнала предсказания на Фиг. 2.
Фиг. 15 - блок-схема последовательности операций, показывающая еще один пример способа предсказания внутри изображения согласно варианту осуществления настоящего изобретения.
Фиг. 16 – блок-схема, показывающая конфигурацию программы кодирования с предсказанием движущегося изображения.
Фиг. 17 – блок-схема, показывающая конфигурацию программы декодирования с предсказанием движущегося изображения.
Варианты осуществления изобретения
[0030] варианты осуществления изобретения будут описаны ниже со ссылками на Фиг. 1-7 и Фиг. 13-17.
[0031] На Фиг. 1 представлена блок-схема, показывающая устройство 100 кодирования с предсказанием движущегося изображения согласно варианту осуществления настоящего изобретения. Как показано на Фиг. 1, устройство 100 кодирования с предсказанием движущегося изображения включает в себя входной вывод 101, модуль 102 разделения на блоки, генератор 103 сигнала предсказания, память 104 кадров, вычитатель 105, преобразователь 106, квантователь 107, обратный квантователь 108, обратный преобразователь 109, сумматор 110, энтропийный кодер 111, выходной вывод 112, память 113 блоков и контурный фильтр 114. Вычитатель 105, преобразователь 106, квантователь 107 функционируют как «средство кодирования», упоминаемое в пунктах формулы изобретения. Обратный квантователь 108, обратный преобразователь 109, сумматор 110 функционируют как «средство декодирования», упоминаемое в пунктах формулы изобретения. Память 104 кадров функционирует как «средство хранения изображения», и память 113 блоков функционирует как «средство хранения блоков».
[0032] Ниже описываются операции устройства 100 кодирования с предсказанием движущегося изображения, сконфигурированного, как описано выше. Сигнал движущегося изображения, состоящий из множества изображений, вводится на входной вывод 101. Модуль 102 разделения на блоки делит изображение, подлежащее кодированию, на множество участков. В варианте осуществления настоящего изобретения, как показано в примере на Фиг. 7, размер блока не ограничен. Множество размеров и форм блоков могут быть соответственно определены в изображении. Порядок кодирования блоков описан, например, в непатентном документе 1. Затем сигнал предсказания генерируется для участка, подлежащего кодированию (далее упоминается как «целевой блок»). В варианте осуществления согласно настоящему изобретению, используются два типа способов предсказания, а именно, предсказание между изображениями и предсказание внутри изображения. Процесс генерации сигнала предсказания в генераторе 103 сигнала предсказания описан далее со ссылкой на Фиг. 13.
[0033] Вычитатель 105 вычитает сигнал предсказания (в линии L103) из сигнала целевого блока (в линии L102), чтобы генерировать остаточный сигнал. Преобразователь 106 выполняет дискретное косинусное преобразование остаточного сигала. Квантователь 107 квантует каждый коэффициент преобразования. Энтропийный кодер 111 кодирует квантованные коэффициенты преобразования и выводит на выходной вывод 112 кодированные коэффициенты преобразования вместе с информацией предсказания, требуемой для генерации сигнала предсказания.
[0034] Для того чтобы выполнить предсказание внутри изображения или предсказание между изображениями над последующим целевым блоком, сжатый сигнал целевого блока подвергается обратной обработке и декодируется. Более конкретно, квантованные коэффициенты преобразования обратно квантуются посредством обратного квантователя 108 и затем подвергаются обратному дискретному косинусному преобразованию с помощью обратного преобразователя 109, при этом восстанавливается остаточный сигнал. Сумматор 110 суммирует восстановленный остаточный сигнал с сигналом предсказания, посланным по линии L103, чтобы воспроизвести сигнал целевого блока. Сигнал реконструированного блока сохраняется в памяти 113 блоков для предсказания внутри изображения. Реконструированное изображение, сформированное из реконструированного сигнала, сохраняется в памяти 104 кадров, после того как блоковый шум, имеющийся в реконструированном изображении, устраняется контурным фильтром 114.
[0035] Со ссылкой на Фиг. 13 поясняется поток обработки сигнала предсказания, выполняемый в генераторе 103 сигнала предсказания. Сначала, на этапе S302, генерируется информация предсказания, требуемая для предсказания между изображениями. Более конкретно, реконструированное изображение, которое ранее было кодировано и затем реконструировано, используется в качестве опорного изображения. Это опорное изображение подвергается поиску на наличие вектора движения и опорного изображения, которое дает сигнал предсказания с наименьшей разницей относительно целевого блока. В этом случае целевой блок вводится по линии L102, а опорное изображение вводится по линии L104. Множество изображений, ранее закодированных и реконструированных, используются в качестве опорных изображений. Детали этого являются теми же самыми, что и в Н.264, который является обычным методом или способом, показанным в непатентном документе 1.
[0036] На этапе S303 генерируется информация предсказания, требуемая для предсказания внутри изображения. Как показано на Фиг. 7, ранее реконструированные пиксельные значения, пространственно смежные с целевым блоком, используются для генерации сигналов предсказания в множестве направлений интра-предсказания. Затем выбирается направление предсказания (режим интра-предсказания), которое дает сигнал предсказания с наименьшей разницей относительно целевого блока. Здесь генератор 103 сигнала предсказания генерирует сигнал предсказания внутри изображения путем получения ранее реконструированных пиксельных сигналов в пределах того же самого изображения, что и опорные выборки, из памяти 113 блоков по линии L113 и экстраполяции этих сигналов.
[0037] Затем, на этапе S304, способ предсказания для применения к целевому блоку выбирается из предсказания между изображениями и предсказания внутри изображения. Например, выбирается один из методов предсказания, который дает значение предсказания с малой разницей относительно целевого блока. Альтернативно, два метода предсказания могут реально выполняться до конца обработки кодирования, и может быть выбран один, который имеет меньшее значение оценки, вычисленное из соотношения между сформированной величиной кодирования и суммой абсолютных значений кодированных разностных изображений. Информация выбора о выбранном методе предсказания посылается в качестве информации, требуемой для генерации сигнала предсказания, на энтропийный кодер 111 по линии L112 для кодирования и затем выводится с выходного вывода 112 (этап S305).
[0038] Если методом предсказания, выбранным на этапе S306, является предсказание между изображениями, на этапе S307 генерируется сигнал предсказания на основе информации движения (вектора движения и информации об опорном изображении). Сгенерированный сигнал предсказания между изображениями выводится на вычитатель 105 по линии L103. На этапе S308 информация о движении посылается в качестве информации, требуемой для генерации сигнала предсказания, на энтропийный кодер 111 по линии L112 для кодирования и затем выводится с выходного вывода 112.
[0039] Если методом предсказания, выбранным на этапе S306, является предсказание внутри изображения, на этапе S309 генерируется сигнал предсказания на основе режима интра-предсказания. Сгенерированный сигнал предсказания внутри изображения выводится на вычитатель 105 по линии L103. На этапе S310 режим интра-предсказания посылается в качестве информации, требуемой для генерации сигнала предсказания, на энтропийный кодер 111 по линии L112 для кодирования и затем выводится с выходного вывода 112.
[0040] Способ кодирования, используемый в энтропийном кодере 111, может представлять собой арифметическое кодирование или может быть кодированием переменной длины.
[0041] На Фиг. 2 представлена блок-схема устройства 200 декодирования с предсказанием движущегося изображения согласно варианту осуществления настоящего изобретения. Как показано на Фиг. 2, устройство 200 декодирования с предсказанием движущегося изображения включает в себя входной вывод 201, анализатор 202 данных, обратный квантователь 203, обратный преобразователь 204 сумматор 205, генератор 208 сигнала предсказания, память 207 кадров, выходной вывод 206, контурный фильтр 209 и память 215 блоков. Обратный квантователь 203 и обратный преобразователь 204 функционируют как «средство декодирования», упоминаемое в пунктах формулы изобретения. Любое другое средство может быть использовано как средство декодирования. Обратный преобразователь 204 может быть опущен. Память 207 кадров функционирует как «средство хранения изображения», и память 215 блоков функционирует как «средство хранения блоков».
[0042] Ниже описывается работа устройства 200 декодирования с предсказанием движущегося изображения, сконфигурированного, как описано выше. Сжатые данные, которые кодированы со сжатием посредством способа, описанного выше, вводятся с входного вывода 201. Сжатые данные включают в себя остаточный сигнал, полученный путем предсказания и кодирования целевого блока из множества блоков из разделенного изображения, а также информацию, требуемую для генерации сигнала предсказания. Как показано в примере на Фиг. 7, размер блока не ограничен. Множество размеров и форм блоков могут быть соответственно определены в изображении. Порядок декодирования блоков описан, например, в непатентном документе 1. Информация, требуемая для генерации сигнала предсказания, включает в себя информацию выбора метода предсказания и информацию движения (для предсказания между изображениями) и режим интра-предсказания (для предсказания внутри изображения).
[0043] Анализатор 202 данных декодирует остаточный сигнал целевого блока, информацию, требуемую для генерации сигнала предсказания, и параметр квантования для сжатых данных. Обратный квантователь 203 обратно квантует декодированный остаточный сигнал целевого блока на основе параметра квантования (по линии L202. Обратный преобразователь 204 далее выполняет обратное дискретное косинусное преобразование над обратно квантованным остаточным сигналом. В результате реконструируется остаточный сигнал. Затем информация, требуемая для генерации сигнала предсказания, посылается на генератор 208 сигнала предсказания по линии L206. Генератор 208 сигнала предсказания генерирует сигнал предсказания целевого блока на основе информации, требуемой для генерации сигнала предсказания. Процесс генерации сигнала предсказания в генераторе 208 сигнала предсказания описан далее со ссылкой на Фиг. 14. Сгенерированный сигнал предсказания посылается на сумматор 205 по линии L208 и суммируется с реконструированным остаточным сигналом. Сигнал целевого блока, таким образом, реконструируется и выводится на контурный фильтр 209 по линии L205 и в то же время сохраняется в памяти 215 блоков для использования для предсказания внутри изображения последующих блоков. Контурный фильтр 209 устраняет блоковый шум из реконструированного сигнала, введенного по линии L205. Реконструированное изображение, в котором устранен блоковый шум, сохраняется в памяти 207 кадров в качестве реконструированного изображения, подлежащего использованию для декодирования и воспроизведения последующих изображений.
[0044] Поток обработки сигнала предсказания, выполняемый в генераторе 208 сигнала предсказания, описан со ссылкой на фиг 14. Сначала, на этапе S402, получают метод предсказания, декодированный анализатором 202 данных.
[0045] Если декодированный метод предсказания является предсказанием внутри изображения (этап S403), то получают информацию движения (вектор движения и информацию опорного изображения), декодированную анализатором 202 данных (этап S404). Обращаются к памяти 207 кадров на основе информации движения, чтобы получить опорный сигнал из множества опорных изображений, и генерируют сигнал предсказания (этап S405).
[0046] Если декодированный метод предсказания представляет собой предсказание внутри изображения (этап S403), то получают режим интра-предсказания, декодированный анализатором 202 данных (этап S406). Обращаются к памяти 215 блоков, чтобы получить ранее реконструированные пиксельные сигналы, расположенные смежно с целевым блоком, в качестве опорных выборок, и генерируют сигнал предсказания на основе режима интра-предсказания (этап S407). Сгенерированный сигнал предсказания выводится на сумматор 205 по линии L208.
[0047] Способ декодирования, используемый в анализаторе 202 данных, может представлять собой арифметическое декодирование или может быть декодированием переменной длины.
[0048] Далее, способ предсказания внутри изображения в варианте осуществления настоящего изобретения описывается со ссылками на Фиг. 3 и Фиг. 7. Более конкретно, описываются детали этапа S309 на Фиг. 13 и этапа S407 на Фиг.14, которые включают в себя способ оценивания выборок интра-предсказания в целевом блоке путем экстраполяции на основе режима интра-предсказания с использованием опорных выборок, полученных из памяти 113 блоков на Фиг. 1 или памяти 215 блоков на Фиг. 2.
[0049] В настоящем изобретении, чтобы подавить шум, такой как артефакты оконтуривания, описанные в разделе, относящемся к технической задаче, процесс билинейной интерполяции применяется к группе опорных выборок, используемых при предсказании внутри изображения, по отношению к блоку, который имеет артефакты оконтуривания. Появление ступенчатого шума на границе блока группы опорных выборок подавляется путем обеспечения плавного изменения сигнала группы опорных выборок.
[0050] Процесс билинейной интерполяции, применяемый к группе опорных выборок, описан со ссылкой на Фиг. 7. Когда целевой блок 210 имеет размер блока N×N выборок, смежная группа 270 опорных выборок из 4N+1 опорных выборок (ref[x] (x=0 до 4N) формируется с использованием ранее реконструированных сигналов, принадлежащих к пяти ранее реконструированным блокам 220, 230, 240, 250 и 260. В настоящем варианте осуществления, три опорных выборки, расположенных на концах группы 270 опорных выборок, а именно, нижняя левая опорная выборка BL=ref[0] и верхняя правая опорная выборка AR=ref[4N] и верхняя левая опорная выборка AL=ref[2N], расположенные в центре группы 270 опорных выборок и сверху слева от целевого блока, определяются как ключевые опорные выборки билинейной интерполяции. Здесь 4N+1 опорных выборок интерполируются следующим образом.
ref’[0]=ref[0] (1)
ref’[i]=BL+(i*(AL-L)+N)/2N (i=1 до 2N-1) (2)
ref’[2N]=ref[2N] (3)
ref’[2N+i]=AL+(i*(AR-AL)+N)/2N (i=1 до 2N-1) (4)
ref’(4N)=ref[4N] (5),
где ref’[x] (x=0 до 4N) представляет значения интерполированных опорных выборок. Уравнения (2) и (4) могут быть преобразованы в уравнения (2)’ и (4)’, соответственно
ref’[i]=((2N-i)*BL+i*AL+N)/2N (i=1 до 2N-1) (2)’
ref’[2N+i]=((2N-i)*AL+i*AR+N)/2N (i=1 до 2N-1) (4)’
[0051] Значения опорных выборок между BL и AL генерируются с помощью ключевых опорных выборок BL и AL путем билинейной интерполяции, и значения опорных выборок между AL и AR генерируются с помощью ключевых опорных выборок AL и AR путем билинейной интерполяции, приводя в результате к тому, что уровни интерполированных значений опорных выборок сделаны плавно изменяющимися. В результате, блоковый шум в сигнале предсказания может быть подавлен.
[0052] Затем, критерии для определения того, следует ли применять билинейную интерполяцию к опорным выборкам, описываются с использованием Фиг. 7. В настоящем варианте осуществления, определение выполняется с использованием трех ключевых опорных выборок и двух опорных выборок на границе блока и двух порогов. THRESHOLD_ABOVE и THRESHOLD_LEFT являются порогами, используемыми в определении, следует ли применять билинейную интерполяцию к опорным выборкам ref[x] (x=2N+1 до 4N-1) в верхней позиции и опорным выборкам ref[x] (x=1 до 2N-1) в левой позиции, соответственно, относительно целевого блока. Билинейная интерполяция применяется к опорной выборке, которая удовлетворяет критериям определения.
[0053] В настоящем варианте осуществления используются критерии определения, изложенные ниже. Interpolate_Above и Interpolate_Left в двух уравнениях, приведенных ниже, являются булевыми значениями. Если правая сторона удовлетворяется, то справедливо «истинно» (1), и билинейная интерполяция применяется. Если правая сторона не удовлетворяется, то справедливо «ложно» (0), и применяется интра-сглаживание посредством обычного 121-фильтра.
Interpolate_Left=abs(BL+AL-2*ref[N])<THRESHOLD_LEFT (6)
Interpolate_Above=abs(AL+AR-2*ref[3N])<THRESHOLD_ABOVE (7)
Когда значения BL, AL и ref[3N] находятся на прямой линии, значение BL+AL-2*ref[N] равно нулю. Аналогичным образом, когда значения AL, AR и ref[3N] находятся на прямой линии, значение AL+AR-2*ref[3N] также равно нулю. Иными словами, два уравнения, приведенные выше, сравнивают величину отклонения ref[N] от прямой линии, соединяющей BL и AL, и величину отклонения ref[3N] от прямой линии, соединяющей Al и AR, с соответствующими порогами. Если вычисленные два отклонения меньше, чем соответствующий порог THRESHOLD_ABOVE или THRESHOLD_LEFT, булево значение (Interpolate_Above или Interpolate_Left) является истинным, и билинейная интерполяция применяется к опорной выборке. В уравнениях (6) и (7) abs(x) вычисляет абсолютное значение х.
[0054] Значения двух порогов (THRESHOLD_ABOVE и THRESHOLD_LEFT) могут быть предварительно установлены на фиксированные значения или могут кодироваться для каждого кадра или каждого сегмента (слайса), имеющего множество блоков, совместно и декодироваться декодером. Значения двух порогов могут кодироваться для каждого блока и декодироваться декодером. На Фиг. 2 два порога декодируются анализатором 202 данных и выводятся на генератор 208 сигнала предсказания для использования при генерации сигнала предсказания внутри изображения, детализированного ниже согласно Фиг. 3 и фиг 4.
[0055] Фиг. 3 показывает блок-схему последовательности операций процесса оценивания выборок интра-предсказания путем экстраполяции (в направлениях предсказания внутри изображения). Сначала, на этапе S510, генератор сигнала предсказания (103 или 208, ссылочная позиция далее опускается) получает опорные выборки ref[x] (x=0 до 4N), как показано в пиксельной группе 270 на Фиг. 7, из памяти блоков (113 или 215, ссылочная позиция далее опускается). Если смежные блоки еще не были реконструированы, виду порядка кодирования или по другим причинам, и все из 4N+1 выборок не могут быть получены, отсутствующие выборки подставляются с помощью процесса заполнения (копируются значения соседних выборок), причем подготавливается 4N+1 опорных выборок. Детали процесса заполнения описаны в непатентном документе 1. Затем, на этапе 560, два булевых значения Interpolate_Above и Interpolate_Left вычисляются с помощью уравнений (6) и (7).
[0056] Затем, на этапе 520, генератор сигнала предсказания определяет, удовлетворяет ли целевой блок критериям определения для применения билинейной интерполяции. Более конкретно, определяется, является ли размер целевого блока большим, чем предопределенное М, и также определяется, являются ли оба вычисленные Interpolate_Above и Interpolate_Left истинными. Причина того, почему размер блока установлен в качестве критерия определения, состоит в вероятности того, что проблема артефактов оконтуривания возникает в блоке большого размера. Проверка на определение того, является ли размер блока большим, чем большое значение М, помогает избежать выполнения ненужных изменений в опорных выборках.
[0057] Если два критерия определения удовлетворены (размер бока>=M и Interpolate_Above==истинно и Interpolate_Left==истинно), то процесс переходит к этапу 530. Если не удовлетворены, то процесс переходит к этапу 540. На этапе 530 процесс билинейной интерполяции, показанный уравнениями (1)–(5), применяется к опорным выборкам ref[x] (x=0 до 4N). На этапе 540, в соответствии с уравнениями (8) и (9), к опорным выборкам ref[x] (x=0 до 4N) применяется интра-сглаживание посредством 121-фильтра.
ref’[i]=ref[i] (i=0 до 4N) (8)
ref’[i]=(ref[i-1]+2*ref[i]+ref[i+1]+2)/4 (i=1 до 4N-1) (9),
где ref’[x] (x = 0 до 4N) представляет значения сглаженных опорных выборок.
[0058] Наконец, на этапе 550, выборки интра-предсказания целевого блока оцениваются путем экстраполяции (в направлении предсказания внутри изображения) с использованием уже определенного режима интра-предсказания и интерполированных или сглаженных опорных выборок ref’[x] (x=0 до 4N).
[0059] Фиг. 4 далее иллюстрирует детали Фиг. 3 и показывает блок-схему последовательности операций процесса оценивания выборки интра-предсказания посредством экстраполяции (в направлении предсказания внутри изображения) в случае, когда переключение между билинейной интерполяцией и 121-фильтром выполняется отдельно и независимо для левых опорных выборок (ref[x] (x=0 до 2N) и верхних опорных выборок ref[x] (x=2N до 4N). Сначала, на этапе 610, генератор сигнала предсказания (103 или 208, ссылочная позиция далее опускается) получает опорные выборки ref[x] (x=0 до 4N), как показано в пиксельной группе 270 на Фиг. 7, из памяти блоков (113 или 215, ссылочная позиция далее опускается). Если соседние блоки еще не были реконструированы, ввиду порядка кодирования или по другим причинам, и все 4N+1 опорных выборок не могут быть получены, отсутствующие выборки подставляются посредством процесса заполнения (копируются значения смежных выборок), причем подготавливаются 4N+1 опорных выборки. Детали процесса заполнения описаны в непатентном документе 1.
[0060] Затем, на этапе 680, два булевых значения Interpolate_Above и Interpolate_Left вычисляются с помощью уравнений (6) и (7).
[0061] Затем, на этапе 620, генератор сигнала предсказания определяет, удовлетворяет ли целевой блок критериям для применения билинейной интерполяции. Более конкретно, определяется, является ли размер целевого блока большим, чем предопределенное значение М, и также определяется, является ли по меньшей мере одно из вычисленных Interpolate_Above и Interpolate_Left истинным. Если эти два критерия определения удовлетворены (размер блока >= M и Interpolate_Above==истинно или Interpolate_Left == истинно), то процесс переходит к этапу 625. Если не удовлетворены, то процесс переходит к этапу 660. На этапе 660 к группе опорных выборок в соответствии с уравнениями (8) и (9) применяется интра-сглаживание посредством 121-фильтра.
[0062] На этапе 625 определяется, удовлетворяется ли критерий определения, как показано в уравнении (6), для применения билинейной интерполяции для левых опорных выборок. Более конкретно, если Interpolate_Left истинно (1), процесс переходит к этапу 630, и процесс билинейной интерполяции, показанный в уравнениях (1) и (2), применяется к опорным выборкам ref[x] (x=0 до 2N), чтобы генерировать интерполированные опорные выборки ref’[x] (x=0 до 2N). Если критерий определения в уравнении (6) не удовлетворен, процесс переходит к этапу 635, и интра-сглаживание посредством 121-фильтра применяется к левым опорным выборкам ref[x] (x=0 до 2N) на основе уравнений (10) и (11).
ref’[0]=ref[0] (10)
ref’[i]=(ref[i-1]+2*ref[i]+ref[i+1]+2)/4(i=1 до 2N-1) (11),
где ref’[x] (x=0 до 2N) представляет значения сглаженных опорных выборок.
[0063] Наконец, на этапе 640, определяется, удовлетворен ли критерий определения, как показано в уравнении (7), для применения билинейной интерполяции для верхних опорных выборок. Более конкретно, если Interpolate_Above действительно (1), процесс переходит к этапу 650, и процесс билинейной интерполяции применяется к верхним опорным выборкам ref[i] (i=2N+1 до 4N) согласно уравнениям (3), (4) и (5). Если критерий определения в уравнении (7) не удовлетворен, процесс переходит к этапу 655, интра-сглаживание посредством 121-фильтра применяется к верхним опорным выборкам ref[x] (x 2N+1 до 4N) на основании уравнений (12), (13) и (14).
ref’[2N]=ref[2N] (12)
ref’[i]=(ref[i-1]+2*ref[i]+ref[i+1]+2)/4(i=2N+1 до 4N-1) (13)
ref’[4N]=ref[4N] (14),
где ref’[x] (x=2N+1 до 4N) представляет значения сглаженных опорных значений.
[0064] Наконец, на этапе 670, выборки интра-предсказания целевого блока оцениваются путем экстраполяции (в направлении предсказания внутри изображения) с использованием уже определенного режима интра-предсказания и интерполированных или сглаженных опорных выборок ref’[х] (х=0 до 4N). Для экстраполяции, когда линия проецируется на направление интра-предсказания в направлении интерполированных или сглаженных опорных выборок из позиции выборки целевом блоке, подлежащем экстраполяции, используются интерполированные или сглаженные опорные выборки, которые расположены вблизи спроецированной линии.
[0065] Программа кодирования с предсказанием движущегося изображения для побуждения компьютера функционировать как устройство 100 кодирования с предсказанием движущегося изображения, описанное выше, может быть предоставлена на носителе записи. Аналогичным образом, программа декодирования с предсказанием движущегося изображения для побуждения компьютера функционировать как устройство 200 декодирования с предсказанием движущегося изображения, описанное выше, может быть предоставлена на носителе записи. Примеры носителей записи включают в себя носитель записи, такой как USB-память, гибкий диск, CD-ROM, DVD или ROM и полупроводниковую память.
[0066] Например, как показано на Фиг. 16, программа Р100 кодирования с предсказанием движущегося изображения включает в себя модуль Р101 разделения на блоки, модуль Р102 генерации сигнала предсказания, модуль Р103 генерации остаточного сигнала, модуль Р104 сжатия остаточного сигнала, модуль Р105 восстановления остаточного сигнала, модуль Р106 кодирования и модуль Р107 хранения блоков.
[0067] Например, как показано на Фиг. 17, программа Р200 декодирования предсказания движущегося изображения включает в себя модуль Р201 декодирования, модуль Р202 генерации сигнала предсказания, модуль Р203 восстановления остаточного сигнала и модуль Р204 хранения блоков.
[0068] Программа Р100 кодирования с предсказанием движущегося изображения или программа Р200 декодирования предсказания движущегося изображения, сконфигурированная таким образом, сохранена на носителе 10 записи, показанном на Фиг. 5 и Фиг. 6, описанном далее, и исполняется компьютером, описанным ниже.
[0069] Фиг. 5 является диаграммой, показывающей аппаратную конфигурацию компьютера 30 для исполнения программы, сохраненной на носителе записи, и Фиг. 6 является общим видом компьютера 30 для исполнения программы, сохраненной на носителе записи. Компьютер 30, упоминаемый здесь, в широком аспекте включает в себя DVD плеер, телевизионную приставку, мобильный телефон и т.п., которые оснащены CPU для выполнения обработки информации или управления программным обеспечением.
[0070] Как показано на Фиг. 6, компьютер 30 включает в себя считыватель 12, такой как накопитель гибкого диска, накопитель CD-ROM или накопитель DVD, рабочую память (RAM) 14, содержащую резидентную операционную систему, память 16 для сохранения программы, сохраненной на носителе 10 записи, устройство 18 отображения, такое как дисплей, мышь 20 и клавиатуру 22, служащие в качестве устройств ввода, устройство 24 связи для передачи/приема данных и CPU 26 для управления исполнением программы. Когда носитель 10 записи вставлен в считыватель 12, компьютер 30 может получать доступ к программе кодирования с предсказанием движущего изображения, сохраненной на носителе 10 записи, из считывателя 12 и может работать как устройство 100 кодирования с предсказанием движущегося изображения, описанное выше с помощью программы кодирования с предсказанием движущегося изображения. Аналогично, когда носитель 10 записи вставляется в считыватель 12, компьютер 30 может получать доступ к программе декодирования с предсказанием движущегося изображения, сохраненной на носителе 10 записи из считывателя 12 и может работать как устройство 200 декодирования с предсказанием движущегося изображения, описанное выше, с программой декодирования с предсказанием движущегося изображения.
[0071] Настоящее изобретение может принимать следующие модификации:
[0072] (А) Критерии определения для применения билинейной интерполяции
Критерии определения для применения билинейной интерполяции не ограничены методом, описанным в предыдущем варианте осуществления. Например, в предположении, что результат определения для применения интерполяции всегда является истинным, этапы 520, 620, 625 и 640 могут быть опущены. В этом случае процесс интерполяции всегда применяется вместо процесса сглаживания посредством 121-фильтра.
[0073] Режим интра-предсказания может быть добавлен к критериям определения. Например, артефакты оконтуривания на границе блока ослабляются посредством процесса устранения блочного шума, и поэтому результат определения для применения процесса интерполяции может всегда быть ложным, когда направление предсказания процесса экстраполяции является вертикальным или горизонтальным.
[0074] Проверка размера блока может быть исключена из критериев определения. Корреляция размера блока между целевым блоком и смежным блоком может быть использована в качестве критерия определения вместо размера блока целевого блока. Например, на Фиг. 7, размер блока для блока 260, расположенного смежно слева от целевого блока 210, больше, чем целевой блок 210. В этом случае блочный шум не возникает вокруг ref[N]. Когда размер блока смежного блока больше, чем целевой блок в этом способе, критерий определения для применения интерполяции может быть ложным независимо от результата в уравнении (6) или (7). С другой стороны, блоки 230, 240 и 250, расположенные смежно выше целевого блока 210, меньше, чем целевой блок 210. В этом случае применение интерполяции определяется в зависимости от результата уравнения (6) или (7), потому что возможно, что блочный шум возникает вокруг ref[3N] или ref[2N+N/2]. Корреляция в размере блока между целевым блоком и смежным блоком может быть использована в качестве критерия определения вместе с размером блока целевого блока.
[0075] Пороги (THRESHOLD_ABOVE и THRESHOLD_LEFT) в уравнениях (6) и (7) могут быть определены отдельно для разных размеров блоков и форм блоков (различий в горизонтальных и вертикальных размерах блоков) или разных режимов интра-предсказания и могут кодироваться и реконструироваться декодером. Альтернативно, значения THRESHOLD_ABOVE и THRESHOLD_LEFT могут быть установлены на то же самое значение, только одно из которых кодируется и декодируется декодером. В декодере, порог, реконструированный анализатором 202 данных на Фиг. 2, вводится в генератор 208 сигнала предсказания. В генераторе 208 сигнала предсказания значения Interpolate_Above и Interpolate_Left вычисляются на основе введенного порога (этап 560 на Фиг. 3 или этап 680 на Фиг. 4).
[0076] Вместо обеспечения критериев определения на этапах 520, 620, 625 и 640, результат определения может быть включен в битовый поток, подлежащий кодированию и декодированию посредством декодера. В этом случае в генераторе 103 сигнала предсказания на Фиг. 1, значения (0 или 1) Interpolate_Above и Interpolate_Left, два значения, получают на основе размера целевого блока, и результаты уравнения (6) и (7) кодируются как информация предсказания, необходимая для предсказания каждого блока в каждой группе блоков, состоящей из множества блоков. Другими словами, эти значения посылаются на энтропийный кодер 111 по линии L112 для кодирования и затем выводятся с выходного вывода 112. Когда значения (0 или 1) Interpolate_Above и Interpolate_Left получены, корреляция размера блоков между целевым блоком и смежным блоком и режим интра-предсказания, как описано выше, может быть использован.
[0077] В анализаторе 202 данных на Фиг. 2 значения Interpolate_Above и Interpolate_Left декодируются для каждого блока или для каждой группы блоков, состоящей из множества блоков, и вводятся в генератор 208 сигнала предсказания. Эти два значения могут быть отдельно кодированы и декодированы, или два значения могут быть кодированы и декодированы как набор.
[0078] Процесс способа предсказания внутри изображения, выполняемый в генераторе 208 сигнала предсказания на Фиг. 2, описан с использованием Фиг. 15. В этом случае Фиг. 15 заменяет Фиг. 4. На Фиг. 14, на этапе S406, получают значения Interpolate_Above и Interpolate_Left, декодированные совместно с режимом интра-предсказания. Сначала, на этапе 710, генератор сигнала предсказания (103 или 208, ссылочная позиция далее опускается) получает опорные выборки ref[x] (x=0 до 4N), как показано в пиксельной группе 270 на Фиг. 7, из памяти блоков (113 или 215, ссылочная позиция далее опускается). Если смежные блоки еще не были реконструированы, ввиду порядка кодирования или других причин, и все 4N+1 опорные выборки не могут быть получены, отсутствующие выборки подставляются с использованием процесса заполнения (копируются значения смежных выборок), при этом подготавливаются 4N+1 опорных выборок. Детали процесса заполнения описаны в непатентном документе 1.
[0079] Затем, на этапе 790, получают значения Interpolate_Above и Interpolate_Left. На этапе 720 генератор сигнала предсказания определяет, принимает ли Interpolate_Above или Interpolate_Left значение «1». Если оно принимает значение «1», процесс переходит к этапу 725. Если не удовлетворяется, процесс переходит к этапу 760. На этапе 760 интра-сглаживание посредством 121-фильтра применяется к группе опорных выборок с использованием уравнений (8) и(9).
[0080] На этапе 725, если значение Interpolate_Left равно «1», процесс переходит к этапу 730, и процесс билинейной интерполяции, показанный в уравнениях (1) и (2), применяется к опорным выборкам ref[x] (x=0 до 2N), чтобы генерировать интерполированные опорные выборки ref’[x] (x=0 до 2N). Если значение Interpolate_Left равно «0», процесс переходит к этапу 735 и интра-сглаживание посредством 121-фильтра применяется к левым опорным выборкам ref[x] (x=0 до 2N) согласно уравнениям (10) и (11).
[0081] Затем, на этапе 740, если значение Interpolate_Above равно «1», процесс переходит к этапу 750, и процесс билинейной интерполяции применяется к верхним опорным выборкам ref[i] (i=2N+1 до 4N) с использованием уравнений (3), (4) и (5). Если значение Interpolate_Above равно «0», процесс переходит к этапу 755, и интра-сглаживание посредством 121-фильтра применяется к левым опорным выборкам ref[x] (x=2N+1 до 4N) с использованием уравнений (12), (13) и (14).
[0082] Наконец, на этапе 770, выборки интер-предсказания целевого бока оцениваются путем экстраполяции (в направлении предсказания внутри изображения) с использованием декодированного режима интра-предсказания и интерполированных или сглаженных опорных выборок ref’[x] (x=0 до 4N).
[0083] (В) Процесс интерполяции
В описании, приведенном выше, билинейная интерполяция используется в процессе интерполяции. Однако другой процесс интерполяции может быть использован, если шум на границе блока может быть устранен. Например, все опорные выборки могут быть заменены средним значением ключевых опорных выборок. Способ процесса интерполяции может быть изменен в соответствии с размером блока или типом предсказания внутри изображения. Способ процесса интерполяции, подлежащий применению, может быть включен в битовый поток, подлежащий кодированию и декодированию.
[0084] (С) Поток процесса предсказания внутри изображения опорных выборок
Поток процесса оценивания выборок интра-предсказания путем экстраполяции (в направлении предсказания внутри изображения) не ограничен процедурой на Фиг. 4. Например, этапы 625, 630 и 635 и этапы 640, 650 и 655 могут переключаться в их порядке. Уравнение (3) и уравнение (12) могут выполняться не на этапах 650 и 655, а на этапах 630 и 635. Такой процесс приводит в результате к тому, что уравнения (1), (3) и (5) и уравнения (10), (12) и (14) являются теми же самыми, они могут выполняться вместе непосредственно перед этапом 625 (между этапами 620 и 625) или непосредственно после этапов 650 и 655 (между этапом 650 или 655 и этапом 670).
[0085] Критерии определения на этапе 620 могут включать в себя только размер блока. В этом случае уравнение (12) может быть заменено уравнениями (15) и (16), поскольку результат процесса является тем же самым, что и на Фиг. 4.
ref’[2N]=ref[2N]
если Interpolate_Above==истинно||Interpolate_Left==истинно (15)
ref’[2N]=(ref[2N-1]+2*ref[2N]+ref[2N+1]+ )/4 иначе (16),
где ref’[2N] представляет значения сглаженной опорной выборки.
[0086] (D) Размер блока
В описании, приведенном выше, целевой блок является квадратным блоком. Процесс интерполяции для опорных выборок согласно настоящему изобретению может быть применен к неквадратному блоку. Пример целевого блока 290 с размером блока Nx2N показан на Фиг. 12. В этом случае число ref[x] есть 3N+1.
[0087] (Е) Ключевая опорная выборка
В описании, приведенном выше, три ключевые опорные выборки расположены в концах и центре группы опорных выборок. Однако число и позиция не ограничены этим. Например, число и позиция могут изменяться в соответствии с размером опорного блока или корреляции между опорным блоком и смежным блоком. Число и позиция ключевых опорных выборок могут также быть включены в битовый поток, подлежащий кодированию и декодированию. Три ключевые опорные выборки на концах и в центре группы опорных выборок могут быть установлены по умолчанию, и то, следует ли использовать значения по умолчанию или другие ключевые опорные выборки, может кодироваться как информация инструкции и декодироваться. В анализаторе 202 данных на Фиг. 2, ключевые опорные выборки обновляются. В качестве ключевых опорных выборок, подлежащих обновлению, ref[N+N/2] и ref[2N+N/2] могут быть добавлены на Фиг. 7 или могут быть использованы вместо ref[2N]. Альтернативно, ref[N/2] и ref[3N+N/2] могут быть использованы вместо ref[0] и ref[4N], и 121-фильтр может быть применен к ref[1] до ref[N/2-1] и ref[3N+N/2] до ref[4N-1].
[0088] (F) Уравнения критериев определения
Уравнения определения, используемые на этапах 520, 620, 625 и 640, не ограничены уравнениями (6) и (7). Например, ref[N+1] и ref[3N+1] могут быть использованы вместо ref[N] и ref[3N] на Фиг. 7.
Список ссылочных позиций:
[0089] 100 - устройство кодирования с предсказанием движущегося изображения
101 - входной вывод
102 - модуль разделения на блоки
103 - генератор сигнала предсказания
104 – память кадров
105 – вычитатель
106 – преобразователь
107 – квантователь
108 – обратный квантователь
109 – обратный преобразователь
110 – сумматор
111 – энтропийный кодер
112 – выходной вывод
113 – память блоков
114 – контурный фильтр
200 – устройство декодирования с предсказанием движущегося изображения
201 – входной вывод
202 – анализатор данных
203 – обратный квантователь
204 – обратный преобразователь
205 – сумматор
206 – выходной вывод
207 - память кадров
208 - генератор сигнала предсказания
209 – контурный фильтр
215 - память блоков