УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ С ПРЕДСКАЗАНИЕМ, СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ С ПРЕДСКАЗАНИЕМ, ПРОГРАММА КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ С ПРЕДСКАЗАНИЕМ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ С ПРЕДСКАЗАНИЕМ, СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ С ПРЕДСКАЗАНИЕМ И ПРОГРАММА ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ С ПРЕДСКАЗАНИЕМ
PREDICTION IMAGE ENCODING APPARATUS, PREDICTION IMAGE ENCODING METHOD, PREDICTION IMAGE ENCODING PROGRAM, PREDICTION IMAGE DECODING APPARATUS, PREDICTION IMAGE DECODING METHOD AND PREDICTION IMAGE DECODING PROGRAM

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Аспект настоящего изобретения относится к устройству кодирования изображений с предсказанием, способу кодирования изображений с предсказанием, и программе кодирования изображений с предсказанием. Другой аспект настоящего изобретения относится к устройству декодирования изображений с предсказанием, способу декодирования изображений с предсказанием, и программе декодирования изображений с предсказанием. В частности, данные аспекты относятся к устройству кодирования изображений с предсказанием, способу кодирования изображений с предсказанием, программе кодирования изображений с предсказанием, устройству декодирования изображений с предсказанием, способу декодирования изображений с предсказанием, и программе декодирования изображений с предсказанием для генерирования предсказанного сигнала целевого блока, используя информацию движения окружающих блоков. Еще один другой аспект настоящего изобретения относится к устройству кодирования видео, способу кодирования видео, программе кодирования видео, устройству декодирования видео, способу декодирования видео, и программе декодирования видео для генерирования предсказанного сигнала с компенсацией движения посредством вектора движения.
УРОВЕНЬ ТЕХНИКИ
Технологии кодирования со сжатием используются для эффективной передачи и хранения неподвижных изображений и видеоданных. Применительно к видеоданным, как правило, используются системы стандартов MPEG-1 по 4 и стандартов ITU (Международного Союза по Телекоммуникациям) H.261 по H.264.
В этих системах кодирования, изображение, служащее в качестве цели кодирования, разделяется на множество блоков, а затем выполняется процесс кодирования или процесс декодирования. При кодировании с внутрикадровым предсказанием предсказанный сигнал генерируется, используя соседний ранее воссозданный сигнал изображения (т.е. сигнал, воссозданный из сжатых данных изображения), который представлен в том же изображении, что и целевой блок, а затем кодируется разностный сигнал, полученный путем вычитания предсказанного сигнала из сигнала целевого блока. При кодировании с межкадровым предсказанием, чтобы генерировать предсказанный сигнал, выполняется компенсация движения, опираясь на соседний ранее воссозданный сигнал изображения, который представлен в изображении, которое отличается от целевого блока, и кодируется разностный сигнал, полученный путем вычитания предсказанного сигнала из сигнала целевого блока.
A
L
Например, кодирование с внутрикадровым предсказанием по стандарту H.264 использует способ генерирования предсказанного сигнала путем экстраполяции ранее воссозданных пиксельных значений соседних для блока, служащего в качестве цели кодирования, в заранее определенном направлении. Фиг. 22 является схематическим представлением для объяснения способа внутрикадрового предсказания, используемого в стандарте ITU H.264. На виде (A) Фиг. 22 целевой блок 802 является блоком, служащщим в качестве цели кодирования, а группа 801 пикселей, состоящая из пикселей P-P, которые являются соседними для границы целевого блока 802, является соседним участком, который является сигналом изображения, ранее воссозданным в прошедшей обработке.
I
L
В случае, который показан на виде (A) Фиг. 22, предсказанный сигнал генерируется путем расширения по направлению вниз группы 801 пикселей, которая включает в себя соседние пиксели, расположенные непосредственно над целевым блоком 802. В случае, который показан на виде (B) Фиг. 22, предсказанный сигнал генерируется путем расширения по направлению вправо ранее воссозданных пикселей (P-P), расположенных слева от целевого блока 804. Конкретные способы генерирования предсказанного сигнала описаны, например, в Патентной Литературе 1. Вычисляется разность между пиксельным сигналом целевого блока и каждым из девяти предсказанных сигналов, сгенерированных способами, которые показаны на видах с (A) по (I) Фиг. 22, в соответствии с описанным выше, и в качестве оптимального предсказанного сигнала выбирается предсказанный сигнал с наименьшей разностью. Как описано выше, предсказанный сигнал может генерироваться посредством экстраполяции пикселей. Представленное выше содержимое описано в приведенной ниже Патентной Литературе 1.
При типичном кодировании с межкадровым предсказанием, предсказанный сигнал для блока, служащего в качестве цели кодирования, генерируется способом поиска ранее воссозданных изображений для сигнала, который аналогичен пиксельному сигналу целевого блока. Затем кодируются вектор движения, который является величиной пространственного смещения между целевым блоком и участком, состоящим из обнаруженного сигнала, и разностный сигнал между пиксельным сигналом целевого блока и предсказанным сигналом. Методика поиска вектора движения для каждого блока в соответствии с описанным выше именуется согласованием блоков.
Фиг. 21 является схематическим представлением для объяснения процесса согласования блоков. Ниже будет описана процедура генерирования предсказанного сигнала для примера целевого блока 702 на кодируемом целевом изображении 701. Изображение 703 является ранее воссозданным изображением, а участок 704 является участком, который пространственно расположен в той же позиции, что и целевой блок 702. При согласовании блоков вокруг участка 704 устанавливают диапазон 705 поиска и по пиксельному сигналу данного диапазона поиска осуществляется обнаружение участка 706 для минимизации суммы абсолютных разностей по отношению к пиксельному сигналу целевого блока 702. Сигнал данного участка 706 определяется как предсказанный сигнал, а величина смещения от участка 704 к участку 706 обеспечивается в качестве вектора 707 движения. Также используется способ подготовки множества опорных изображений 703, выбора опорного изображения, которое должно быть использовано при согласовании блоков для каждого целевого блока, и обнаружения информации выбора опорного изображения. В стандарте H.264 применительно к кодированию векторов движения подготавливается множество типов предсказания с разными размерами блоков с тем, чтобы адаптироваться к локальным изменениям признаков изображений. Типы предсказания стандарта H.264 описаны, например, в Патентной Литературе 2.
При кодировании видеоданных со сжатием очередность кодирования изображений (кадров или полей) может быть произвольной. По этим причинам существует три типа методик в отношении очередности кодирования при межкадровом предсказании для генерирования предсказанного сигнала, опираясь на ранее воссозданные изображения. Первой методикой является прямое предсказание для генерирования предсказанного сигнала, опираясь на ранее воссозданное изображение, которое предшествует в очередности воспроизведения, второй методикой является обратное предсказание для генерирования предсказанного сигнала, опираясь на ранее воссозданное изображение, которое является последующим в очередности воспроизведения, и третьей методикой является двунаправленное предсказание для выполнения как прямого предсказания, так и обратного предсказания, и усреднения двух предсказанных сигналов. Типы межкадровых предсказаний описаны, например, в Патентной Литературе 3.
В находящемся на стадии стандартизации HEVC (Высокоэффективное кодирование видео), которое относится к системам кодирования видео следующего поколения, в дополнение к прямоугольным бисекциям, показанным на видах (B) и (C) Фиг. 20 и делению на квадраты, показанному на виде (D) на Фиг. 20, также рассматривается введение ассиметричных разделов, как показано на видах с (E) по (F) Фиг. 20, в качестве типов разделения на блоки предсказания. В HEVC, дополнительной рассматриваемой методикой является использование информации движения (вектор движения, информация опорного изображения и режим межкадрового предсказания для идентификации прямого/обратного/ двунаправленного предсказания) блока, который является соседним для целевого блока предсказания, служащего в качестве цели предсказания, для случая генерирования предсказанного сигнала блока предсказания, разделенного данным способом. Данная методика предсказания именуется слиянием блоков и отличается тем, что позволяет эффективно кодировать информацию движения. Вид (A) Фиг. 2 является чертежом, который схематически иллюстрирует соседние блоки при слиянии блоков с блоком T1 предсказания, который сгенерирован путем разделения блока 400 кодирования по вертикали. Предсказанный сигнал блока T1 предсказания генерируется, используя 1) информацию движения соседнего блока A, 2) информацию движения соседнего блока B, или 3) информацию движения, которая обнаружена при согласовании блоков. Например, когда кодер выбирает информацию движения соседнего блока A, то кодер сначала устанавливает информацию идентификации слияния (merge_flag), который указывает на использование информации движения соседнего блока, в «merge_flag=1», и передает декодеру информацию идентификации слияния (merge_flag). Затем, кодер устанавливает информацию выбора блока слияния (merge_flag_left), который указывает на использование соседнего блока A из соседнего блока A и соседнего блока B, в «merge_flag_left=1», и передает декодеру информацию выбора блока слияния (merge_flag_left). Декодер, принимая два фрагмента информации, может идентифицировать, что предсказанный сигнал целевого блока предсказания должен генерироваться, используя информацию движения соседнего блока A. Аналогичным образом, когда декодер принимает «merge_flag=1» и «merge_flag_left=0» (выбор соседнего блока B), он может идентифицировать, что предсказанный сигнал целевого блока предсказания должен генерироваться, используя информацию движения соседнего блока B; когда он принимает «merge_flag=0», он может идентифицировать, что требуется дополнительно принять информацию движения от кодера, и восстановить информацию движения целевого блока предсказания. Описанное здесь слияние блоков описано в Непатентной Литературе 1.
При межкадровом предсказании в стандартах, таких как MPEG-1, 2 и MPEG-4, каждое изображение разделяется на набор прямоугольных блоков без перекрытия между ними и вектор движения связывается с каждым из блоков. Вектор движения является вектором, который получен путем поиска движения для каждого блока, и представляет собой горизонтальное смещение и вертикальное смещение текущего блока от второго блока, который используется для предсказания сигнала изображения текущего блока.
Представленная ниже Патентная Литература 4 описывает способ выполнения предсказания с компенсацией движения с более высокой точностью в ситуациях, когда граница движения существует в блоке по направлению с наклоном. Данный способ дополнительно разделяет блок на непрямоугольные подразделы и выполняет предсказание с компенсацией движения для каждого из подразделов.
Представленная ниже Патентная Литература 5 описывает способ дополнительного разделения блока на небольшие прямоугольные подразделы и выполнения предсказания с компенсацией движения для каждого из подразделов. В данном способе, для кодирования вектора движения целевого подраздела обработки, из вектора движения блока, который контактирует с целевым подразделом обработки и предшествует подразделу в очередности обработки, генерируется предиктор вектора движения, и кодируется лишь разность между вектором движения целевого подраздела обработки и предиктором вектора движения, т.е., разностный вектор движения. В данном способе, если целевой подраздел обработки не имеет контакта с блоком, предшествующим в очередности обработки, то предиктор вектора движения целевого подраздела обработки генерируется из вектора движения другого подраздела, предшествующего в очередности обработки, в блоке, который включает в себя целевой подраздел обработки.
СПИСОК ЛИТЕРАТУРЫ
ПАТЕНТНАЯ ЛИТЕРАТУРА
Патентная Литература 1: Патент США №6,765,964
Патентная Литература 2: Патент США №7,003,035
Патентная Литература 3: Патент США №6,259,739
Патентная Литература 4: Выложенная Патентная Заявка Японии №2005-277968
Патентная Литература 5: Выложенная Патентная Заявка Японии №2009-246972
НЕПАТЕНТНАЯ ЛИТЕРАТУРА
Непатентная Литература 1: Test Model under Consideration, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/EEC JTCI/SC29/WG11, 1ая Конференция: Дрезден, Германия, 15-23 апреля 2010г., Документ: JCTVC-A205
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЗАДАЧА
В представленной выше Непатентной Литературе 1, кандидаты на информацию движения, которая должна быть использована при слиянии блоков множества блоков предсказания, полученных в результате разделения целевого блока кодирования, служащего в качестве цели кодирования, выбираются одинаковым способом, независимо от блоков предсказания и окружающих обстоятельств. По этой причине, например, как показано на виде (B) Фиг. 2, кандидаты на информацию движения при генерировании предсказанного сигнала блока T2 предсказания включают в себя информацию движения блока T1 предсказания в том же самом блоке кодирования. Тип разделения на блоки предсказания, состоящий из блока T1 предсказания и блока T2 предсказания, подготавливается в предположении, что предсказанные сигналы двух блоков генерируются, используя разные фрагменты информации движения. Вследствие этого нежелательно, чтобы информация движения блока T1 предсказания включалась в состав кандидатов на информацию движения блока T2 предсказания. А именно, это может привести к неэффективному кодированию.
Таким образом, целью настоящего изобретения, в некоторых аспектах, является предоставление устройства кодирования изображений с предсказанием, способа кодирования изображений с предсказанием, программы кодирования изображений с предсказанием, устройства декодирования изображений с предсказанием, способа декодирования изображений с предсказанием, и программы декодирования изображений с предсказанием в которых кандидаты на информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого блока предсказания, выбираются, исходя из ранее кодированной или ранее декодированной информации предсказания (информации движения и типа разделения на блоки предсказания) целевого блока кодирования и окружающих блоков кодирования, для подавления возникновения неэффективного кодирования. А именно, в этих аспектах, целью настоящего изобретения является предоставление устройства кодирования изображений с предсказанием, способа кодирования изображения с предсказанием, программы кодирования изображений с предсказанием, устройства декодирования изображений с предсказанием, способа декодирования изображения с предсказанием, и программы декодирования изображений с предсказанием, которые выполнены с возможностью достижения улучшения в эффективности кодирования.
Кроме того, существуют способы выполнения предсказания с компенсацией движения для каждого из подразделов, полученных путем разделения целевого блока обработки, как описано в Патентной Литературе 4 или Патентной Литературе 5. При данном предсказании с компенсацией движения предпочтительно генерировать предиктор вектора движения для каждого подраздела, исходя из вектора движения блока, который предшествует целевому подразделу обработки в очередности обработки, и кодировать лишь разностный вектор движения между вектором движения подраздела и предиктором вектора движения, принимая во внимание объем кода.
Фиг. 23 является чертежом для объяснения предсказания с компенсацией движения. Как показано на Фиг. 23, целевой блок P обработки может иметь подраздел SP1, который контактирует с по меньшей мере одним блоком CP, который предшествует блоку P в очередности обработки, и подраздел SP2, который не имеет контакта с блоком CP. Вектор V2 движения такого подраздела SP2 кодируется как есть, не используя предиктор вектора движения, в способе, который описан в Патентной Литературе 4. Данный способ эквивалентен способу установки в качестве предиктора вектора движения нулевого вектора.
С другой стороны, в способе, который описан в Патентной Литературе 5, предиктор вектора движения подраздела SP2 генерируется из вектора V1 движения подраздела SP1, который является другим подразделом в блоке P, и который предшествует подразделу SP2 в очередности обработки. Тем не менее, вектор движения подраздела SP1 и вектор движения подраздела SP2 исходно рассматриваются как отличающиеся друг от друга. Вследствие этого, способ, который описан в Патентной Литературе 5, может неэффективно кодировать вектор движения подраздела SP2.
Таким образом, целью настоящего изобретения в некоторых других аспектах также является предоставление устройства кодирования видео, способа кодирования видео и программы кодирования видео, которые выполнены с возможностью достижения улучшения в эффективности кодирования, и устройства декодирования видео, способа декодирования видео, и программы декодирования видео, соответствующих кодированию видео.
РЕШЕНИЕ ЗАДАЧИ
Первый аспект настоящего изобретения относится к кодированию изображений с предсказанием.
Устройство кодирования изображений с предсказанием в соответствии с первым аспектом настоящего изобретения содержит: средство разделения на участки, которое разделяет входное изображение на множество участков; средство оценки информации предсказания: которое дополнительно разделяет целевой участок, служащий в качестве цели кодирования, полученный в результате разделения средством разделения на участки, на множество участков предсказания, которое определяет тип разделения на блоки предсказания, указывающий некоторое число и формы участков собственно участков предсказания, пригодных для целевого участка, которое предсказывает информацию движения из ранее воссозданного сигнала для сбора каждого из сигналов высоко коррелированных с соответствующими участками предсказания, и которое получает информацию предсказания, содержащую тип разделения на блоки предсказания и информацию движения; средство кодирования информации предсказания, которое кодирует информацию предсказания, связанную с целевым участком; средство генерирования предсказанного сигнала, которое генерирует предсказанный сигнал целевого участка, исходя из информации предсказания, связанной с целевым участком; средство генерирования остаточного сигнала, которое генерирует остаточный сигнал, исходя из предсказанного сигнала целевого участка и пиксельного сигнала целевого участка; средство кодирования остаточного сигнала, которое кодирует остаточный сигнал, сгенерированный средством генерирования остаточного сигнала; средство восстановления остаточного сигнала, которое декодирует кодированные данные остаточного сигнала, чтобы генерировать воссозданный остаточный сигнал; и средство записи, которое суммирует предсказанный сигнал с воссозданным остаточным сигналом, чтобы генерировать восстановленный пиксельный сигнал целевого участка, и которое сохраняет восстановленный пиксельный сигнал в качестве ранее воссозданного сигнала. Средство кодирования информации предсказания выполнено следующим образом: средство кодирования информации предсказания имеет средство хранения информации предсказания, которое сохраняет ранее кодированную информацию предсказания; средство кодирования информации предсказания кодирует тип разделения на блоки предсказания целевого участка и сохраняет тип разделения на блоки предсказания в средстве хранения информации предсказания; исходя из: информации предсказания соседнего участка, соседствующего с целевым участком, числа ранее кодированных участков предсказания в целевом участке, и ранее кодированной информации предсказания целевого участка; средство кодирования информации предсказания выбирает кандидата на информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого участка предсказания, служащего в качестве следующего участка предсказания, из ранее кодированной информации движения участка, соседствующего с целевым участком предсказания; в соответствии с выбранным числом кандидатов на информацию движения, средство кодирования информации предсказания кодирует информацию блока слияния, указывающую генерирование предсказанного сигнала целевого участка предсказания с использованием выбранного кандидата на информацию движения, и информацию движения, обнаруженную средством оценки информации предсказания, или кодирует либо информацию блока слияния, либо информацию движения, и сохраняет информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого участка предсказания, в средстве хранения информации предсказания.
Способ кодирования изображений с предсказанием в соответствии с первым аспектом настоящего изобретения содержит: этап разделения на участки, на котором разделяют входное изображение на множество участков; этап оценки информации предсказания, на котором подразделяют целевой участок, служащий в качестве цели кодирования, полученного в результате разделения на этапе разделения на участки, на множество участков предсказания, определения типа разделения на блоки предсказания, указывающего некоторое число и формы участков собственно участков предсказания, пригодных для целевого участка, оценки информации движения для сбора каждого из сигналов, высоко коррелированных с соответствующими участками предсказания, из ранее воссозданного сигнала, и получения информации предсказания, содержащей тип разделения на блоки предсказания и информацию движения; этап кодирования информации предсказания, на котором кодируют информацию предсказания, связанную с целевым участком; этап генерирования предсказанного сигнала, на котором генерируют предсказанный сигнал целевого участка, исходя из информации предсказания, связанной с целевым участком; этап генерирования остаточного сигнала, на котором генерируют остаточный сигнал, исходя из предсказанного сигнала целевого участка и пиксельного сигнала целевого участка; этап кодирования остаточного сигнала, на котором кодируют остаточный сигнал, сгенерированный на этапе генерирования остаточного сигнала; этап восстановления остаточного сигнала на котором декодируют кодированные данные остаточного сигнала, чтобы генерировать восстановленный остаточный сигнал; и этап записи, на котором суммируют предсказанный сигнал с восстановленным остаточным сигналом, чтобы генерировать восстановленный пиксельный сигнал целевого участка, и сохраняют восстановленный пиксельный сигнал в качестве ранее воссозданного сигнала. Этап кодирования информации предсказания выполнен следующим образом: этап кодирования информации предсказания содержит кодирование типа разделения на блоки предсказания целевого участка и сохранение типа разделения на блоки предсказания в средстве хранения информации предсказания, которое хранит ранее кодированную информацию предсказания; этап кодирования информации предсказания содержит, исходя из информации предсказания соседнего участка, соседствующего с целевым участком, числа ранее кодированных участков предсказания в целевом участке, и ранее кодированной информации предсказания целевого участка, выбор кандидата на информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого участка предсказания, служащего в качестве следующего участка предсказания, из ранее кодированной информации движения участка, соседствующего с целевым участком предсказания; этап кодирования информации предсказания содержит, в соответствии с выбранным числом кандидатов на информацию движения, кодирование информации блока слияния, указывающей генерирование предсказанного сигнала целевого участка предсказания с использованием выбранного кандидата на информацию движения, и информации движения, которая обнаружена на этапе оценки информации предсказания, или кодирование либо информации блока слияния, либо информации движения, и сохранение информации движения, которая должна быть использована при генерировании предсказанного сигнала целевого участка предсказания, в средстве хранения информации предсказания.
Программа кодирования изображений с предсказанием в соответствии с первым аспектом настоящего изобретения побуждает компьютер функционировать в качестве каждого из средств описанного выше устройства кодирования изображений с предсказанием.
В соответствии с первым аспектом настоящего изобретения кандидат на информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого блока предсказания, выбирается, исходя из ранее кодированной информации предсказания (информации движения и типа разделения на блоки предсказания) целевого блока кодирования и окружающих блоков кодирования, что подавляет возникновение неэффективного кодирования.
В варианте осуществления, исходя из некоторого числа ранее кодированных участков предсказания в целевом участке, типа разделения на блоки предсказания целевого участка, и типа разделения на блоки предсказания соседнего участка, соседствующего с целевым участком, кандидат на информацию движения целевого участка предсказания, служащего в качестве следующего участка предсказания, может выбираться из ранее кодированной информации движения участка, соседствующего с целевым участком предсказания.
В варианте осуществления, исходя из: числа ранее кодированных участков предсказания в целевом участке и типа разделения на блоки предсказания целевого участка, кандидат на информацию движения целевого участка предсказания, служащего в качестве следующего участка предсказания, может выбираться из ранее кодированной информации движения участка, соседствующего с целевым участком предсказания; при этом когда целевой участок разделен на два участка предсказания, и когда целевым участком предсказания является участок предсказания, который должен быть кодирован вторым в участке предсказания, то в качестве кандидата на информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого участка предсказания может выбираться информация движения участка, соседствующего с целевым участком предсказания, который не включен в целевой участок.
В варианте осуществления, исходя из: числа ранее кодированных участков предсказания в целевом участке, типа разделения на блоки предсказания целевого участка, ранее кодированной информации движения в целевом участке, и информации движения соседнего участка, соседствующего с целевым участком; кандидат на информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого участка предсказания, служащего в качестве следующего участка предсказания, может выбираться из ранее кодированной информации движения участка, соседствующего с целевым участком предсказания; при этом когда целевой участок разделен на два участка предсказания, когда целевым участком предсказания является участок предсказания, который должен быть кодирован вторым в целевом участке, и когда информация движения участка предсказания, кодируемого первым в целевом участке, является точно такой же как и информация движения участка, который является соседствующим с целевым участком предсказания и который не включен в целевой участок, может быть определено, что информация движения участка, соседствующего с целевым участком предсказания, не используется при генерировании предсказанного сигнала целевого участка предсказания, и может кодироваться информация движения.
Второй аспект настоящего изобретения относится к декодированию изображений с предсказанием.
Устройство декодирования изображений с предсказанием в соответствии со вторым аспектом настоящего изобретения содержит: средство анализа данных, которое извлекает из сжатых данных изображения, полученных в результате разделения на множество участков и кодирования: кодированные данные информации предсказания для указания способа предсказания, который должен быть использован при предсказании сигнала целевого участка, служащего в качестве цели декодирования, кодированные данные предсказанного сигнала целевого участка, и кодированные данные остаточного сигнала; средство декодирования информации предсказания, которое декодирует кодированные данные информации предсказания для восстановления типа разделения на блоки предсказания, указывающего некоторое число и формы участков собственно участков предсказания, которые являются подразделенными участками целевого участка, и информацию движения для сбора каждого из предсказанных сигналов соответствующих участков предсказания из ранее воссозданного сигнала; средство генерирования предсказанного сигнала, которое генерирует предсказанный сигнал целевого участка, исходя из информации предсказания, связанной с целевым участком; средство восстановления остаточного сигнала, которое восстанавливает воссозданный остаточный сигнал целевого участка из кодированных данных остаточного сигнала; и средство записи, которое суммирует предсказанный сигнал с воссозданным остаточным сигналом для восстановления пиксельного сигнала целевого участка, и которое сохраняет пиксельный сигнал в качестве ранее воссозданного сигнала. Средство декодирования информации предсказания выполнено следующим образом: средство декодирования информации предсказания имеет средство хранения информации предсказания, которое хранит ранее декодированную информацию предсказания; средство декодирования информации предсказания декодирует тип разделения на блоки предсказания целевого участка и сохраняет тип разделения на блоки предсказания в средстве хранения информации предсказания; исходя из информации предсказания соседнего участка, соседствующего с целевым участком, числа ранее декодированных участков предсказания в целевом участке, и ранее декодированной информации предсказания целевого участка, средство декодирования информации предсказания выбирает кандидата на информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого участка предсказания в качестве следующего участка предсказания, из ранее декодированной информации движения участка, соседствующего с целевым участком предсказания; в соответствии с выбранным числом кандидатов на информацию движения, средство декодирования информации предсказания декодирует информацию блока слияния, указывающую генерирование предсказанного сигнала целевого участка предсказания с использованием выбранного кандидата на информацию движения, и информацию движения, или декодирует либо информацию блока слияния, либо информацию движения, и сохраняет информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого участка предсказания, в средстве хранения информации предсказания.
Способ декодирования изображений с предсказанием в соответствии со вторым аспектом настоящего изобретения содержит: этап анализа данных, на котором извлекают из сжатых данных изображения, полученных в результате разделения на множество участков и кодирования: кодированных данных информации предсказания для указания способа предсказания, который должен быть использован при предсказании сигнала целевого участка, служащего в качестве цели декодирования, кодированных данных предсказанного сигнала целевого участка, и кодированных данных остаточного сигнала; этап декодирования информации предсказания, на котором декодируют кодированные данные информации предсказания для восстановления типа разделения на блоки предсказания, указывающего некоторое число и формы участков упомянутых участков предсказания, которые являются подразделенными участками целевого участка, и информации движения для сбора каждого из предсказанных сигналов соответствующих участков предсказания из ранее воссозданного сигнала; этап генерирования предсказанного сигнала, на котором генерируют предсказанный сигнал целевого участка, исходя из информации предсказания, связанной с целевым участком; этап восстановления остаточного сигнала, на котором восстанавливают воссозданный остаточный сигнал целевого участка из кодированных данных остаточного сигнала; и этап записи, на котором суммируют предсказанный сигнал с воссозданным остаточным сигналом для восстановления пиксельного сигнала целевого участка, и сохраняют пиксельный сигнал в качестве ранее воссозданного сигнала. Этап декодирования информации предсказания выполнен следующим образом: этап декодирования информации предсказания содержит декодирование типа разделения на блоки предсказания целевого участка и сохранение типа разделения на блоки предсказания в качестве ранее декодированной информации предсказания в средстве хранения информации предсказания, которое хранит ранее декодированную информацию предсказания; этап декодирования информации предсказания содержит, исходя из: информации предсказания соседнего участка, соседствующего с целевым участком, числа ранее декодированных участков предсказания в целевом участке, и ранее декодированной информации предсказания целевого участка; выбор кандидата на информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого участка предсказания, служащего в качестве следующего участка предсказания, из ранее декодированной информации движения участка, соседствующего с целевым участком предсказания; и этап декодирования информации предсказания содержит, в соответствии с выбранным числом кандидатов на информацию движения, декодирование информации блока слияния, указывающей генерирование предсказанного сигнала целевого участка предсказания с использованием выбранного кандидата на информацию движения, и информации движения, или декодирование либо информации блока слияния, либо информации движения, и сохранение информации движения, которая должна быть использована при генерировании предсказанного сигнала целевого участка предсказания, в средстве хранения информации предсказания.
Программа декодирования изображений с предсказанием в соответствии со вторым аспектом настоящего изобретения побуждает компьютер функционировать в качестве каждого из средств описанного выше устройства декодирования изображений с предсказанием.
В соответствии со вторым аспектом настоящего изобретения, изображение может декодироваться из сжатых данных, сгенерированных посредством упомянутого выше кодирования изображений с предсказанием.
В варианте осуществления, исходя из числа ранее декодированных участков предсказания в целевом участке, типа разделения на блоки предсказания целевого участка, и типа разделения на блоки предсказания соседнего участка, соседствующего с целевым участком, может быть выбран кандидат на информацию движения целевого участка предсказания, служащего в качестве следующего участка предсказания, из ранее декодированной информации движения участка, соседствующего с целевым участком предсказания.
В варианте осуществления, исходя из некоторого числа ранее декодированных участков предсказания в целевом участке и типа разделения на блоки предсказания целевого участка, кандидат на информацию движения, которая должна быть использована при генерировании сигнала предсказания целевого участка предсказания, служащего в качестве следующего участка предсказания, может выбираться из ранее декодированной информации движения участка, соседствующего с целевым участком предсказания; при этом когда целевой участок разделен на два участка предсказания и когда участком предсказания является участок предсказания, который должен быть декодирован вторым в целевом участке, то в качестве кандидата на информацию движения целевого участка предсказания может выбираться информация движения участка, который является соседствующим с целевым участком предсказания и который не включен в целевой участок.
В варианте осуществления, исходя из: числа ранее декодированных участков предсказания в целевом участке, типа разделения на блоки предсказания целевого участка, ранее декодированной информации движения в целевом участке, и информации движения соседнего участка, соседствующего с целевым участком, кандидат на информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого участка предсказания, служащего в качестве следующего участка предсказания, может выбираться, из ранее декодированной информации движения участка, соседствующего с целевым участком предсказания; при этом когда целевой участок разделен на два участка предсказания, когда целевым участком предсказания является участок предсказания, который должен быть декодирован вторым в целевом участке, и когда информация движения участка предсказания, декодируемого первым в целевом участке, является точно такой же как и информация движения участка, соседствующего с целевым участком предсказания, который не включен в целевой участок, может быть определено, что информация движения участка, соседствующего с целевым участком предсказания, не используется при генерировании предсказанного сигнала целевого участка предсказания, и может декодироваться информация движения.
Третий аспект настоящего изобретения относится к кодированию видео.
Устройство кодирования видео в соответствии с третьим аспектом содержит, средство разделения, средство генерирования подразделов, средство обнаружения движения, средство генерирования предсказанного сигнала, средство предсказания движения, средство генерирования разностного вектора движения, средство генерирования остаточного сигнала, средство суммирования, средство хранения, и средство кодирования. Средство разделения разделяет входное изображения в видео последовательности на множество разделов. Средство генерирования подразделов разделяет целевой раздел обработки, сгенерированный средством разделения, на множество подразделов и генерирует информацию формы для задания форм подразделов. Средство обнаружения движения обнаруживает вектор движения целевого раздела обработки. Средство генерирования предсказанного сигнала генерирует предсказанный сигнал целевого раздела обработки из ранее воссозданного сигнала изображения, используя вектор движения, который обнаружен средством обнаружения движения. Средство предсказания движения генерирует предиктор вектора движения целевого раздела обработки, исходя из информации формы, сгенерированной средством генерирования подразделов, и вектора движения ранее обработанного частичного участка. Ранее обработанным частичным участком может быть раздел или подраздел, предшествующий в очередности обработки целевому разделу обработки. Средство генерирования разностного вектора движения генерирует разностный вектор движения, исходя из разности между вектором движения, который использовался при генерировании предсказанного сигнала целевого раздела предсказания, и предиктором вектора движения. Средство генерирования остаточного сигнала генерирует остаточный сигнал исходя из разности между предсказанным сигналом и пиксельным сигналом целевого раздела обработки. Средство суммирования суммирует остаточный сигнал с предсказанным сигналом, чтобы генерировать воссозданный сигнал изображения. Средство хранения сохраняет воссозданный сигнал изображения в качестве ранее воссозданного сигнала изображения. Средство кодирования кодирует: остаточный сигнал, сгенерированный средством генерирования остаточного сигнала, разностный вектор движения, сгенерированный средством генерирования разностного вектора, и информацию формы, сгенерированную средством генерирования подразделов, чтобы генерировать сжатые данные. Если целевой подраздел обработки в целевом разделе обработки не имеет контакта с разделом, предшествующим в очередности обработки целевому подразделу обработки, средство предсказания движения генерирует предиктор вектора движения целевого подраздела обработки, исходя из вектора движения ранее обработанного частичного участка, принадлежащего к области, которая также содержит целевой подраздел обработки, или другой области. Область и другая область могут быть разделены посредством линии продления границы между целевым подразделом обработки и другим подразделом в целевом разделе обработки.
Способ кодирования видео в соответствии с третьим аспектом содержит: (a) этап разделения, на котором разделяют входное изображение из видео последовательности на множество разделов; (b) этап генерирования подразделов, на котором разделяют целевой раздел обработки, сгенерированный на этапе разделения, на множество подразделов, и генерируют информацию формы для задания форм подразделов; (c) этап обнаружения движения, на котором обнаруживают вектор движения целевого раздела обработки; (d) этап генерирования предсказанного сигнала, на котором генерируют предсказанный сигнал целевого раздела обработки из ранее воссозданного сигнала изображения, используя вектор движения, обнаруженный на этапе обнаружения движения; (e) этап предсказания движения, на котором генерируют предиктор вектора движения целевого раздела обработки, исходя из информации формы, сгенерированной на этапе генерирования подразделов, и вектора движения ранее обработанного частичного участка в качестве раздела или подраздела, предшествующего в очередности обработки целевому разделу обработки; (f) этап генерирования разностного вектора движения, на котором генерируют разностный вектор движения, исходя из разности между вектором движения, использованным при генерировании предсказанного сигнала целевого раздела обработки, и предиктором вектора движения; (g) этап генерирования остаточного сигнала, на котором генерируют остаточный сигнал, исходя из разности между предсказанным сигналом и пиксельным сигналом целевого раздела обработки; (h) этап суммирования, суммирования на котором суммируют остаточный сигнал с предсказанным сигналом для генерирования воссозданного сигнала изображения; (i) этап сохранения, на котором сохраняют воссозданный сигнал изображения в качестве ранее воссозданного сигнала изображения; и (j) этап кодирования, на котором кодируют: остаточный сигнал, сгенерированный на этапе генерирования остаточного сигнала, разностный вектор движения, сгенерированный на этапе генерирования разностного вектора движения, и информацию формы, сгенерированную на этапе генерирования подразделов; чтобы генерировать сжатые данные. Если целевой подраздел обработки в целевом разделе обработки не имеет контакта с разделом, предшествующим в очередности обработки целевому подразделу обработки, этап предсказания движения содержит генерирование предиктора вектора движения целевого подраздела обработки, исходя из вектора движения ранее обработанного частичного участка, который принадлежит либо к области, которая содержит целевой подраздел обработки, либо другой области. Область и другая область могут быть разделены посредством линии продления границы между целевым подразделом обработки и другим подразделом в целевом разделе обработки.
Программа кодирования видео в соответствии с третьим аспектом побуждает компьютер функционировать в качестве каждого из средств описанного выше устройства кодирования видео.
Область, включающая в себя подраздел, который не имеет контакта с разделом, предшествующим в очередности обработки, из двух областей, заданных вышеупомянутой линией продления границы, с высокой вероятностью обладает движением, которое аналогично движению подраздела. Вследствие этого, в соответствии с третьим аспектом, повышается точность предиктора вектора движения, значение разностного вектора движения становится меньше, и вектор движения кодируется при помощи меньшего объема кода. Вследствие этого повышается эффективность кодирования.
Четвертый аспект настоящего изобретения относится к декодированию видео.
Устройство декодирования видео в соответствии с четвертым аспектом содержит средство декодирования, средство предсказания движения, средство суммирования векторов, средство генерирования предсказанного сигнала, средство суммирования, и средство хранения. Средство декодирования декодирует сжатые данные, чтобы генерировать воссозданный остаточный сигнал целевого раздела обработки в изображении, разностный вектор движения целевого раздела обработки, и информацию формы, для задания форм множества подразделов в целевом разделе обработки. Средство предсказания движения генерирует предиктор вектора движения целевого раздела обработки, исходя из информации формы и вектора движения ранее обработанного частичного участка, который является разделом или подразделом, предшествующим в очередности обработки целевому разделу обработки. Средство суммирования векторов суммирует предиктор вектора движения, сгенерированный средством предсказания движения, с разностным вектором движения, сгенерированным средством декодирования, чтобы генерировать вектор движения целевого раздела обработки. Средство генерирования предсказанного сигнала генерирует предсказанный сигнал целевого раздела обработки из ранее воссозданного сигнала изображения, исходя из вектора движения целевого раздела обработки. Средство суммирования суммирует предсказанный сигнал с воссозданным остаточным сигналом, который сгенерирован средством декодирования, чтобы генерировать воссозданный сигнал изображения. Средство хранения сохраняет воссозданный сигнал изображения в качестве ранее воссозданного сигнала изображения. Если целевой подраздел обработки в целевом разделе обработки не имеет контакта с разделом, предшествующим в очередности обработки целевому подразделу обработки, средство предсказания движения генерирует предиктор вектора движения целевого подраздела обработки, исходя из вектора движения ранее обработанного частичного участка, принадлежащего либо области, которая содержит целевой подраздел обработки, либо другой области. Область и другая область могут быть разделены посредством линии продления границы между целевым подразделом обработки и другим подразделом в целевом разделе обработки.
Способ декодирования видео в соответствии с четвертым аспектом является способом для декодирования сжатых данных, чтобы генерировать видео последовательность, содержащим: (a) этап декодирования, на котором декодируют сжатые данные, чтобы генерировать воссозданный остаточный сигнал целевого раздела обработки в изображении, разностный вектор движения целевого раздела обработки, и информацию формы, для задания форм множества подразделов в целевом разделе обработки; (b) этап предсказания движения, на котором генерируют предиктор вектора движения целевого раздела обработки, исходя из информации формы и вектора движения ранее обработанного частичного участка, который является разделом или подразделом, предшествующим в очередности обработки целевому разделу обработки; (c) этап суммирования векторов, на котором суммируют предиктор вектора движения, сгенерированный на этапе предсказания движения, с разностным вектором движения, сгенерированным на этапе декодирования, чтобы генерировать вектор движения целевого раздела обработки; (d) этап генерирования предсказанного сигнала, на котором генерируют предсказанный сигнал целевого раздела обработки из ранее воссозданного сигнала изображения, исходя из вектора движения целевого раздела обработки; (e) этап, на котором суммируют предсказанный сигнал с воссозданным остаточным сигналом, который сгенерирован на этапе декодирования, чтобы генерировать воссозданный сигнал изображения; и (f) этап сохранения, на котором сохраняют воссозданный сигнал изображения в качестве ранее воссозданного сигнала изображения. Если целевой подраздел обработки в целевом разделе обработки не имеет контакта с разделом, предшествующим в очередности обработки целевому подразделу обработки, этап предсказания движения содержит генерирование предиктора вектора движения целевого подраздела обработки, исходя из вектора движения ранее обработанного частичного участка, принадлежащего либо области, которая содержит целевой подраздел обработки, либо другой области. Область и другая область могут быть разделены посредством линии продления границы между целевым подразделом обработки и другим подразделом в целевом разделе обработки.
Программа декодирования видео в соответствии с четвертым аспектом предписывает компьютеру функционирование в качестве каждого из средств описанного выше устройства декодирования видео.
В соответствии с четвертым аспектом, предиктор вектора движения подраздела генерируется из ранее декодированного вектора движения в области, которая содержит подраздел, который не имеет контакта с разделом, предшествующим в очередности обработки. Данный предиктор вектора движения с высокой вероятностью будет аналогичен вектору движения подраздела. Вследствие этого, в соответствии с вышеописанными вариантами осуществления, повышается точность предиктора вектора движения, значение разностного вектора движения становится меньше, и становится возможным выполнить декодирование из сжатых данных с меньшим объемом бит. Вследствие этого, повышается эффективность декодирования.
ПРЕИМУЩЕСТВЕННЫЕ ЭФФЕКТЫ ИЗОБРЕТЕНИЯ
Устройство кодирования изображений с предсказанием, способ кодирования изображения с предсказанием, программа кодирования изображений с предсказанием, устройство декодирования изображений с предсказанием, способ декодирования изображений с предсказанием, и программа декодирования изображений с предсказанием в соответствии с некоторыми аспектами настоящего изобретения обеспечивают эффективное или более эффективное кодирование информации движения, так как кандидат на информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого блока предсказания, может выбираться исходя из окружающей ранее кодированной или ранее декодированной информации.
Некоторые другие аспекты настоящего изобретения предоставляют устройство кодирования видео, способ кодирования видео, и программу кодирования видео, выполненные с возможностью повышения эффективности кодирования. Кроме того, предоставляется устройство декодирования видео, способ декодирования видео, и программа декодирования видео, соответствующие вышеописанному кодированию видео.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блок-схемой, показывающей устройство кодирования изображений с предсказанием в соответствии с вариантом осуществления.
Фиг. 2 является схематическим представлением для объяснения кандидатов на информацию движения при традиционном слиянии блоков.
Фиг. 3 является схематическим представлением для объяснения кандидатов на информацию движения при слиянии блоков в соответствии с вариантом осуществления.
Фиг. 4 является блок-схемой последовательности операций для иллюстрации процедуры обработки кодера информации предсказания, показанного на Фиг. 1.
Фиг. 5 является блок-схемой, показывающей процедуру способа кодирования изображений с предсказанием устройства кодирования изображений с предсказанием, показанного на Фиг. 1.
Фиг. 6 является блок-схемой, показывающей устройство декодирования изображений с предсказанием в соответствии с вариантом осуществления.
Фиг. 7 является блок-схемой последовательности операций для иллюстрации процедуры обработки декодера информации предсказания, показанного на Фиг. 6.
Фиг. 8 является блок-схемой последовательности операций, показывающей процедуру способа декодирования изображений с предсказанием устройства декодирования изображений с предсказанием, показанного на Фиг. 6.
Фиг. 9 является первым схематическим чертежом для объяснения процессов, использующих информацию движения множества соседних блоков, которые являются соседними для целевого блока предсказания, в качестве информации движения целевого блока предсказания.
Фиг. 10 является вторым схематическим чертежом для объяснения процессов, использующих информацию движения множества соседних блоков, которые являются соседними для целевого блока предсказания, в качестве информации движения целевого блока предсказания.
Фиг. 11 является блок-схемой последовательности операций для иллюстрации процесса, использующего информацию движения множества соседних блоков, которые являются соседними для целевого блока предсказания, в качестве информации движения целевого блока предсказания.
Фиг. 12 является третьим схематическим чертежом для объяснения процессов, использующих информацию движения множества соседних блоков, которые являются соседними для целевого блока предсказания, в качестве информации движения целевого блока предсказания.
Фиг. 13 является вторым примером блок-схемы последовательности операций для иллюстрации процесса, использующего информацию движения множества соседних блоков, которые являются соседними для целевого блока предсказания, в качестве информации движения целевого блока предсказания.
Фиг. 14 является вторым примером схематического представления для объяснения кандидатов на информацию движения при слиянии блоков в соответствии с вариантом осуществления.
Фиг. 15 является третьим примером схематического представления для объяснения кандидатов на информацию движения при слиянии блоков в соответствии с вариантом осуществления.
Фиг. 16 является блок-схемой, показывающей программу, выполненную с возможностью выполнения способа кодирования изображений с предсказанием в соответствии с вариантом осуществления.
Фиг. 17 является блок-схемой, показывающей программу, выполненную с возможностью выполнения способа декодирования изображений с предсказанием в соответствии с вариантом осуществления.
Фиг. 18 является чертежом, показывающим конфигурацию аппаратного обеспечения компьютера для выполнения программы, записанной на носителе записи.
Фиг. 19 является видом в перспективе компьютера для выполнения программы, которая хранится на носителе записи.
Фиг. 20 является схематическим представлением для объяснения типов разделения на блоки предсказания блоков кодирования.
Фиг. 21 является схематическим представлением процесса (A) оценки движения и процесса (B) сопоставления с шаблоном при межкадровом предсказании.
Фиг. 22 является схематическим представлением для объяснения традиционного способа внутрикадрового предсказания.
Фиг. 23 является чертежом для объяснения предсказания с компенсированным движением.
Фиг. 24 является чертежом, схематически показывающим конфигурацию устройства кодирования видео в соответствии с вариантом осуществления.
Фиг. 25 является чертежом для объяснения генерирования подразделов.
Фиг. 26 является чертежом, показывающим конфигурацию предиктора движения в варианте осуществления.
Фиг. 27 является блок-схемой последовательности операций способа кодирования видео в соответствии с вариантом осуществления.
Фиг. 28 является блок-схемой последовательности операций, показывающей процесс предиктора движения в соответствии с вариантом осуществления.
Фиг. 29 является чертежом, показывающим пример подразделов целевого раздела и окружающих частичных участков.
Фиг. 30 является чертежом, показывающим другой пример подразделов целевого блока и окружающих частичных участков.
Фиг. 31 является чертежом, показывающим еще одни другие примеры подразделов целевого блока и окружающих частичных участков.
Фиг. 32 является чертежом, показывающим еще один другой пример подразделов целевого блока и окружающих частичных участков.
Фиг. 33 является чертежом, показывающим еще один другой пример подразделов целевого блока и окружающих частичных участков.
Фиг. 34 является чертежом, схематически показывающим конфигурацию устройства декодирования видео в соответствии с вариантом осуществления.
Фиг. 35 является чертежом, показывающим конфигурацию предиктора движения в соответствии с вариантом осуществления.
Фиг. 36 является блок-схемой последовательности операций способа декодирования видео в соответствии с вариантом осуществления.
Фиг. 37 является блок-схемой последовательности операций процесса предиктора движения в соответствии с вариантом осуществления.
Фиг. 38 является чертежом, показывающим конфигурацию программы кодирования видео в соответствии с вариантом осуществления.
Фиг. 39 является чертежом, показывающим конфигурацию программы декодирования видео в соответствии с вариантом осуществления.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Ниже со ссылкой на сопроводительные чертежи будут подробно описаны разнообразные варианты осуществления. При описании чертежей идентичные или эквивалентные элементы будут обозначены одинаковыми цифровыми обозначениями, без излишнего описания.
Фиг. 1 является блок-схемой, показывающей устройство 100 кодирования изображений с предсказанием в соответствии с вариантом осуществления. Данное устройство 100 кодирования изображений с предсказанием снабжено входным терминалом 101, разделителем 102 на блоки, генератором 103 предсказанного сигнала, памятью 104 кадров, вычитателем 105, преобразователем 106, квантователем 107, обратным квантователем 108, обратным преобразователем 109, сумматором 110, кодером 111 квантованных коэффициентов преобразования, выходным терминалом 112, селектором 113 типа разделения на блоки предсказания, блоком 114 оценки информации движения, памятью 115 информации предсказания, и кодером 116 информации предсказания.
Преобразователь 106, квантователь 107 и кодер 111 квантованных коэффициентов преобразования функционируют в качестве средства кодирования остаточного сигнала, а обратный квантователь и обратный преобразователь функционируют в качестве средства восстановления остаточного сигнала. Селектор 113 типа разделения на блоки предсказания и блок 114 оценки информации движения функционируют в качестве средства оценки информации предсказания, а память 115 информации предсказания и кодер 116 информации предсказания в качестве средства кодирования информации предсказания.
Входной терминал 101 является терминалом, который принимает ввод сигнала видео последовательности, состоящей из множества изображений.
Разделитель 102 на блоки разделяет изображение, выступающее в качестве цели кодирования, представленное сигналом, вводимым из входного терминала 101, на множество участков (блоков кодирования). В настоящем варианте осуществления целевое изображение кодирования разделяется на блоки, каждый из которых состоит из 16×16 пикселей, но изображение может разделяться на блоки любого другого размера или формы. Кроме того, блоки разных размеров могут быть смешены в кадре.
Селектор 113 типа разделения на блоки предсказания разделяет целевой участок (целевой блок кодирования), служащий в качестве цели кодирования, на участки предсказания, которые должны быть подвергнуты процессу предсказания. Например, он выбирает одно из (A)-(H) на Фиг. 20 для каждого блока кодирования и дополнительно разделяет блок кодирования в соответствии с выбранным режимом. Каждый разделенный участок именуется участком предсказания (блоком предсказания), а каждый из способов разделения с (A) по (H) на Фиг. 20 именуется типом разделения на блоки предсказания. Доступным способом выбора типа разделения на блоки предсказания является, например, способ выполнения каждого из подразделений сигнала целевого блока кодирования, подаваемого по линии L102, фактически выполняя описываемую ниже обработку предсказания и обработку кодирования, и выбирая тип разделения с тем, чтобы минимизировать значение искажения от скорости передачи, которое вычисляется по силе сигнала ошибки кодирования между исходным сигналом блока кодирования и воссозданным сигналом, и объем кода, который требуется для кодирования блока кодирования, однако этим способ не ограничивается. Тип разделения на блоки предсказания целевого блока кодирования выдается по линии L113a, по линии L113b, и по линии L113c соответственно памяти 115 информации предсказания, блоку 114 оценки информации движения, и генератору 103 предсказанного сигнала.
Блок 114 оценки информации движения обнаруживает информацию движения, которая необходима для генерирования предсказанного сигнала каждого блока предсказания в целевом блоке кодирования. Приемлемыми способами генерирования предсказанного сигнала (способ предсказания) являются межкадровое предсказание и внутрикадровое предсказание (внутрикадровое предсказание не показано), как описано в разделе «уровень техники», однако ими способы не ограничиваются. В данном документе предполагается, что информация движения обнаруживается посредством согласования блоков, показанного на Фиг. 21. Исходный сигнал целевого блока предсказания, являясь целью предсказания, может быть сгенерирован из исходного сигнала блока кодирования, подаваемого по линии L102a, и типа разделения на блоки предсказания целевого блока кодирования, подаваемого по линии L113b. Предсказанный сигнал, с тем чтобы минимизировать абсолютные разности в отношении исходного сигнала целевого блока предсказания, обнаруживается из сигналов изображения, получаемых по линии L104. В данном случае, информация движения содержит вектор движения, режим межкадрового предсказания (прямое/обратное/двунаправленное предсказание), номер опорного кадра, и т.д. Обнаруженная информация движения выдается по линии L114 памяти 115 информации предсказания и кодеру 116 информации предсказания.
Память 115 информации предсказания хранит входную информацию движения и тип разделения на блоки предсказания.
Кодер 116 информации предсказания выбирает кандидатов на информацию движения, которая должна быть использована при слиянии блоков каждого блока предсказания, энтропийно кодирует информацию предсказания целевого блока кодирования, и выдает кодированные данные по линии L116 на выходной терминал 112. Приемлемые способы энтропийного кодирования включают в себя арифметическое кодирование, кодирование переменной длины, и т.п., однако этим не ограничиваются. Информация предсказания содержит информацию слияния блоков для выполнения слияния блоков, используя информацию движения блоков, которые являются соседними для блока предсказания, в дополнение к типу разделения на блоки предсказания целевого блока кодирования и информации движения блока предсказания. Процесс кодера 116 информации предсказания будет описан позже.
Генератор 103 предсказанного сигнала получает ранее воссозданные сигналы из памяти 104 кадров, исходя из информации движения каждого блока предсказания в целевом блоке кодирования, подаваемой по линии L114, и типа разделения на блоки предсказания, подаваемого по линии L113c, и генерирует предсказанный сигнал каждого блока предсказания в целевом блоке кодирования.
Предсказанный сигнал, сгенерированный в генераторе 103 предсказанного сигнала, выдается по линии L103 вычитателю 105 и сумматору 110.
Вычитатель 105 вычитает предсказанный сигнал для целевого блока кодирования, поданный по линии L103, из пиксельного сигнала целевого блока кодирования, поданного по линии L102b, после разделения разделителем 102 на блоки, для генерирования остаточного сигнала. Вычитатель 105 выдает остаточный сигнал, полученный путем вычитания, по линии L105 преобразователю 106.
Преобразователь 106 является частью, которая выполняет дискретное косинусное преобразование над входным остаточным сигналом. Квантователь 107 является частью, которая квантует коэффициенты преобразования, полученные путем дискретного косинусного преобразования посредством преобразователя 106. Кодер 111 квантованных коэффициентов преобразования энтропийно кодирует квантованные коэффициенты преобразования, полученные квантователем 107. Кодированные данные выдаются по линии L111 на выходной терминал 112. Приемлемые способы энтропийного кодирования включают в себя арифметическое кодирование, кодирование переменной длины и т.п., однако способы ими не ограничиваются.
Выходной терминал 112 выдает во вне совместно фрагменты информации, вводимые от кодера 116 информации предсказания и кодера 111 квантованных коэффициентов преобразования.
Обратный квантователь 108 выполняет обратное квантование над квантованными коэффициентами преобразования. Обратный преобразователь 109 выполняет обратное дискретное косинусное преобразование, чтобы восстановить остаточный сигнал. Сумматор 110 суммирует восстановленный остаточный сигнал с предсказанным сигналом, поданным по линии L103, чтобы воссоздать сигнал целевого блока кодирования, и сохраняет воссозданный сигнал в памяти 104 кадров. Настоящий вариант осуществления использует преобразователь 106 и обратный преобразователь 109, однако вместо этих преобразователей может использоваться другой процесс преобразования. Кроме того, преобразователь 106 и обратный преобразователь 109 не являются неотъемлемыми элементами. Таким образом, для использования при генерировании предсказанного сигнала последующего целевого блока кодирования, воссозданный сигнал целевого блока кодирования, подвергнутого кодированию, восстанавливается обратным процессом для сохранения в памяти 104 кадров.
Далее будет описан обработка в кодере 116 информации предсказания. Сначала кодер 116 информации предсказания выбирает кандидатов на информацию движения, которая должна быть использована при слиянии блоков каждого блока предсказания (кандидаты на информацию движения, которая должна быть использована при генерировании предсказанного сигнала целевого участка предсказания) из информации движения блоков, которые являются соседними для целевого блока предсказания. Слияние блоков относится к генерированию предсказанного сигнала целевого блока предсказания, используя информацию движения соседних блоков. Далее, кодер 116 информации предсказания сравнивает информацию движения, обнаруженную блоком 114 оценки информации движения, с выбранными таким образом кандидатами на информацию движения, чтобы определить, должно ли выполняться слияние блоков. Затем, в соответствии с числом кандидатов на информацию движения, которая должна быть использована при слиянии блоков, и применимости выполнения слияния блоков, кодер 116 информации предсказания энтропийно кодирует либо одно из, либо как информацию слияния блоков, так и информацию движения, наряду с типом разделения на блоки предсказания. Информация слияния блоков включает в себя информацию идентификации слияния (merge_flag) для указания того, должен ли предсказанный сигнал целевого блока предсказания генерироваться, используя информацию движения соседнего блока, т.е., должно ли выполняться слияние блоков, и информацию выбора блока слияния (merge_flag_left) для указания того, какой из фрагментов информации движения двух или более блоков, которые являются соседними для целевого блока предсказания, должен использоваться для генерирования предсказанного сигнала целевого блока предсказания.
Если отсутствует кандидат на информацию движения, которая должна быть использована при слиянии блоков каждого блока предсказания, то нет необходимости в кодировании этих двух фрагментов информации, т.е., информации идентификации слияния и информации выбора блока слияния. Если присутствует один кандидат на информацию движения, кодируется информация идентификации слияния; если присутствует два или более кандидата на информацию движения, и если выполняется слияние блоков, кодируются два фрагмента информации, т.е., фрагменты информации идентификации слияния и информации выбора блока слияния. Даже если присутствует два или более кандидата на информацию движения, нет необходимости в кодировании информации выбора блока слияния, если не выполняется слияние блоков.
Фиг. 3 является схематическим представлением для объяснения процесса выбора кандидатов на информацию движения, которая должна быть использована при слиянии блоков, для блока предсказания в соответствии с вариантом осуществления. Фиг. 3 показывает пример типа разделения на блоки предсказания в виде вертикального деления на две части блока кодирования (или разделения блока кодирования на правый и левый блок) как в случае блока 301, показанного на виде (B) Фиг. 20. Нижеследующее будет описывать данный блок 301 в качестве примера, однако такое описание также применимо к блокам 302, 304, 305, 306 и 307.
Выбор кандидата на информацию движения выполняется, исходя из представленной ниже информации.
1) Числа уже кодированных/уже декодированных блоков предсказания в целевом блоке кодирования
2) Типа разделения на блоки предсказания целевого блока кодирования
3) Типа разделения на блоки предсказания блока, который является соседним для целевого блока предсказания
4) Информации движения уже кодированных/уже декодированных блоков предсказания в целевом блоке кодирования
5) Информации движения и режима предсказания (внутрикадровое предсказание/межкадровое предсказание) блока, который является соседним для целевого блока предсказания
В примере на Фиг. 3 кандидат на информацию движения, которая должна быть использована при слиянии блоков, выбирается, используя фрагменты информации 1), 2), 4) и 5).
Сначала, выясняют по информации 2)что общее число блоков предсказания в целевом блоке 400 кодирования составляет 2, блоки T1 и T2 предсказания, и что блок кодирования вертикально разделен на два подраздела. Выясняют из информации 1), что следующим блоком предсказания является либо блок T1 предсказания, либо блок T2 предсказания.
Когда следующим блоком предсказания является блок T1 предсказания (или когда число уже кодированных/уже декодированных блоков предсказания в целевом блоке кодирования составляет 0), то в качестве кандидатов на информацию движения для слияния блоков устанавливаются фрагменты информации движения соседнего блока A и соседнего блока B (стрелки на чертеже указывают на то, что фрагменты информации движения соседних блоков A и B являются кандидатами на информацию движения, которая должна быть использована при генерировании предсказанного сигнала блока T1 предсказания). В данном случае, если соседний блок A или B является блоком, который сгенерирован посредством внутрикадрового предсказания или блоком вне изображения, то информация движения блока может быть исключена из кандидатов на информацию движения для слияния блоков (также можно установить информацию движения равной значению псевдо-по-умолчанию; например, вектор движения устанавливается равным 0, и номер опорного кадра равным 0). Если фрагменты информации движения двух соседних блоков A и B идентичны друг другу, то информация движения одного соседнего блока может быть исключена из кандидатов.
Когда следующим блоком предсказания является блок T2 предсказания (или когда число уже кодированных/уже декодированных блоков предсказания в целевом блоке кодирования равно 1), как показано на виде (A) Фиг. 3, то информация движения соседнего блока T1 исключается из кандидатов на информацию движения для слияния блоков. Это происходит потому, что целевой блок кодирования исходно разделен на два блока в предположении, что предсказанные сигналы блока T1 предсказания и блока T2 предсказания генерируются из разных фрагментов информации движения. А именно, это служит для предотвращения такой ситуации, при которой информация движения блока T2 предсказания становится точно такой же, как информация движения блока T1 предсказания. Поскольку данный процесс обеспечивает только один фрагмент информации движения для слияния блоков для блока T2 предсказания, то могут быть сокращены затраты на кодирование информации выбора блока слияния (стрелка на чертеже указывает на то, что информация движения соседнего блока D пригодна для генерирования предсказанного сигнала блока T2 предсказания).
Кроме того, исходя из описанных выше фрагментов информации 4) и 5), информация движения блока T1 предсказания сравнивается с информацией движения соседнего блока D, и если эти фрагменты информации движения блока T1 предсказания и соседнего блока D идентичны друг другу, то информация движения соседнего блока D также исключается из кандидатов на информацию движения для слияния блоков, как показано на виде (B) Фиг. 3. Причиной этом служит тот факт, что если предсказанный сигнал блока T2 предсказания генерируется, используя информацию движения соседнего блока D, то фрагменты информации движения блоков T1 и T2 предсказания становятся идентичны друг другу. Благодаря данному процессу, информация движения для слияния блоков для блока T2 предсказания становится нулевой, что может сократить затраты на кодирование информации идентификации слияния, и информации выбора блока слияния становится нулевой, что может сократить затраты на кодирование информации идентификации слияния и информации выбора блока слияния.
Фиг. 4 является блок-схемой последовательности операций кодера 116 информации предсказания для реализации процесса на Фиг. 3.
Сначала, кодер 116 информации предсказания кодирует тип разделения на блоки предсказания целевого блока кодирования и сохраняет тип разделения на блоки предсказания в памяти 115 информации предсказания. В этот же момент, кодер 116 информации предсказания устанавливает число N блоков предсказания в целевом блоке кодирования, исходя из кодированного типа разделения на блоки предсказания, и сбрасывает номер i целевого блока предсказания в значение 0 (этап S151). Далее, кодер 116 информации предсказания определяет, является ли целевой блок предсказания блоком предсказания, который должен быть кодирован последним в целевом блоке кодирования, и не является ли число блоков предсказания в целевом блоке кодирования меньше 2 (этап S152). Например, в случае N=2, решением будет да с i=1, и обработка переходит к этапу S157. В случае N=4 ((D) по Фиг. 20), решением станет да с i=3. Когда решением является нет, обработка переходит к этапу S153. В случае Фиг. 3, обработка переходит к этапу S153, когда целевым блоком предсказания является блок T1 предсказания; обработка переходит к этапу S157, когда целевым блоком предсказания является блок T2 предсказания.
На этапе S153 кодируется информация идентификации слияния. Информация идентификации слияния становится да (merge_flag=1, генерирование предсказанного сигнала целевого блока предсказания, используя кандидата на информацию движения), если информация движения целевого блока предсказания совпадает с кандидатом на информацию движения для слияния блоков; в противном случае, информация идентификации слияния становится нет (merge_flag=0, генерирование предсказанного сигнала целевого блока предсказания, используя кодированную информацию движения). Далее, когда информация движения целевого блока предсказания совпадает с кандидатом на информацию движения для слияния блоков, то обработка переходит к этапу S164. На этапе S164 кодер 116 информации предсказания определяет, присутствует ли два кандидата на информацию движения, и если число кандидатов на информацию движения равно 2, то он кодирует информацию выбора блока слияния и обработка переходит к этапу S155. Когда число кандидатов на информацию движения равно 1, обработка переходит к этапу S165. С другой стороны, если информация движения целевого блока предсказания не совпадает ни с одним из кандидатов на информацию движения для слияния блоков, то обработка переходит к этапу S156 и кодер 116 информации предсказания кодирует информацию движения, которая обнаружена блоком 114 оценки информации движения, и затем переходит к этапу S165.
На этапе S157, кодер 116 информации предсказания определяет, совпадает ли каждый фрагмент уже кодированной информации движения целевого блока кодирования с информацией движения соседнего блока, который не принадлежит к целевому блоку кодирования. Описание данного этапа S157 означает, что в случае N=2, информация движения блока T1 предсказания, показанного на Фиг. 3, сравнивается с информацией движения соседнего блока D. Кроме того, описание этапа S157 означает, что в случае N=4 ( (D) по Фиг. 20), целевым блоком предсказания является нижний правый разделенный блок и фрагменты информации движения других трех блоков предсказания (верхнего левого, верхнего правого и нижнего левого) сравниваются друг с другом. Когда определения является да (или когда фрагменты информации движения при сравнении совпадают), число кандидатов на информацию движения, которая должна быть использована при слиянии блоков целевого блока предсказания равно 0, как показано в примере на виде (B) Фиг. 3, и таким образом кодер 116 информации предсказания кодирует информацию движения, которая обнаружена блоком 114 оценки информации движения, не передавая информацию слияния блоков, и затем обработка переходит к этапу S165 (этап S160). С другой стороны, когда определением является нет (или когда фрагменты информации движения при сравнении не совпадают), то обработка переходит к этапу S163. В случае N=4, фрагменты информации движения верхнего правого и нижнего левого блоков в целевом блоке кодирования являются таковыми соседних блоков для целевого блока предсказания. По этой причине, применение слияния блоков к целевому блоку предсказания (нижнему правому) при совпадении информации движения трех блоков предсказания (верхнего левого, верхнего правого и нижнего левого) означает, что предсказанные сигналы четырех блоков предсказания в целевом блоке кодирования все сгенерированы, используя одинаковую информацию движения. По этой причине, в случае если N=4, и если фрагменты информации движения трех блоков предсказания (верхнего левого, верхнего правого, и нижнего левого) идентичны друг другу, число кандидатов на информацию движения целевого блока предсказания (нижнего правого) задается равным 0.
На этапе S163, кодер 116 информации предсказания определяет, является ли тип разделения на блоки предсказания целевого блока кодирования типом деления на две части, и если определением является нет, то обработка переходит к этапу S153 (описание здесь и далее опущено). Когда определением на этапе S163 является да, то обработка переходит к этапу S158, на котором кодер 116 информации предсказания кодирует информацию идентификации слияния. В данном случае, поскольку число кандидатов на информацию движения, которая должна быть использована при слиянии блоков целевого блока предсказания, соответствует 1, как в примере на виде (A) Фиг. 3, то нет необходимости в кодировании информации выбора блока слияния. Далее, если информация движения целевого блока предсказания совпадает с кандидатом на информацию движения для слияния блоков, то обработка переходит к этапу S165. Если информация движения целевого блока предсказания не совпадает с кандидатом на информацию движения для слияния блоков, то обработка переходит к этапу S160, на котором кодер 116 информации предсказания кодирует информацию движения, которая обнаружена блоком 114 оценки информации движения, и затем обработка переходит к этапу S165.
На этапе S165, информация движения целевого блока сохраняется в памяти 115 информации предсказания. Затем на этапе S161 кодер 116 информации предсказания определяет, завершено ли кодирование для всех блоков предсказания в целевом блоке кодирования (соответствует ли i=N-1); когда i=N-1, то данная обработка по кодированию информации предсказания целевого блока кодирования прекращается; когда i<N-1, то на этапе S162 обновляется номер i (i=i+1), и обработка возвращается к этапу S152 для выполнения обработки кодирования информации движения следующего блока предсказания.
Поскольку кандидаты на информацию движения, которая должна быть использована при слиянии блоков блока предсказания могут быть выбраны заранее, используя фрагменты представленной ниже информации, как описано выше, то становится возможным эффективно передавать информацию слияния блоков.
1) Число уже кодированных/уже декодированных блоков предсказания в целевом блоке кодирования
2) Тип разделения на блоки предсказания целевого блока кодирования
4) Информация движения уже кодированных/уже декодированных блоков предсказания в целевом блоке кодирования
5) Информация движения и режим предсказания (внутрикадровое предсказание/межкадровое предсказание) блока, который является соседним для целевого блока предсказания
Фиг. 5 является блок-схемой последовательности операций, показывающей процедуру способа кодирования изображений с предсказанием в устройстве 100 кодирования изображения с предсказанием в соответствии с настоящим вариантом осуществления. Сначала разделитель 102 на блоки разделяет входное изображение на блоки кодирования размером 16x16 (изображение может быть разделено на блоки другого размера или формы, или в одном кадре могут быть смешены блоки разных размеров). Затем селектор 113 типа разделения на блоки предсказания и блок 114 оценки информации движения определяют тип разделения на блоки предсказания целевого блока кодирования, служащего в качестве цели кодирования, и информацию движения каждого из его блоков предсказания (этап S101). Далее, кодировщик 116 информации предсказания кодирует информацию предсказания (этап S102, Фиг. 4).
Далее, генератор 103 предсказанного сигнала генерирует предсказанный сигнал целевого блока кодирования, исходя из типа разделения на блоки предсказания целевого блока кодирования и информации движения каждого из блоков предсказания, и остаточный сигнал, указывающий разность между пиксельным сигналом целевого блока кодирования и предсказанным сигналом, преобразуется и кодируется преобразователем 106, квантователем 107, и кодером 111 квантованных коэффициентов преобразования (этап S103). Затем кодированные данные информации предсказания и квантованные коэффициенты преобразования выдаются через выходной терминал 112 (этап S104).
Для кодирования с предсказанием последующего целевого блока кодирования, кодированный остаточный сигнал декодируется посредством обратного квантователя 108 и обратного преобразователя 109, вслед за этими процессами или параллельно этим процессам. Затем сумматор 110 суммирует декодированный остаточный сигнал с предсказанным сигналом для воссоздания сигнала целевого блока кодирования. Воссозданный сигнал сохраняется в качестве опорного изображения в памяти 104 кадров (этап S105). Если обработка не завершена в отношении всех целевых блоков кодирования, то обработка возвращается на этап S101 для выполнения обработки для следующего целевого блока кодирования. Если обработка завершена для всех целевых блоков кодирования, то обработка прекращается (этап S106).
Далее будет описано декодирование изображений с предсказанием в соответствии с вариантом осуществления. Фиг. 6 является блок-схемой, показывающей устройство 200 декодирования изображения с предсказанием в соответствии с вариантом осуществления. Данное устройство 200 декодирования изображений с предсказанием снабжено входным терминалом 201, анализатором 202 данных, обратным квантователем 203, обратным преобразователем 204, сумматором 205, выходным терминалом 206, декодером 207 квантованных коэффициентов преобразования, декодером 208 информации предсказания, памятью 104 кадров, генератором 103 предсказанного сигнала, и памятью 115 информации предсказания.
Обратный квантователь 203, обратный преобразователь 204, и декодер 207 квантованных коэффициентов преобразования функционируют в качестве средства декодирования остаточного сигнала. Средство декодирования в виде обратного квантователя 203 и обратного преобразователя 204 может быть реализовано, используя любые средства отличные от этих. Кроме того, обратный преобразователь 204 может быть исключен. Память 115 информации предсказания и декодер 208 информации предсказания функционируют в качестве средства декодирования информации предсказания.
Входной терминал 201 принимает ввод сжатых данных, полученных в результате кодирования со сжатием посредством вышеупомянутого способа кодирования изображений с предсказанием. Эти сжатые данные содержат информацию квантованных коэффициентов преобразования, полученных в результате преобразования, квантования и энтропийного кодирования остаточного сигнала, для каждого из множества разделенных блоков кодирования, и кодированные данные информации предсказания для генерирования предсказанного сигнала блоков. Здесь информация предсказания содержит информацию слияния блоков для выполнения слияния блоков, используя информацию движения в качестве кандидатов для слияния блоков, в дополнение к типу разделения на блоки предсказания целевого кодированного блока и информации движения блоков предсказания. Кроме того, информация движения содержит вектор движения, режим межкадрового предсказания (прямое/обратное/двунаправленное предсказание), число опорного кадра и т.п.
Анализатор 202 данных анализирует сжатые данные, введенные через входной терминал 201, разделяет данные о целевом кодированном блоке, служащем в качестве цели декодирования, на кодированные данные квантованных коэффициентов преобразования и кодированные данные информации предсказания, и выдает их по линии L202a и по линии L202b соответственно декодеру 207 квантованных коэффициентов преобразования и декодеру 208 информации предсказания.
Декодер 208 информации предсказания выбирает кандидата на информацию движения, которая должна быть использована при слиянии блоков, для каждого блока предсказания, и энтропийно декодирует кодированные данные информации предсказания, связанной с целевым кодированным блоком. Декодированная информация предсказания выдается по линии L208a и по линии L208b соответственно генератору 103 предсказанного сигнала и памяти 115 информации предсказания. Память 115 информации предсказания сохраняет введенную информацию предсказания. Обработка декодера 208 информации предсказания будет описана позже.
Генератор 103 предсказанного сигнала получает ранее воссозданные сигналы из памяти 104 кадров, исходя из информации предсказания целевого кодированного блока, подаваемой по линии L208a, и генерирует предсказанный сигнал каждого блока предсказания в целевом кодированном блоке. Сгенерированный таким образом сигнал предсказания выдается по линии L103 сумматору 205.
Декодер 207 квантованных коэффициентов преобразования энтропийно декодирует кодированные данные квантованных коэффициентов преобразования остаточного сигнала в целевом закодированном блоке и выдает результат по линии L207 обратному квантователю 203.
Обратный квантователь 203 выполняет обратное квантование информации остаточного сигнала целевого кодированного блока, поданной по линии L207. Обратный преобразователь 204 выполняет обратное дискретное косинусное преобразование обратно квантованных данных.
Сумматор 205 суммирует предсказанный сигнал, который сгенерирован генератором 103 предсказанного сигнала, с остаточным сигналом, восстановленным обратным квантователем 203 и обратным преобразователем 204, и выдает воссозданный пиксельный сигнал целевого кодированного блока по линии L205 выходному терминалу 206 и памяти 104 кадров. Входной терминал 206 выдает сигнал во вне устройства 200 декодирования (например, на устройство отображения).
Память 104 кадров сохраняет воссозданное изображение, выданное из сумматора 205, в качестве опорного изображения, которое сохраняется в качестве воссозданного изображения для последующего обращения для следующей обработки декодирования.
Фиг. 7 является блок-схемой последовательности операций декодера 208 информации предсказания для реализации обработки на Фиг. 3.
Сначала, декодер 208 информации предсказания декодирует тип разделения на блоки предсказания целевого кодированного блока и сохраняет его в памяти 115 информации предсказания. В это же время, декодер 208 информации предсказания устанавливает число N блоков предсказания в целевом кодированном блоке, исходя из декодированного типа разделения на блоки предсказания, и сбрасывает номер i целевого блока предсказания в значение 0 (этап S251). Далее, декодер 208 информации предсказания определяет, является ли целевой блок предсказания блоком предсказания, который должен быть декодирован последним в целевом кодированном блоке, и является ли число блоков предсказания в целевом кодированном блоке не меньше 2 (этап S252). Например, в случае N=2, определением является да при i=1 и обработка переходит к этапу S258. В случае N=4 (вид (D) Фиг. 20), определением является да при i=3. Если определением является нет, то обработка переходит к этапу S253. На Фиг. 3 обработка переходит к этапу S253, когда целевым блоком предсказания является блок T1 предсказания; обработка переходит к этапу S258 когда целевым блоком предсказания является блок T2 предсказания.
На этапе S253, декодируется информация идентификации слияния. Если здесь информация идентификации слияния соответствует да (merge_flag=1), информация идентификации слияния указывает на то, что предсказанный сигнал целевого блока предсказания должен быть сгенерирован, используя кандидата на информацию движения. С другой стороны, когда информация идентификации слияния соответствует нет (merge_flag=0), предсказанный сигнал целевого блока предсказания генерируется, используя декодированную информацию движения. На следующем этапе S254, декодер 208 информации предсказания определяет, указывает ли информация идентификации слияния декодирование информации движения, т.е., является ли 0 значение merge_flag. Когда декодированное значение merge_flag равно 0, декодер 208 информации предсказания декодирует информацию движения для генерирования предсказанного сигнала целевого блока предсказания (этап S257) и затем обработка переходит к этапу S267. Когда значение merge_flag равно 1, тогда декодер 208 информации предсказания определяет на этапе S266, является ли число кандидатов на информацию движения, которая должна быть использована при слиянии блоков, 3, и когда число кандидатов соответствует 2, декодируется информация выбора блока слияния и обработка переходит к этапу S256 (этап S255). Когда число кандидатов на информацию движения, которая должна быть использована при слиянии блоков, целевого блока предсказания соответствует 1, тогда обработка переходит к этапу S256. На этапе S256, когда число кандидатов на информацию движения соответствует 1, тогда декодер 208 информации предсказания определяет из этого в качестве информации движения целевого блока предсказания информацию движения. Когда число кандидатов на информацию движения равно 2, тогда декодер 208 информации предсказания определяет в качестве информации движения целевого блока предсказания информацию движения соседнего блока, который указан информацией выбора блока слияния.
На этапе S258, декодер 208 информации предсказания определяет, совпадает ли каждый фрагмент уже декодированной информации движения целевого кодированного блока с информацией движения соседнего блока, который не принадлежит к целевому кодированному блоку. Описание данного этапа S258 означает то, что в случае N=2, информация движения блока T1 предсказания, показанного на Фиг. 3, сравнивается с информацией движения соседнего блока D. Кроме того, описание данного этапа S258 означает то, что в случае N=4 (вид (D) Фиг. 20), целевой блок предсказания является нижним правым разделенным блоком, фрагменты информации движения трех других блоков предсказания (верхнего левого, верхнего правого, и нижнего левого) сравниваются друг с другом. Когда определением является да (или когда фрагменты информации движения при сравнении совпадают), число кандидатов на информацию движения, которая должна быть использована при слиянии блоков, для целевого блока предсказания равно 0, как показано в примере на виде (B) на Фиг. 3, и декодер 208 декодирования информации предсказания декодирует информацию движения, которая должна быть использована для генерирования предсказанного сигнала целевого блока предсказания, не декодируя информацию слияния блоков, и обработка переходит к этапу S267 (этап S262). С другой стороны, когда определением является нет (или когда фрагменты информации движения при сравнении не совпадают), то обработка переходит к этапу S256. В случае N=4 фрагментами информации движения блоков, которые являются соседними для целевого блока информации, являются фрагменты информации движения верхнего правого и нижнего левого блоков в целевом кодированном блоке. По этой причине, применение слияния блоков к целевому блоку предсказания (нижнему правому), при совпадении фрагментов информации движения трех блоков предсказания (верхнего левого, верхнего правого и нижнего левого) означает, что предсказанные сигналы четырех блоков предсказания в целевом кодированном блоке все генерируются из одинаковой информации движения. По этой причине, в случае, когда N=4, и если фрагменты информации движения трех блоков предсказания (верхнего левого, верхнего правого, и нижнего левого) идентичны друг другу, то число кандидатов на информацию движения целевого блока предсказания (нижнего правого) устанавливается в 0.
На этапе S265, декодер 208 информации предсказания определяет, является ли тип разделения на блоки предсказания целевого кодированного блока типом разделения на две части, и если определением является нет, то обработка переходит к этапу S253 (здесь описание опущено). Когда определением на этапе S265 является да, обработка переходит к этапу S259, на котором декодер 208 информации предсказания декодирует информацию идентификации слияния. В данном случае, как в примере на виде (A) Фиг. 3, число кандидатов на информацию движения, которая должна быть использована при слиянии блоков, целевого блока предсказания равно 1, и вследствие этого, нет необходимости в декодировании информации выбора блока слияния.
На следующем этапе S260, декодер 208 информации предсказания определяет, указывает ли информация идентификации слияния декодирование информации движения, т.е., является ли 0 значение merge_flag. Если декодированное значение merge_flag равно 0, то декодер 208 информации предсказания декодирует информацию движения для генерирования предсказанного сигнала целевого блока предсказания (этап S262) и обработка переходит к этапу S261. На этапе S261, поскольку число кандидатов на информацию движения равно 1, как показано на виде (A) Фиг. 3, декодер 208 информации предсказания определяет в качестве информации движения целевого блока предсказания информацию движения соседнего блока D и обработка переходит к этапу S267.
На этапе S267, информация движения восстановленного блока предсказания сохраняется в памяти 115 информации предсказания. Впоследствии, на этапе S263, декодер 208 информации предсказания определяет, завершено ли декодирование для всех блоков предсказания в целевом кодированном блоке (соответствует ли i=N-1); когда i=N-1, тогда данная обработка по декодированию информации предсказания целевого кодированного блока прекращается; когда i<N-1, тогда номер i обновляется на этапе S264 (i=i+1) и обработка возвращается к этапу S252 для выполнения обработки декодирования информации движения следующего блока предсказания.
Далее, используя Фиг. 8, будет описан способ декодирования изображения с предсказанием в устройстве 200 декодирования изображения с предсказанием, показанном на Фиг. 6. Сначала, сжатые данные вводятся через входной терминал 201 (этап S201). Затем, анализатор 202 данных выполняет анализ данных собственно сжатых данных для извлечения кодированных данных информации предсказания и квантованных коэффициентов преобразования в отношении целевого участка цели декодирования. Информация предсказания декодируется декодером 208 информации предсказания (S203).
После этого, исходя из восстановленной информации предсказания, генератор 103 предсказанного сигнала генерирует предсказанный сигнал целевого кодированного блока (S204).
Квантованные коэффициенты преобразования, декодированные декодером 207 квантованных коэффициентов преобразования, подвергаются обратному квантованию в обратном квантователе 203 и обратному преобразованию в обратном преобразователе 204, чтобы генерировать воссозданный остаточный сигнал (S205). Затем сгенерированный предсказанный сигнал суммируется с воссозданным остаточным сигналом для генерирования воссозданного сигнала, и данный воссозданный сигнал сохраняется в памяти 104 кадров, для воссоздания следующего целевого кодированного блока (этап S206). Если существуют следующие сжатые данные, то процесс этапов с S204 по S206 неоднократно повторяется (S207) с тем, чтобы обработать все данные до конца.
Выше описаны примеры, в которых число соседних блоков для блока предсказания не превышает 2, а ниже внимание будет сфокусировано на ситуациях, при которых число соседних блоков, которые контактируют с верхней или левой границами блока для блока предсказания не меньше 3.
Пример на Фиг. 3 касается случая, при котором существует два соседних блока, которые контактируют с блоком предсказания, однако существуют ситуации, при которых блок предсказания контактирует с двумя или более соседними блоками, в зависимости от комбинаций типов разделения на блоки предсказания блока кодирования и соседних с ним блоков. Фиг. 9 показывает пример, в котором с блоком предсказания контактируют три соседних блока. Здесь в качестве примера будет описан блок 301 на Фиг. 20, однако аналогичное описание также применимо к блокам 302, 304, 305, 306 и 307.
На видах (A) и (B) Фиг. 9, целевой кодированный блок 400 имеет два блока предсказания, полученные в результате деления на две части блока 400 по вертикали, тогда как блок 401, который контактирует с левой стороной блока T1 предсказания, разделен на две части (разделен на два блока, верхний и нижний) по горизонтали. По этой причине, блок T1 предсказания контактирует с тремя соседними блоками A, B, и C. В данном случае, когда на стороне кодирования и на стороне декодирования предварительно определено, что соседние блоки представлены двумя соседними блоками A и B, которые контактируют с верхним левым углом целевого блока предсказания, число соседних блоков всегда ограничено 2 блоками и вследствие этого применяется методика описанная выше.
С другой стороны, также можно использовать методику виртуального деления на две части блока T1 предсказания по горизонтали в соответствии с типом разделения на блоки предсказания соседнего блока 401, как показано на виде (B) Фиг. 9. В данном случае целевой блок T1 предсказания разделен на блоки T1a и T1b и предсказанный сигнал блока T1a и предсказанный сигнал блока T1b генерируются, используя два фрагмента информации движения, которые принадлежат соответственно соседним блокам A и C.
В данной ситуации информация выбора блока слияния может эффективно кодироваться, не меняя конфигурацию информации слияния блоков, используя правило, по которому, выбранными кандидатами на информацию выбора блока слияния являются два фрагмента информации движения соседнего блока B на виде (A) Фиг. 9 и комбинация фрагментов информации движения соседних блоков A и C на виде (B) Фиг. 9.
С другой стороны, в случае, когда информацией выбора блока слияния указывается либо вид (A) Фиг. 9, либо вид (B) Фиг. 9, и в случае, когда выбран вид (B) Фиг. 9, то также можно использовать способ дополнительной передачи второй информации идентификации слияния для каждого виртуального блока и идентификации генерирования предсказанного сигнала виртуального блока, исходя из информации движения соседнего блока, или кодируя/декодируя информацию движения.
Также можно использовать способ без разделения блока T1 предсказания, при котором выбранными кандидатами на информацию выбора блока слияния в блоке T1 предсказания являются три фрагмента информации движения соседних блоков A, B, и C, и при котором информация движения, которая должна быть использована при генерировании предсказанного сигнала блока T1, выбирается из трех фрагментов информации, однако в данном случае требуется внести представленные ниже изменения.
1. Перед этапом S164 на Фиг. 4 и этапом S266 на Фиг. 7 добавляется последовательность операций из «сбора типа разделения на блоки предсказания соседнего блока и извлечения числа блоков, соседствующих с блоком предсказания».
2. Этап S164 на Фиг. 4 и этап S266 на Фиг. 7 меняются на «Присутствует два или более фрагмента информации движения выбранных кандидатов?»
3. Информация выбора блока слияния расширяется до информации для выбора одного из трех или более кандидатов.
Данная обработка слияния блоков, показанная на виде (A) и (B) Фиг. 9, может быть реализована посредством расширения этапа S256 на Фиг. 7 до обработки, показанной на Фиг. 11. Сначала на этапе S256a получают тип разделения на блоки предсказания кодированного блока, который контактирует с целевым блоком предсказания. На следующем этапе S256b из полученного типа разделения на блоки предсказания извлекают число M блоков предсказания, которые являются соседними для границ блока, которые указаны декодированной информацией выбора блока слияния. Например, в случае вида (B) Фиг. 9, M=2. Кроме того, на этапе S256с, определяют, больше ли 1 значение M (M>1). В случае, когда M>1, целевой блок предсказания разделяется на M виртуальных блоков, и фрагменты информации движения M соседних блоков устанавливаются в M разделенных виртуальных блоков (также может быть рассмотрено, что информация идентификации слияния дополнительно отправляется для каждого виртуального блока, и определяют должна ли декодироваться информация движения). В случае M=1, информация движения соседнего блока, служащего в качестве кандидата для слияния блоков, устанавливается информации движения целевого блока предсказания.
В соответствии с Фиг. 7 и 11, как описано выше, выбор кандидата на информацию движения в примере на Фиг. 9 выполняется, исходя из представленных ниже фрагментов информации.
1) Числа уже кодированных/уже декодированных блоков предсказания в целевом кодированном блоке
2) Типа разделения на блоки предсказания целевого кодированного блока
3) Типа разделения на блоки предсказания блока, который является соседним для целевого блока предсказания
Таким образом, информация 3), которая не используется при выборе кандидата на информацию движения в примере на Фиг. 3, используется в случаях, когда существует три или более кандидата на информацию движения.
Вид (C) Фиг. 9 показывает пример, в котором блок, соседствующий с левой стороной блока 400 предсказания, асимметрично разделен на две части. В данном случае, также можно использовать методику виртуального разделения по горизонтали на две части блока T1 предсказания в соответствии с типом разделения на блоки предсказания соседнего блока 401 (на блоки T1a и T1b). А именно, предсказанный сигнал целевого блока T1 предсказания может генерироваться, используя сочетание фрагментов информации движения соседних блоков A и C на виде (C) Фиг. 9 в качестве кандидатов на информацию движения для слияния блоков блока T1 предсказания.
В случаях, где типом разделения на блоки предсказания блока кодирования является тип, при котором число блоков предсказания является 1, подобно блоку 300 на Фиг. 20, как показано на видах с (D) по (F) Фиг. 9, то также можно применить методику виртуального разделения по горизонтали блока T1 предсказания (блок 400) в соответствии с типом разделения на блоки предсказания соседнего блока 401 (разделение на множество блоков, скомпонованных в вертикальном направлении), и генерирования предсказанного сигнала для каждого блока. Кроме того, в случае, когда соседний блок 402 разделен по вертикали (на множество блоков, скомпонованных в горизонтальном направлении), которые не показаны, можно применить методику виртуального разделения по вертикали блока T1 предсказания (блока 400) в соответствии с типом разделения на блоки предсказания соседнего блока 402, и генерирования предсказанного сигнала для каждого блока.
В случае, когда блок, который является соседним для блока предсказания, включает в себя блок внутрикадрового предсказания (intra-), то также можно применить методику виртуального разделения блока предсказания и генерирования предсказанного сигнала, посредством предварительного определения правил. Виды с (A) по (F) Фиг. 10 показывают примеры, в которых блок внутрикадрового предсказания (intra-) включен во множество соседних блоков A, C, E, и G, которые контактируют с левой стороной блока предсказания. Исходя из типа разделения на блоки предсказания соседнего блока и режима предсказания (межкадровое/внутрикадровое предсказание) в информации предсказания, блок внутрикадрового предсказания в соседнем блоке виртуально объединен с блоком межкадрового предсказания с информацией движения (жирные линии на чертеже). В этих примерах, блок внутрикадрового предсказания виртуально объединен с блоком межкадрового предсказания, который находится ближе к верхнему левому углу соседнего блока и который находится ближе всего к блоку внутрикадрового предсказания. В результате, блок T1 предсказания виртуально разделяется в соответствии с числом блоков межкадрового предсказания в соседнем блоке, как показано на видах с (A) по (F) Фиг. 10. Таким образом, даже в случаях, где соседний блок включает в себя блок внутрикадрового предсказания (intra-), генерирование предсказанного сигнала посредством слияния блоков может выполняться, используя информацию движения блока межкадрового предсказания в соседнем блоке.
Не существует ограничений на правила объединения блока внутрикадрового предсказания с блоком межкадрового предсказания в соседнем блоке. Можно предположить, что подготовлено множество правил, как описано выше, и правило выбирается для каждого кадра или каждого среза для реализации кодирования.
В данном случае выбор кандидата на информацию движения выполняется, исходя из представленных ниже фрагментов информации.
1) Числа уже кодированных/уже декодированных блоков предсказания в целевом блоке кодирования/кодированном блоке
2) Типа разделения на блоки предсказания целевого блока кодирования/кодированного блока
3) Типа разделения на блоки предсказания блока, который является соседним для целевого блока предсказания
5) Режима предсказания (внутрикадровое предсказание/межкадровое предсказание) блока, который является соседним для целевого блока предсказания
Фиг. 12 показывает примеры, в которых блок 400 кодирования и соседний блок 402 аналогичным образом разделены на две части по вертикали, однако у них разные формы разделов. В этих примерах, блок T1 предсказания (блок, включающий в себя блоки T1a и T1b) на виде (A) Фиг. 12 и блок T2 предсказания (блок, включающий в себя блоки T2a и T2b) на виде (B) Фиг. 12 также имеют три соседних блока. Применительно к блоку T1 на виде (A) Фиг. 12, поток обработки с Фиг. 11 применяется к этапу S256 на Фиг. 7, тем самым становится возможным выполнить слияние блоков посредством установки фрагментов информации движения блоков Ba и Bb соответствующим блокам T1a и T1b, полученным в результате виртуального разделения на две части по вертикали блока T1 предсказания. Применительно к блоку T2 на виде (B) Фиг. 12, к этапу S261 на Фиг. 7 применяется описываемый ниже поток обработки с Фиг. 13, тем самым становится возможным выполнить слияние блоков посредством установки фрагментов информации движения блоков Ba и Bb соответствующим блокам T2a и T2b, полученным в результате виртуального разделения на две части по блока T2 предсказания по вертикали. В данном случае также можно использовать способ передачи второй информации идентификации слияния для каждого виртуального блока и идентификации либо генерирования предсказанного сигнала виртуального блока исходя из информации движения соседнего блока, либо кодирования/декодирования информации движения.
Также можно использовать способ, при котором блок T2 предсказания не разделяется, два фрагмента информации движения блока Ba и блока Bb задаются в качестве кандидатов на информацию движения, которая должна быть использована при слиянии блоков блока T2 предсказания, и в качестве информации движения, которая должна быть использована при генерировании предсказанного сигнала T2, выбирается один из фрагментов информации движения блока Ba и блока Bb, однако в данном случае необходимо расширить поток обработки на Фиг. 7 в соответствии с описанным ниже.
1. После этапа S158 на Фиг. 4 и после этапа S259 на Фиг. 7 добавляется последовательность операций из «сбора типа разделения на блоки предсказания соседнего блока и извлечения числа блоков, которые являются соседними для блока предсказания».
2. Этап S159 на Фиг. 4 и этап S260 на Фиг. 7 меняются на «Присутствует два или более фрагмента информации движения выбранных кандидатов?».
3. После этапа S159 на Фиг. 4 и после этапа S260 на Фиг. 7 добавляется этап выполнения кодирования/декодирования информации выбора блока.
Ниже будет описана последовательность операций на Фиг. 13. На Фиг. 13, сначала на этапе S261a, получают тип разделения на блоки предсказания кодированного блока, который контактирует с целевым блоком предсказания. На следующем этапе S261b, из полученного типа разделения на блоки предсказания извлекают M блоков предсказания, которые являются соседними для границ блока, контактирующих с соседним блоком, не принадлежащим целевому кодированному блоку. Например, в случае, показанном на виде (B) Фиг. 12, M=2. Кроме того, на этапе S261c определяют, больше ли 1 значение M (M>1). В случае, когда M>1, целевой блок предсказания разделяется на M виртуальных блоков и M разделенным виртуальным блокам устанавливаются фрагменты информации движения M соседних блоков (также можно дополнительно отправить информацию идентификации слияния для каждого виртуального блока и определить, должна ли декодироваться информация движения). В случае, когда M=1, в качестве информации движения целевого блока предсказания устанавливается информация движения соседнего блока, как кандидата для слияния блоков.
Как описано выше в соответствии с Фиг. 12 и 13, выбор кандидата на информацию движения в примере на Фиг. 11 выполняется исходя из представленных ниже фрагментов информации.
1) Числа уже кодированных/уже декодированных блоков предсказания в целевом блоке кодирования/кодированном блоке
2) Типа разделения на блоки предсказания целевого блока кодирования/кодированного блока
3) Типа разделения на блоки предсказания блока, который является соседним для целевого блока предсказания
Следует отметить, что, несмотря на то, что Фиг. 11 описывает пример разделения по вертикали, аналогичная обработка также применяется к примерам разделения по горизонтали (разделения на множество блоков, скомпонованных в вертикальном направлении) подобно блокам 306 и 307 на Фиг. 20.
Можно использовать описываемые ниже дополнительные модификации.
(Кандидаты на информацию движения)
В вышеприведенном описании в качестве кандидатов для слияния блоков были заданы фрагменты информации движения блоков, контактирующих с верхней стороной и левой стороной блока предсказания, однако также можно установить ограничение, исходя из типов разделения на блоки предсказания целевого блока кодирования/кодированного блока и соседних блоков, как показано на видах (A) и (B) Фиг. 14 и виде (A) Фиг. 15. Виды (A) и (B) Фиг. 14 показывают примеры, где присутствует два соседних блока, и где информация движения соседних блоков по стороне, контактирующей с двумя или более соседними блоками, из верхней стороны и левой стороны блока предсказания, исключается из кандидатов для слияния блоков. В данном случае, нет необходимости в кодировании информации выбора блока слияния, что может сократить дополнительную информацию. Кандидаты на информацию движения, которая должна быть использована при слиянии блоков, для блока T1 предсказания на виде (A) Фиг. 14 и блока T1 предсказания на виде (B) Фиг. 14, определяются как соответственно фрагменты информации движения блока B и блока A.
Вид (A) Фиг. 15 показывает методику автоматического выбора кандидатов на информацию движения, которая должна быть использована при слиянии блоков, блоков T1 и T2 предсказания, исходя из типа разделения на блоки предсказания целевого блока кодирования/кодированного блока.
Вид (B) Фиг. 15 показывает пример, в котором блок предсказания, к которому применяется слияние блоков, ограничивается в соответствии с типом разделения на блоки предсказания целевого блока кодирования и числом уже кодированных/уже декодированных блоков в целевом блоке кодирования. В примере, показанном на Фиг. 3, когда информация движения блока T1 совпадает с той, что у блока D, информация движения блока D исключается из кандидатов на информацию движения, которая должна быть использована при слиянии блоков, для блока T2; тогда как в случае, показанном на виде (A) Фиг. 15, не проводя сравнения между информацией движения блока T1 и информацией движения блока D, блок D исключается из кандидатов на слияние блоков, исходя из числа уже кодированных/декодированных блоков предсказания в целевом блоке кодирования/кодированном блоке. Таким образом, блок предсказания, к которому применяется слияние блоков, может ограничиваться числом векторов движения, которые должны быть кодированы в целевом блоке кодирования.
Кроме того, также можно наложить ограничение в соответствии с размерами блоков для двух соседних блоков, контактирующих с верхним левым углом блока предсказания, и размером блока собственно блока предсказания. Например, когда размер правой стороны соседнего блока, контактирующего с левой стороной целевого блока предсказания, меньше заранее установленного значения (например, половины или четверти длины левой стороны блока предсказания), информация движения соседнего блока может исключаться из кандидатов на слияние блоков для целевого блока предсказания.
Когда на кандидатов на информацию движения установлено ограничение в соответствии с тем, что описано выше, может быть сокращен объем кода информации слияния блоков.
(Выбор кандидата на информацию движения)
Выбор кандидата на информацию движения выполняется исходя из представленных ниже фрагментов информации, однако способ использования информации не ограничивается описанными выше способами. Средство для выбора кандидатов на информацию движения, используя эти фрагменты информации, может быть реализовано посредством конфигураций на Фиг. 1 и Фиг. 6.
1) Числа уже кодированных/уже декодированных блоков предсказания в целевом блоке кодирования/кодированном блоке
2) Типа разделения на блоки предсказания целевого блока кодирования/кодированного блока
3) Типа разделения на блоки кодирования блока, который является соседним для целевого блока предсказания
4) Информации движения уже кодированных/уже декодированных блоков предсказания в целевом блоке кодирования/кодированном блоке
5) Информации движения и режима предсказания (внутрикадровое предсказание/межкадровое предсказание) блока, который является соседним для целевого блока предсказания
(Кодирование блока предсказания)
В приведенном выше описание кодирование/декодирование блоков предсказания в блоке кодирования выполняется в очередности растровой развертки, однако описанный выше выбор кандидата на информацию движения, которая должна быть использована при слиянии блоков, также применим к случаям, где блоки предсказания кодируются/декодируются в любой очередности. Например, в примере на Фиг. 3, там где блок T2 предсказания целевого блока 400 кодирования/кодированного блока кодируется/декодируется первым, вектор движения блока T2 предсказания не включается в качестве кандидата на информацию движения, которая должна быть использована при слиянии блоков, блока T1 предсказания.
(Форма блока)
В приведенном выше описании частичные участки в блоке кодирования всегда были прямоугольными, однако они могут иметь любую форму. В данном случае, в информацию предсказания блока кодирования может быть включена информация формы.
(Преобразователь и обратный преобразователь)
Процесс преобразования остаточного сигнала может выполняться по фиксированному размеру блока, или процесс преобразования может выполняться после того как целевой участок подразделен в соответствии с частичными участками.
(Информация предсказания)
В приведенном выше описании способ генерирования предсказанного сигнала был описан как межкадровое предсказание (предсказание, используя вектор движения и информацию опорного кадра), однако способ генерирования предсказанного сигнала этим не ограничивается. Упомянутый выше процесс генерирования предсказанного сигнала также применим к внутрикадровому предсказанию и способу предсказания, включающему в себя компенсацию яркости или подобному. В данном случае, информация предсказания содержит информацию режима, параметры компенсации яркости, и т.п.
На Фиг. 10 блок внутрикадрового предсказания в соседнем блоке виртуально объединен с блоком межкадрового предсказания, однако также можно использовать способ, при котором блок предсказания виртуально разделен, независимо от режима предсказания соседнего блока, и частичные сигналы в блоке предсказания предсказываются посредством внутрикадрового предсказания.
(Сигнал цветности)
Вышеприведенное описание не содержит конкретного описания формата цвета, однако процесс генерирования предсказанного сигнала также может выполняться для сигнала цветности или цветоразностного сигнала, независимо от сигнала яркости. Процесс генерирования предсказанного сигнала также может выполняться синхронно с обработкой сигнала яркости.
(Процесс удаления искажений от блочности)
Несмотря на то, что в вышерассмотренном описании ничего не описано, однако воссозданное изображение может подвергаться процессу удаления искажения от блочности и в таком случае, предпочтительно выполнять процесс удаления искажений для частей на границах частичных участков. В случаях, когда блок предсказания виртуально разделен в примерах, показанных на Фиг. 9, 10, и 12, то процесс удаления искажения от блочности также может применяться к границам между виртуально разделенными блоками.
Способ кодирования изображений с предсказанием и способ декодирования изображения с предсказанием в соответствии с вариантами осуществления настоящего изобретения также могут быть предоставлены как хранящиеся в виде программ на носителе записи. Примеры носителей записи включают в себя носители записи такие как флоппи диски (зарегистрированная торговая марка), CD-ROM, DVD или ROM, или полупроводниковую память или подобное.
Фиг. 16 является блок-схемой, показывающей модули программы, которые могут исполнять способ кодирования изображений с предсказанием. Программа P100 кодирования изображений с предсказанием снабжена модулем P101 разделения на блоки, модулем P102 оценки информации движения, модулем P103 генерирования предсказанного сигнала, модулем P104 хранения, модулем P105 вычитания, модулем P106 преобразования, модулем P107 квантования, модулем P108 обратного квантования, модулем P109 обратного преобразования, модулем P110 суммирования, модулем P111 кодирования квантованных коэффициентов преобразования, модулем P112 выбора типа разделения на блоки предсказания, модулем P113 хранения информации предсказания, и модулем P114 кодирования информации предсказания. Функции, реализуемые при исполнении соответствующих модулей компьютером, точно такие же, как функции упомянутого выше устройства 100 кодирования изображений с предсказанием. А именно, модуль P101 разделения на блоки, модуль P102 оценки информации движения, модуль P103 генерирования предсказанного сигнала, модуль P104 хранения, модуль P105 вычитания, модуль P106 преобразования, модуль P107 квантования, модуль P108 обратного квантования, модуль P109 обратного преобразования, модуль P110 суммирования, модуль P111 кодирования квантованных коэффициентов преобразования, модуль P112 выбора типа разделения на блоки предсказания, модуль P113 хранения информации предсказания, и модуль P114 кодирования информации предсказания побуждают компьютер выполнить те же функции, что и соответственно у разделителя 102 на блоки, генератора 103 предсказанного сигнала, памяти 104 кадров, вычитателя 105, преобразователя 106, квантователя 107, обратного квантователя 108, обратного преобразователя 109, сумматора 110, кодера 111 квантованных коэффициентов преобразования, селектора 113 типа разделения на блоки предсказания, памяти 115 информации предсказания, и кодера 116 информации предсказания.
Фиг. 17 является блок-схемой, показывающей модули программы, которые могут выполнять способ декодирования изображений с предсказанием. Программа P200 декодирования изображений с предсказанием снабжена модулем P201 декодирования квантованных коэффициентов преобразования, модулем P202 декодирования информации предсказания, модулем P113 хранения информации предсказания, модулем P206 обратного квантования, модулем P207 обратного преобразования, модулем P208 суммирования, модулем P103 генерирования сигнала предсказания, и модулем 104 хранения.
Функции, которые реализуются при исполнении соответствующих модулей, точно такие же, как те, что у соответствующих компонентов упомянутого выше устройства 200 декодирования изображений с предсказанием. А именно, модуль P201 декодирования квантованных коэффициентов преобразования, модуль P202 декодирования информации предсказания, модуль P113 хранения информации предсказания, модуль P206 обратного квантования, модуль P207 обратного преобразования, модуль P208 суммирования, модуль P103 генерирования сигнала предсказания, и модуль 104 хранения побуждают компьютер выполнять те же функции, что и соответственно у декодера 207 квантованных коэффициентов преобразования, декодера 208 информации предсказания, памяти 115 информации предсказания, обратного квантователя 203, обратного преобразователя 204, сумматора 205, генератора 103 предсказанного сигнала, и памяти 104 кадров.
Программа P100 кодирования изображений с предсказанием или программа P200 декодирования изображений с предсказанием, выполненные в соответствии с тем, что описано выше, хранятся на носителе SM записи и исполняются описываемым ниже компьютером.
Фиг. 18 является чертежом, показывающим конфигурацию аппаратного обеспечения компьютера для исполнения программ, записанных на носителе данных, а Фиг. 19 вид в перспективе компьютера для исполнения программ, хранящихся на носителе записи. Оборудование для выполнения программ, хранящихся на носители записи, не ограничивается компьютерами, и при этом может быть проигрывателем DVD, абонентской телевизионной приставкой, сотовым телефоном или подобным, снабженным CPU и выполненным с возможностью выполнения обработки и управления, основанного на программном обеспечении.
Как показано на Фиг. 19, компьютер C10 снабжен устройством C12 считывания, таким как блок дисковода флоппи дисков, блок дисковода CD-ROM или блок дисковода DVD, оперативной памятью С14 (RAM), в которой постоянно размещается операционная система, памятью C16 для хранения программ, хранящихся на носителе SM записи, устройством C18 монитора, таким как устройство отображения, манипулятором C20 типа мышь и клавиатурой C22 в качестве устройств ввода, устройством C24 связи для передачи и приема данных и прочего, и CPU С26, для управления исполнением программ. Когда носитель SM записи помещается в устройство C12 считывания, то компьютер C10 получает доступ к хранящейся на носителе SM записи программе кодирования/декодирования изображений с предсказанием, посредством устройства C12 считывания, и получает возможность функционирования в качестве устройства кодирования изображений или устройства декодирования изображений в соответствии с вариантами осуществления настоящего изобретения, исходя из программы кодирования или декодирования изображений.
Как показано на Фиг. 18, программа кодирования изображений с предсказанием и программа декодирования изображения могут предоставляться в виде сигнала CW компьютерных данных, наложенного на несущую волну, посредством сети. В данном случае компьютер C10 получает возможность исполнения программы кодирования изображений с предсказанием или программы декодирования изображений с предсказанием после того как программа кодирования изображений с предсказанием или программа декодирования изображений с предсказанием, принятая устройством C24 связи, сохранена в памяти C16.
Ниже будет описан еще один другой вариант осуществления. Фиг. 24 является чертежом, схематически показывающим конфигурацию устройства кодирования видео в соответствии с вариантом осуществления. Устройство 10 кодирования видео, показанное на Фиг. 24, снабжено разделителем 501 на блоки, генератором 502 подразделов, памятью 503 кадров, блоком 504 обнаружения движения, генератором 505 предсказанного сигнала, предиктором 506 движения, вычитателем 507, генератором 508 остаточного сигнала, преобразователем 509, квантователем 510, обратным квантователем 511, обратным преобразователем 512, сумматором 513, и энтропийным кодером 514. Сигнал входного изображения (видеосигнал), подаваемый на устройство 10 кодирования видео, составлен из временной последовательности сигналов изображения в единицах кадра (здесь и далее именуемых как сигналы изображения кадра).
Разделитель 501 на блоки последовательно выбирает сигналы изображения кадра, или входные изображения, выступающие в качестве целей кодирования, из сигнала входного изображения, подаваемого по линии L501. Разделитель 501 на блоки разделяет входное изображения на множество разделов или блоков. Разделитель 501 на блоки последовательно выбирает множество блоков в качестве блоков цели кодирования и выдает пиксельный сигнал каждого из целевых блоков (здесь и далее именуемый как сигнал целевого блока) по линии L502.
В устройстве 10 кодирования видео описываемая ниже обработка по кодированию выполняется в единицах блока. Разделитель 501 на блоки может разделять, например, входное изображение на множество блоков, каждый состоящий из 8×8 пикселей. Тем не менее, блоки могут быть любого размера и формы. Блоки могут быть, например, блоками размером 32×16 пикселей, или блоками размером 16×64 пикселей.
Генератор 502 подразделов разделяет целевой блок, поданный по линии L502, на множество подразделов. Фиг. 25 является чертежом для объяснения генерирования подразделов. Как показано на Фиг. 25, генератор 502 подразделов разделяет целевой блок P на два подраздела SP1 и SP2 посредством прямой линии Ln, выраженной линейным выражение по формуле (1).
y=mx+k (1)
Например, генератор 502 подразделов может быть выполнен следующим образом: при изменении параметров m и k, он получает предсказанный сигнал подраздела SP1 и предсказанный сигнал подраздела SP2, и в качестве параметров прямой линии Ln определяет m и k, которые минимизируют ошибку между предсказанным сигналом подраздела SP1 и сигналом изображения подраздела SP1 и ошибку между предсказанным сигналом подраздела SP2 и сигналом изображения подраздела SP2.
Генератор 502 подразделов выдает по линии L504, определенные таким образом параметры m и k в формуле (1), в качестве информации формы для задания форм подразделов в целевом блоке P, т.е., в качестве информации формы для задания форм первого подраздела SP1 и второго подраздела SP2.
Линейное выражение, которое выражает прямую линию Ln, может быть любым. Например, прямая линия Ln может быть выражена формулой (2).
y=-x/tanθ+ρ/sinθ (2)
В данном случае, информацией формы является θ и ρ.
Информация формы может быть информацией, которая указывает две произвольные точки, которые проходит прямая линия Ln, например, пересечения между прямой линией и границами блока P. Блок не обязательно всегда должен быть разделен прямой линией, и подразделы могут генерироваться исходя из шаблона, выбранного из множества заранее подготовленных шаблонов. В данном случае, в качестве информации формы может использоваться такая информация, как индекс, для указания выбранного шаблона.
В описании ниже установлены координаты с началом отсчета в самой верхней и крайней левой позиции целевого блока, при этом подраздел, включающий в себя самый верхний и крайний левый пиксель в целевом блоке P задан как первый подраздел, а другой в качестве второго подраздела. Тем не менее, следует отметить, что здесь может применяться любой способ задания: например, подраздел, который не включает в себя позицию центра в целевом блоке, может задаваться в качестве первого подраздела, а другой в качестве второго подраздела. В данном случае, информацией формы может быть информация пересечения границ блока или информация идентификации шаблона.
Память 503 кадров хранит сигналы ранее воссозданных изображений, поданные по линии L505, т.е., сигналы изображения кадра, которые были кодированы ранее (которые будут именоваться в данном документе как сигналы изображения опорного кадра). Память 503 кадров выдает сигналы изображения опорного кадра по линии L506.
Блок 504 обнаружения движения принимает сигнал целевого блока, поданный по линии L502, информацию формы блока, поданную по линии L504, и сигналы изображения опорного кадра, поданные по линии L506. Блок 504 обнаружения движения осуществляет поиск по сигналам изображения в заранее определенном диапазоне сигналов изображения опорного кадра, в отношении сигнала, который аналогичен сигналу изображения подраздела, служащего в качестве цели обработки, и вычисляет вектор движения. Данный вектор движения является величиной пространственного смещения между участком в сигнале изображения опорного кадра, который имеет пиксельный сигнал, аналогичный сигналу изображения подраздела, служащего в качестве цели обработки, и целевым блоком. Блок 504 обнаружения движения выдает вычисленный таким образом вектор движения, по линии L507.
Блок 504 обнаружения движения может быть одновременно выполнен с возможностью также обнаружения вектора движения для целевого блока и определения того, должен ли генерироваться предсказанный сигнал для каждого из двух подразделов, полученных в результате разделения целевого блока. Данное определение может быть таким определением, что если ошибка между предсказанным сигналом целевого блока и сигналом изображения целевого блока меньше ошибок между предсказанными сигналами двух подразделов, сгенерированных путем разделения целевого блока, и сигналами изображения двух подразделов, целевой блок не разделяется на подразделы. Когда данное определение выполнено, информация, указывающая результат определения, кодируется в качестве информации применимости разделения, а информация формы может кодироваться только, если информация применимости разделения указывает на то, что целевой блок должен быть разделен на подразделы.
Генератор 505 предсказанного сигнала генерирует предсказанный сигнал для сигнала изображения подраздела, служащего в качестве цели обработки, исходя из вектора движения, поданного по линии L507, и информации формы блока, поданной по линии L504, из сигнала изображения в заранее определенном диапазоне сигнала изображения опорного кадра, поданного по линии L506.
Генератор 505 предсказанного сигнала объединяет предсказанные сигналы соответствующих подразделов в целевом блоке для генерирования предсказанного сигнала целевого блока. Генератор 505 предсказанного сигнала выдает сгенерированный таким образом сигнал, по линии L508. Предсказанный сигнал может генерироваться посредством внутрикадрового предсказания, вместо межкадрового предсказания.
Предиктор 506 движения генерирует предиктор вектора движения целевого подраздела обработки в целевом блоке, исходя из информации формы блока, поданной по линии L504, вектора движения, поданного по линии L507, и вектора движения блока, предшествующего в очередности целевому подразделу обработки, или вектора движения уже обработанного частичного участка, т.е. подраздела. Предиктор 506 движения выдает сгенерированный таким образом предиктор вектора движения по линии L509.
Предиктор 506 движения может выбрать один предиктор вектора движения из множества кандидатов на предиктор вектора движения. В данном случае предиктор 506 движения также выдает информацию указания для указания выбранного предиктора вектора движения, по линии 510. Если кандидаты на предиктор вектора движения целевого подраздела обработки сужаются до одного в соответствии с заранее определенным правилом, которое используется совместно со стороной декодера, то вывод информации указания может быть опущен.
Вычитатель 507 вычитает предиктор вектора движения, поданный по линии L509, из вектора движения целевого подраздела обработки, поданного по линии L507, чтобы генерировать разностный вектор движения. Вычитатель 507 выдает сгенерированный таким образом разностный вектор движения по линии L511.
Генератор 508 остаточного сигнала вычитает предсказанный сигнал целевого блока, поданный по линии L508, из сигнала целевого блока, поданного по линии L502, чтобы генерировать остаточный сигнал. Генератор 508 остаточного сигнала выдает сгенерированный таким образом остаточный сигнал по линии L512.
Преобразователь 509 выполняет ортогональное преобразование остаточного сигнала, поданного по линии L512, чтобы генерировать коэффициенты преобразования. Преобразователь 509 выдает сгенерированные таким образом коэффициенты преобразования по линии L513. Данное ортогональное преобразование может выполняться, например, посредством DCT. Тем не менее, преобразование, используемое преобразователем 509, может быть любым преобразованием.
Квантователь 510 квантует коэффициенты преобразования, поданные по линии L513, чтобы генерировать квантованные коэффициенты преобразования. Квантователь 510 выдает сгенерированные таким образом квантованные коэффициенты преобразования по линии L514.
Обратный квантователь 511 выполняет обратное квантование квантованных коэффициентов преобразования, поданных по линии L514, чтобы генерировать обратно квантованные коэффициенты преобразования. Обратный квантователь 511 выдает сгенерированные таким образом обратно квантованные коэффициенты преобразования по линии L515.
Обратный преобразователь 512 выполняет обратное ортогональное преобразование обратно квантованных коэффициентов преобразования, поданных по линии L515, чтобы генерировать воссозданный остаточный сигнал. Обратный преобразователь 512 выдает сгенерированный таким образом воссозданный остаточный сигнал по линии L516. Обратное преобразование, используемое обратным преобразователем 512, является процессом симметричным преобразованию в преобразователе 509.
Преобразование не всегда является неотъемлемой частью процесса, и устройство кодирования видео не всегда должно быть снабжено преобразователем 509 и обратным преобразователем 512. Также и квантование не всегда является неотъемлемой частью процесса, и устройство кодирования видео не всегда должно быть снабжено квантователем 510 и обратным квантователем 511.
Сумматор 513 суммирует воссозданный остаточный сигнал, введенный по линии L516, с предсказанным сигналом целевого блока, поданным по линии L508, чтобы генерировать воссозданный сигнал изображения. Сумматор 513 выдает воссозданный сигнал изображения в качестве ранее воссозданного сигнала изображения по линии L505.
Энтропийный кодер 514 кодирует квантованные коэффициенты преобразования, поданные по линии L514, информацию формы целевого блока, поданную по линии L504, информацию указания предиктора вектора движения, поданную по линии L510, и разностный вектор движения, поданный по линии L511. Энтропийный кодер 514 мультиплексирует коды, сгенерированные кодированием, чтобы генерировать сжатый поток, и затем выдает сжатый поток по линии L517.
Энтропийный кодер 514 может использовать любой способ кодирования, такой как арифметическое кодирование или кодирование длин серий. Энтропийный кодер 514 может адаптивно определять вероятность возникновения при арифметическом кодировании информации указания предиктора вектора движения, поданного по линии L510, исходя из информации формы целевого блока, подаваемой по линии L504. Например, энтропийный кодер 514 может устанавливать высокое значение в качестве вероятности возникновения информации указания, для указания вектора движения частичного участка, контактирующего с целевым подразделом обработки.
Фиг. 26 является чертежом, показывающим конфигурацию предиктора движения в соответствии с вариантом осуществления. Как показано на Фиг. 26, предиктор 506 движения имеет память 5061 векторов движения, генератор 5062 кандидатов опорного движения, и генератор 5063 предиктора вектора движения.
Память 5061 векторов движения хранит векторы движения ранее обработанных частичных участков и выдает ранее кодированные векторы движения по линии L5061, для вывода предиктора вектора движения целевого подраздела обработки.
Генератор 5062 кандидатов опорного движения генерирует кандидатов на предиктор вектора движения из векторов движения частичных участков, поданных по линии L5061, посредством описываемого ниже способа, исходя из информации формы, подаваемой по линии L504. Генератор 5062 кандидатов опорного движения выдает сгенерированных таким образом кандидатов на предиктор вектора движения по линии L5062.
Генератор 5063 предиктора вектора движения выбирает кандидата, с минимальным отличием от вектора движения целевого подраздела обработки, из кандидатов на предиктор вектора движения, поданных по линии L5062. Генератор 5063 предиктора вектора движения выдает выбранного кандидата в качестве предиктора вектора движения по линии L509. Он также выдает информацию указания для указания выбранного кандидата по линии L510.
Если число кандидатов, сгенерированных в генераторе кандидатов на указание движения, ограничивается до одного, вывод информации указания может быть опущен. Не существует ограничений на способ ограничения числа кандидатов до одного, и может применяться любой способ, например, такой как способ использования промежуточного значения из трех кандидатов, способ использования среднего по двум кандидатам, и способ определения очередности приоритета для выбора одного из множества кандидатов.
Ниже будет описано функционирование устройства 10 кодирования видео, а также описан способ кодирования видео в соответствии с вариантом осуществления. Фиг. 27 является блок-схемой последовательности операций способа кодирования видео в соответствии с вариантом осуществления.
В варианте осуществления, как показано на Фиг. 27, сначала на этапе S501 разделитель 501 на блоки разделяет входное изображение на множество блоков. На следующем этапе S502 генератор 502 подразделов разделяет целевой блок на множество подразделов, как описано выше. Генератор 502 подразделов также генерирует информацию формы, как описано выше.
Затем на этапе S503 блок 504 обнаружения движения получает вектор движения целевого подраздела обработки, как описано выше. На последующем этапе S504 генератор 505 предсказанного сигнала генерирует предсказанный сигнал целевого блока, используя векторы движения соответствующих подразделов в целевом блоке и сигналы изображения опорного кадра, как описано выше.
Затем на этапе S505 предиктор 506 движения получает предиктор вектора движения. Кроме того, предиктор 506 движения генерирует информацию указания для указания кандидата, выбранного из множества кандидатов на предиктор вектора движения. Подробности в отношении процесса для данного этапа S505 будут описаны позже. На последующем этапе S506 вычитатель 507 вычисляет разность между вектором движения каждого подблока и предиктором вектора движения, чтобы генерировать разностный вектор движения, как описано выше.
Затем на этапе S507 генератор 508 остаточного сигнала получает разность между сигналом изображения целевого блока и предсказанным сигналом, чтобы генерировать остаточный сигнал. На последующем этапе S508 преобразователь 509 выполняет ортогональное преобразование остаточного сигнала, чтобы генерировать коэффициенты преобразования. На последующем этапе S509 квантователь 510 квантует коэффициенты преобразования, чтобы генерировать квантованные коэффициенты преобразования. На последующем этапе S510 обратный квантователь 511 выполняет обратное квантование квантованных коэффициентов преобразования, чтобы генерировать обратно квантованные коэффициенты преобразования. На последующем этапе S511, обратный преобразователь 512 выполняет обратное преобразование обратно квантованных коэффициентов преобразования, чтобы генерировать воссозданный остаточный сигнал.
Затем на этапе S512 сумматор 513 суммирует предсказанный сигнал целевого блока с воссозданным остаточным сигналом, чтобы генерировать воссозданный сигнал изображения. На последующем этапе S513, воссозданный сигнал изображения сохраняется в качестве ранее воссозданного сигнала изображения в памяти 503 кадров.
Затем на этапе S514 энтропийный кодер 514 кодирует квантованные коэффициенты преобразования, информацию формы целевого блока, информацию указания предиктора вектора движения, и разностный вектор движения.
На следующем этапе S515 определяется, были ли обработаны все блоки. Если обработка не завершена для всех блоков, то обработка с этапа S502 продолжается для представленного в качестве цели необработанного блока. С другой стороны, если обработка завершена для всех блоков, то обработка прекращается.
Ниже более подробно будет описано функционирование блока 506 предиктора движения. Фиг. 28 является блок-схемой последовательности операций, показывающей процесс, выполняемый блоком предиктором движения в соответствии с вариантом осуществления. Блок 506 предиктора движения выдает предиктор вектора движения (здесь и далее PMV) и информацию указания для указания PMV, в соответствии с блок-схемой последовательности операций, показанной на Фиг. 28.
В процессе, выполняемом блоком 506 предиктора движения, как показано на Фиг. 28, на этапе S505-1 сначала значение счетчика i устанавливается равным 0. Ниже предполагается, что при i=0 выполняется процесс для первого подраздела, а при i=1 выполняется процесс для второго подраздела.
Далее, этап S505-2 служит для генерирования кандидатов на PMV для целевого подраздела обработки из векторов движения ранее обработанных частичных участков, в соответствии с описываемым ниже способом. Число кандидатов на PMV в настоящем примере составляет два. А именно, кандидаты на PMV могут быть установлены в соответствии со следующим: в качестве кандидатов на предиктор вектора движения целевого подраздела обработки устанавливаются вектор движения ранее обработанного частичного участка, расположенного слева от целевого подраздела обработки, и вектор движения ранее обработанного частичного участка, расположенного над целевым подразделом обработки. На этапе S505-2 число сгенерированных кандидатов устанавливается в NCand.
Далее, на этапе S505-3 определяют, равно ли «0» значение NCand. Если значение Ncand равно «0» (Да), то обработка переходит к этапу S505-4. Если значение NCand не равно «0» (Нет), то обработка переходит к этапу S505-5.
На этапе S504-4, PMV устанавливается как нулевой вектор и обработка переходит к этапу S505-10. В данном случае PMV может быть установлен как вектор движения заранее определенного блока, вектор движения частичного участка, обработанного непосредственно перед целевым подразделом обработки, или подобного, вместо нулевого вектора.
На этапе S505-5 определяют, равно ли «1» значение NCand. Если значение NCand равно «1» (Да), то обработка переходит к этапу S505-10. Если значение NCand не равно «1» (Нет), то обработка переходит к этапу S505-6.
На этапе S505-6, из кандидатов на PMV, сгенерированных на этапе S505-2, выбирается PMV. PMV, который должен быть выбран, может быть кандидатом, при котором минимальна разность с вектором движения целевого подраздела обработки.
Далее, этап S505-7 служит для определения того, является ли PMV, выбранный на этапе S505-6, левым кандидатом, т.е., вектором движения левого частичного участка. Если PMV, выбранный на этапе S505-6, является левым кандидатом (Да), то обработка переходит к этапу S505-8. Если PMV, выбранный на этапе S505-6, не является левым кандидатом (Нет), то обработка переходит к этапу S505-9.
На этапе S505-8, выводится информация указания pmv_left_flag=1, для указания того, что PMV является вектором движения частичного участка, расположенного слева от целевого подраздела обработки. С другой стороны, на этапе S505-9 выводится информация указания pmv_left_flag=0 для указания того, что PMV является вектором движения частичного участка, расположенного над целевым подразделом обработки.
Далее, на этапе S505-10, в качестве кандидата выводится оставшийся PMV. На последующем этапе S505-11, к значению счетчика i прибавляется «1».
Далее, на этапе S505-12, определяют, меньше ли «2» значение счетчика i. Если значение счетчика i меньше «2» (Да), то обработка переходит к этапу S505-2. Если значение счетчика i не меньше «2» (Нет), то обработка прекращается.
Если этап S505-2 сконфигурирован для ограничения числа генерируемых кандидатов до одного, то этапы S505-5, S505-6, S505-7, S505-8 и S505-9 могут быть опущены. Не существует ограничений на данный способ ограничения, однако можно использовать, например, такой способ как способ использования промежуточного значения из трех кандидатов, способ использования среднего по двум кандидатам, или способ определения очередности приоритета для выбора одного из множества кандидатов, как описано выше в описании генератора 5063 предиктора вектора движения. В конфигурации, в которой число кандидатов, генерируемых на этапе S505-2, ограничивается до одного, если NCand не равно «0» на этапе S505-3 (Нет), то обработка переходит к этапу S505-10.
Более подробно ниже будет описан способ генерирования кандидатов на предиктор вектора движения целевого подраздела обработки на этапе S505-2. Фиг. 29 является чертежом, показывающим пример подразделов целевого блока и окружающих частичных участков.
Генератор 5062 кандидатов опорного движения, как показано на Фиг. 29, обращается к частичному участку U1 и частичному участку L1 для первого подраздела SP1, и если каждый из частичных участков является таким, который был обработан с использованием межкадрового предсказания, генератор 5062 кандидатов опорного движения использует вектор движения частичного участка в качестве кандидата на предиктор вектора движения первого подраздела SP1. Аналогичным образом, генератор 5062 кандидатов опорного движения обращается к частичному участку U2 или частичному участку L2 для второго подраздела, чтобы генерировать кандидатов на предиктор вектора движения второго подраздела. Здесь частичными участками U1, L1, U2 и L2 являются блоки или подразделы вокруг целевого блока P и участки, выступающие в качестве единиц генерирования предсказанного сигнала. Частичными участками могут быть блоки, подготовленные для генерирования кандидатов на предиктор вектора движения (например, блоки, сгенерированные путем разбиения по единой форме), независимо от единиц генерирования предсказанного сигнала.
Частичный участок U1 является частичным участком, включающим в себя пиксель Pi1(0, -1), который является соседним сверху для самого верхнего и крайнего левого пикселя F(0, 0) первого подраздела SP1, который является ранее обработанным частичным участком, контактирующим с подразделом SP1. Частичный участок L1 является частичным участком, включающим в себя пиксель Pi2(-1, 0), который является соседним слева для самого верхнего и крайнего левого пикселя F(0, 0) первого подраздела SP1, который является ранее обработанным частичным участком, контактирующим с подразделом SP1. Частичный участок U2 является частичным участком, который является соседним справа для частичного участка, включающего в себя пиксель Pi3(x1, -1), который является частичным участком, контактирующим с осью x. Частичный участок L2 является частичным участком, который является соседним снизу для частичного участка, включающего в себя пиксель Pi4(-1, y1), который является частичным участком, контактирующим с осью y.
Координата x1 по оси x пикселя Pi3 и координата y1 по оси y пикселя Pi4 могут быть вычислены по формуле (3) и формуле (4).
x1=ceil(-k/m) (3)
y1=ceil(k) (4)
Формулы (3) и (4) являются формулами, полученными путем применения функции ceil(z) к значениям, полученным в результате подстановки y=0 и x=0 соответственно в линейное выражение (1), для выражения линии Ln продления границы, как раздела между первым подразделом SP1 и вторым подразделом SP2. Функция ceil(z) именуется функцией округления в большую сторону, которая является функцией для получения минимального целого числа, которое не меньше z, для действительного числа z.
Вместо функции ceil может использоваться функция floor/Функция floor(z) именуется функцией округления в меньшую сторону, которая является функцией для получения максимального целого числа, которое не больше z, для действительного числа z.
Кроме того, x1 и y1 могут быть вычислены по формуле (5) и (6).
x1=ceil((-1-k)/m) (5)
y1=ceil(-m+k) (6)
Формулы (5) и (6) являются формулами, полученными посредством применения функции ceil(z) к значениям, полученным в результате подстановки y=-1 и x=-1, соответственно в формулу (1).
Определение того, существуют ли частичные участки U2 и L2, осуществляется в соответствии с описанным ниже. Условиями существования частичного участка U2 являются то, что он присутствует на изображении, и что удовлетворяется формула (7). Условиями существования частичного участка L2 являются то, что он присутствует на изображении, и что удовлетворяется формула (8).
0<x1 (7)
0<y1 (8)
Если условие формулы (7) не удовлетворяется, то частичный участок L2 присутствует между вторым подразделом SP2 и частичным участком U2. В данном случае менее вероятно, что частичный участок U2, который более удален от второго подраздела SP2, чем частичный участок L2, который располагается ближе ко второму подразделу SP2, имеет вектор движения, который близок к вектору движения второго подраздела SP2. В данном случае вектор движения частичного участка U2 может быть исключен из кандидатов на предиктор вектора движения по условию в формуле (7).
Подобным образом, если условие в формуле (8) не удовлетворяется, то частичный участок U2 присутствует между вторым подразделом SP2 и частичным участком L2. В данном случае частичный участок L2, который более удален от второго подраздела SP2, чем частичный участок U2, который располагается ближе ко второму подразделу SP2, менее вероятно имеет вектор движения, который близок к вектору движения второго подраздела SP2. В данном случае вектор движения частичного участка U2 может быть исключен из кандидатов на предиктор вектора движения по условию в формуле (8).
В примере, условия, заданные представленными ниже формулами (9) и (10), могут использоваться вместо условий в формулах (7) и (8).
0<x1<blocksizeX (9)
0<y1<blocksizeY (10)
Здесь, blocksizeX и blocksizeY являются числом пикселей по горизонтали и числом пикселей по вертикали в целевом блоке P. Например, если целевой блок P является блоком размером 8×8 пикселей, то blocksizeX=8 и blocksizeY=8.
Используя условие в формуле (9) или формуле (10), можно исключить из кандидатов на предиктор вектора движения, вектор движения частичного участка, не контактирующего со вторым подразделом SP2 из частичного участка U2 и частичного участка L2. Это позволяет оставить лишь кандидатов на предиктор вектора движения с предположительно высокой точностью предсказания.
Если частичные участки U1, L1, U2 и L2 заданы в соответствии с описанным выше, то кандидаты на предиктор вектора движения каждого подраздела генерируются из векторов движения ранее обработанных частичных участков, которые располагаются на той же стороне по отношению к линии продления границы между подразделами.
Поскольку кандидаты на предиктор вектора движения подраздела SP2 генерируются из векторов движения частичных участков в той же области, что и подраздел SP2 по отношению к линии Ln продления границы между подразделом SP2 и другими подразделами целевого блока, включающего в себя подраздел SP2, то способ генерирования предиктора вектора движения не ограничивается тем, который представлен в вышеописанном варианте осуществления. Например, частичный участок U2 может быть частичным участком, включающим в себя пиксель Pi3, а частичным участком L2 может быть частичный участок, включающий в себя пиксель Pi4.
Условием того, что весь частичный участок присутствует в той же области, что и подраздел SP2 по отношению к линии Ln может быть добавлено в качестве условия для вектора движения частичного участка, который будет добавляться к кандидатам на предиктор вектора движения подраздела SP2. В данном случае можно использовать, например, способ обследования позиций всех углов частичного участка.
A
B
G
E
E
Даже если частичный участок полностью не включается в ту же область, что и подраздел по отношению к линии продления, то вектор движения частичного участка может использоваться в качестве кандидата на предиктор вектора движения подраздела. Фиг. 30 является чертежом, показывающим другой пример подразделов целевого блока и окружающих частичных участков. Как показано в качестве примера на Фиг. 30, векторы движения частичных участков R, R, R, и R могут использоваться в качестве кандидатов на предиктор вектора движения первого подраздела SP1. Предиктор вектора движения частичного участка R может быть добавлен к кандидатам на предиктор вектора движения второго подраздела SP2.
В описании к Фиг. 28 и 29, число векторов движения, выступающих в качестве кандидатов на предиктор вектора движения, было не больше двух, однако также можно выбрать два из векторов движения, полученных при помощи любых описанных выше условий. Например, вектор движения частичного участка U2, показанного на Фиг. 29, и вектор движения частичного участка, который является соседним для частичного участка U2, могут быть выбраны в качестве кандидатов на предиктор вектора движения. Подобно, вектор движения частичного участка L2 и вектор движения частичного участка, который является соседним для частичного участка U2, могут быть выбраны в качестве кандидатов на предиктор вектора движения. Кроме того, три или более вектора движения могут быть выбраны в качестве кандидатов на предиктор вектора движения из векторов движения, указанных посредством любого из описанных выше условий. Более того, в кандидаты на предиктор вектора движения может быть добавлено среднее или серединное из множества кандидатов на предиктор вектора движения.
Информация формы блока может использоваться в качестве способа для ограничения до не более одного числа кандидатов на предиктор вектора движения, генерируемых на этапе S505-2 на Фиг. 28. Например, из ранее кодированных частичных участков, контактирующих с целевым подразделом обработки, в качестве кандидата на предиктор вектора движения может добавляться вектор движения частичного участка с максимальной длиной части, контактирующей с подразделом. Также в качестве кандидата на предиктор вектора движения подраздела можно использовать вектор движения ранее кодированного частичного участка с минимальным наиболее коротким расстоянием от целевого подраздела обработки.
Описанные выше способы генерирования кандидатов на предиктор вектора движения могут применяться к подразделам любой формы. Фиг. 31 является чертежом, показывающим дополнительные примеры подразделов целевого блока и окружающих частичных участков. Вид (A) Фиг. 31 показывает подразделы, которые определены линией Ln с координатой отрезка по y и наклоном, которые отличаются от тех, что присутствуют у линии Ln, показанной на Фиг. 29. Вид (B) Фиг. 31 показывает подразделы, которые определены линией Ln с наклоном, по отношению к оси y практически симметричным тому, что присутствует у линии Ln и координатой отрезка по оси y, которая отличается от той, что присутствует у линии Ln на Фиг. 29. Вид (C) Фиг. 31 показывает подразделы, которые определяются двумя линиями Ln1 и Ln2. Вид (D) на Фиг. 31 показывает подразделы, которые определяются двумя линиями Ln1 и Ln2, которые пересекаются между собой. Если в качестве опорной используется линия продления границы, как показано на видах с (A) по (D) Фиг. 31, то частичные участки L2 и U2 с векторами движения, которые могут быть кандидатами на предиктор вектора движения подраздела SP2, могут быть указаны посредством вышеупомянутых способов генерирования кандидатов на предиктор вектора движения.
Следует отметить, что подразделы не ограничиваются только теми, которые получены в результате разделения посредством прямой линии. Например, в случае, когда формы подразделов выбираются из заранее определенных шаблонов, вектор движения ранее кодированного частичного участка, принадлежащего той же области, что и целевой подраздел обработки, по отношению к линии продления границы между подразделами, может использоваться в качестве кандидата на предиктор вектора движения. Если предварительно определены шаблоны форм подразделов, то также можно предварительно определить частичный участок с вектором движения, который должен быть использован в качестве кандидата на предиктор вектора движения, для каждого шаблона формы. Шаблоны могут включать в себя шаблоны для разделения целевого блока на прямоугольные подразделы.
Упомянутый выше способ выбора предиктора вектора движения также может применяться в качестве способа выбора вектора движения при генерировании предсказанного сигнала целевого подраздела обработки, используя векторы движения ранее кодированных частичных участков. А именно, предсказанный сигнал целевого подраздела обработки может генерироваться, используя предиктор вектора движения, выбранный на этапе S505-2 на Фиг. 28. В данном случае нет необходимости в кодировании разностного вектора движения и вследствие этого предиктор вектора движения, выдаваемый предиктором 506 движения, выдается не вычитателю 507, а генератору 505 предсказанного сигнала.
Кроме того, устройство 10 кодирования видео может быть адаптировано для определения того, должен ли кодироваться разностный вектор движения, и кодирования информации применения для указания результата определения. В данной модификации, блок 506 предиктора движения может включать в себя функцию для переключения вывода предиктора вектора движения либо на вычитатель 507, либо на генератор 505 предсказанного сигнала, исходя из информации применения.
В данной модификации, неблагоприятной является ситуация при которой все подразделы в целевом блоке становятся идентичны друг другу, поскольку разделение целевого блока становится бессмысленным. А именно, в случае генерирования кандидатов на предиктор вектор движения целевого подраздела обработки на этапе S505-2 на Фиг. 28, вектор движения ранее кодированного подраздела в целевом блоке может быть исключен из кандидатов. Например, в случае, когда целевой блок разделен на два подраздела и где вектор движения первого подраздела кодируется первым, то вектор движения первых подразделов исключается из кандидатов на предиктор вектора движения вторых подразделов. Если вектор движения первых подразделов такой же как вектор движения частичного участка U2, то вектор движения частичного участка U2 не должен использоваться при генерировании предиктора вектора движения второго подраздела.
Если указывается на то, должен ли кодироваться разностный вектор движения, то вероятность возникновения при арифметическом кодировании упомянутой выше информации применения, может адаптивно определяться в соответствии с информацией формы подраздела. Например, вероятность возникновения информации применения для указания того, что разностный вектор движения первого подраздела не кодируется, может быть установлена как более высокая, чем та, что относится к информации применения для указания того, что не кодируется разностный вектор движения второго подраздела. Причина этого в следующем: второй подраздел может не контактировать ни с одним из ранее кодированных частичных участков, в то время как первый подраздел всегда контактирует с ранее кодированным частичным участком; вследствие этого, задание вероятности возникновения в соответствии с тем, что описано выше, может сократить объем кода информации применения.
B
Эффект одного варианта осуществления будет описан со ссылкой на Фиг. 32, показывающую для простоты пример разделения целевого блока на прямоугольные подразделы. В данном примере, целевой блок P разделяется на левый подраздел SP1 и правый подраздел SP2 посредством прямой линии Ln. В данном примере вектор движения первого подраздела SP1 и вектор движения частичного участка R являются кандидатами на предиктор вектора движения второго подраздела SP2.
B
B
В примере, показанном на Фиг. 32, если предсказанный сигнал второго подраздела SP2 генерируется, используя вектор движения первого подраздела SP1, то предсказанный сигнал первого подраздела SP1 и предсказанный сигнал второго подраздела SP2 будут генерироваться, используя один и тот же вектор движения, что делает разделение целевого блока на два подраздела бессмысленным. По этой причине, предсказанный сигнал второго подраздела SP2 может формироваться, используя вектор движения частичного участка R, расположенного над подразделом SP2. В примере, показанном на Фиг. 32, вследствие этого, предварительно определено между устройством кодирования и устройством декодирования, что предсказанный сигнал второго подраздела SP2 должен быть сгенерирован, используя вектор движения частичного участка R, что сокращает кандидатов на предиктор вектора движения, и что исключает необходимость в передаче информации указания для указания одного предиктора вектора движения из множества кандидатов на предиктор вектора движения.
B
Кроме того, рассматривается способ для устройства 10 кодирования видео для определения того, требуется ли кодировать разностный вектор движения (при котором блок 506 предиктора движения переключает вывод предиктора вектора движения либо на вычитатель 507, либо на генератор 505 предсказанного сигнала, на основе информации применения). В данном случае если вектор движения частичного участка R точно такой же как тот, что у первого подраздела SP1, то выбор любого из двух кандидатов на предиктор вектора движения приводит к одному и тому же предиктору вектора движения второго подраздела SP2, а именно вектору движения первого подраздела SP1. Вследствие этого, между устройством кодирования и устройством декодирования предварительно определено, что если два кандидата на предиктор вектора движения идентичны друг другу, то предсказанный сигнал второго подраздела SP2 должен быть сгенерирован посредством вектора движения, получаемого в результате суммирования разностного вектора движения и предиктора вектора движения, что исключает необходимость в передаче информации применения для указания того, должен ли кодироваться разностный вектор движения, в дополнение к информации указания.
B
E
В случае, когда целевой блок разделяется на три или более подраздела, как показано на Фиг. 33, то разделение целевого блока существенно, если первый подраздел SP1, второй подраздел SP2 и третий подраздел SP3 имеют одинаковый вектор движения и только четвертый подраздел SP4 имеет отличный вектор движения. В таких случаях вследствие этого предсказанный сигнал второго подраздела SP2 и предсказанный сигнал третьего подраздела SP3 могут генерироваться, используя вектор движения первого подраздела SP1, вместо векторов движения частичного участка R и частичного участка R, соответственно. Тем не менее, для четвертого подраздела SP4, если вектора движения второго подраздела SP2 и третьего подраздела SP3 одинаковые, то два кандидата на предиктор вектора движения становятся идентичными друг другу; вследствие этого, посредством предварительного определения правила между устройством кодирования и устройством декодирования, передача информации указания для указания одного предиктора вектора движения становится ненужной. Кроме того, если первый подраздел SP1, второй подраздел SP2 и третий подраздел SP3 имеют одинаковый вектор движения, и если предсказанный сигнал четвертого подраздела SP4 генерируется, используя вектор движения второго подраздела SP2 или третьего подраздела SP3, то все четыре подраздела будут иметь одинаковый вектор движения; вследствие этого, посредством предварительного определения правила между устройством кодирования и устройством декодирования, передача информации применения для указания того, должен ли кодироваться разностный вектор движения, становится ненужной, в дополнение к информации указания.
Ниже будет описано устройство декодирования видео в соответствии с вариантом осуществления. Фиг. 34 является чертежом, схематически показывающим конфигурацию устройства декодирования видео в соответствии с вариантом осуществления. Устройство 20 декодирования видео, показанное на Фиг. 34, является устройством, которое может генерировать видео последовательность посредством декодирования сжатого потока, сгенерированного устройством 10 кодирования видео.
Как показано на Фиг. 34, устройство 20 декодирования видео снабжено декодером 601 данных, блоком 602 предиктора движения, сумматором 603, обратным квантователем 604, обратным преобразователем 605, памятью 606 кадров, генератором 607 предсказанного сигнала, и сумматором 608.
Декодер 601 данных анализирует сжатый поток, подаваемый по линии L601. Декодер 601 данных последовательно выполняет описываемую ниже обработку, для каждого блока, в качестве цели декодирования (здесь и далее целевого блока).
Декодер 601 данных декодирует кодированные данные, связанные с целевым блоком в сжатом потоке, чтобы восстановить квантованные коэффициенты преобразования целевого блока, и выдает квантованные коэффициенты преобразования по линии L602. Декодер 601 данных также декодирует кодированные данные, чтобы восстановить информацию формы целевого блока, и выдает информацию формы по линии L603. В данном случае восстанавливается информация применимости разделения, для указания того, требуется ли разделять целевой блок, и если информация применимости разделения указывает на отсутствие необходимости в разделении целевого блока, информация формы не должна быть восстановлена.
Декодер 601 данных также декодирует кодированные данные, чтобы восстановить информацию указания для каждого подраздела в целевом блоке, т.е., информацию для указания одного из множества кандидатов на предиктор вектора движения, и выдает информацию указания по линии L604. Декодер 601 данных также декодирует кодированные данные, чтобы восстановить разностный вектор движения целевого блока, и выдает разностный вектор движения по линии L605. Кроме того, декодер 601 данных может адаптивно определять вероятность возникновения при декодировании кодированных данных случая восстановления информации указания предиктора вектора движения, исходя из информации формы целевого блока. Способом для его реализации может быть, например, задание более высокой вероятности возникновения для информации указания, для указания вектора движения частичного участка, контактирующего с целевым подразделом обработки, в качестве предиктора вектора движения.
Блок 602 предиктора движения генерирует предиктор вектора движения целевого подраздела обработки, исходя из информации формы, поданной по линии L603, и векторов движения частичных участков предшествующих в очередности обработки, подаваемых по линии L606, и исходя из информации указания, подаваемой по линии L604, и выдает предиктор вектора движения по линии L607. Посредство сужения числа кандидатов на предиктор вектора движения до одного, с помощью заранее определенного способа, также можно опустить вывод информации указания.
Сумматор 603 суммирует предиктор вектора движения, поданный по линии L607, с разностным вектором движения, поданным по линии L605, чтобы генерировать вектор движения целевого блока или вектор движения подраздела в целевом блоке, и выдает вектор движения по линии L606.
Обратный квантователь 604 выполняет обратное квантование квантованных коэффициентов преобразования, поданных по линии L602, чтобы генерировать обратно квантованные коэффициенты преобразования. Обратный квантователь 604 выдает сгенерированные таким образом обратно квантованные коэффициенты преобразования по линии L608.
Обратный преобразователь 605 выполняет обратное ортогональное преобразование обратно квантованных коэффициентов преобразования, поданных по линии L608, чтобы генерировать воссозданный остаточный сигнал. Обратный преобразователь 605 выдает сгенерированный таким образом воссозданный остаточный сигнал по линии L609.
Если, генерируемый воссозданный остаточный сигнал, не является сигналом, который подвергается квантованию, устройство 20 декодирования видео не должно быть снабжено обратным квантователем 604. Аналогичным образом, если генерируемый воссозданный остаточный сигнал не является сигналом, который подвергается преобразованию, то устройство 20 декодирования не должно быть снабжено обратным преобразователем 605.
Память 606 кадров хранит ранее воссозданные сигналы изображения, поданные по линии L610, т.е. сигналы изображения кадра, предшествующего в очередности обработки целевому входному изображению обработки (которые будут именоваться здесь и далее как сигналы изображения опорного кадра). Кроме того, память 606 кадров выдает сигналы изображения опорного кадра по линии L611.
Генератор 607 предсказанного сигнала генерирует предсказанный сигнал каждого изображения подраздела в целевом блоке, исходя из вектора движения, поданного по линии L606, и информации формы, поданной по линии L603, из сигнала изображения в заранее определенном диапазоне сигналов изображения опорного кадра, подаваемого по линии L611. Генератор 607 предсказанного сигнала выдает сгенерированный таким образом предсказанный сигнал по линии L612. Несмотря на то, что описание отсутствует в данном техническом описании, однако предсказанный сигнал может генерироваться посредством внутрикадрового предсказания вместо межкадрового предсказания.
Сумматор 608 суммирует воссозданный остаточный сигнал, поданный по линии L609, с предсказанным сигналом целевого блока, поданным по линии L612, чтобы генерировать воссозданный сигнал изображения. Сумматор 608 выдает воссозданный сигнал изображения по линии L610.
Фиг. 35 является чертежом, показывающим конфигурацию блока предиктора движения в соответствии с вариантом осуществления. Как показано на Фиг. 35, блок 602 предиктора движения имеет память 6021 векторов движения, генератор 6022 кандидатов опорного движения, и генератор 6023 предиктора вектора движения.
Память 6021 векторов движения сохраняет векторы движения, подаваемые по линии L606. Векторы движения, хранящиеся в памяти 6021 векторов движения, являются векторами движения ранее обработанных частичных участков, предшествующих в очередности обработки целевому блоку или целевому подразделу обработки. Память 6021 векторов движения выдает хранящиеся векторы движения по линии L6021, для выведения предиктора вектора движения для целевого подраздела обработки.
Генератор 6022 кандидатов опорного движение генерирует кандидатов на предиктор вектора движения из векторов движения, поданных по линии L6021, посредством описываемого ниже способа, исходя из информации формы, подаваемой по линии L603, и выдает их по линии L6022.
Генератор 6023 предиктора вектора движения определяет предиктор вектора движения, исходя из информации указания предиктора вектора движения, подаваемой по линии L604, из кандидатов на предиктор вектора движения, подаваемых по линии L6022, и выдает определенный предиктор вектора движения по линии L607. Если число кандидатов, которое должно быть сгенерировано в генераторе кандидатов на указание движения, ограничивается одним, то ввод информации указания для указания кандидата, который должен быть выбран, может быть опущено.
Ниже будет описано функционирование устройства 20 декодирования видео и способа декодирования видео в соответствии с вариантом осуществления. Фиг. 36 является блок-схемой последовательности операций способа декодирования видео в соответствии с вариантом осуществления. В варианте осуществления, как показано на Фиг. 36, на этапе S621 декодер 601 данных сначала декодирует кодированные данные в сжатых данных для целевого блока, как описано выше, чтобы восстановить квантованные коэффициенты преобразования, информацию формы, и разностный вектор движения целевого блока. На этапе S621 может восстанавливаться информация применимости разделения и информация указания. Кроме того, на этапе S621, обратный квантователь 604 может генерировать обратно квантованные коэффициенты преобразования из восстановленных квантованных коэффициентов преобразования, а обратный преобразователь 605 может генерировать воссозданный остаточный сигнал из обратно квантованных коэффициентов преобразования.
Затем на этапе S622 блок 602 предиктора движения определяет предиктор вектора движения цели обработки этапа S621, для каждого этапа S621 в целевом блоке, выступающем в качестве цели обработки. На последующем этапе S623, сумматор 603 суммирует предиктор вектора движения цели обработки этапа S621 с разностным вектором движения, чтобы генерировать вектор движения.
Затем на этапе S624 генератор 607 предсказанного сигнала генерирует предсказанный сигнал из сигналов изображения опорного кадра в памяти 606 кадров, используя вектор движения целевого блока. На последующем этапе S625, сумматор 608 суммирует предсказанный сигнал целевого блока с воссозданным остаточным сигналом, чтобы генерировать воссозданный сигнал изображения.
Затем на этапе S626 воссозданный сигнал изображения, сгенерированный на этапе S625, сохраняется в качестве ранее воссозданного сигнала изображения в памяти 606 кадров. На последующем этапе S627 определяют, завершена ли обработка для всех блоков. Если обработка не завершена для всех блоков, то обработка продолжается с этапа S621, используя в качестве целевого блока необработанный блок. С другой стороны, когда обработка завершения для всех блоков, то обработка прекращается.
Ниже подробно будет описано функционирование блока 602 предиктора движения. Фиг. 37 является блок-схемой последовательности операций, показывающей обработку предиктора движения, в соответствии с вариантом осуществления. Блок 602 предиктора движения генерирует предиктор вектора движения, в соответствии с блок-схемой последовательности операций, показанной на Фиг. 37.
В варианте осуществления, на этапе S615-1, значение счетчика i задается равным «0». Здесь предполагается, что обработка первого подраздела выполняется при i=0, а обработка второго подраздела выполняется при i=1.
На следующем этапе S615-2, определяются два кандидата (левый кандидат и верхний кандидат), которые могут быть предиктором вектора движения целевого подраздела обработки, в соответствии с одним из способов, описанных выше используя Фиг. 29, 30, 31, 32 и 33, из векторов движения частичных участков предшествующих в очередности обработки целевому подразделу обработки.
Затем на этапе S615-3, определяют, равно ли «0» число NCand кандидатов, сгенерированное на этапе S615-2. Если значение NCand равно «0» (Да), обработка переходит к этапу S615-4. Если значение NCand не равно «0» (Нет), то обработка переходит к этапу S615-5.
На этапе S615-4, предиктор вектора движения PMV устанавливается равным нулевому вектору и обработка переходит к этапу S615-11. В данном случае в качестве предиктора вектора движения PMV также можно установить вектор движения заранее определенного блока или вектор движения частичного участка непосредственно предшествующим в очередности обработки целевому подразделу обработки, вместо нулевого вектора.
На этапе S615-5 определяют, равно ли «1» число NCand кандидатов, сгенерированное на этапе S615-2. Если значение NCand равно «1» (Да), то обработка переходит к этапу S615-6. Если значение NCand не равно «1» (Нет), то обработка переходит к этапу S615-7.
На этапе S615-6, кандидат, сгенерированный на этапе S615-2, устанавливается в качестве PMV. Затем обработка переходит к этапу S615-11.
На этапе S615-7 из кандидатов, сгенерированных на этапе S615-2, получают информацию pmv_left_flag для указания PMV, который должен быть выбран. Затем, обработка переходит к этапу S615-8.
На этапе S615-8 определяют, равно ли «1» значение pmv_left_flag. Если значение pmv_left_flag рано «1» (Да), то обработка переходит к этапу S615-9. Если значение pmv_left_flag не равно «1» (Нет), то обработка переходит к этапу S615-10.
Этап S615-9 служит для установки вектора движения частичного участка с левой стороны целевого подраздела обработки в качестве PMV. Затем обработка переходит к этапу S615-11.
Этап S615-10 служит для установки вектора движения частичного участка с левой стороны целевого подраздела обработки в качестве PMV. Затем обработка переходит к этапу S615-11.
Этап S615-11 служит для вывода установленного таким образом PMV. Затем обработка переходит к этапу S615-12.
Далее, этап S615-12 служит для добавления «1» к значению счетчика i. Затем обработка переходит к этапу S615-13.
Далее, этап S615-13 служит для определения того, меньше ли «2» значение счетчика i. Если значение счетчика i меньше «2» (Да), то обработка переходит к этапу S615-2. С другой стороны если значение счетчика i не меньше 2 (Нет), то обработка прекращается.
Посредством ограничения числа кандидатов на предиктор вектора движения, которые должны быть сгенерированы, до одного на этапе S615-2, может быть опущена обработка на этапах S615-5, S615-6, S615-7, S615-8, S615-9, и S615-10. Отсутствуют ограничения на способ для данного ограничения, как описано выше в отношении генератора 6023 предиктора вектора движения, однако можно использовать, например, такой способ, как способ, использующий промежуточное значение из трех кандидатов, способ использования среднего по двум кандидатам, или способ предварительного определения очередности приоритета для выбора одного предиктора вектора движения из множества кандидатов на предиктор вектора движения. В данном случае если значение NCand не равно «0» (Нет) на этапе S615-03, то обработка переходит к этапу S615-6.
Описанный выше способ может применяться в качестве способа выбора вектора движения в случае, когда предсказанный сигнал целевого подраздела обработки генерируется, используя ранее декодированные векторы движения. А именно, предсказанный сигнал целевого подраздела обработки может генерироваться, используя предиктор вектора движения, выбранный на этапе S615-2 на Фиг. 37. В данном случае нет необходимости в декодировании разностного вектора движения, и вследствие этого предиктор вектора движения, выдаваемый блоком 602 предиктора движения, выдается не сумматору 603, а генератору 607 предсказанного сигнала.
Кроме того, декодер 601 данных может быть выполнен с возможностью декодирования информации применения, для указания того, должен ли декодироваться разностный вектор движения. В данной модификации, блок 602 предиктора движения может включать в себя функцию для переключения вывода предиктора вектора движения либо на сумматор 603, либо на генератор 607 предсказанного сигнала, исходя из информации применения.
В данной модификации неблагоприятным является то, что вектора движения всех подразделов в целевом блоке становятся идентичны друг другу, поскольку разделение целевого блока становится бессмысленным. В данной модификации в случае генерирования кандидатов на предиктор вектора движения целевого подраздела обработки на этапе S615-2 на Фиг. 37, вектор движения подраздела, включенного в целевой блок и расположенного ранее в очередности обработки целевому подразделу обработки, может быть исключен из кандидатов на предиктор вектора движения. Например, в случае, когда целевой блок разделен на два подраздела, и где вектор движения первого подраздела кодируется первым, вектор движения первых подразделов исключается из кандидатов на предиктор вектора движения вторых подразделов. Если вектор движения первого подраздела такой же, как вектор движения частичного участка U2, вектор движения частичного участка U2 не должен быть использован при генерировании предиктора вектора движения второго подраздела.
В данной модификации вероятность возникновения при арифметическом декодировании информации применения для указания того, должен ли декодироваться разностный вектор движения, может адаптивно определяться в соответствии с информацией формы. Данный способ может быть выполнен с возможностью, например, установки более высокой вероятности не кодирования разностного вектора движения, для первого подраздела, который всегда контактирует с ранее кодированным участком, чем та, что у второго подраздела, который возможно не имеет контакта с любым ранее кодированным частичным участком. Поскольку эффект данной модификации уже был описан, используя Фиг. 34 и 35, то его описание здесь опущено.
Ниже будет описана программа кодирования видео, которая позволяет компьютеру функционировать в качестве устройства 10 кодирования видео и программа, которая позволяет компьютеру функционировать в качестве устройства 20 декодирования видео.
Фиг. 38 является чертежом, показывающим конфигурацию программы кодирования видео в соответствии с вариантом осуществления. Фиг. 39 является чертежом, показывающим конфигурацию программы декодирования видео в соответствии с вариантом осуществления. Ниже будет сделана ссылка на Фиг. 18, показывающую конфигурацию аппаратного обеспечения компьютера, в соответствии с вариантом осуществления и Фиг. 19, показывающую вид в перспективе компьютера в соответствии с вариантом осуществления, как впрочем, и Фиг. 38 и 39.
Программа P10 кодирования видео на Фиг. 38 может быть предоставлена как хранящаяся на носителе SM записи. Программа P20 декодирования видео, показанная на Фиг. 39, также может быть предоставлена на носителе SM записи. Примеры носителей SM записи включают в себя носители записи, такие как флоппи диски, CD-ROM, DVD или ROM, или полупроводниковую память или подобное.
Как показано выше, компьютер C10 может быть снабжен устройством C12 считывания, таким как блок дисковода флоппи дисков, блок дисковода CD-ROM или блок дисковода DVD, оперативной памятью С14 (RAM), в которой постоянно размещается операционная система, памятью C16 для хранения программ, хранящихся на носителе SM записи, устройством C18 монитора, таким как устройство отображения, манипулятором C20 типа мышь и клавиатурой C22 в качестве устройств ввода, устройством C24 связи для передачи и приема данных и прочего, и CPU С26, для управления исполнением программ.
Когда носитель SM записи помещается в устройство C12 считывания, компьютер C10 получает доступ к хранящейся на носителе SM записи программе P10 кодирования видео, посредством устройства C12 считывания, и получает возможность функционирования в качестве устройства 10 кодирования видео, исходя из программы P10.
Когда носитель SM записи помещается в устройство C12 считывания, компьютер C10 получает доступ к хранящейся на носителе SM записи программе P20 декодирования видео, посредством устройства C12 считывания, и получает возможность функционирования в качестве устройства 20 декодирования видео, исходя из программы P20.
Как показано на Фиг. 19, программа P10 кодирования видео и программа P20 декодирования видео могут быть такими программами, которые предоставляются в виде сигнала CW компьютерных данных наложенного на несущую волну, посредством сети. В данном случае компьютер C10 получает возможность исполнения программы P10 кодирования видео или программы P20 декодирования видео после того как программа P10 кодирования видео или программа P20 декодирования видео, принятая устройством C24 связи, сохранена в памяти C16.
Как показано на Фиг. 38, программа P10 кодирования видео включает в себя модуль M101 разделения на блоки, модуль M102 генерирования подразделов, модуль M103 хранения, модуль M104 обнаружения движения, модуль M105 генерирования предсказанного сигнала, модуль M106 предсказания движения, модуль M107 вычитания, модуль M108 генерирования остаточного сигнала, модуль M109 преобразования, модуль M110 квантования, модуль M111 обратного квантования, модуль M112 обратного преобразования, модуль M113 суммирования, и модуль M114 энтропийного кодирования.
В варианте осуществления, модуль M101 разделения на блоки, модуль M102 генерирования подразделов, модуль M103 хранения, модуль M104 обнаружения движения, модуль M105 генерирования предсказанного сигнала, модуль M106 предсказания движения, модуль M107 вычитания, модуль M108 генерирования остаточного сигнала, модуль M109 преобразования, модуль M110 квантования, модуль M111 обратного квантования, модуль M112 обратного преобразования, модуль M113 суммирования, и модуль M114 энтропийного кодирования побуждают компьютер C10 исполнять те же функции, что и у соответственно разделителя 501 на блоки, генератора 502 подразделов, памяти 503 кадров, блока 504 обнаружения движения, генератора 505 предсказанного сигнала, предиктора 506 движения, вычитателя 507, генератора 508 остаточного сигнала, преобразователя 509, квантователя 510, обратного квантователя 511, обратного преобразователя 512, сумматора 513 и энтропийного кодера 514 в устройстве 10 кодирования видео. На основе данной программы P10 кодирования видео компьютер C10 получает возможность функционирования в качестве устройства 10 кодирования видео.
Как показано на Фиг. 39, программа P20 декодирования видео включает в себя модуль 201 декодирования данных, модуль M202 предсказания движения, модуль M203 суммирования, модуль M204 обратного квантования, модуль M205 обратного преобразования, модуль M206 хранения, модуль M207 генерирования предсказанного сигнала, и модуль M208 суммирования.
В варианте осуществления модуль 201 декодирования данных, модуль M202 предсказания движения, модуль M203 суммирования, модуль M204 обратного квантования, модуль M205 обратного преобразования, модуль M206 хранения, модуль M207 генерирования предсказанного сигнала, и модуль M208 суммирования побуждают компьютер C10 исполнять те же функции, что и у соответственно декодера 601 данных, предиктора 602 движения, сумматора 603, обратного квантователя 604, обратного преобразователя 605, памяти 606 кадров, генератора 607 предсказанного сигнала, и сумматора 608 в устройстве 20 декодирования видео. На основе данной программы P20 декодирования видео компьютер C10 получает возможность функционирования в качестве устройства 20 декодирования видео.
Выше подробно были описаны разнообразные варианты осуществления. Тем не менее, следует отметить, что настоящее изобретение никоим образом не ограничивается вышеприведенными вариантами осуществления. Настоящее изобретение может быть модифицировано множеством способов, не отступая от объема и сущности изобретения.
ПЕРЕЧЕНЬ ЦИФРОВЫХ ОБОЗНАЧЕНИЙ
100 устройство кодирования изображения с предсказанием; 101 входной терминал; 102 разделитель на блоки; 103 генератор предсказанного сигнала; 104 память кадров; 105 вычитатель; 106 преобразователь; 107 квантователь; 108 обратный квантователь; 109 обратный преобразователь; 110 сумматор; 111 кодер квантованных коэффициентов преобразования; 112 выходной терминал; 113 селектор типа разбиения на блоки предсказания; 114 блок оценки информации движения; 115 память информации предсказания; 116 кодер информации предсказания; 201 входной терминал; 202 анализатор данных; 203 обратный квантователь; 204 обратный преобразователь; 205 сумматор; 206 выходной терминал; 207 декодер квантованных коэффициентов преобразования; 208 декодер информации предсказания; 10 устройство кодирования видео; 20 устройство декодирования видео; 501 разделитель на блоки; 502 генератор подразделов; 503 память кадров; 504 блок обнаружения движения; 505 генератор предсказанного сигнала; 506 блок предиктора движения; 507 вычитатель; 508 генератор остаточного сигнала; 509 преобразователь; 510 квантователь; 511 обратный квантователь; 512 обратный преобразователь; 513 сумматор; 514 энтропийный кодер; 601 декодер данных; 602 блок предиктора движения; 603 сумматор; 604 обратный квантователь; 605 обратный преобразователь; 606 память кадров; 607 генератор предсказанного сигнала; 608 сумматор; 5061 память векторов движения; 5062 генератор кандидатов опорного движения; 5063 генератор предиктора вектора движения; 6021 память векторов движения; 6022 генератор кандидатов опорного движения; 6023 генератор предиктора вектора движения.