ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к устройству кодирования видео с предсказанием, способу кодирования видео с предсказанием, программе кодирования видео с предсказанием, устройству декодирования видео с предсказанием, способу декодирования видео с предсказанием, и программе декодирования видео с предсказанием, и, в частности, настоящее изобретение относится к устройству кодирования видео с предсказанием, способу кодирования видео с предсказанием, программе кодирования видео с предсказанием, устройству декодирования видео с предсказанием, способу декодирования видео с предсказанием, и программе декодирования видео с предсказанием для генерирования итогового предсказанного сигнала блока (предсказанного по двум направлениям сигнала) посредством усреднения двух предсказанных сигналов.
УРОВЕНЬ ТЕХНИКИ
Технологии кодирования со сжатием используются для эффективной передачи и хранения неподвижных картинок и видеоданных. Методики, определенные в стандартах с MPEG-1 по 4 и стандартах ITU (Международный Союз Электросвязи) с H.261 по H.264, обычно используются для видеоданных.
В этих методиках кодирования, картинка в качестве цели кодирования делится на множество блоков, и затем процесс кодирования и процесс декодирования выполняются на основе блока. При кодировании с внутрикадровым предсказанием предсказанный сигнал генерируется при помощи ранее воспроизведенного сигнала соседней картинки (сигнала восстановленного из сжатых данных картинки), присутствующей в том же кадре, что и целевой блок, и затем кодируется остаточный сигнал, полученный посредством вычитания предсказанного сигнала из сигнала целевого блока. При кодировании с межкадровым предсказанием предсказанный сигнал генерируется с помощью компенсации движения со ссылкой на ранее воспроизведенный сигнал соседней картинки, присутствующий в кадре отличном от целевого блока, и кодируется остаточный сигнал, полученный посредством вычитания предсказанного сигнала из сигнала целевого блока.
Например, кодирование с внутрикадровым предсказанием стандарта H.264 использует способ генерирования предсказанного сигнала посредством экстраполяции ранее воспроизведенных значений пикселя, смежных с блоком в качестве цели кодирования, по предварительно определенным направлениям. Фиг. 20 является схематическим представлением для объяснения способа внутрикадрового предсказания в ITU H.264. На Фиг. 20(A) целевой блок 802 является блоком в качестве цели кодирования, и группа 801 пикселей, состоящая из пикселей с A по M, смежных с границей целевого блока 802, является соседней областью, которая является сигналом картинки, ранее воспроизведенным в прошлой обработке.
В данном случае предсказанный сигнал генерируется посредством расширения вниз группы 801 пикселей как соседних пикселей, расположенных непосредственно над целевым блоком 802. На Фиг. 20(B) предсказанный сигнал генерируется посредством расширения вправо ранее воспроизведенных пикселей (с I по L), расположенных с левой стороны от целевого блока 804. Конкретные способы для генерирования предсказанного сигнала описываются, например, в Патентной Литературе 1. Вычисляется разность между каждым из девяти предсказанных сигналов, сгенерированных способами, показанными на Фиг. 20(A) по (I) описанным выше способом, и пиксельным сигналом целевого блока, и один сигнал с минимальной разностью выбирается в качестве оптимального предсказанного сигнала. Как описано выше, предсказанный сигнал может быть сгенерирован посредством экстраполяции пикселей. Содержимое вышеприведенного описывается в Патентной Литературе 1, представленной выше.
При обычном кодировании с межкадровым предсказанием предсказанный сигнал генерируется с помощью способа поиска в ранее воспроизведенных кадрах сигнала, аналогичного сигналу пикселя блока в качестве цели кодирования. Затем, вектор движения кодируется в качестве величины пространственного смещения между целевым блоком и областью, состоящей из обнаруженного сигнала, и остаточного сигнала между пиксельным сигналом целевого блока и предсказанным сигналом. Методика поиска вектора движения для каждого блока в соответствии с описанным выше, именуется проверкой блоков на соответствие.
Фиг. 19 является схематическим представлением для объяснения процесса проверки блоков на соответствие. Нижеследующее будет описывать процедуру для генерирования предсказанного сигнала для примера целевого блока 702 в целевом кадре 701 кодирования. Опорный кадр 703 является ранее воспроизведенной картинкой, а область 704 является областью, которая пространственно расположена в той же позиции, что и целевой блок 702. При проверке блоков на соответствие устанавливается диапазон 705 поиска, включающий в себя область 704, и область 706 с минимальной суммой абсолютных ошибок по отношению к сигналу пикселя целевого блока 702 обнаруживается из сигналов пикселя в данном диапазоне 705 поиска. Сигнал данной области 706 определяется в качестве предсказанного сигнала, и величина смещения из области 704 в область 706 обнаруживается в качестве вектора 707 движения. Также часто используется способ подготовки множества опорных кадров 703, выбора опорного кадра, который должен быть применен для проверки блоков на соответствие для каждого целевого блока, и обнаружения информации выбора опорного кадра. В стандарте H.264 подготовлено множество типов предсказания с разными размерами блока для кодирования векторов движения, для того чтобы адаптироваться к локальным изменениям характеристики картинок. Типы предсказания стандарта H.264 описываются, например, в Патентной Литературе 2.
При кодировании видеоданных со сжатием очередность кодирования картинок (кадров или полей) может быть произвольной. По этой причине существует две методики, касающиеся очередности кодирования при межкадровом предсказании, для генерирования предсказанного сигнала со ссылкой на ранее воспроизведенные кадры. Первая методика является однонаправленным предсказанием, при котором генерируется предсказанный сигнал со ссылкой на один ранее воспроизведенный кадр, а второй методикой является двунаправленное предсказание, которое усредняет два предсказанных сигнала, полученных со ссылкой на один или два ранее воспроизведенные кадры. Методика однонаправленного предсказания включает в себя прямое предсказание со ссылкой на прошлый ранее воспроизведенный кадр в очередности отображения, и предсказание назад со ссылкой на будущий ранее воспроизведенный кадр в очередности отображения. Эти типы межкадровых предсказаний описываются, например, в Патентной Литературе 3.
В стандарте H.264 вторая межкадровая методика (двунаправленное предсказание) выполняется посредством создания двух списков опорных кадров, каждый из которых состоит из множества ранее воспроизведенных кадров в качестве кандидатов на опорную картинку 703. Проверка блоков на соответствие выполняется с помощью множества опорных кадров, зарегистрированных в каждом списке опорных картинок, для обнаружения двух областей, соответствующих области 706, и обнаруженные таким образом два предсказанных сигнала усредняются.
Примеры списков опорных картинок будут описаны со ссылкой на Фиг. 5 и 6. На Фиг. 5(A) кадр 505 указывает целевую картинку кодирования, а кадры с 501 по 504 указывают ранее воспроизведенные кадры. На Фиг. 5(B) кадр 510 представляет собой целевой кадр кодирования, а кадры 507, 508, 509, и 511 представляют собой ранее воспроизведенные кадры. Каждая картинка (кадр) идентифицируется номером кадра (frame_num). На Фиг. 6 Список0 и Список1 указывают два списка опорных кадров, Фиг. 6(A) показывает пример списков опорных кадров для Фиг. 5(A), а Фиг. 6(B) и (C) показывают примеры для списков опорных кадров для Фиг. 5(B). На Фиг. 6(A)и (C) в каждом списке опорных кадров зарегистрировано четыре опорных кадра, а на Фиг. 6(B) в каждом списке опорных кадров зарегистрировано два опорных кадра. Каждый опорный кадр идентифицируется посредством индекса опорного кадра (ref_idx). Любая из ранее воспроизведенных картинок может быть зарегистрирована в списках опорных картинок. В настоящем техническом описании для того, чтобы способствовать пониманию содержимого, например, обозначения типа нулевой информации движения и первой информации движения используются в соответствии с вышеприведенными списками Список0 и Список1 опорных кадров.
СПИСОК БИБЛИОГРАФИЧЕСКИХ ССЫЛОК
ПАТЕНТНАЯ ЛИТЕРАТУРА
Патентная Литература 1: Патент США №6,765,964
Патентная Литература 2: Патент США №7,003,035
Патентная Литература 3: Патент США №6,259,739
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЗАДАЧА
При двунаправленном предсказании шум в предсказанном сигнале может быть удален посредством эффекта сглаживания, основанного на усреднении двух подобных предсказанных сигналов. Тем не менее, блоки, для которых эффект сглаживания дает наилучший результат, часто являются областями текстуры или однородными областями, которые включают в себя шум, и опорные кадры содержат сигналы, подобные тем, что в блоках.
Поскольку сигналы этих областей сильно случайны, то векторы движения между соседними блоками могут значительно меняться, когда из множества опорных кадров обнаруживаются два предсказанных сигнала аналогичных целевому блоку в этих областях. Поскольку вектор движения кодируется в качестве разности по отношению к вектору движения соседнего блока, то вследствие этого изменение векторов движения между соседними блоками может привести к увеличению объема кодирующих бит.
В качестве методики сокращения объема кодирующих бит при двунаправленном предсказании существует способ получения двух векторов движения в соответствии с условиями соседних блоков на декодирующей стороне, как описано в обычном примере. Тем не менее, сложно улучшить сходство двух предсказанных сигналов из-за строгих ограничений на доступные предсказанные сигналы, что не дает получить удовлетворительный эффект сглаживания.
Для решения вышеприведенной задачи цель настоящего изобретения состоит в предоставлении устройства кодирования видео с предсказанием, способа кодирования видео с предсказанием, программы кодирования видео с предсказанием, устройства декодирования видео с предсказанием, способа декодирования видео с предсказанием, и программы декодирования видео с предсказанием, выполненных с возможностью эффективного сдерживания шума в предсказанном сигнале с меньшим объемом кодирующих бит применительно к двунаправленному предсказанию для кодирования двух векторов движения, посредством кодирования одного вектора движения, чтобы сгенерировать предсказанный сигнал, подобный целевому блоку, и выборочного определения другого вектора движения из ранее закодированной информации движения.
РЕШЕНИЕ ЗАДАЧИ
Устройство кодирования видео с предсказанием в соответствии с аспектом настоящего изобретения включает в себя устройство кодирования видео с предсказанием, содержащее: средство разделения на области, которое делит входную картинку на множество областей; средство генерирования предсказанного сигнала, которое определяет вектор движения для выведения из ранее воспроизведенной картинки сигнала, имеющего высокую корреляцию с целевой областью в качестве цели кодирования, из областей, разделенных средством разделения на области; средство хранения информации движения, которое хранит вектор движения; средство генерирования остаточного сигнала, которое генерирует остаточный сигнал между предсказанным сигналом целевой области и пиксельным сигналом целевой области; средство сжатия остаточного сигнала, которое сжимает остаточный сигнал, сгенерированный средством генерирования остаточного сигнала; средство восстановления остаточного сигнала, которое генерирует воспроизведенный остаточный сигнал посредством восстановления из сжатых данных остаточного сигнала; средство кодирования, которое кодирует предиктор вектора движения, аналогичный вектору движения целевой области, выбранному из: ранее воспроизведенных векторов движения, хранящихся в средстве хранения информации движения, побочной информации, определенной из вектора движения целевой области, и сжатых данных остаточного сигнала; и средство хранения картинки, которое добавляет предсказанный сигнал к воспроизведенному остаточному сигналу для восстановления сигнала пикселя целевой области, и которое сохраняет восстановленный пиксельный сигнал в качестве ранее воспроизведенной картинки, при этом вектор движения включает в себя нулевой вектор движения, используемый для генерирования нулевого предсказанного сигнала, и первый вектор движения, используемый для генерирования первого предсказанного сигнала, и при этом средство генерирования предсказанного сигнала содержит: средство оценки нулевой информации движения, которое оценивает нулевой вектор движения для выведения нулевого предсказанного сигнала, которое выбирает предиктор нулевого вектора движения, аналогичный оцененному нулевому вектору движения, из множества векторов движения, хранящихся в средстве хранения информации движения, и которое генерирует нулевую побочную информацию, содержащую индекс предиктора нулевого вектора движения для идентификации выбранного предиктора вектора движения, и разность векторов движения, определяемую из нулевого вектора движения и предиктора нулевого вектора движения; средство оценки первой информации движения, которое выбирает вектор движения для генерирования первого предсказанного сигнала, имеющего высокую корреляцию с целевой областью, из множества векторов движения, хранящихся в средстве хранения информации движения, которое генерирует первую побочную информацию, содержащую индекс предиктора первого вектора движения для идентификации выбранного вектора движения в качестве предиктора первого вектора движения, и которое устанавливает предиктор первого вектора движения в первый вектор движения; и средство объединения предсказанного сигнала, которое объединяет нулевой предсказанный сигнал и первый предсказанный сигнал для генерирования предсказанного сигнала целевой области.
Вышеприведенное устройство кодирования видео с предсказанием может быть выполнено таким образом, при котором средство оценки первой информации движения дополнительно включает в себя функцию для оценки второго вектора движения для получения первого предсказанного сигнала, для обнаружения второго вектора движения, для выбора предиктора второго вектора движения аналогичного оцененному второму вектору движения, из множества векторов движения, хранящихся в средстве хранения информации движения, и для генерирования второй побочной информации, содержащей индекс предиктора второго вектора движения, для идентификации выбранного предиктора вектора движения, и разность векторов движения, определяемую из второго вектора движения и предиктора второго вектора движения, при этом средство генерирования предсказанного сигнала генерирует первый предсказанный сигнал, используя первый вектор движения, когда все из множества ранее воспроизведенных картинок, хранящихся в средстве хранения картинок, являются прошлыми картинками в очередности отображения по отношению к целевой картинке кодирования, и средство генерирования предсказанного сигнала генерирует первый предсказанный сигнал, используя второй вектор движения, когда множество ранее воспроизведенных картинок, хранящихся в средстве хранения картинок, включает в себя будущую картинку в очередности отображения по отношению к целевой картинке кодирования, и при этом средство кодирования кодирует информацию указания для указания того, что первая побочная информация кодируется, в каждом кадре или в каждом слайсе, когда все из множества ранее воспроизведенных картинок, хранящихся в средстве хранения картинок, являются прошлыми картинками в очередности отображения по отношению к целевой картинке кодирования, и средство кодирования кодирует информацию указания для указания того, что вторая побочная информация кодируется, в каждом кадре или каждом слайсе, когда множество ранее воспроизведенных картинок, хранящихся в средстве хранения картинок, включает в себя будущую картинку в очередности отображения по отношению к целевой картинке кодирования; и при этом средство кодирования кодирует в качестве побочной информации каждой целевой области, нулевую побочную информацию, и либо первую побочную информацию, либо вторую побочную информацию на основании информации указания.
Устройство декодирования видео с предсказанием в соответствии с аспектом настоящего изобретения является устройством декодирования видео с предсказанием, содержащим: средство декодирования, которое декодирует сжатые данные из многочисленных наборов сжатых данных, полученных посредством декодирования множества разделенных областей, причем сжатые данные содержат побочную информацию и остаточный сигнал целевой области, которая является целью, которая должна быть декодирована; средство восстановления информации движения, которое восстанавливает вектор движения, используемый для генерирования предсказанного сигнала целевой области из побочной информации; средство хранения информации движения, которое хранит вектор движения; средство компенсации движения, которое генерирует предсказанный сигнал целевой области, на основании вектора движения; средство восстановления остаточного сигнала, которое восстанавливает воспроизведенный остаточный сигнал целевой области из сжатых данных остаточного сигнала; и средство хранения картинок, которое добавляет предсказанный сигнал к воспроизведенному остаточному сигналу для восстановления сигнала пикселя целевой области декодирования и которое хранит восстановленный пиксельный сигнал в качестве ранее воспроизведенной картинки, при этом средство декодирования декодирует нулевую побочную информацию и первую побочную информацию, при этом нулевая побочная информация содержит разность нулевых векторов движения, и индекс предиктора нулевого вектора движения для идентификации в качестве предиктора нулевого вектора движения одного вектора движения, выбранного из множества векторов движения, хранящихся в средстве хранения информации движения, при этом первая побочная информация содержит индекс предиктора первого вектора движения для идентификации в качестве предиктора первого вектора движения одного вектора движения, выбранного из множества векторов движения, хранящихся в средстве хранения информации движения, при этом средство восстановления информации движения содержит: средство восстановления нулевой информации движения, которое генерирует предиктор нулевого вектора движения, на основании индекса предиктора нулевого вектора движения, и которое добавляет сгенерированный предиктор нулевого вектора движения к разности нулевых векторов движения для восстановления нулевого вектора движения; и средство восстановления первой информации движения, которое генерирует предиктор первого вектора движения, на основании индекса предиктора первого вектора движения, для восстановления сгенерированного предиктора первого вектора движения в качестве первого вектора движения, и при этом средство компенсации движения объединяет два сигнала, полученных из ранее воспроизведенной картинки, на основании нулевого вектора движения и первого вектора движения, для генерирования предсказанного сигнала целевой области.
Вышеприведенное устройство декодирования видео с предсказанием может быть выполнено в конфигурации, при которой средство декодирования дополнительно декодирует информацию указания для указания того, содержит ли первая побочная информация разность векторов движения, в каждом кадре или в каждом слайсе, при этом, когда информация указания указывает, что первая побочная информация содержит разность первых векторов движения, то средство декодирования декодирует разность векторов движения в качестве первой побочной информации, и при этом, когда информация указания указывает, что первая побочная информация не содержит разность первых векторов движения, то средство восстановления первой информации движения генерирует предиктор первого вектора движения, на основании индекса предиктора первого вектора движения, и восстанавливает сгенерированный предиктор первого вектора движения в качестве первого вектора движения; и при этом, когда информация указания указывает, что первая побочная информация содержит разность векторов, то средство восстановления первой информации движения генерирует предиктор первого вектора движения, на основании индекса предиктора первого вектора движения, и добавляет сгенерированный предиктор первого вектора движения к декодированной разности векторов движения для генерирования и восстановления первого вектора движения.
Настоящее изобретение также может быть понято в качестве изобретения способа кодирования видео с предсказанием, изобретения способа декодирования видео с предсказанием, изобретения программы кодирования видео с предсказанием, и изобретения программы декодирования видео с предсказанием, которые могут быть описаны, как показано ниже.
Способ кодирования видео с предсказанием в соответствии с аспектом настоящего изобретения является способом кодирования видео с предсказанием, исполняемым посредством устройства кодирования видео с предсказанием, содержащим: этап разделения на области, на котором разделяют входную картинку на множество областей; этап генерирования предсказанного сигнала, на котором определяют вектор движения для выведения из ранее воспроизведенной картинки сигнала, имеющего высокую корреляцию с целевой областью в качестве цели кодирования, из областей, разделенных на этапе разделения на области; этап сохранения информации движения, на котором сохраняют вектор движения в средстве хранения информации движения; этап генерирования остаточного сигнала, на котором генерируют остаточный сигнал между предсказанным сигналом целевой области и пиксельным сигналом целевой области; этап сжатия остаточного сигнала, на котором сжимают остаточный сигнал, сгенерированный на этапе генерирования остаточного сигнала; этап восстановления остаточного сигнала, на котором генерируют воспроизведенный остаточный сигнал посредством восстановления из сжатых данных остаточного сигнала; этап кодирования, на котором выбирают и кодируют предиктор вектора движения подобного вектору движения целевой области, причем целевой вектор движения выбирается из: ранее воспроизведенных векторов движения, хранящихся в средстве хранения информации движения, побочной информации, определенной из вектора движения целевой области, и сжатых данных остаточного сигнала; и этап сохранения картинки, на котором добавляют предсказанный сигнал к воспроизведенному остаточному сигналу для восстановления сигнала пикселя целевой области, и сохраняют восстановленный сигнала пикселя в качестве ранее воспроизведенной картинки в средстве хранения картинок, при этом вектор движения включает в себя нулевой вектор движения, используемый для генерирования нулевого предсказанного сигнала, и первый вектор движения, используемый для генерирования первого предсказанного сигнала, и при этом этап генерирования предсказанного сигнала содержит: этап оценки нулевой информации движения, на котором оценивают нулевой вектор движения для выведения нулевого предсказанного сигнала, выбирают предиктор нулевого вектора движения аналогичный оцененному нулевому вектору движения из множества векторов движения, сохраненных на этапе сохранения информации движения, и генерируют нулевую побочную информацию, содержащую индекс предиктора нулевого вектора движения для идентификации выбранного предиктора вектора движения, и разность векторов движения, определенную из нулевого вектора движения и предиктора нулевого вектора движения; этап оценки первой информации движения, на котором выбирают из множества векторов движения, сохраненных на этапе сохранения информации движения, вектор движения, имеющий высокую корреляцию с целевой областью для генерирования первого предсказанного сигнала, генерируют первую побочную информацию, содержащую индекс предиктора первого вектора движения для идентификации выбранного вектора движения в качестве предиктора первого вектора движения, и устанавливают предиктор первого вектора движения в качестве первого вектора движения; и этап объединения предсказанного сигнала, на котором объединяют нулевой предсказанный сигнал и первый предсказанный сигнал для генерирования предсказанного сигнала целевой области.
Вышеприведенный способ кодирования видео с предсказанием может быть выполнен в конфигурации, при которой на этапе оценки первой информации движения, устройство кодирования видео с предсказанием дополнительно оценивает второй вектор движения для получения первого предсказанного сигнала, для обнаружения второго вектора движения, выбирает предиктор второго вектора движения аналогичный оцененному второму вектору движения из множества векторов движения, сохраненных на этапе сохранения информации движения, и генерирует вторую побочную информацию, содержащую индекс предиктора второго вектора движения для идентификации выбранного предиктора вектора движения, и разность векторов движения, определенную из второго вектора движения и предиктора второго вектора движения, при этом на этапе генерирования предсказанного сигнала, устройство кодирования видео с предсказанием генерирует первый предсказанный сигнал, используя первый вектор движения, когда все из множества ранее воспроизведенных картинок, хранящихся в средстве хранения картинок, являются прошлыми картинками в очередности отображения по отношению к целевой картинке кодирования, и устройство кодирования видео с предсказанием генерирует первый предсказанный сигнал, используя второй вектор движения, когда множество ранее воспроизведенных картинок, хранящихся в средстве хранения картинок, включает в себя будущую картинку в очередности отображения по отношению к целевой картинке кодирования, и при этом на этапе кодирования, когда все из множества ранее воспроизведенных картинок, хранящихся в средстве хранения картинок являются прошлыми картинками в очередности отображения по отношению к целевой картинке кодирования, то устройство кодирования видео с предсказанием кодирует информацию указания для указания того, что первая побочная информация кодируется, в каждом кадре или в каждом слайсе; когда множество ранее воспроизведенных картинок, хранящихся в средстве хранения картинок, включает в себя будущую картинку в очередности отображения по отношению к целевой картинке кодирования, то устройство кодирования видео с предсказанием кодирует информацию указания для указания того, что вторая побочная информация кодируется, в каждом кадре или в каждом слайсе; и при этом на этапе кодирования, устройство кодирования видео с предсказанием кодирует в качестве побочной информации каждой целевой области, нулевую побочную информацию, и либо первую побочную информацию, либо вторую побочную информацию, на основании информации указания.
Способ декодирования видео с предсказанием в соответствии с аспектом настоящего изобретения является способом декодирования видео с предсказанием, исполняемым устройством декодирования видео с предсказанием, содержащим: этап декодирования, на котором декодируют сжатые данные из многочисленных наборов сжатых данных, полученных посредством декодирования множества разделенных областей, причем сжатые данные содержат побочную информацию и остаточный сигнал целевой области декодирования, которая является целью, которая должна быть декодирована; этап восстановления информации движения, на котором восстанавливают вектор движения, используемый для генерирования предсказанного сигнала целевой области из побочной информации; этап сохранения информации движения, на котором сохраняют вектор движения в средстве хранения информации движения; этап компенсации движения, на котором генерируют предсказанный сигнал целевой области, на основании вектора движения; этап восстановления остаточного сигнала, на котором восстанавливают воспроизведенный остаточный сигнал целевой области из сжатых данных остаточного сигнала; и этап сохранения картинки, на котором добавляют предсказанный сигнал к воспроизведенному остаточному сигналу для восстановления сигнала пикселя целевой области декодирования, и сохранения восстановленного сигнала пикселя в качестве ранее воспроизведенной картинки, при этом на этапе декодирования устройство декодирования видео с предсказанием декодирует нулевую побочную информацию и первую побочную информацию, при этом нулевая побочная информация содержит разность нулевых векторов движения, и индекс предиктора нулевого вектора движения для идентификации в качестве предиктора нулевого вектора движения одного вектора движения, выбранного из множества векторов движения, сохраненных на этапе сохранения информации движения, при этом первая побочная информация содержит индекс предиктора первого вектора движения для идентификации в качестве предиктора первого вектора движения одного вектора движения, выбранного из множества векторов движения, сохраненных на этапе сохранения информации движения, при этом этап восстановления информации движения содержит: этап восстановления нулевой информации движения, на котором генерируют предиктор нулевого вектора движения, на основании индекса предиктора нулевого вектора движения, и добавляют сгенерированный предиктор нулевого вектора движения к разности нулевых векторов движения для восстановления нулевого вектора движения; и этап восстановления первой информации движения, на котором генерируют предиктор первого вектора движения, на основании индекса предиктора первого вектора движения, для восстановления сгенерированного предиктора первого вектора движения в качестве первого вектора движения, и при этом на этапе компенсации движения, устройство декодирования видео с предсказанием объединяет два сигнала, полученных из ранее воспроизведенной картинки, на основании нулевого вектора движения и первого вектора движения, для генерирования предсказанного сигнала целевой области.
Вышеприведенный способ декодирования видео с предсказанием может быть выполнен в конфигурации, при которой на этапе декодирования, устройство декодирования видео с предсказанием дополнительно декодирует информацию указания для указания того, содержит ли первая побочная информация разность векторов движения, в каждом кадре или в каждом слайсе, при этом, когда информация указания указывает, что первая побочная информация содержит разность первых векторов движения, то устройство декодирования видео с предсказанием декодирует разность векторов движения в качестве первой побочной информации, и при этом на этапе восстановления первой информации движения, когда информация указания указывает, что первая побочная информация не содержит разность первых векторов движения, то устройство декодирования видео с предсказанием генерирует предиктор первого вектора движения, на основании индекса предиктора первого вектора движения, и восстанавливает сгенерированный предиктор первого вектора движения в качестве первого вектора движения; и при этом на этапе восстановления первой информации движения, когда информация указания указывает, что первая побочная информация содержит разность первых векторов движения, то устройство декодирования видео с предсказанием генерирует предиктор первого вектора движения, на основании индекса предиктора первого вектора движения, и добавляет сгенерированный предиктор первого вектора движения к декодированной разности векторов движения для генерирования и восстановления первого вектора движения.
Программа кодирования видео с предсказанием в соответствии с аспектом настоящего изобретения является программой кодирования видео с предсказанием для того чтобы позволить компьютеру функционировать в качестве: средства разделения на области, которое делит входную картинку на множество областей; средства генерирования предсказанного сигнала, которое определяет вектор движения для выведения из ранее воспроизведенной картинки сигнала, имеющего высокую корреляцию с целевой областью в качестве цели кодирования, из областей, разделенных средством разделения на области; средства хранения информации движения, которое хранит вектор движения; средства генерирования остаточного сигнала, которое генерирует остаточный сигнал между предсказанным сигналом целевой области и пиксельным сигналом целевой области; средства сжатия остаточного сигнала, которое сжимает остаточный сигнал, сгенерированный средством генерирования остаточного сигнала; средства восстановления остаточного сигнала, которое генерирует воспроизведенный остаточный сигнал посредством восстановления из сжатых данных остаточного сигнала; средства кодирования, которое кодирует предиктор вектора движения, подобный вектору движения целевой области, выбранному из: ранее воспроизведенных векторов движения, хранящихся в средстве хранения информации движения, побочной информации, определенной из вектора движения целевой области, и сжатых данных остаточного сигнала; и средства хранения картинки, которое добавляет предсказанный сигнал к воспроизведенному остаточному сигналу для восстановления сигнала пикселя целевой области, и которое сохраняет восстановленный пиксельный сигнал в качестве ранее воспроизведенной картинки, при этом вектор движения включает в себя нулевой вектор движения, используемый для генерирования нулевого предсказанного сигнала, и первый вектор движения, используемый для генерирования первого предсказанного сигнала, и при этом средство генерирования предсказанного сигнала содержит: средство оценки нулевой информации движения, которое оценивает нулевой вектор движения для выведения нулевого предсказанного сигнала, которое выбирает предиктор нулевого вектора движения аналогичный оцененному нулевому вектору движения из множества векторов движения, хранящихся в средстве хранения информации движения, и которое генерирует нулевую побочную информацию, содержащую индекс предиктора нулевого вектора движения для идентификации выбранного предиктора вектора движения, и разность векторов движения, определяемую из нулевого вектора движения и предиктора нулевого вектора движения; средство оценки первой информации движения, которое выбирает вектор движения для генерирования первого предсказанного сигнала, имеющего высокую корреляцию с целевой областью, из множества векторов движения, хранящихся в средстве хранения информации движения, которое генерирует первую побочную информацию, содержащую индекс предиктора первого вектора движения для идентификации выбранного вектора движения в качестве предиктора первого вектора движения, и которое устанавливает предиктор первого вектора движения в первый вектор движения; и средство объединения предсказанного сигнала, которое объединяет нулевой предсказанный сигнал и первый предсказанный сигнал для генерирования предсказанного сигнала целевой области.
Вышеприведенная программа кодирования видео с предсказанием может быть выполнена в конфигурации, при которой средство оценки первой информации движения дополнительно включает в себя функцию для оценки второго вектора движения для получения первого предсказанного сигнала, для обнаружения второго вектора движения, для выбора предиктора второго вектора движения аналогичного оцененному второму вектору движения, из множества векторов движения, хранящихся в средстве хранения информации движения, и для генерирования второй побочной информации, содержащей индекс предиктора второго вектора движения для идентификации выбранного предиктора вектора движения, и разность векторов движения, определяемую из второго вектора движения и предиктора второго вектора движения, при этом средство генерирования предсказанного сигнала генерирует первый предсказанный сигнал, используя первый вектор движения, когда все из множества ранее воспроизведенных картинок, хранящихся в средстве хранения картинок, являются прошлыми картинками в очередности отображения по отношению к целевой картинке кодирования, и средство генерирования предсказанного сигнала генерирует первый предсказанный сигнал, используя второй вектор движения, когда множество ранее воспроизведенных картинок, хранящихся в средстве хранения картинок, включает в себя будущую картинку в очередности отображения по отношению к целевой картинке кодирования, и при этом средство кодирования кодирует информацию указания для указания того, что первая побочная информация кодируется, в каждом кадре или в каждом слайсе, когда все из множества ранее воспроизведенных картинок, хранящихся в средстве хранения картинок, являются прошлыми картинками в очередности отображения по отношению к целевой картинке кодирования, и средство кодирования кодирует информацию указания для указания того, что вторая побочная информация кодируется, в каждом кадре или каждом слайсе, когда множество ранее воспроизведенных картинок, хранящихся в средстве хранения картинок, включает в себя будущую картинку в очередности отображения по отношению к целевой картинке кодирования; и при этом средство кодирования кодирует в качестве побочной информации каждой целевой области, нулевую побочную информацию, и либо первую побочную информацию, либо вторую побочную информацию на основании информации указания.
Программа декодирования видео с предсказанием в соответствии с аспектом настоящего изобретения является программой декодирования видео с предсказанием для того чтобы позволить компьютеру функционировать в качестве: средства декодирования, которое декодирует сжатые данные из многочисленных наборов сжатых данных, полученных посредством декодирования множества разделенных областей, причем сжатые данные содержат побочную информацию и остаточный сигнал целевой области декодирования, которая является целью, которая должна быть декодирована; средства восстановления информации движения, которое восстанавливает вектор движения, используемый для генерирования предсказанного сигнала целевой области из побочной информации; средства хранения информации движения, которое хранит вектор движения; средства компенсации движения, которое генерирует предсказанный сигнал целевой области, на основании вектора движения; средства восстановления остаточного сигнала, которое восстанавливает воспроизведенный остаточный сигнал целевой области из сжатых данных остаточного сигнала; и средства хранения картинок, которое добавляет предсказанный сигнал к воспроизведенному остаточному сигналу для восстановления сигнала пикселя целевой области декодирования и которое хранит восстановленный пиксельный сигнал в качестве ранее воспроизведенной картинки, при этом средство декодирования декодирует нулевую побочную информацию и первую побочную информацию, при этом нулевая побочная информация содержит разность нулевых векторов движения, и индекс предиктора нулевого вектора движения для идентификации в качестве предиктора нулевого вектора движения одного вектора движения, выбранного из множества векторов движения, хранящихся в средстве хранения информации движения, при этом первая побочная информация содержит индекс предиктора первого вектора движения для идентификации в качестве предиктора первого вектора движения одного вектора движения, выбранного из множества векторов движения, хранящихся в средстве хранения информации движения, при этом средство восстановления информации движения содержит: средство восстановления нулевой информации движения, которое генерирует предиктор нулевого вектора движения, на основании индекса предиктора нулевого вектора движения, и которое добавляет сгенерированный предиктор нулевого вектора движения к разности нулевых векторов движения для восстановления нулевого вектора движения; и средство восстановления первой информации движения, которое генерирует предиктор первого вектора движения, на основании индекса предиктора первого вектора движения, для восстановления сгенерированного предиктора первого вектора движения в качестве первого вектора движения, и при этом средство компенсации движения объединяет два сигнала, полученных из ранее воспроизведенной картинки, на основании нулевого вектора движения и первого вектора движения, для генерирования предсказанного сигнала целевой области.
Вышеприведенная программа декодирования видео с предсказанием может быть выполнена в конфигурации, при которой средство декодирования дополнительно декодирует информацию указания для указания того, содержит ли первая побочная информация разность векторов движения, в каждом кадре или в каждом слайсе, при этом, когда информация указания указывает, что первая побочная информация содержит разность первых векторов движения, то средство декодирования декодирует разность векторов движения в качестве первой побочной информации, и при этом, когда информация указания указывает, что первая побочная информация не содержит разность первых векторов движения, то средство восстановления первой информации движения генерирует предиктор первого вектора движения, на основании индекса предиктора первого вектора движения, и восстанавливает сгенерированный предиктор первого вектора движения в качестве первого вектора движения; и при этом, когда информация указания указывает, что первая побочная информация содержит разность векторов, то средство восстановления первой информации движения генерирует предиктор первого вектора движения, на основании индекса предиктора первого вектора движения, и добавляет сгенерированный предиктор первого вектора движения к декодированной разности векторов движения для генерирования и восстановления первого вектора движения.
ЭФФЕКТЫ ИЗОБРЕТЕНИЯ
Устройство кодирования видео с предсказанием, способ кодирования видео с предсказанием, программа кодирования видео с предсказанием, устройство декодирования видео с предсказанием, способ декодирования видео с предсказанием, и программа декодирования видео с предсказанием в соответствии с настоящим изобретением обеспечивают эффективное назначение одного вектора движения для двунаправленного предсказания, на основании ранее закодированной информации движения, и, следовательно, получают эффект в виде улучшения выполнения двунаправленного предсказания с меньшим объемом кодирующих битов.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является структурной схемой, показывающей устройство кодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 2 является структурной схемой для иллюстрации блока генерирования предсказанного сигнала, показанного на Фиг. 1.
Фиг. 3 является блок-схемой для иллюстрации процесса оценки первого движения, показанного на Фиг. 2.
Фиг. 4 является блок-схемой для иллюстрации процесса оценки нулевого движения, показанного на Фиг. 2.
Фиг. 5 является схематическим представлением для иллюстрации примеров очередностей кодирования кадров.
Фиг. 6 является чертежом для иллюстрации примеров списков опорных кадров.
Фиг. 7 является чертежом для иллюстрации примера соседних блоков.
Фиг. 8 является чертежом для иллюстрации другого примера соседних блоков.
Фиг. 9 является блок-схемой, показывающей процедуру способа кодирования видео с предсказанием устройства кодирования видео с предсказанием, показанного на Фиг. 1.
Фиг. 10 является структурной схемой, показывающей устройство декодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 11 является структурной схемой для иллюстрации блока восстановления информации движения, показанного на Фиг. 10.
Фиг. 12 является блок-схемой для иллюстрации процесса восстановления первой информации движения, показанного на Фиг. 11.
Фиг. 13 является блок-схемой для иллюстрации процесса восстановления нулевой информации движения, показанного на Фиг. 11.
Фиг. 14 является блок-схемой, показывающей процедуру способа декодирования видео с предсказанием устройства декодирования видео с предсказанием, показанного на Фиг. 10.
Фиг. 15 является структурной схемой, показывающей программу, выполненную с возможностью исполнения способа кодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 16 является структурной схемой, показывающей программу, выполненную с возможностью исполнения способа декодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 17 является чертежом, показывающим конфигурацию аппаратного обеспечения компьютера для исполнения программы, записанной на запоминающем носителе информации.
Фиг. 18 является видом в перспективе компьютера для исполнения программы, хранящейся на запоминающем носителе информации.
Фиг. 19 является схематическим представлением для иллюстрации процесса оценки движения при межкадровом предсказании.
Фиг. 20 является схематическим представлением для иллюстрации обычного способа внутрикадрового предсказания.
ВАРИАНТЫ ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Варианты осуществления настоящего изобретения описаны ниже подробно со ссылкой на сопроводительные чертежи. В описании чертежей идентичные или эквивалентные элементы обозначены одинаковыми ссылочными обозначениями, без избыточного описания. Кроме того, «кадры», «картинки», и «изображения» (с 501 по 511 на Фиг. 5) имеют одинаковое значение в описании в настоящем техническом описании.
Фиг. 1 является структурной схемой, показывающей устройство 100 кодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения. Данное устройство 100 кодирования видео с предсказанием предусмотрено с входным терминалом 101, блоком 102 разделения на блоки, блоком 103 генерирования предсказанного сигнала, памятью 104 кадров, блоком 105 вычитания, блоком 106 преобразования, блоком 107 квантования, блоком 108 обратного квантования, блоком 109 обратного преобразования, блоком 110 добавления, блоком 111 кодирования, выходным терминалом 112, и памятью 113 информации движения. Блок 106 преобразования и блок 107 квантования функционируют в качестве средства сжатия остаточного сигнала, блок 108 обратного квантования и блок 109 обратного преобразования функционируют в качестве средства восстановления остаточного сигнала, и память информации движения функционирует в качестве средства хранения информации движения. Память 113 информации движения может быть включена в блок 103 генерирования предсказанного сигнала.
Входной терминал 101 является терминалом, который реализует ввод сигнала видеопоследовательности, состоящей из множества картинок.
Блок 102 разделения на блоки делит картинку в качестве цели кодирования, которая представлена вводом сигнала через входной терминал 101, на множество областей (целевые блоки или целевые области). В настоящем варианте осуществления целевая картинка кодирования делится на блоки, каждый состоящий из 8х8 пикселей, однако целевая картинка может быть разделена на блоки любого другого размера или формы. Кроме того, блоки разных размеров могут быть смешаны в кадре.
Блок 103 генерирования предсказанного сигнала обнаруживает информацию движения, используемую для генерирования предсказанного сигнала каждого предсказывающего блока в целевом блоке, и генерирует предсказанный сигнал. Кроме того, он генерирует побочную информацию, используемую для восстановления информации движения в устройстве декодирования. В настоящем изобретении отсутствуют ограничения на способ генерирования предсказанного сигнала, однако применяемые здесь способы включают в себя межкадровое предсказание (однонаправленное предсказание или двунаправленное предсказание) и внутрикадровое предсказание (внутрикадровое предсказание не иллюстрируется), как описывается в известном уровне техники.
В настоящем варианте осуществления предсказанный сигнал генерируется посредством двунаправленного предсказания. Фрагмент информации движения при двунаправленном предсказании обнаруживается, используя сигнал картинки, получаемый через L104 с тем, чтобы минимизировать сумму абсолютных ошибок между исходным сигналом целевого блока, подаваемым через L102, и предсказанным по двум направлениям сигналом, посредством проверки блоков на соответствие, показанной на Фиг. 19. Затем другой фрагмент информации движения генерируется на основании ранее закодированной информации движения.
Поскольку настоящий вариант осуществления описывает двунаправленное предсказание, то информация движения составлена из нулевой информации движения и первой информации движения, каждая из которых содержит индекс опорного кадра (ref_idx[0] или ref_idx[1]) и вектор движения (mv[0][0/1] или mv[1][0/1]). Кандидаты на опорный кадр применительно к нулевой информации движения указываются Списком0 на Фиг. 6, а кандидаты на опорный кадр применительно к первой информации движения указываются Списком1 на Фиг. 6. Здесь [0/1] является информацией для идентификации горизонтальной составляющей и вертикальной составляющей каждого вектора. Описание [0/1] далее будет опущено (и также аналогично опущено на чертежах).
Воспроизведенные картинки, которые должны быть зарегистрированы в списках опорных кадров, показанных на Фиг. 6, могут быть автоматически определены в соответствии с предварительно определенным правилом или могут быть явно закодированы в единице кадра или единице последовательности. В этом случае номер кадра может быть использован для идентификации каждого опорного кадра, как показано на Фиг. 5 и Фиг. 6.
Информация движения, сгенерированная блоком 103 генерирования предсказанного сигнала, выводится через L103b в память 113 информации движения.
Память 113 информации движения хранит входную информацию движения. Хранящаяся информация движения подается через L113 к блоку генерирования предсказанного сигнала, для использования при кодировании информации движения последующего блока.
Побочная информация, сгенерированная блоком 103 генерирования предсказанного сигнала, выводится через L103c на блок 111 кодирования.
Предсказанный сигнал, сгенерированный блоком 103 генерирования предсказанного сигнала, выводится через L103a на блок 105 вычитания и блок 110 добавления.
Блок 105 вычитания вычитает предсказанный сигнал для целевого блока, поданный через линию L103a, из сигнала пикселя целевого блока, поданного через линию L102, после разделения в блоке 102 разделения на блоки, для генерирования остаточного сигнала. Блок 105 вычитания выводит остаточный сигнал, полученный посредством вычитания, через линию L105 на блок 106 преобразования.
Блок 106 преобразования является частью, которая преобразует входной остаточный сигнал посредством дискретного косинусного преобразования. Блок 107 преобразования является частью, которая квантует коэффициенты преобразования, полученные посредством дискретного косинусного преобразования с помощью блока 106 преобразования.
Блок 111 кодирования энтропийно кодирует побочную информацию, подаваемую от блока генерирования предсказанного сигнала, и квантованные коэффициенты преобразования, подаваемые от блока 107 квантования, и закодированные данные выводятся через L111 на выходной терминал 112. Отсутствуют ограничения на способ энтропийного кодирования, однако применимые способы включают в себя арифметическое кодирование, кодирование с переменной длиной слова, и т.д.
Выходной терминал 112 выводит информацию, подаваемую от блока 111 кодирования, совместно во вне.
Блок 108 обратного квантования обратно квантует квантованные коэффициенты преобразования. Блок 109 обратного преобразования восстанавливает остаточный сигнал посредством обратного дискретного косинусного преобразования. Блок 110 добавления добавляет восстановленный остаточный сигнал к предсказанному сигналу, подаваемому через L103a, для воспроизведения сигнала целевого блока кодирования, и сохраняет сигнал в памяти 104 кадров. Настоящий вариант осуществления использует блок 106 преобразования и блок 109 обратного преобразования, однако также существует возможность использования другой обработки по преобразованию, взамен этих блоков преобразования. Также следует отметить, что блок 106 преобразования и блок 109 обратного преобразования не всегда существенны. Таким образом, воспроизведенный сигнал целевого блока кодирования, закодированный таким образом, восстанавливается посредством обратного процесса и сохраняется в памяти 104 кадров, для того чтобы использоваться при генерировании предсказанного сигнала последующего целевого блока кодирования.
Далее более подробно будет описан блок 103 генерирования предсказанного сигнала. Тогда, сначала, будет описана информация движения, предсказывающая информация движения, и побочная информация.
Как описано выше, информация движения при двунаправленном предсказании составлена из нулевой информации движения и первой информации движения, каждая из которых состоит из индекса опорного кадра (ref_idx[0] или ref_idx[1]) и вектора движения (mv[0] или mv[1]). Кандидаты на опорный кадр применительно к нулевой информации движения указываются посредством Списка 0 на Фиг. 6, а кандидаты на опорный кадр применительно к первой информации движения указываются посредством Списка 1 на Фиг. 6.
При двунаправленном предсказании настоящего варианта осуществления, блок 103 генерирования предсказанного сигнала использует ранее закодированную информацию движения в качестве предсказывающей информации движении. Ранее закодированная информация движения содержит информацию движения, связанную с ранее закодированными соседними блоками, и ранее закодированной информацией движения целевой области. Информация движения, связанная с соседними блоками, относится к информации движения, использованной при генерировании предсказанного сигнала, когда каждый соседний блок был целью кодирования, и она хранится в памяти 113 информации движения.
Предсказывающая информация движения также составлена из предсказывающей нулевой информации движения и предсказывающей первой информации движения, каждая из которых содержит индекс опорного кадра (ref_idx[0] или ref_idx[1]) и векторы движения (mv[0] или mv[1]). Кандидаты на опорный кадр применительно к предсказывающей нулевой информации движения указываются посредством Списка 0 на Фиг. 6, а кандидаты на опорный кадр применительно к предсказывающей первой информации движения указываются посредством Списка1 на Фиг. 6.
Конкретный способ использования предсказывающей информации движения состоит в генерировании предиктора вектора движения, на основании предсказывающей нулевой информации движения, при разностном кодировании вектора движения нулевой информации движения, обнаруживаемой посредством проверки блоков на соответствии со ссылкой на опорный кадр в Списке 0. Первая информация движения, использующая опорные кадры в Списке 1, генерируется на основании предсказывающей первой информации движения.
Пример предсказывающей информации движения описан со ссылкой на Фиг. 7. Блок 400, показанный на Фиг. 7, является целевым блоком, и фрагменты информации движения, связанные с блоками с 401 по 404, смежными с ним, являются кандидатами на предсказывающую информацию движения. Информация движения каждого соседнего блока содержит нулевую информацию движения и первую информацию движения. Обе информации могут быть определены в качестве кандидатов на предсказывающую информацию движения или предсказывающая информация движения может быть ограничена любой одной из них (например, в случае предсказывания N-ой информации движения, только N-ый вектор движения каждого соседнего блока определяется в качестве кандидата).
Кроме того, блок 410 представляет собой блок, пространственно расположенный в той же самой позиции, что и блок 400, (или расположенный рядом блок) в опорном кадре. Фрагменты информации движения связанные с блоком 410 и блоками с 411 по 415, смежными с ним, являются кандидатами на предсказывающую информацию движения. n представляет собой номер для идентификации кандидата на предсказывающую информацию движения и каждый выбранный кандидат указывается посредством индекса предиктора вектора движения (mvp_idx[0] или mvp_idx[1]). В настоящем варианте осуществления, сначала кодируется нулевая информация движения и, по этой причине, нулевая информация движения, связанная с блоком 400, также может быть использована в качестве предсказывающей первой информации движения (n=4 в примере).
Позиции и номера кандидатов на предсказывающую информацию движения могут быть теми, что предварительно определены между стороной кодировщика и стороной декодера, и в настоящем изобретении в их отношении отсутствуют ограничения. Количество кандидатов на предсказывающую информацию движения может быть предварительно определено между стороной кодировщика и стороной декодера, или может быть закодировано и предоставлено декодеру.
Если опорный кадр, идентифицируемый посредством ref_idx предсказывающей информации движения, отличается от опорного кадра, идентифицируемого посредством ref_idx целевого блока, то процесс масштабирования вектора движения в предсказывающей информации движения может быть выполнен на основании номеров кадров целевого кадра кодирования и двух опорных кадров. В частности, вектор движения в предсказывающей информации движения масштабируется для того, чтобы быть преобразованным в вектор движения, обозначающий опорный кадр, идентифицируемый посредством ref_idx целевого блока, и преобразованный вектор движения, полученный посредством преобразования, используется в качестве предиктора вектора движения (pmv[0][0/1] или pmv[1][0/1]). В данном случае индекс опорного кадра (ref_idx[0] или ref_idx[1]) в предсказывающей информации движения обновляется на индекс опорного кадра (ref_idx[0] или ref_idx[1]) целевого блока. [0/1] здесь является информацией для идентификации горизонтальной составляющей и вертикальной составляющей каждого вектора. Описание [0/1] далее будет опущено (и также аналогично опущено на чертежах).
Побочная информация составлена из нулевой побочной информации и первой побочной информации. Нулевая побочная информация содержит ref_idx[0], разность векторов движения (mvd[0][0/1]=mv[0][0/1]-pmv[0][0/1]), и mpv_idx[0]. Первая побочная информация содержит ref_idx[1] и mvp_idx[1]. Поскольку mv[1][0/1]=pmv[1][0/1] в настоящем варианте осуществления, то значения вектора mvd[1][0/1] всегда 0. Вследствие этого, mvd[1][0/1] может быть восстановлен на стороне декодера, не будучи закодированным и, по этой причине, его не требуется включать в первую побочную информацию. [0/1] здесь является информацией для идентификации горизонтальной составляющей и вертикальной составляющей каждого вектора. Описание [0/1] далее будет опущено (и также аналогично опущено на чертежах).
Фиг. 2 является структурной схемой, показывающей конфигурацию блока 103 генерирования предсказанного сигнала в соответствии с настоящим вариантом осуществления. Данный блок 103 генерирования предсказанного сигнала предусмотрен с блоком 121 оценки первой информации движения, блоком 122 оценки нулевой информации движения, и блоком 123 объединения предсказанного сигнала.
Блок 121 оценки первой информации движения использует опорные кадры в Списке1, вводимые через L104, для выбора набора из кандидатов на предсказывающую первую информацию движения, и индекс опорного кадра для генерирования первого предсказанного сигнала наиболее близкого к исходному сигналу целевого блока, подаваемому через L102, из кандидатов на предсказывающую первую информацию движения, подаваемых через L113 (при этом предсказатели вектора движения получаются посредством масштабирования векторов движения в соответствии с индексами опорных кадров). Блок 121 оценки первой информации движения выводит первый предсказанный сигнал через L121a на блок 123 объединения предсказанного сигнала и выводит первую информацию движения, сгенерированную на основании выбранной предсказывающей первой информации движения и индекса опорного кадра, через L121b и через L103b1 на блок 122 оценки нулевой информации движения и в память 113 информации движения, соответственно. Кроме того, он генерирует первую побочную информацию и выводит первую побочную информацию через L103c1 на блок 111 кодирования.
Блок 122 оценки нулевой информации движения использует первую информацию движения, вводимую через L121b и опорные кадры в Списке 1, вводимые через L104, для генерирования первого предсказанного сигнала. Блок 122 оценки нулевой информации движения осуществляет поиск по опорным кадрам в Списке 0, подаваемом через L104, в отношении кандидата на нулевой предсказанный сигнал, и обнаруживает нулевую информацию движения для минимизации суммы абсолютных разностей между предсказанным по двум направлениям сигналом, сгенерированным из первого предсказанного сигнала и кандидата на нулевой предсказанный сигнал, полученный посредством поиска, и исходным сигналом целевого блока, вводимым через L102. Затем он выводит нулевой предсказанный сигнал, сгенерированный из обнаруженной нулевой информации движения, через L122 на блок 123 объединения предсказанного сигнала. Он также выводит нулевую информацию движения через L103b2 в память 113 информации движения. Кроме того, он генерирует нулевую побочную информацию и выводит нулевую побочную информацию через L103c2 на блок 111 кодирования.
Также допустимо сначала исполнение обработки посредством блока 122 оценки нулевой информации движения для получения нулевой информации движения и нулевой побочной информации перед нулевым предсказанным сигналом. В данном случае блок 122 оценки нулевой информации движения обнаруживает нулевую информацию движения для минимизации суммы абсолютных разностей между предсказанным сигналом, сгенерированным из кандидата на нулевой предсказанный сигнал, полученный посредством поиска, и исходным сигналом целевого блока, вводимого через L102. Затем блок 121 оценки первой информации движения исполняет обработку, используя нулевой предсказанный сигнал. А именно, блок 121 оценки первой информации движения использует опорные кадры в Списке 1, вводимые через L104, для генерирования кандидата на первый предсказанный сигнал из числа кандидатов на предсказывающую первую информацию движения, вводимую через L113 (при этом предсказатели вектора движения получаются посредством масштабирования векторов движения в соответствии с индексами опорных кадров), и выбирает набор из кандидата на предсказывающую первую информацию движения и индекса опорного кадра таким образом, что предсказанный по двум направлениям сигнал генерируется из нулевого предсказанного сигнала и кандидата на первый предсказанный сигнал наиболее аппроксимированный, или наиболее близкий к, исходному сигналу целевого блока, вводимому через L102. Данная модификация может быть реализована посредством подачи нулевой информации движения на блок 121 оценки первой информации движения.
Блок 123 объединения предсказанного сигнала усредняет первый предсказанный сигнал и нулевой предсказанный сигнал, вводимые через L121a и L122, для генерирования предсказанного сигнала целевого блока и выводит предсказанный сигнал через L103a на блок 105 вычитания и блок 110 добавления.
Фиг. 3 показывает блок-схему блока 121 оценки первой информации движения. Сначала, этап S301 служит для установки M (M=4 на Фиг. 6 (A) и (C), или M=2 на Фиг. 6 (B)) применительно к количеству опорных кадров в Списке 1, используемых при предсказании целевого блока, и для установки 0 применительно к индексу ref_idx[1] опорного кадра в Списке 1, который содержится в первой информации движения, для установки начального значения счетчика m для номера опорного кадра в Списке 1 равным 0. Кроме того, значение D оценки вектора движения устанавливается в значение Max. Далее, этап S302 служит для установки N применительно к количеству кандидатов на предиктора вектора движения (N=11 на Фиг. 7, при условии, что блок 121 оценки первой информации движения выполняется перед блоком 122 оценки нулевой информации движения, n=4 пропускается, поскольку нулевая информация движения блока 400 еще не определена), и для установки 0 применительно к индексу mvp_idx[1] предиктора вектора движения, который содержится в первой побочной информации, для установки начального значения счетчика n для номера предсказывающей информации движения равным 0.
Далее, этап S303 служит для получения вектора движения кандидата n на предиктора вектора движения из векторов движения соседних блоков, а этап S304 служит для генерирования n-ого предиктора pmv[1][m][n][0/1] вектора движения (где [0/1] является информацией для идентификации горизонтальной составляющей и вертикальной составляющей вектора, и описание [0/1] далее будет опущено, как впрочем, и на чертежах). В данном случае вектор движения соседнего блока масштабируется в соответствии с расстоянием между целевым кадром и опорным кадром (или в соответствии с номерами кадров, идентифицируемыми индексами опорных кадров) для получения предиктора вектора движения. Затем, этап S305 служит для генерирования предсказанного сигнала целевого блока, на основании m-ого опорного кадра и n-ого масштабированного предиктора вектора движения (pmv[1][m][n]), а этап S306 служит для определения того, является ли сумма абсолютных разностей остаточного сигнала между сгенерированным предсказанным сигналом и исходным сигналом целевого блока меньше значения D оценки вектора движения. Когда сумма абсолютных разностей не меньше значения D оценки вектора движения, то обработка переходит к этапу S308. Когда сумма абсолютных разностей меньше значения D оценки вектора движения, то обработка переходит к этапу S307 для обновления индекса mvp_idx[1] предиктора вектора движения, который содержится в первой побочной информации, на n, обновления индекса ref_idx[1] опорного кадра на m, и обновления значения D оценки вектора движения на сумму абсолютных разностей остаточного сигнала между предсказанным сигналом и исходным сигналом целевого блока, вычисленную на этапе S306. Кроме того, вектор mv[1] движения в первой информации движения устанавливается равным предсказателю pmv[1][ref_idx[1]][mvp_idx[1]] вектора движения, а индекс опорного кадра устанавливается равным ref_idx[1]. Затем, обработка переходит к этапу S308.
Этап S308 служит для определения того, является ли значение n меньше N; когда значение n меньше N, обработка переходит к этапу S309; когда n достигает N, обработка переходит к этапу S310. Этап S309 служит для добавления 1 к значению n и затем обработка возвращается к этапу S303. Затем, этапы с S303 по S307 выполняются неоднократно до тех пор, пока n не достигнет N. Эта S310 служит для определения того, является ли значение m меньше M; когда m меньше M, обработка переходит к этапу S311 для добавления 1 к значению m и затем возврата к этапу S302. Затем, этапы с S302 по S309 неоднократно выполняются до тех пор, пока m не достигнет M. Когда m достигает M, этап S312 выполняется для вывода первой побочной информации (ref_idx[1], mvp_idx[1]) на блок 11 кодирования, сохранения первой информации движения (ref_idx[1] и mv[1]) в памяти 113 информации движения, и вывода первой информации движения на блок 122 оценки нулевой информации движения, за которым следует завершение обработки.
Фиг. 4 показывает блок-схему блока 122 оценки нулевой информации движения. Сначала, этап S351 служит для генерирования первого предсказанного сигнала при двунаправленном предсказании, на основании первой информации движения. Далее, этап S352 служит для установки M (M=4 на Фиг. 6 (A) и (C), или M=2 на Фиг. 6 (B)) применительно к количеству опорных кадров в Списке0, используемых при предсказании целевого блока, и установки 0 применительно к индексу ref_idx[0] опорного кадра Списка0, который содержится в нулевой информации движения, для установки начального значения счетчика m применительно к номеру опорного кадра в Списке0 равным 0. Кроме того, значение D оценки вектора движения устанавливается в значение Max. Далее, этап S353 служит для определения индекса mvp_idx[0] предиктора вектора движения для идентификации предиктора вектора движения, используемого при кодировании разности нулевого вектора движения, из множества кандидатов. Здесь способом выбора может быть, например, методика, показанная на этапах с S303 по S309 на Фиг. 3. Затем генерируется кандидат pmv[0][m][n] на предиктор вектора движения. В данном случае предиктор вектора движения получается посредством масштабирования вектора движения соседнего блока в соответствии с расстоянием между целевым кадром и опорным кадром (или в соответствии с номерами кадров, идентифицированными посредством индексов опорных кадров), как описывается на этапе S304 на Фиг. 3.
Далее, этап S354 служит для получения опорного кадра, указываемого ref_idx[0], который хранится в памяти 104 кадров, и для поиска нулевого вектора mv[0] движения для минимизации суммы абсолютных разностей остаточного сигнала между предсказанным по двум направлениям сигналом, полученным посредством усреднения вместе с первым предсказанным сигналом, и исходным сигналом. Затем, этап S355 служит для генерирования разности нулевых mvd[0] векторов движения (=mv[0]-pmv[0][m][n]). Затем, этап S356 служит для определения того, является ли общая сумма абсолютных разностей остаточного сигнала между сгенерированным предсказанным по двум направлением сигналом и исходным сигналом целевого блока, и значение оценки объема кода нулевой побочной информации (mvd[0] и m и n) (которая определяется посредством λ(QP)x(объем кодирующих бит mvd, m, и n), где λ является весовым значением, которое определяется параметром QP для определения точности квантования при квантовании коэффициентов преобразования, полученных посредством преобразования сигнала ошибки предсказания) меньше значения D оценки вектора движения. Когда общая сумма абсолютных разностей + значение оценки объема кода не меньше значения D оценки вектора движения, обработка переходит к этапу S358. Когда общая сумма абсолютных разностей + значение оценки объема кода меньше значения D оценки вектора движения, обработка переходит к этапу S357 для обновления индекса mvp_idx[0] предиктора вектора движения в побочной информации на n, обновления индекса ref_idx[0] опорного кадра на m, обновления разности mvd[0] векторов движения на (mv[0]-pmv[0][ref_idx[1]][mvp_idx[1]]), и обновления D на общую сумму абсолютных разностей остаточного сигнала между предсказанным по двум направлениям сигналом и исходным сигналом целевого блока + значение оценки объема кода, вычисленной на этапе S356. Кроме того, обновляется вектор mv[0] движения в нулевой информации движения. Затем, обработка переходит к этапу S358.
Этап S358 служит для определения того, является ли значение m меньше M; когда m меньше M, обработка переходит к этапу S359 для добавления 1 к значению m, и возвращается на этап S353. Затем, этапы с S353 по S359 неоднократно выполняются до тех пор, пока m не достигает M. Когда m достигает M, этап S360 выполняется для вывода нулевой побочной информации (ref_idx[0], mvd[0], mvp_idx[0]) на блок 111 кодирования и сохранения нулевой информации движения (ref_idx[0] и mv[0]) в памяти 113 информации движения, за которым следует завершение обработки.
Следует отметить, что блок 122 оценки нулевой информации движения может сначала исполнять обработку, чтобы сначала определять нулевую информацию движения и нулевую побочную информацию перед нулевым предсказанным сигналом. В данном случае этап S351 на Фиг. 4 опускается, а этап S356 модифицируется для определения суммы абсолютных разностей остаточного сигнала между нулевым предсказанным сигналом, вместо предсказанного по двум направлениям сигнала, и исходным сигналом. На Фиг. 3, становится возможным использование нулевой информации движения, указанной посредством n=4 на Фиг. 7, в качестве кандидата на предсказывающую информацию движения. Данная модификация может быть реализована посредством добавления этапа генерирования нулевого предсказанного сигнала при двунаправленном предсказании на основании нулевой информации движения и модифицирования этапа S306 таким образом, чтобы вычислять сумму абсолютных разностей остаточного сигнала между предсказанным по двум направлениям сигналом, сгенерированным посредством усреднения первого предсказанного сигнала и нулевого предсказанного сигнала, сгенерированного таким образом, и исходным предсказанным сигналом.
Таким образом, первый вектор движения при двунаправленном предсказании генерируется на основании ранее закодированной информации движения, и вместо вектора движения кодируется информация идентификации для идентификации индекса опорного кадра и предсказывающей информации движения из множества кандидатов, как показано на Фиг. 6 и 7; данный способ позволяет устройству кодирования генерировать один подобный сигнал, который аналогичен сигналу целевого блока области текстуры с высокой случайностью или однородной области, включающей в себя шум, с меньшим объемом кодирующих бит. Кроме того, поиск ведется по опорному кадру для обнаружения и кодирования нулевого вектора движения для генерирования второго подобного сигнала, посредством чего может ожидаться эффект улучшения эффекта сглаживания предсказанного по двум направлениям сигнала, при сравнении со случаем, где два вектора движения оба получаются из ранее закодированной информации движения.
Фиг. 9 является блок-схемой, показывающей процедуру способа кодирования видео с предсказанием в устройстве 100 кодирования видео с предсказанием в соответствии с настоящим вариантом осуществления. Сначала, блок 102 разделения на блоки делит входную картинку на блоки кодирования 8x8 (входная картинка может быть разделена на блоки любого другого размера или формы, или блоки разных размеров могут быть смешаны во входной картинке).
Сначала, блок 121 оценки первой информации движения входящий в состав блока 103 генерирования предсказанного сигнала, генерирует первый предсказанный сигнал аналогичный целевому блоку, используя опорные кадры в Списке1, полученные из памяти 104 кадров, и кандидатов на предсказывающую первую информацию движения, полученных из памяти информации движения, и также генерирует первую информацию движения и первую побочную информацию, используемую для генерирования первого предсказанного сигнала (этап S100). Подробности данного этапа уже были описаны в отношении Фиг. 3. Далее, блок 122 оценки нулевой информации движения генерирует нулевой предсказанный сигнал аналогичный целевому блоку, используя опорные кадры в Списке0, полученные из памяти 104 кадров, и кандидатов на предсказывающую нулевую информацию движения, полученных из памяти информации движения, и первую информацию движения, полученную от блока 121 оценки первой информации движения, и также генерирует нулевую информацию движения и нулевую побочную информацию, используемую для генерирования нулевого предсказанного сигнала (этап S150). Подробности данного этапа уже были описаны в отношении Фиг. 4.
Далее, блок 111 кодирования энтропийно кодирует нулевую побочную информацию и первую побочную информацию и сохраняет нулевую информацию движения и первую информацию движения в памяти 113 информации движения (этап S101). Затем, на этапе S102, блок 123 объединения предсказанного сигнала, входящий в состав блока 103 генерирования предсказанного сигнала, усредняет нулевой предсказанный сигнал и первый предсказанный сигнал, чтобы сгенерировать предсказанный по двум направлениям сигнал целевого блока. Остаточный сигнал, указывающий разность между пиксельным сигналом целевого блока кодирования и предсказанным сигналом преобразуется и кодируется посредством блока 106 преобразования, блока 107 квантования, и блока 111 кодирования (этап S103). Закодированные данные побочной информации и квантованные коэффициенты преобразования выводятся через выходной терминал 112 (этап S104). Применительно к кодированию с предсказанием последующего целевого блока кодирования, блок 108 обратного квантования и блок 109 обратного преобразования декодируют закодированный остаточный сигнал после этих процессов, или параллельно с этими процессами. Затем блок 110 добавления добавляет декодированный остаточный сигнал к предсказанному сигналу для воспроизведения сигнала целевого блока кодирования. Воспроизведенный сигнал сохраняется в качестве опорного кадра в памяти 104 кадров (этап S105). До тех пор, пока обработка не будет завершена для всех целевых блоков кодирования, обработка возвращается к этапу S100 для выполнения обработки для следующего целевого блока кодирования. Когда обработка завершена для всех целевых блоков кодирования, обработка прекращается (этап S106).
Далее, будет описан способ декодирования видео с предсказанием в соответствии с настоящим вариантом осуществления. Фиг. 10 является структурной схемой, показывающей устройство 200 декодирования видео с предсказанием в соответствии с настоящим вариантом осуществления. Данное устройство 200 декодирования видео с предсказанием предусмотрено с входным терминалом 201, блоком 202 декодирования, блоком 203 обратного квантования, блоком 204 обратного преобразования, блоком 205 добавления, выходным терминалом 206, блоком 207 компенсации движения, блоком 208 восстановления информации движения, памятью 104 кадров, и памятью 113 информации движения. Блок 203 обратного квантования и блок 204 обратного преобразования функционируют в качестве средства восстановления остаточного сигнала, а память 113 информации движения функционирует в качестве средства хранения информации движения. Средство декодирования посредством блока 203 обратного квантования и блока 204 обратного преобразования может быть любым средством отличным от этих. Кроме того, блок 204 обратного преобразования может быть опущен.
Входной терминал 201 реализует ввод сжатых данных, полученных в результате кодирования со сжатием выполненного посредством вышеупомянутого способа кодирования видео с предсказанием. Эти сжатые данные содержат закодированные данные информации квантованных коэффициентов преобразования, полученных посредством преобразования и квантования сигналов ошибки и энтропийного кодирования коэффициентов преобразования, и закодированные данные нулевой побочной информации и первой побочной информации для генерирования предсказанных по двум направлениям сигналов блоков, для множества разделенных блоков кодирования.
Блок 202 декодирования анализирует сжатые данные, вводимые через входной терминал 201, разделяет данные на закодированные данные квантованных коэффициентов преобразования и закодированные данные побочной информации о каждом целевом блоке декодирования, выполняет их энтропийное декодирование, и выводит декодированные данные через L202a и через L202b на блок 203 обратного квантования и блок 208 восстановления информации движения, соответственно.
Блок 208 восстановления информации движения принимает нулевую побочную информацию (ref_idx[0], mvd[0], mvp_idx[0]) и первую побочную информацию (ref_idx[1], mvp_idx[1]) через L202b и восстанавливает нулевую информацию движения (ref_idx[0], mv[0]) и первую информацию движения (ref_idx[1], mv[1]), используя ранее декодированную информацию движения, полученную через L113. Восстановленная нулевая информация движения и первая информация движения выводится через L208a и через L208b на блок 207 компенсации движения и в память 113 информации движения, соответственно. Память информации движения хранит информацию движения.
Блок 207 компенсации движения получает ранее воспроизведенные сигналы из памяти 104 кадров, на основании двух фрагментов информации движения, и усредняет два предсказанных сигнала, чтобы сгенерировать предсказанный по двум направлениям сигнал целевого блока кодирования. Сгенерированный таким образом предсказанный сигнал выводится через L207 на блок 205 добавления.
Квантованные коэффициенты преобразования остаточного сигнала в целевом блоке декодирования, декодированные посредством блока 202 декодирования, выводятся через L203 на блок 203 обратного квантования. Блок 203 обратного квантования обратно квантует квантованные коэффициенты остаточного сигнала в целевом блоке декодирования. Блок 204 обратного преобразования преобразует обратно квантованные данные посредством обратного дискретного косинусного преобразования для генерирования остаточного сигнала.
Блок 205 добавления добавляет предсказанный по двум направлениям сигнал, сгенерированный блоком 207 компенсации движения, к остаточному сигналу, восстановленному посредством блока 203 обратного квантования и блока 204 обратного преобразования, и выводит воспроизведенный пиксельный сигнал целевого блока декодирования через линию L205 на выходной терминал 206 и в память 104 кадров. Выходной терминал 206 выводит сигнал во вне (например, устройство отображения).
Память 104 кадров сохраняет воспроизведенную картинку, выведенную из блока 205 добавления, в качестве опорного кадра, который является воспроизведенной картинкой, для ссылки для следующего процесса декодирования.
Фиг. 11 является структурной схемой, показывающей конфигурацию блока 208 восстановления информации движения в соответствии с настоящим вариантом осуществления. Данный блок 208 восстановления информации движения предусмотрен с блоком 211 восстановления первой информации движения и блоком 212 восстановления нулевой информации движения.
Эти блок 211 восстановления первой информации движения и блок 212 восстановления нулевой информации движения могут работать одновременно.
Блок 212 восстановления нулевой информации движения принимает ввод нулевой побочной информации (ref_idx[0], mvp_idx[0], mv[0]) для генерирования предиктора нулевого вектора движения (pmv[0][ref_idx[0]][mvp_idx[0]]) из информации движения соседнего блока, полученной через L113, добавляет предиктор вектора движения к разности векторов движения (mvd[0]) в побочной информации для генерирования вектора движения в нулевой информации движения, тем самым восстанавливая нулевую информацию движения. Аналогично, когда опорный кадр, идентифицируемый ref_idx, отличается от опорного кадра, идентифицируемого ref_idx целевого блока, то может быть выполнен процесс масштабирования вектора движения в предсказывающей информации движения на основании номеров кадров целевого кадра кодирования и двух опорных кадров.
Блок 211 восстановления первой информации движения принимает ввод первой побочной информации (ref_idx[1], mvp[1]) для генерирования предиктора первого вектора движения (pmv[1][ref_idx[1]][mvp_idx[1]]) из ранее декодированной информации движения, полученной через L113. Данный предиктор вектора движения определяется в качестве вектора движения в первой информации движения (mv[1]=pmv[1][ref_idx[1]] [mvp_idx[1]]), тем самым восстанавливая первую информацию движения. На этот раз, первый вектор движения может быть восстановлен посредством установки разности mvd[1] векторов движения равной нулевому вектору и сложения его с предсказателем вектора движения. В данном случае если опорный кадр, идентифицируемый ref_idx, отличается от опорного кадра, идентифицируемого ref_idx целевого блока, то может быть выполнен процесс масштабирования вектора движения в предсказывающей информации движения на основании номеров кадров целевого кадра кодирования и двух опорных кадров. А именно, вектор движения в предсказывающей информации движения масштабируется таким образом, чтобы быть преобразованным в вектор движения на опорный кадр, идентифицируемый целевым блоком, и вектор движения после преобразования используется в качестве предиктора вектора движения.
Фиг. 13 показывает блок-схему блока 212 восстановления нулевой информации движения. Сначала, этап S451 служит для ввода декодированных данных нулевой побочной информации (ref_idx[0] и mvp_idx[0] и mvd[0]. Далее, этап S452 служит для ввода информации движения, указываемой посредством mvp_idx[0], из информации движения соседних блоков, как показано на Фиг. 7 (исключая блок 400 информации движения, поскольку он не определен), на основании ref_idx[0] и mvp_idx[0] введенных таким образом, и получает предиктор вектора движения (pmv[0][ref_idx[0]][mvp_idx[0]]). В данный момент, если опорный кадр, идентифицируемый посредством ref_idx, отличается от опорного кадра, идентифицируемого посредством ref_idx целевого блока, может быть выполнен процесс масштабирования вектора движения в предсказывающей информации движения, на основании номеров кадров целевого кадра кодирования и двух опорных кадров. Затем, этап S453 служит для сложения сгенерированного предиктора вектора движения с разностью векторов движения для восстановления нулевого вектора движения (mv[0]=pmv[0] [ref_idx[0]][mvp_idx[0]]+mvd[0]). В заключении, этап S454 служит для вывода нулевой информации движения (ref_idx[0] и mv[0]) на блок 207 компенсации движения и в память 113 информации движения, за которым следует завершение обработки.
Фиг. 12 показывает блок-схему блока 211 восстановления первой информации движения. Сначала, этап S401 служит для ввода декодированных данных первой побочной информации (ref_idx[1] и mvp_idx[1]), а этап S402 служит для установки 0 применительно к значениям вектора разности векторов движения (mvd[1]). Далее, этап S403 служит для ввода информации движения, указанной посредством mvp_idx[1] из ранее декодированной информации движения (в которую n=4 может быть включено), как показано на Фиг. 7, на основании введенных таким образом ref_idx[1] и mpv_idx[1], и получения предиктора вектора движения (pmv[1][ref_idx[1]][mvp_idx[1]]). В данный момент, если опорный кадр, идентифицируемый посредством ref_idx, отличается от опорного кадра, идентифицируемого посредством ref_idx целевого блока, то может быть выполнен процесс масштабирования вектора движения в предсказывающей информации движения на основании номеров кадров целевого кадра кодирования и двух опорных кадров. Затем, этап S404 служит для сложения сгенерированного предиктора вектора движения с разностью векторов движения для восстановления первого вектора движения (mv[1]=pmv[1] [ref_idx[1]][mvp_idx[1]]+mvd[1]). В заключении, этап S405 служит для вывода первой информации движения (ref_idx[1] и mv[1]) в блок 207 компенсации движения и в память 113 информации движения, за которым следует завершение обработки. Поскольку значения вектора mvd[1] равны 0 в данном примере, то этап S402 может быть опущен, а этап S404 может быть модифицирован таким образом, чтобы устанавливать предиктор вектора движения равным вектору движения (mv[1]=pmv[1] [ref_idx[1]][mvp_idx[1]]).
Далее, способ декодирования видео с предсказанием в устройстве 200 декодирования видео с предсказанием, показанном на Фиг. 10, будет описан при помощи Фиг. 14. Сначала, сжатые данные вводятся через входной терминал 201 (этап S201). Затем блок 202 декодирования выполняет анализ данных сжатых данных, и выполняет их энтропийное декодирование для декодирования нулевой побочной информации и первой побочной информации, используемой для генерирования предсказанных по двум направлениям сигналов, и квантованных коэффициентов преобразования (этап S202).
Далее, блок 212 восстановления нулевой информации движения, входящий в состав блока 208 восстановления информации движения, восстанавливает нулевую информацию движения, используя нулевую побочную информацию и информацию движения соседних блоков, хранящуюся в памяти 113 информации движения (этап S250). Подробности данного этапа уже были описаны в отношении Фиг. 13.
Затем, блок 211 восстановления первой информации движения, входящий в состав блока 208 восстановления информации движения, восстанавливает первую информацию движения, используя первую побочную информацию и информацию движения соседних блоков, хранящуюся в памяти 113 информации движения (этап S200). Подробности данного этапа уже были описаны в отношении Фиг. 12.
Далее, блок 207 компенсации движения генерирует предсказанный по двум направлениям сигнал целевого блока декодирования, на основании восстановленной информации движения, и сохраняет информацию движения в памяти 113 информации движения (S207).
Блок 203 обратного квантования выполняет обратное квантование квантованных коэффициентов преобразования, декодированных посредством блока 202 декодирования, а блок 204 обратного преобразования выполняет обратное преобразования для генерирования воспроизведенного остаточного сигнала (S208). Затем сгенерированный предсказанный по двум направлениям сигнал добавляется к воспроизведенному остаточному сигналу для генерирования воспроизведенного сигнала, и данный воспроизведенный сигнал сохраняется для воспроизведения следующего целевого блока декодирования в памяти 104 кадров (этап S209). Процессы с S202 по S209 неоднократно выполняются до тех пор, пока присутствуют следующие сжатые данные (S210), и пока не обработаны все до последнего данные.
Далее, будет описана методика выборочного использования множества способов двунаправленного предсказания включающих в себя настоящее изобретение. Двунаправленное предсказание с кодированием только одной разности векторов движения, как описано выше (которое будет именоваться как тип 2 двунаправленного предсказания), может быть использовано адаптивно в сочетании с обычным двунаправленным предсказанием с кодированием двух разностей векторов движения (которое будет именоваться как тип 1 двунаправленного предсказания) и однонаправленным предсказанием. Эти системы предсказания могут быть использованы с переключением в единице кадра, в единице слайса в виде группы блоков, или в единице блока. Применимый здесь процесс переключения включает в себя способ кодирования информации переключения и способ, посредством которого стороне декодера предписывается определение переключения на основании номеров кадров опорных кадров.
Процесс переключения между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания может быть реализован посредством добавления к блоку 121 оценки первой информации движения на Фиг. 2, функции проверки блоков на соответствие и функции вычисления разности векторов движения посредством вычитания предсказывающего вектора из вектора движения, обнаруженного посредством поиска, и посредством добавления к блоку восстановления первой информации движения на Фиг. 11, функции для получения разности векторов движения от блока декодирования. Конкретные способы будут описаны ниже.
(Переключение в Единице Кадра/Слайса, и Кодирование Информации Переключения Типа Двунаправленного Предсказания)
Для переключения между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания в единице кадра/слайса, информация переключения типа двунаправленного предсказания (например, BiPred_type) кодируется как включенная в заголовок кадра или слайса.
Когда все кандидаты на опорный кадр являются прошлыми кадрами в очередности отображения по отношению к целевому кадру кодирования как на Фиг. 5 (A), то тип 2 двунаправленного предсказания эффективнее и, следовательно, сторона кодировщика выбирает использование типа 2 двунаправленного предсказания. Тогда устройство кодирования кодирует информацию указания для указания типа 2 двунаправленного предсказания (например, BiPred_type=1), в информации заголовка кадра или слайса. С другой стороны, когда кандидаты на опорный кадр включают в себя будущий кадр в очередности отображения по отношению к целевому кадру кодирования как на Фиг. 5 (B), то устройство кодирования выбирает тип 1 двунаправленного предсказания и кодирует информацию указания для указания типа 1 двунаправленного предсказания (например, BiPred_type=0), в информации заголовка кадра или слайса.
Когда используется тип 1 двунаправленного предсказания, то осуществляется поиск вектора mv[1] движения и mvd[1] включена в первую побочную информацию, подобно нулевой побочной информации (закодированные данные ref_idx[0] и mvd[0] и mvp_idx[0]), как кодируемая совместно с ref_idx[1] и mvp_idx[1], при кодировании блока в кадре или в слайсе. Когда используется тип 2 двунаправленного предсказания, то ref_idx[0] и mvd[0] и mvp_idx[0] кодируются в качестве нулевой побочной информации, а ref_idx[1] и mvp_idx[1] кодируются в качестве первой побочной информации.
Сторона декодера переключает способ восстановления mvd[1], при декодировании каждого блока в кадре или в слайсе, на основании информации указания, декодируемой из информации заголовка кадра или слайса. А именно, когда декодируется информация указания, указывающая тип 1 двунаправленного предсказания (например, BiPred_type=0), то первая побочная информация декодируется, включая mvd[1], совместно с ref_idx[1] и mvp_idx[1], при декодировании каждого блока в кадре или в слайсе. Когда декодируется информация указания, указывающая тип 2 двунаправленного предсказания (например, BiPred_type=1), то первая побочная информация декодируется чтобы получить ref_idx[1] и mvp[1] и 0 устанавливается для горизонтального и вертикального значений вектора mvd[1], при декодировании каждого блока в кадре или в слайсе. Нулевая побочная информация декодируется, чтобы получить ref_idx[0] и mvd[0] и mvp_idx[0], независимо от значения информации указания.
Способ переключения между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания на стороне кодировщика не должен зависеть от описанного здесь способа. Например, тип 2 двунаправленного предсказания может быть использован, если все опорные кадры являются будущими кадрами в очередности отображения по отношению к целевому кадру кодирования. Также существует возможность применения способа проверки эффективностей кодирования при фактическом применении типа 1 двунаправленного предсказания и типа 2 двунаправленного предсказания (например, значений оценки, полученных посредством преобразования суммы квадратов разностей сигнала ошибки кодирования + контрольная сумма кодирования) и выбирая тип с более высокой эффективностью кодирования.
Кроме того, в случае способа кодирования в виде адаптивного использования множества размеров блоков, как показано на Фиг. 8, информация указания, указывающая переключение между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания, может быть индивидуальна отправлена для каждого из разных размеров блока, в заголовке кадра или слайса. Например, когда размерами блока являются 64х64, 32х32, 16х16, и 8х8, то кодируется четыре фрагмента информации указания.
Когда к способу предсказания блока применяется как однонаправленное предсказание, так и двунаправленное предсказание, то сторона кодировщика выбирает тип предсказания (однонаправленное предсказание или двунаправленное предсказание) и кодирует его как включенное в побочную информацию. Тогда процесс переключения между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания выполняется только для блоков, для которых выбрано двунаправленное предсказание. Сторона декодера выполняет процесс переключения между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания только для блоков, для которых декодируется информация, указывающая тип предсказания как двунаправленное предсказание.
(Переключение в Единице Кадра/Слайса, и Определение на Основании Номеров Кадров Опорных Кадров)
Кандидаты на опорный кадр, показанные на Фиг. 5 (A) и Фиг. 5 (B), являются одинаковыми как на стороне кодировщика, так и на стороне декодера. По этой причине, то, какой из типов: тип 1 двунаправленного предсказания и тип 2 двунаправленного предсказания, должен быть использован, может быть определено на основании номеров кадров кандидатов на опорный кадр и номера кадра целевого кадра кодирования. А именно, тип 2 двунаправленного предсказания используется, когда все кандидаты на опорный кадр являются прошлыми кадрами в очередности отображения по отношению к целевому кадру кодирования; тип 1 двунаправленного предсказания используется, когда кандидаты на опорный кадр включают в себя будущий кадр в очередности отображения по отношению к целевому кадру кодирования. Данный способ не требует передачи информации указания.
Также существует возможность применения типа 2 двунаправленного предсказания, когда все кандидаты на опорный кадр являются будущими кадрами в очередности отображения по отношению к целевому кадру кодирования.
(Переключение в Единице Блока, и Кодирование Информации Переключения)
В случае переключения между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания в единице блока, информация переключения типа двунаправленного предсказания (например, BiPred_block_type) кодируется как включенная в побочную информацию каждого блока.
Поскольку тип 2 двунаправленного предсказания эффективен, когда два опорных кадра при двунаправленном предсказании являются прошлыми кадрами в очередности отображения по отношению к целевому кадру кодирования, то сторона кодировщика выбирает использование типа 2 двунаправленного предсказания. Тогда устройство кодирования добавляет информацию указания, указывающую тип 2 двунаправленного предсказания (например, BiPred_block_type=1) в побочную информацию блока и кодирует ее совместно с ref_idx[0], mvd[0], и mvp_idx[0] нулевой побочной информации и ref_idx[1] и mvp_idx[1] первой побочной информации. С другой стороны, когда два опорных кадра при двунаправленном предсказании включают в себя будущий кадр в очередности отображения по отношению к целевому кадру кодирования, то сторона кодировщика выбирает тип 1 двунаправленного предсказания. Тогда устройство кодирования добавляет информацию указания, указывающую тип 1 двунаправленного предсказания (например, BiPred_block_type=0) в побочную информацию блока и кодирует ее совместно с ref_idx[0], mvd[0], и mvp_idx[0] нулевой побочной информации и ref_idx[1] и mvp[1] (mvd[1] включена в первую побочную информацию), и mvp_idx[1] первой побочной информации.
Сторона декодера декодирует побочную информацию блока, включающую в себя информацию переключения типа двунаправленного предсказания (например, BiPred_block_type) и переключает способ восстановления mvd[1], на основании декодированного значения. В частности, когда информация указания, указывающая тип 1 двунаправленного предсказания (например, BiPred_block_type=0) декодируется в качестве побочной информации блока, то устройство декодирования декодирует ref_idx[0] и mvd[0] и mvp_idx[0] в качестве нулевой побочной информации и декодирует ref_idx[1] и mvd[1] и mvp_idx[1] в качестве первой побочной информации. С другой стороны, когда информация указания, указывающая тип 2 двунаправленного предсказания (например, BiPred_block_type=1) декодируется в качестве побочной информации блока, то устройство декодирования декодирует ref_idx[0] и mvd[0] и mvp_idx[0] в качестве нулевой побочной информации, декодирует ref_idx[1] и mvp_idx[1] в качестве первой побочной информации, и устанавливает 0 для горизонтального и вертикального значений вектора mvd[1].
Способ переключения между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания на стороне кодировщика не должны зависеть от описанного здесь способа. Например, когда оба из двух опорных кадров являются будущими кадрами в очередности отображения по отношению к целевому кадру кодирования, то может быть применен тип 2 двунаправленного предсказания. Также существует возможность применения способа проверки эффективностей кодирования при фактическом применении типа 1 двунаправленного предсказания и типа 2 двунаправленного предсказания (например, значений оценки, полученных посредством преобразования суммы квадратов разностей сигнала ошибки кодирования + контрольная сумма кодирования) для каждого блока, и выбирая тип с более высокой эффективностью кодирования.
Когда к способу предсказания блока применяется как однонаправленное предсказание, так и двунаправленное предсказание, то сторона кодировщика выбирает тип предсказания (однонаправленное предсказание или двунаправленное предсказание) и кодирует его как включенное в побочную информацию. Тогда процесс переключения между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания выполняется только для блоков, для которых выбрано двунаправленное предсказание. Сторона декодера выполняет процесс переключения между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания только для блоков, для которых декодируется информация, указывающая тип предсказания как двунаправленное предсказание.
(Переключение в Единице Блока, и Определение на Основании Номеров Кадров Опорных Кадров)
Кандидаты на опорный кадр, показанные на Фиг. 5 (A) и Фиг. 5 (B), являются одинаковыми как на стороне кодировщика, так и на стороне декодера. По этой причине, то, какой из типов: тип 1 двунаправленного предсказания и тип 2 двунаправленного предсказания, должен быть использован, может быть определено на основании номеров кадров двух опорных кадров, используемых при двунаправленном предсказании, которые кодируются/декодируются в качестве побочной информации блока, и номера кадра целевого кадра кодирования. А именно, тип 2 двунаправленного предсказания используется, когда два опорных кадра, используемые при двунаправленном предсказании, оба являются прошлыми кадрами в очередности отображения по отношению к целевому кадру кодирования; тип 1 двунаправленного предсказания применяется, когда любой или оба из двух опорных кадров являются будущими кадрами в очередности отображения по отношению к целевому кадру кодирования. Данный способ не требует передачи информации указания. Тип 2 двунаправленного предсказания может быть применен, когда оба из двух опорных кадров являются будущими кадрами в очередности отображения по отношению к целевому кадру кодирования.
(Комбинация Переключения в Единице Кадра/Слайса и Переключения в Единице Блока)
В единице кадра/слайса, кодируется/декодируется информация указания для указания того должно ли переключение типа двунаправленного предсказания выполняться в единице кадра/слайса или в единице блока.
Когда переключение типа двунаправленного предсказания выполняется в единице кадра/слайса, информация переключения типа двунаправленного предсказания (например, BiPred_type) дополнительно кодируется/декодируется как включенная в заголовок кадра или слайса, как описано выше. В данном случае когда способ кодирования адаптивно использует множество размеров блоков, как показано на Фиг. 8, информация указания для указания переключения между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания может быть индивидуально отправлена для каждого из разных размеров блоков, в заголовке кадра или слайса. Например, когда размерами блока являются 64х64, 32х32, 16х16, и 8х8, то кодируется четыре фрагмента информации указания.
Когда переключение типа двунаправленного предсказания выполняется в единице кадра блока, то информация переключения типа двунаправленного предсказания (например, BiPred_block_type) дополнительно кодируется/декодируется как включенная в побочную информацию блока, в единице блока, как описано выше. В данном случае дополнительно, когда способ кодирования адаптивно использует множество размеров блоков, как показано на Фиг. 8, то информация указания для указания того, должен ли процесс переключения между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания выполняться, может индивидуально передаваться для каждого из разных размеров блока, в заголовке кадра или слайса. Например, когда размерами блока являются 64х64, 32х32, 16х16, и 8х8, то кодируется четыре фрагмента информации указания.
Также существует возможность кодирования/декодирования информации указания для указания применения только типа 1 двунаправленного предсказания, применения только типа 2 двунаправленного предсказания, или переключения между двумя типами в каждом блоке в кадре/слайсе, в единице кадра/слайса. В данном случае когда способ кодирования адаптивно использует множество размеров блоков, как показано на Фиг. 8, то информация указания может индивидуально передаваться для каждого из разных размеров блока.
В другом способе, информация указания для указания того, должен ли применяться тип 2 двунаправленного предсказания, кодируется/декодируется в единице кадра/слайса. В кадре/слайсе использующем тип 2 двунаправленного предсказания, информация указания может дополнительно кодироваться/декодироваться для указания того, должно ли выполняться переключение между типом 1 двунаправленного предсказания и типом 2 двунаправленного предсказания, в каждом блоке в кадре/слайсе, или для указания того, применяется ли тип 2 двунаправленного предсказания ко всем блокам в кадре/слайсе. В данном случае когда способ кодирования адаптивно использует множество размеров блоков, как показано на Фиг. 8, то эти фрагменты информации указания могут индивидуально передаваться для каждого из разных размеров блока, в заголовке кадра или слайса.
В вышеприведенном описании, нулевая информация движения целевого блока 400 была включена в кандидаты на предиктор первого вектора движения, показанный на Фиг. 7. Тем не менее, также существует возможность отдельной подготовки в качестве типа 3 двунаправленного предсказания способа в виде определения нулевой информации движения в качестве предсказывающей первой информации движения, масштабирования предсказывающей информации движения, на основании индекса первого опорного кадра, включенного в нулевую информацию движения, и индекса первого опорного кадра, включенного в первую информацию движения, и использования отмасштабированного результата в качестве первой информации движения. А именно, масштабирование выполняется таким образом, что вектор движения, включенный в нулевую информацию движения, становится вектором движения опорного кадра, который указывается индексом опорного кадра первой информации движения. В данном случае не требуется, чтобы нулевая информация движения целевого блока включалась в кандидаты на предсказывающую первую информацию движения при типе 2 двунаправленного предсказания (n=4 на Фиг. 7 исключается из кандидатов). Когда применяется тип 3 двунаправленного предсказания, то не выполняется кодирование/декодирование предиктора первого вектора движения. А именно, первая побочная информация кодируется/декодируется, включая в себя индекс первого опорного кадра (ref_idx[1]), но не включая разность векторов движения (mvd[1]) и индекс предиктора первого вектора движения (mvp_idx[1]).
Способ применения типа 3 двунаправленного предсказания может состоять в кодировании/декодировании информации указания для указания переключения между типом 1 двунаправленного предсказания, типом 2 двунаправленного предсказания, и типом 3 двунаправленного предсказания, в единице кадра/слайса или в единице блока. Также существует возможность кодирования/декодирования информации указания для указания переключения между типом 1 двунаправленного предсказания и типом 3 двунаправленного предсказания, или, переключения между типом 2 двунаправленного предсказания и типом 3 двунаправленного предсказания, в единице кадра/слайса или в единице блока.
Также возможным является использование способа в виде использования его в качестве замены для типа 1 двунаправленного предсказания в вышеприведенном описании. А именно, тип 3 двунаправленного предсказания применяется, когда множество кандидатов на опорный кадр включает в себя будущий кадр в очередности отображения по отношению к целевому кадру кодирования; тип 2 двунаправленного предсказания применяется, когда все из множества кандидатов на опорный кадр являются прошлыми кадрами в очередности отображения по отношению к целевому кадру кодирования.
В другом способе применения, когда опорный кадр, указываемый в индексе опорного кадра нулевой информации движения отличается от опорного кадра, указываемого индексом опорного кадра в первой информации движения, тип 3 двунаправленного предсказания применяется вместо типа 2 двунаправленного предсказания (без необходимости кодирования/декодирования индекса предиктора первого вектора движения). С другой стороны, когда опорный кадр, указываемый индексом опорного кадра в нулевой информации движения, точно такой же, что и опорный кадр, указываемый индексом опорного кадра в первой информации движения, то применяется тип 2 двунаправленного предсказания (с кодированием/декодированием индекса предиктора первого вектора движения).
Информация переключения типа двунаправленного предсказания не должна ограничиваться информацией идентификации, такой как BiPred_type или BiPred_block_type. Она может быть любой информацией для указания того, должно ли выполняться кодирование/декодирования разности векторов движения. Например, информация флага может быть закодирована/декодирована для указания того, включена ли mvd в первую побочную информацию или в нулевую побочную информацию, подобно mvd_list1_zero_flag или mvd_list0_zero_flag. Когда тип 1 двунаправленного предсказания, тип 2 двунаправленного предсказания, и тип 3 двунаправленного предсказания переключаются в единице кадра/слайса или единице блока, то флаг для указания того, что mvd не включена в побочную информацию, отправляется при применении любого из типов: типа 2 двунаправленного предсказания и типа 3 двунаправленного предсказания. Переключение между типом 2 двунаправленного предсказания и типом 3 двунаправленного предсказания может быть выполнено на основании индексов опорных кадров как описано выше (тип 2 двунаправленного предсказания применяется, когда опорный кадр, указываемый индексом опорного кадра в нулевой информации движения, является точно таким же, что и опорный кадр, указываемый индексом опорного кадра в первой информации движения), и дополнительно может кодироваться/декодироваться информация выбора.
Фиг. 15 является структурной схемой, показывающей модули программы, которая может исполнять способ кодирования видео с предсказанием. Как показано на Фиг. 15 (A), программа P100 кодирования видео с предсказанием предусмотрена с модулем P101 разделения на блоки, модулем P103 генерирования предсказанного сигнала, модулем P104 хранения, модулем P105 вычитания, модулем P106 преобразования, модулем P107 квантования, модулем P108 обратного квантования, модулем P109 обратного преобразования, модулем P110 добавления, модулем P111 кодирования, и модулем P113 хранения информации движения. Кроме того, как показано на Фиг. 15 (B), модуль P103 генерирования предсказанного сигнала предусмотрен с модулем P121 оценки первой информации движения, модулем P122 оценки нулевой информации движения, и модулем P123 объединения предсказанного сигнала. Функции, реализуемые посредством исполнения вышеприведенных соответствующих модулей, точно такие же, что и функции вышеописанного устройства 100 кодирования видео с предсказанием. А именно, функции соответствующих модулей в программе P100 кодирования видео с предсказанием точно такие же, что и функции блока 102 разделения на блоки, блока 103 генерирования предсказанного сигнала, памяти 104 кадров, блока 105 вычитания, блока 106 преобразования, блока 107 квантования, блока 108 обратного квантования, блока 109 обратного преобразования, блока 110 добавления, блока 111 кодирования, памяти 113 информации движения, блока 121 оценки первой информации движения, блока 122 оценки нулевой информации движения, и блока 123 объединения предсказанного сигнала.
Фиг. 16 является структурной схемой, показывающей модули программы, которая может исполнять способ декодирования видео с предсказанием. Как показано на Фиг. 16 (A), программа P200 декодирования видео с предсказанием предусмотрена с модулем P201 декодирования, модулем P202 декодирования информации движения, модулем P203 компенсации движения, модулем P204 хранения информации движения, модулем P205 обратного квантования, модулем P206 обратного преобразования, модулем P207 добавления, и модулем P104 хранения. Кроме того, как показано на Фиг. 16 (B), модуль P202 декодирования информации движения предусмотрен с модулем P211 восстановления первой информации движения и модулем P212 восстановления нулевой информации движения.
Функции, реализуемые посредством исполнения вышеприведенных соответствующих модулей, точно такие же, что и те, что присутствуют у блоков вышеупомянутого устройства 200 декодирования видео с предсказанием. А именно, функции соответствующих модулей в программе P200 декодирования видео с предсказанием точно такие же, что и функции блока 202 декодирования, блока 208 восстановления информации движения, блока 207 компенсации движения, памяти 113 информации движения, блока 203 обратного квантования, блока 204 обратного преобразования, блока 205 добавления, памяти 104 кадров, блока 211 восстановления первой информации движения, и блока 212 восстановления нулевой информации движения.
Программа P100 кодирования видео с предсказанием или программа P200 декодирования видео с предсказанием, сконфигурированные как описано выше, хранятся на описываемом ниже запоминающем носителе 10 информации, показанном на Фиг. 17 и 18, и исполняемым компьютером, описываемым ниже.
Фиг. 17 является чертежом, показывающим конфигурацию аппаратного обеспечения компьютера для исполнения программы, записанной на запоминающем носителе информации, а Фиг. 18 является видом в перспективе компьютера для исполнения программы, хранящейся на запоминающем носителе информации. Оборудование для исполнения программы, хранящейся на запоминающем носителе информации, не ограничивается компьютерами, а может быть проигрывателем DVD, абонентской телевизионной приставкой, сотовым телефоном, или подобным, предусмотренным с CPU и выполненным с возможностью выполнения обработки и управления на основании программного обеспечения.
Как показано на Фиг. 17, компьютер 30 предусмотрен со считывающим устройством 12, таким как блок накопителя на гибких дисках, блок накопителя CD-ROM, или блок накопителя DVD, оперативной памятью 14 (RAM), в которой размещается операционная система, памятью 16 для хранения программы, хранящейся на запоминающем носителе 10 информации, блоком 18 монитора, таким как устройство отображения, манипулятором 20 типа мышь и клавиатурой 22 в качестве устройств ввода, устройством 24 связи для передачи/приема данных и прочего, и CPU 26 для управления исполнением программы. Когда запоминающий носитель 10 информации помещается в считывающее устройство 12, компьютер 30 получает доступ к программе кодирования или декодирования видео с предсказанием, хранящейся на запоминающем носителе 10 информации, посредством считывающего устройства 12, и получает возможность функционирования в качестве устройства кодирования видео или устройства декодирования видео в соответствии с настоящим вариантом осуществления, на основании программы кодирования или декодирования изображения.
Как показано на Фиг. 18, программа кодирования видео с предсказанием и программа декодирования видео могут быть предоставлены в виде сигнала 40 компьютерных данных, наложенного на несущую волну, посредством сети. В данном случае компьютер 30 сохраняет программу кодирования видео с предсказанием или программу декодирования видео, принимаемую через устройство 24 связи, в памяти 16 и получает возможность исполнения программы кодирования видео с предсказанием или программы декодирования видео с предсказанием.
В настоящем изобретении, также существует возможность дополнительного использования модификаций как описано ниже.
(1) Зависимость между нулевой дополнительной информацией и первой дополнительной информацией
В вышеприведенном описании первая побочная информация содержит ref_idx[1] и mvp_idx[1], а нулевая побочная информация содержит ref_idx[0] и mvd[0] и mvp_idx[0]; тем не менее, данная конфигурация может быть изменена на обратную. В частности, первая побочная информация содержит ref_idx[1] и mvd[1] и mvp_idx[1], а нулевая побочная информация содержит ref_idx[0] и mvp_idx[0]. В данном случае предсказывающая нулевая информация движения генерируется из информации движения соседних блоков, генерируется нулевой предсказанный сигнал, и затем выполняется поиск в отношении первой информации движения для минимизации значения оценки в виде суммы абсолютных разностей между предсказанным по двум направлениям сигналом и исходным сигналом целевого блока + побочная информация.
В другом доступном способе, первая побочная информация содержит ref_idx[1] и mvp_idx[1], а нулевая побочная информация содержит ref_idx[0] и mvp_idx[0]. А именно, разность векторов движения не кодируется, и сторона декодера устанавливает 0 для горизонтального и вертикального значений вектора двух разностей векторов движения. В другом способе, предиктор нулевого вектора движения и предиктор первого вектора движения устанавливаются равными нулевому вектору движения и первому вектору движения, соответственно.
(2) Опорные кадры
В вышеприведенном описании, индекс опорного кадра кодируется/декодируется как включенный в первую побочную информацию, но он может быть определен на основании индекса опорного кадра, связанного с информацией движения соседнего блока, который указывается посредством mvp_idx (например, для соседних блоков с 401 по 404 на Фиг. 7, связанный индекс опорного кадра в Списке1 используется как есть, а для соседних блоков с 410 по 415 процесс масштабирования применяется к вектору движения в соседнем блоке, на основании разности между опорными кадрами, которые указываются индексами опорных кадров целевого блока и соседнего блока). Кроме того, индекс опорного кадра первой информации движения может быть определен предварительно. Поскольку индекс опорного кадра может быть уникальным образом восстановлен на стороне декодера в этих случаях, то не требуется кодировать индекс ref_idx опорного кадра как включенный в первую побочную информацию.
Выбор опорных кадров и их списков не ограничивается примерами на Фиг. 5 и Фиг. 6. Списки опорных кадров могут быть закодированы в единице кадра/слайса, а количество опорных кадров не всегда должно быть 4 как на Фиг. 5, при этом настоящее изобретение может быть реализовано при любом другом количестве.
(3) Предсказывающая информация движения
Вышеприведенные варианты осуществления используют несколько фрагментов ранее закодированной/ранее декодированной информации движения в качестве кандидатов на предсказывающую информацию движения, как показано на Фиг. 7, однако количество и позиции соседних блоков, которые должны использоваться, не ограничивается этими.
Двунаправленное предсказание настоящего изобретения также может быть выполнено в конфигурации, при которой нулевой вектор движения соседнего блока включается в кандидаты на предиктор первого вектора движения, и первый вектор движения соседнего блока включается в кандидаты на предиктор нулевого вектора движения. Нулевая информация движения, закодированная/декодированная ранее, может быть добавлена в кандидаты на предсказывающую первую информацию движения.
Настоящее изобретение не ограничивается, ни тем, должен ли выполняться процесс масштабирования, когда индекс опорного кадра в ранее закодированной/ранее декодированной информации движения отличается от индекса опорного кадра в информации движения, связанной с целевым блоком.
Когда присутствует лишь один кандидат на предиктор вектора движения, то индекс mvp_idx предиктора вектора движения не должен быть закодирован как включенный в первую побочную информацию.
В настоящем изобретении также отсутствуют ограничения на способ генерирования предиктора вектора движения. Например, существует возможность применения в качестве предиктора вектора движения среднего по нечетным номерам кандидатов на предиктор вектора движения. Поскольку предиктор вектора движения также уникальным образом определяется на стороне декодера в данном случае то индекс mpv_idx предиктора вектора движения не должен быть закодирован, как включенный в первую побочную информацию.
Двунаправленное предсказание настоящего изобретения также может быть выполнено в случае способа кодирования/декодирования, использующего множество размеров блоков, как показано на Фиг. 8, до тех пор, пока определен способ для определения кандидатов на предсказывающую информацию движения. Например, в примере на Фиг. 8, существует возможность определения блоков с 421 по 428, смежных с целевым блоком 400, в качестве кандидатов на предсказывающую информацию, или заранее определить способ нумерации соседних блоков и установить информацию движения соседних блоков в количестве, которое назначено в единице кадра или в единице слайса, в качестве кандидатов на предиктор вектора движения.
(4) Нулевая информация движения и побочная информация
В настоящем изобретении отсутствуют ограничения на конфигурации нулевой информации движения и побочной информации; индекс опорного кадра и индекс предиктора вектора движения могут быть установлены как фиксированные значения, не кодируясь, или они могут быть получены посредством предварительно определенного способа.
Что касается нулевой информации движения и побочной информации, подобно первой информации движения и побочной информации, сторона декодера может устанавливать mv[0]=pmv[0] (или mvd[0]=0), не кодируя mvd[0].
(5) Номера кадров
В вышеприведенном описании номер кадра (frame_num) используется для идентификации каждого из опорных кадров и целевого кадра кодирования, однако любая другая информация может быть использована, не оказывая влияния на реализацию настоящего изобретения, до тех пор, пока она является информацией, которая позволяет идентифицировать каждый опорный кадр.
(6) Восстановление разности mvd[1] первых векторов движения
В описанном выше двунаправленном предсказании настоящего изобретения, значения вектора разности mvd[1] первых векторов движения равны 0. По этой причине, не кодируя mvd[1], сторона декодера устанавливает 0 для значений вектора mvd[1] или устанавливает вектор mv[1] движения равным pmv[1]. Другим эффективным вариантом осуществления может быть способ включения mvd[1]=0 в первую побочную информацию и эффективного энтропийного кодирования нулей.
Когда арифметическое кодирование используется для энтропийного кодирования, например, разность нулевых векторов движения и разность первых векторов движения кодируются/декодируются посредством разных вероятностных моделей. Например, две вероятностные модели с разными частотами вероятности значений вектора 0 разности векторов движения подготавливаются для кодирования/декодирования разности векторов движения. Затем вторая вероятностная модель с более высокой частотой значений вектора 0 разности векторов движения используется для кодирования/декодирования разности первых векторов движения, а другая первая вероятностная модель используется для кодирования/декодирования разности нулевых векторов движения. Кроме того, разные вероятностные модели также могут быть подготовлены для горизонтального и вертикального значений вектора разности векторов движения.
В другом применимом способе, вторая вероятностная модель используется лишь для разности первых векторов движения каждого блока, к которому применяется тип 2 двунаправленного предсказания, а первая вероятностная модель используется для кодирования/декодирования разностей векторов движения других блоков.
Когда применяется кодирование с переменной длиной слова, то разность нулевых векторов движения и разность первых векторов движения кодируются/декодируются при помощи разных таблиц кодов с переменной длиной слова. Например, подготавливаются две таблицы кодов с переменной длиной слова с разными длинами кода, назначенными значениям вектора 0 разности векторов движения. Тогда вторая таблица кодов с переменной длиной слова с более короткой длиной кода, назначенная значениям вектора 0 разности векторов движения, используется для кодирования/декодирования разности первых векторов движения, а другая первая таблица кодов с переменной длиной слова используется для кодирования/декодирования разности нулевых векторов движения. Кроме того, раздельные таблицы кодов с переменной длиной слова могут быть подготовлены для горизонтального и вертикального значений вектора разности векторов движения.
В другом применимом способе, вторая таблица кодов с переменной длиной слова используется только для разности первых векторов движения каждого блока, к которому применяется тип 2 двунаправленного предсказания, а первая таблица кодов с переменной длиной слова используется для кодирования/декодирования разностей вектора движения других блоков.
(7) N-предсказание
В вышеприведенном описании типами предсказания для межкадрового предсказания являются однонаправленное предсказание и двунаправленное предсказание, однако настоящее изобретение также может быть применено к способам предсказания в виде объединения трех или более предсказанных сигналов. Когда предсказанный сигнал генерируется посредством объединения трех или более предсказанных сигналов, количество фрагментов побочной информации без mvd может быть любым числом не меньше 1.
(8) Блок преобразования и блок обратного преобразования
Процесс преобразования остаточного сигнала может быть выполнен в фиксированном размере блока или процесс преобразования может быть выполнен в каждой из подобластей, полученных посредством подразделения целевой области на подобласти.
(9) Сигнал цветности
Отсутствует конкретное описание метода кодирования цвета в вышеприведенных вариантах осуществления, однако процесс генерирования предсказанного сигнала также может быть выполнен для сигнала цветности и остаточного сигнала цветности, отдельно от сигнала яркости. Он также может быть выполнен синхронно с обработкой сигнала яркости.
Настоящее изобретение было подробно описано выше на основании его вариантов осуществления. Тем не менее, следует отметить, что настоящее изобретение ни в коем случае не ограничивается вышеприведенными вариантами осуществления. Настоящее изобретение может быть модифицировано различными способами, не отступая от объема и сущности изобретения.
ПЕРЕЧЕНЬ УСЛОВНЫХ ОБОЗНАЧЕНИЙ
100: устройство кодирования видео с предсказанием; 101: вход; 102: блок разделения на блоки; 103: блок генерирования предсказанного сигнала; 104: память кадров; 105: блок вычитания; 106: блок преобразования; 107: блок квантования; 108: блок обратного квантования; 109: блок обратного преобразования; 110: блок добавления; 111: блок кодирования; 112: выход; 113: память информации движения; 121: блок оценки первой информации движения; 122: блок оценки нулевой информации движения; 123: блок объединения предсказанного сигнала; 201: вход; 202: блок декодирования; 203: блок обратного квантования; 204: блок обратного преобразования; 205: блок добавления; 206: выход; 207: блок компенсации движения; 208: блок восстановления информации движения; 211: блок восстановления первой информации движения; 212: блок восстановления предсказывающей первой информации движения.
Изобретение относится к области декодирования видео с предсказанием. Технический результат – повышение эффективности сдерживания шума в предсказанном сигнале. Устройство декодирования видео с предсказанием содержит: средство декодирования, которое декодирует сжатые данные из множества наборов сжатых данных, полученных посредством декодирования множества полученных разделением областей, причем сжатые данные содержат побочную информацию и остаточный сигнал целевой области, который является целью, подлежащей декодированию; средство реконструкции информации движения, которое реконструирует вектор движения, используемый для генерирования предсказанного сигнала целевой области из побочной информации; средство хранения информации движения, которое сохраняет вектор движения; средство компенсации движения, которое генерирует предсказанный сигнал целевой области на основе вектора движения; средство реконструкции остаточного сигнала, которое реконструирует воспроизводимый остаточный сигнал целевой области из сжатых данных, содержащих остаточный сигнал; и средство хранения изображения, которое добавляет предсказанный сигнал к воспроизводимому остаточному сигналу для реконструкции сигнала пикселя целевой области и которое сохраняет реконструированный сигнал пикселя в качестве ранее воспроизведенного изображения, при этом средство декодирования декодирует нулевую побочную информацию и первую побочную информацию. 2 н.п. ф-лы, 20 ил.
1. Устройство декодирования видео с предсказанием, содержащее:
средство декодирования, которое декодирует сжатые данные из множества наборов сжатых данных, полученных посредством декодирования множества полученных разделением областей, причем сжатые данные содержат побочную информацию и остаточный сигнал целевой области, который является целью, подлежащей декодированию;
средство реконструкции информации движения, которое реконструирует вектор движения, используемый для генерирования предсказанного сигнала целевой области, из побочной информации;
средство хранения информации движения, которое сохраняет вектор движения;
средство компенсации движения, которое генерирует предсказанный сигнал целевой области на основе вектора движения;
средство реконструкции остаточного сигнала, которое реконструирует воспроизводимый остаточный сигнал целевой области из сжатых данных, содержащих остаточный сигнал; и
средство хранения изображения, которое добавляет предсказанный сигнал к воспроизводимому остаточному сигналу для реконструкции сигнала пикселя целевой области и которое сохраняет реконструированный сигнал пикселя в качестве ранее воспроизведенного изображения,
при этом средство декодирования декодирует нулевую побочную информацию и первую побочную информацию,
при этом нулевая побочная информация содержит разность нулевых векторов движения и индекс предиктора нулевого вектора движения, используемый для идентификации в качестве предиктора нулевого вектора движения одного вектора движения, выбранного из множества векторов движения, хранящихся в средстве хранения информации движения,
при этом первая побочная информация содержит индекс предиктора первого вектора движения, используемый для идентификации в качестве предиктора первого вектора движения одного вектора движения, выбранного из множества векторов движения, хранящихся в средстве хранения информации движения,
при этом средство реконструкции информации движения содержит:
средство реконструкции нулевой информации движения, которое генерирует предиктор нулевого вектора движения на основе индекса предиктора нулевого вектора движения и которое добавляет сгенерированный предиктор нулевого вектора движения к разности нулевых векторов движения для реконструкции нулевого вектора движения; и
средство реконструкции первой информации движения, которое генерирует предиктор первого вектора движения на основе индекса предиктора первого вектора движения для реконструкции сгенерированного предиктора первого вектора движения в качестве первого вектора движения,
при этом средство компенсации движения объединяет два сигнала, полученных из ранее воспроизведенного изображения, на основе нулевого вектора движения и первого вектора движения, для генерирования предсказанного сигнала целевой области,
при этом средство декодирования дополнительно декодирует информацию указания для указания того, содержит ли первая побочная информация разность векторов движения в каждом кадре или в каждом слайсе, и
при этом когда информация указания указывает, что первая побочная информация не содержит разность первых векторов движения, средство реконструкции первой информации движения генерирует предиктор первого вектора движения на основе индекса предиктора первого вектора движения и реконструирует сгенерированный предиктор первого вектора движения в качестве первого вектора движения.
2. Способ декодирования видео с предсказанием, исполняемый устройством декодирования видео с предсказанием, содержащий:
этап декодирования, на котором декодируют сжатые данные из множества наборов сжатых данных, полученных посредством декодирования множества полученных разделением областей, причем сжатые данные содержат побочную информацию и остаточный сигнал целевой области, который является целью, подлежащей декодированию;
этап реконструкции информации движения, на котором восстанавливают вектор движения, используемый для генерирования предсказанного сигнала целевой области, из побочной информации;
этап сохранения информации движения, на котором сохраняют вектор движения в средстве хранения информации движения;
этап компенсации движения, на котором генерируют предсказанный сигнал целевой области на основе вектора движения;
этап реконструкции остаточного сигнала, на котором восстанавливают воспроизводимый остаточный сигнал целевой области из сжатых данных, содержащих остаточный сигнал; и
этап сохранения изображения, на котором добавляют предсказанный сигнал к воспроизводимому остаточному сигналу для реконструкции сигнала пикселя целевой области и сохраняют реконструированный сигнал пикселя в качестве ранее воспроизведенного изображения,
при этом на этапе декодирования устройство декодирования видео с предсказанием декодирует нулевую побочную информацию и первую побочную информацию,
при этом нулевая побочная информация содержит разность нулевых векторов движения и индекс предиктора нулевого вектора движения, используемый для идентификации в качестве предиктора нулевого вектора движения одного вектора движения, выбранного из множества векторов движения, сохраненных на этапе сохранения информации движения,
при этом первая побочная информация содержит индекс предиктора первого вектора движения, используемый для идентификации в качестве предиктора первого вектора движения одного вектора движения, выбранного из множества векторов движения, сохраненных на этапе сохранения информации движения,
при этом этап реконструкции информации движения содержит:
этап реконструкции нулевой информации движения, на котором генерируют предиктор нулевого вектора движения на основе индекса предиктора нулевого вектора движения и добавляют сгенерированный предиктор нулевого вектора движения к разности нулевых векторов движения для реконструкции нулевого вектора движения; и
этап реконструкции первой информации движения, на котором генерируют предиктор первого вектора движения на основе индекса предиктора первого вектора движения для реконструкции сгенерированного предиктора первого вектора движения в качестве первого вектора движения,
при этом на этапе компенсации движения устройство декодирования видео с предсказанием объединяет два сигнала, полученных из ранее воспроизведенного изображения, на основе нулевого вектора движения и первого вектора движения, для генерирования предсказанного сигнала целевой области,
при этом на этапе декодирования устройство декодирования видео с предсказанием дополнительно декодирует информацию указания для указания, содержит ли первая побочная информация разность векторов движения в каждом кадре или в каждом слайсе, и
при этом на этапе реконструкции первой информации движения, когда информация указания указывает, что первая побочная информация не содержит разность первых векторов движения, устройство декодирования видео с предсказанием генерирует предиктор первого вектора движения на основе индекса предиктора первого вектора движения и реконструирует сгенерированный предиктор первого вектора движения в качестве первого вектора движения.
Колосоуборка | 1923 |
|
SU2009A1 |
US 7590179 B2, 15.09.2009 | |||
US 6259739 B1, 10.07.2001 | |||
US 7656953 B1, 02.02.2010 | |||
КОДИРОВАНИЕ С ПРЕОБРАЗОВАНИЕМ И ПРОСТРАНСТВЕННЫМ УЛУЧШЕНИЕМ | 2008 |
|
RU2427099C2 |
RU 2426269 C2, 10.08.2011. |
Авторы
Даты
2019-01-29—Публикация
2018-03-28—Подача