Область техники, к которой относится изобретение
Настоящее изобретение относится к способу, устройству и программе кодирования видео с предсказанием и способу, устройству и программе декодирования видео с предсказанием, и, в частности, к описанию в буфере для опорных картинок (изображений), которые должны быть использованы в межкадровом кодировании с предсказанием.
Уровень техники
Технологии кодирования со сжатием используются для эффективной передачи и хранения видеоданных. Методики, определенные в MPEG-1-4 и H.261-H.264 ITU (Международного союза электросвязи), обычно используются для видеоданных.
В этих методиках кодирования картинка как цель кодирования разделяется на множество блоков, и затем поблочно осуществляются процесс кодирования и процесс декодирования. Способы кодирования с предсказанием, описанные ниже, используются для того, чтобы улучшить эффективность кодирования. Во внутрикадровом кодировании с предсказанием предсказанный сигнал генерируется с использованием сигнала ранее воспроизведенной соседней картинки (восстановленного сигнала, восстановленного из данных картинки, сжатых в прошлом), представленного в том же кадре, что и целевой блок, и затем остаточный сигнал, полученный путем вычитания предсказанного сигнала из сигнала целевого блока, кодируется. В межкадровом кодировании с предсказанием осуществляется поиск смещения сигнала со ссылкой на сигнал ранее воспроизведенной картинки, представленный в кадре, отличном от целевого блока, предсказанный сигнал генерируется с компенсацией смещения, и остаточный сигнал, полученный путем вычитания предсказанного сигнала из сигнала целевого блока, кодируется. Ранее воспроизведенная картинка, используемая как опорная для поиска движения и компенсации, называется опорной картинкой.
В межкадровом кодировании с предсказанием H.264 предсказанный сигнал для целевого блока выбирается путем выполнения поиска движения со ссылкой на множество опорных картинок, которые были закодированы и затем воспроизведены в прошлом, и определения сигнала картинки с наименьшей ошибкой в качестве оптимального предсказанного сигнала. Вычисляется разница между пиксельным сигналом целевого блока и этим оптимальным предсказанным сигналом, и она затем подвергается дискретному косинусному преобразованию, квантованию и энтропийному кодированию. Также в то же время кодируется информация о опорной картинке, из которой выводится оптимальный предсказанный сигнал для целевого блока (которая будет называться "опорный индекс"), и информация об области опорной картинки, из которой выводится оптимальный предсказанный сигнал (которая будет называться "вектором движения"). В H.264 воспроизведенные картинки сохраняются в виде четырех-пяти опорных картинок в памяти кадров или буфере воспроизведенных картинок (или буфере декодированных картинок, который будет также называться "DPB").
Общим способом управления множеством опорных картинок является методика освобождения, из буфера, области, занятой самой старой опорной картинкой (т.е. картинкой, которая была сохранена в буфере самое долгое время) из множества воспроизведенных картинок, и сохранения воспроизведенной картинки, которая была декодирована последней, в качестве опорной картинки. С другой стороны, в непатентной литературе 1 ниже раскрывается способ управления опорными картинками для гибкой подготовки оптимальных опорных картинок для целевой картинки для того, чтобы повысить эффективность межкадрового предсказания.
Согласно непатентной литературе 1, информация описания буфера для описания множества опорных картинок, которые должны быть сохранены в буфере, добавляется к закодированным данным каждой целевой картинки, и затем они кодируются. Идентификаторы опорных картинок, необходимых для обработки (кодирования или декодирования) целевой картинки и последующих картинок, описаны в этой информация описания буфера. В устройстве кодирования или устройстве декодирования управление буфером осуществляется так, чтобы назначенные воспроизведенные картинки сохранялись в буфере (памяти кадров) в соответствии с информацией описания буфера. С другой стороны, любая не назначенная воспроизведенная картинка стирается из буфера.
Информация описания буфера о каждой целевой картинке может быть отправлена, будучи добавленной к заголовку сжатых данных каждой целевой картинки, или элементы информации описания буфера о множестве целевых картинок могут быть отправлены вместе в составе информации PPS (набора параметров картинок), переносящей параметры процесса декодирования, применяемые совместно. Фиг. 15 изображает схематичное представление, показывающее информацию описания буфера, описанную в PPS. Хотя PPS содержит информацию, отличную от информации описания буфера, другая информация здесь опущена. В PPS-информации 1510 описываются количество 1511 описаний буфера (каждое из которых далее будет также называться "BD") и элементы информации (1520, 1522, 1524) о BD, количество которых равно упомянутому количеству. В информации о каждом BD (k-е BD будет упоминаться как BD[k]) описываются количество 1530 опорных картинок, сохраненных в буфере, и информация (1531, 1532), для определения которой опорная картинка должна быть сохранена. Информацией, используемой для определения каждой опорной картинки, является POC (счетчик вывода картинок), указывающий на порядок выхода картинки. Здесь вместо непосредственного использования POC-номера описывается ΔPOCk,j (j-й компонент в k-м BD), которое является разностью между POC-номером опорной картинки и POC-номером целевой картинки обработки. Также отправляется D_IDk,j, которое указывает зависимость опорной картинки от других картинок. Чем меньше значение D_IDk,j, тем больше картинок, для которых воспроизведение зависит от опорной картинки; с другой стороны, чем больше это значение, тем меньше влияние на другие картинки. Если D_IDk,j опорной картинки является наибольшим значением, опорная картинка не является необходимой для воспроизведения других картинок и, таким образом, не должна быть сохранена в качестве опорной картинки. Итого, стандартная технология сконфигурирована для отправки описания BD[k] буфера в форме информации о значении (#ΔPOCk), указывающем количество опорных картинок и {ΔPOCk,j, D_IDk,j} для каждой из количества опорных картинок, со стороны передачи к стороне приема.
Фиг. 16 изображает состояние целевых картинок и опорных картинок в буфере DPB в обработке соответственных целевых картинок. POC-номер для идентификации картинки записывается в каждой ячейке. Например, строка 1610 означает, что в обработке (кодировании или декодировании) целевой картинки с POC=32, опорные картинки с POC=18, 20, 22 и 24 сохраняются в DPB. Фиг.17 изображает информацию описания буфера, полученную путем применения стандартной технологии к фиг.16. Каждая из ячеек под 1704 указывает значение ΔPOCk,j.
Список цитирования
Непатентная литература
Непатентная литература 1: Rickard Sjoberg, Jonatan Samuelsson, "Absolute signaling of reference pictures" ("Абсолютное сигнализирование опорных картинок"), Joint Collaborative Team on Video Coding, JCTVC-F493, Торонто, 2011 г.
Сущность изобретения
Техническая проблема
В кодировании и декодировании видео стандартным является делать ссылку на идентичную картинку от множества целевых картинок. Иными словами, одна и та же опорная картинка может быть использована множество раз (многократно). На фиг. 16 видно, что на опорную картинку с POC=32, заключенную в пунктирную линию 1603, делается ссылка от целевых картинок с POC=28, 26, 30, 25, 27, 29 и 31. Также видно из значений в соответственных ячейках под 1602 на фиг. 16, что опорные картинки с POC=22, 24, 28, 26 и 30 также используются множество раз.
В информации описания буфера на основе стандартной технологии, однако, ΔPOCk,j независимо определяется в каждом BD[k], и по этой причине даже для одной и той же опорной картинки ее ΔPOCk,j описано в каждом BD[k]; таким образом, одна и та же информация должна быть многократно передана и принята, несмотря на то, что она является той же самой, что и ранее переданная и принятая информация. Это будет объяснено с использованием примера с фиг. 16 и фиг. 17. Значения в соответственных ячейках, заключенных в пунктирную линию 1705, соответствуют POC-номерам соответственных ячеек, заключенных в пунктирную линию 1603 на фиг. 16. Хотя все значения в пунктирной линии 1603 представляют опорную картинку с POC=32, все значения ΔPOCk,j в пунктирной линии 1705 различны. Поскольку эти значения ΔPOCk,j преимущественно различны, необходимо кодировать их с использованием множества бит. Таким образом, стандартная технология имеет проблему в том, что одна и та же информация должна быть многократно передана и принята с использованием множества бит, для того чтобы передать информацию описания буфера.
Решение проблемы
Для того, чтобы решить вышеуказанную проблему, устройство кодирования видео с предсказанием согласно настоящему изобретению является устройством кодирования видео с предсказанием, содержащим: средство ввода, которое осуществляет ввод множества картинок, составляющих видеопоследовательность; средство кодирования, которое выполняет кодирование с предсказанием целевой картинки для генерирования сжатых данных картинки, с использованием, в качестве опорных картинок, множества картинок, которые были закодированы и затем декодированы и воспроизведены в прошлом; средство восстановления, которое декодирует сжатые данные картинки для восстановления воспроизведенной картинки; средство хранения картинок, которое хранит по меньшей мере одну вышеупомянутую воспроизведенную картинку в качестве опорной картинки, которая должна быть использована для кодирования последующей картинки; и средство управления буфером, которое управляет средством хранения картинок, при этом (перед обработкой целевой картинки) средство управления буфером управляет средством хранения картинок на основе информации BD[k] описания буфера, относящейся к множеству опорных картинок, которые должны быть использованы в кодировании с предсказанием целевой картинки и, в то же время, средство управления буфером кодирует информацию BD[k] описания буфера со ссылкой на информацию BD[m] описания буфера для другой картинки, отличной от целевой картинки, и после этого добавляет ее закодированные данные к сжатым данным картинки.
Кроме того, устройство декодирования видео с предсказанием согласно настоящему изобретению является устройством декодирования видео с предсказанием, содержащим: средство ввода, которое осуществляет ввод сжатых данных картинки для каждой из множества картинок, составляющих видеопоследовательность, причем сжатые данные картинки содержат данные, получаемые в результате кодирования с предсказанием с использованием множества опорных картинок, которые были декодированы и воспроизведены в прошлом, и закодированные данные информации BD[k] описания буфера, относящиеся к множеству опорных картинок; средство восстановления, которое декодирует сжатые данные картинки для восстановления воспроизведенной картинки; средство хранения картинок, которое хранит по меньшей мере одну вышеупомянутую воспроизведенную картинку в качестве опорной картинки, которая должна быть использована для декодирования последующей картинки; и средство управления буфером, которое управляет средством хранения картинок, при этом (перед восстановлением воспроизведенной картинки) средство управления буфером декодирует закодированные данные информации BD[k] описания буфера для воспроизведенной картинки со ссылкой на информацию BD[m] описания буфера для другой картинки, отличной от воспроизведенной картинки, и затем управляет средством хранения картинок на основе декодированной информации BD[k] описания буфера.
Эффекты изобретения
Способы кодирования и декодирования информации описания буфера согласно настоящему изобретению используют свойство многократного использования одной и той же опорной картинки в процессах кодирования с предсказанием и декодирования для множества картинок, чтобы использовать корреляцию между элементами информации BD[k] описания буфера, используемыми для различных картинок, для того, чтобы уменьшить избыточную информацию, тем самым достигая эффекта эффективного кодирования информации описания буфера. Дополнительно, информация, характерная для каждой опорной картинки (информация зависимости), является той же самой, что и для картинки, на которую делается ссылка, и, таким образом, информация может быть унаследована без изменений, благодаря чему достигается преимущество отсутствия необходимости ее повторного кодирования и декодирования.
Краткое описание чертежей
Фиг. 1 изображает структурную схему, показывающую устройство кодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения.
фиг. 2 изображает структурную схему, показывающую устройство декодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения.
фиг. 3 изображает блок-схему, показывающую способ управления буфером в устройстве кодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения.
фиг. 4 изображает блок-схему, показывающую способ управления буфером в устройстве декодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения.
фиг. 5 изображает таблицу, показывающую информацию описания буфера, генерируемую способом управления буфером, используемым в одном варианте осуществления настоящего изобретения.
фиг. 6 изображает блок-схему, показывающую процесс кодирования информации описания буфера в устройстве кодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения.
фиг. 7 изображает блок-схему, показывающую процесс декодирования информации описания буфера в устройстве декодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения.
фиг. 8 изображает схематичное представление, показывающее информацию описания буфера, описанную в PPS, генерируемом одним вариантом осуществления настоящего изобретения.
фиг. 9 изображает другой пример, показывающий состояние целевых картинок и опорных картинок в буфере DPB в обработке соответственных целевых картинок.
фиг. 10 изображает блок-схему, показывающую процесс кодирования информации описания буфера в устройстве кодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения, касающемуся примера с фиг. 9.
фиг. 11 изображает блок-схему, показывающую процесс декодирования информации описания буфера в устройстве декодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения, касающемуся примера с фиг. 9.
фиг. 12 изображает схематичное представление, показывающее информацию описания буфера, описанную в PPS, генерируемом вариантом осуществления настоящего изобретения, касающимся примера с фиг. 9.
фиг. 13 изображает чертеж, показывающий аппаратную конфигурацию компьютера для исполнения программы, записанной в носителе записи.
фиг. 14 изображает вид в перспективе компьютера для исполнения программы, сохраненной в носителе записи.
фиг. 15 изображает схематичное представление, показывающее информацию описания буфера, описанную в PPS стандартной технологией.
фиг. 16 изображает пример, показывающий состояние целевых картинок и опорных картинок в буфере DPB в обработке соответственных целевых картинок.
фиг. 17 изображает таблицу, показывающую информацию описания буфера, полученную из примера с фиг. 16, на основе стандартной технологии.
фиг. 18 изображает блок-схему, показывающую процесс непосредственного кодирования POC-номеров информации описания буфера в устройстве кодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения.
фиг. 19 изображает блок-схему, показывающую процесс непосредственного декодирования POC-номеров информации описания буфера в устройстве декодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения.
фиг. 20 изображает таблицу, показывающую информацию описания буфера, полученную из примера с фиг. 9, на основе стандартной технологии.
фиг. 21 изображает таблицу, показывающую информацию описания буфера, полученную из примера с фиг. 20, на основе способа управления буфером, используемого в одном варианте осуществления настоящего изобретения.
фиг. 22 изображает блок-схему, показывающую другой способ осуществления, отличный от процесса с фиг. 6, для процесса кодирования информации описания буфера в устройстве кодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения.
фиг. 23 изображает блок-схему, показывающую другой способ осуществления, отличный от процесса с фиг. 7, для процесса декодирования информации описания буфера в устройстве декодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения.
фиг. 24 изображает схематичное представление, показывающее информацию описания буфера, описанную в PPS, генерируемом процессом кодирования информации описания буфера вариантом осуществления настоящего изобретения на основе фиг. 22.
Подробное описание
Варианты осуществления настоящего изобретения будут описаны ниже с использованием фиг. 1-24.
Фиг. 1 изображает структурную схему, показывающую устройство 100 кодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения. Как показано на фиг.1, устройство 100 кодирования видео с предсказанием обеспечено входом 101, блоком 102 разделения на блоки, блоком 103 генерирования предсказанного сигнала, памятью 104 кадров (или буфером, который также будет называться DPB), блоком 105 вычитания, блоком 106 преобразования, блоком 107 квантования, блоком 108 обратного квантования, блоком 109 обратного преобразования, блоком 110 добавления, блоком 111 энтропийного кодирования, выходом 112 и блоком 114 управления буфером. Блок 105 вычитания, блок 106 преобразования и блок 107 квантования соответствуют "средству кодирования", описанному в объеме формулы изобретения. Блок 108 обратного квантования, блок 109 обратного преобразования и блок 110 добавления соответствуют "средству восстановления", описанному в объеме формулы изобретения.
В отношении устройства 100 кодирования видео с предсказанием, сконфигурированного, как описано выше, его операция будет описана ниже. Видеосигнал, состоящий из множества картинок, подается на вход 101. Картинка цели кодирования разделяется на множество областей блоком 102 разделения на блоки. В варианте осуществления согласно настоящему изобретению целевая картинка разделяется на блоки, каждый из которых состоит из 8×8 пикселей, но она может разделяться на блоки любого размера или формы, помимо вышеупомянутых. Предсказанный сигнал затем генерируется для области в качестве цели процесса кодирования (которая будет далее называться целевым блоком). Вариант осуществления согласно настоящему изобретению задействует два типа способов предсказания: межкадровое предсказание и внутрикадровое предсказание.
В межкадровом предсказании воспроизведенные картинки, которые были закодированы и после этого восстановлены в прошлом, используются в качестве опорных картинок, и информация движения для обеспечения предсказанного сигнала с наименьшим отличием от целевого блока определяется из опорных картинок. В зависимости от ситуаций, также может быть обеспечена возможность подразделить целевой блок на подобласти и определить способ межкадрового предсказания для каждой из подобластей. В этом случае наиболее эффективный способ разделения для всего целевого блока и информация движения каждой подобласти могут быть определены различными способами разделения. В варианте осуществления согласно настоящему изобретению операция осуществляется в блоке 103 генерирования предсказанного сигнала, целевой блок подается по линии L102, а опорные картинки подаются по L104. Опорными картинками, которые должны быть здесь использованы, является множество картинок, которые были закодированы и восстановлены в прошлом. Подробности являются теми же самыми, что и в способе по H.264, что является стандартной технологией. Информация движения и способ разделения на подобласти, определенные как описано выше, подаются по линии L112 к блоку 111 энтропийного кодирования, чтобы быть им закодированными, и затем закодированные данные выводятся из выхода 112. Информация (опорный индекс), указывающая то, из какой опорной картинки из множества опорных картинок выводится предсказанный сигнал, также отправляется по линии L112 к блоку 111 энтропийного кодирования. В варианте осуществления согласно настоящему изобретению от трех до шести воспроизведенных картинок сохраняется в памяти кадров 104, чтобы быть использованными в качестве опорных картинок. Блок 103 генерирования предсказанного сигнала выводит сигналы опорных картинок из памяти кадров 104 на основе опорных картинок и информации движения, которая соответствует способу разделения на подобласти и каждой подобласти, и генерирует предсказанный сигнал. Межкадровый предсказанный сигнал, генерируемый таким образом, подается по линии L103 к блоку 105 вычитания.
Во внутрикадровом предсказании внутрикадровый предсказанный сигнал генерируется с использованием ранее воспроизведенных пиксельных значений, пространственно смежных с целевым блоком. Конкретным образом, блок 103 генерирования предсказанного сигнала выводит ранее воспроизведенные пиксельные сигналы в том же самом кадре, что и целевой блок из памяти кадров 104, и экстраполирует эти сигналы для генерирования внутрикадрового предсказанного сигнала. Информация о способе экстраполяции подается по линии L112 к блоку 111 энтропийного кодирования, чтобы быть им закодированной, и затем закодированные данные выводятся из выхода 112. Внутрикадровый предсказанный сигнал, генерируемый таким образом, подается к блоку 105 вычитания. Способ генерирования внутрикадрового предсказанного сигнала в блоке 103 генерирования предсказанного сигнала является тем же самым, что и способ по H.264, что является стандартной технологией. Предсказанный сигнал с наименьшим отличием выбирается из межкадрового предсказанного сигнала, и внутрикадровый предсказанный сигнал, выведенный, как описано выше, и выбранный предсказанный сигнал подается к блоку 105 вычитания.
Блок 105 вычитания вычитает предсказанный сигнал (поданный по линии L103) из сигнала целевого блока (поданного по линии L102) для генерирования остаточного сигнала. Этот остаточный сигнал преобразуется путем дискретного косинусного преобразования блоком 106 преобразования, и получившиеся в результате коэффициенты преобразования квантуются блоком 107 квантования. Наконец, блок 111 энтропийного кодирования кодирует квантованные коэффициенты преобразования, и закодированные данные выводятся вместе с информацией о способе предсказания из выхода 112.
Для внутрикадрового предсказания или межкадрового предсказания последующего целевого блока сжатый сигнал целевого блока подвергается обратной обработке для восстановления. А именно, квантованные коэффициенты преобразования обратно квантуются блоком 108 обратного квантования и затем преобразуются путем обратного дискретного косинусного преобразования блоком 109 обратного преобразования для восстановления остаточного сигнала. Блок 110 добавления добавляет восстановленный остаточный сигнал к предсказанному сигналу, поданному по линии L103, для воспроизведения сигнала целевого блока, и воспроизведенный сигнал сохраняется в памяти кадров 104. Настоящий вариант осуществления задействует блок 106 преобразования и блок 109 обратного преобразования, но также возможно использование другой обработки преобразования вместо этих блоков преобразования. В некоторых ситуациях блок 106 преобразования и блок 109 обратного преобразования может опускаться.
Память кадров 104 является ограниченным хранилищем и не имеет возможности хранить все воспроизведенные картинки. Только воспроизведенные картинки, которые должны быть использованы в кодировании последующей картинки, сохраняются в памяти кадров 104. Блоком для управления этой памятью кадров 104, является блок 114 управления буфером. Входные данные, которые принимаются через вход 113, включают в себя: информацию, указывающую на порядок вывода каждой картинки (POC, счетчик вывода картинок), информацию зависимости (ID зависимости), относящуюся к D_IDk,j, которая указывает зависимость от картинки в кодировании с предсказанием других картинок, и тип кодирования картинки (внутрикадровое кодирование с предсказанием или межкадровое кодирование с предсказанием); и блок 114 управления буфером работает на основе этой информации. Информация описания буфера, генерируемая блоком 114 управления буфером, и POC-информация каждой картинки подается по линии L114 к блоку 111 энтропийного кодирования, чтобы быть им закодированной, и закодированные данные выводятся вместе со сжатыми данными картинки. Способ обработки блока 114 управления буфером согласно настоящему изобретению будет описан ниже по тексту.
Далее будет описан способ декодирования видео с предсказанием согласно настоящему изобретению. Фиг. 2 изображает структурную схему устройства 200 декодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения. Как показано на фиг. 2, устройство 200 декодирования видео с предсказанием обеспечено входом 201, блоком 202 анализа данных, блоком 203 обратного квантования, блоком 204 обратного преобразования, блоком 205 добавления, блоком 208 генерирования предсказанного сигнала, памятью 207 кадров, выходом 206 и блоком 209 управления буфером. Блок 203 обратного квантования и блок 204 обратного преобразования соответствуют "средству восстановления", описанному в формуле изобретения. Средством восстановления могут быть и другие средства, помимо вышеописанных. Кроме того, блок обратного преобразования 204 может опускаться.
В отношении устройства 200 декодирования видео с предсказанием, сконфигурированного, как описано выше, его операция будет описана ниже. Сжатые данные, полученные в результате кодирования со сжатием путем вышеупомянутого способа, вводятся через вход 201. Эти сжатые данные содержат остаточный сигнал, выведенный в результате кодирования с предсказанием каждого целевого блока, полученного путем разделения картинки на множество блоков, и информацию, относящуюся к генерированию предсказанного сигнала. Информация, относящаяся к генерированию предсказанного сигнала, включает в себя информацию о разделении на блоки (размер блока), информацию движения и вышеупомянутую POC-информацию в случае межкадрового предсказания и включает в себя информацию о способе экстраполяции из ранее воспроизведенных окружающих пикселов в случае внутрикадрового предсказания. Сжатые данные также содержат информацию описания буфера для управления памятью 207 кадров.
Блок 202 анализа данных извлекает остаточный сигнал из целевого блока, информацию, относящуюся к генерированию предсказанного сигнала, параметр квантования и POC-информацию картинки из сжатых данных. Остаточный сигнал целевого блока обратно квантуется на основе параметра квантования (поданного по линии L202) блоком 203 обратного квантования. Результат преобразуется блоком 204 обратного преобразования с использованием обратного дискретного косинусного преобразования.
Далее информация, относящаяся к генерированию предсказанного сигнала, подается по линии L206b к блоку 208 генерирования предсказанного сигнала. Блок 208 генерирования предсказанного сигнала осуществляет доступ к памяти 207 кадров, на основе информации, относящейся к генерированию предсказанного сигнала, для выведения опорного сигнала из множества опорных картинок для генерирования предсказанного сигнала. Этот предсказанный сигнал подается по линии L208 к блоку 205 добавления, блок 205 добавления добавляет этот предсказанный сигнал к восстановленному остаточному сигналу для воспроизведения сигнала целевого блока, и сигнал выводится по линии L205 и одновременно сохраняется в памяти 207 кадров.
Воспроизведенные картинки, которые должны быть использованы для декодирования и воспроизведения последующей картинки, сохраняются в памяти 207 кадров. Блок 209 управления буфером управляет памятью 207 кадров. Блок 209 управления буфером работает на основе информации описания буфера и типа кодирования картинки, поданных по линии L206a. Способ управления блока 209 управления буфером согласно настоящему изобретению будет описан позже.
Далее операции блока управления буфером (114 на фиг. 1 и 209 на фиг. 2) будут описаны с использованием фиг. 3 и 4. Блок управления буфером согласно одному варианту осуществления настоящего изобретения управляет опорными картинками, сохраненными в памяти кадров (104, 207), следующим образом. А именно, сторона кодера генерирует элементы информации описания буфера для соответственных целевых картинок вместе и отправляет их в составе информации PPS (набора параметров картинок), переносящей параметры процесса декодирования, применяемые совместно. Сторона декодера извлекает из PPS-информации элементы информации описания буфера, отправленные вместе, и выполняет обработку декодирования и воспроизведения после подготовки опорных картинок в памяти кадров, на основе одного элемента информации описания буфера, назначенного в сжатых данных каждой целевой картинки. Любая опорная картинка, не описанная в информации описания буфера, стирается из памяти кадров и не может быть использована в качестве опорной картинки после этого.
Фиг. 3 изображает способ кодирования информации описания буфера в блоке 114 управления буфером устройства 100 кодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения, который является способом для кодирования элементов информации описания буфера вместе для соответственных целевых картинок. В настоящем техническом описании описание буфера представлено как BD (описание буфера), и BD[k] указывает информацию о k-м BD. Фиг. 8 изображает схематичное представление информации описания буфера, описанной в PPS, генерируемой согласно одному варианту осуществления настоящего изобретения.
На фиг. 3 этап 310 предназначен для установления счетчика k на ноль. Этап 320 предназначен для кодирования полного количества всех BD, описанных в PPS-информации. Это количество соответствует 811 на фиг. 8. Этап 330 предназначен для кодирования информации о BD[0], которое является первым BD. 820 на фиг. 8 указывает информацию BD[0]. #ΔPOC0 (830) указывает количество компонентов BD[0], т.е. количество необходимых опорных картинок. Информация BD[0] здесь содержит не только опорные картинки, необходимые для кодирования и декодирования целевой картинки, но также и опорные картинки, на которые не выполняется ссылка в обработке целевой картинки, но делается ссылка в обработке кодирования и декодирования для последующих картинок, и по этой причине количество таких опорных картинок также считается в #ΔPOC0.
Далее описана информация об опорных картинках (831, 832, ...), которые должны быть использованы. В настоящем варианте осуществления {ΔPOC0,i, D_ID0,i} описано как информация об опорных картинках. Индекс i представляет i-й компонент BD[0]. ΔPOC0,i является значением разности между POC-номером i-й опорной картинки и POC-номером целевой картинки, которая использует BD[0], и D_ID0,i - информация зависимости i-й опорной картинки.
Информация о BD[k], кроме BD[0], кодируется с предсказанием со ссылкой на информацию BD[m] буфера, возникающую перед ней (этап 360). Настоящий вариант осуществления использует m=k-1, но ссылка может делаться на любое BD[m] при условии, что m<k. Информация, содержащаяся в BD[k], где k>0, иллюстрируется посредством 822 и 824 на фиг. 8. Содержимое, описанное в ней, включает в себя количество компонентов BD[k] (которое соответствуют количеству опорных картинок, необходимых для целевой картинки и последующих картинок) #ΔPOCk (833, 839), ΔBDk (834, 840) и Δidxk,i (835, 836, 837, 841, 842, 843, 844) или {Δidxk,i, D_IDk,i} (838). Подробности этих переданных данных (синтаксических структур) будут описаны ниже по тексту. После того, как каждое BD[k] закодировано, оно отправляется в составе PPS-информации вместе с другими сжатыми данными. В кодировании каждой картинки блок 114 управления буфером готовит опорные картинки в памяти кадров 104 на основе одного элемента информации BD[k] описания буфера, назначенного посредством входа 113 на фиг. 1, и затем осуществляется процесс кодирования. На стороне приемника блок 209 управления буфером готовит опорные картинки в памяти 207 кадров на основе идентификатора k описания буфера, добавленного к заголовку сжатых данных каждой картинки, и затем осуществляется процесс декодирования.
Фиг. 4 изображает блок-схему, показывающую способ декодирования информации описания буфера в блоке 209 управления буфером устройства 200 декодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения. Блок 202 анализа данных извлекает данные об информации описания буфера из PPS-информации и подает данные к блоку 209 управления буфером. Этап 420 предназначен для того, чтобы сначала декодировать количество BD. Этап 430 предназначен для декодирования информации о BD[0], которое является первым BD. Информация о BD[k], где k>0, декодируется с предсказанием со ссылкой на описание буфера BD[m], возникающее перед ним (этап 460). Как описано выше, настоящий вариант осуществления задействует m=k-1. Информация описания буфера, получаемая в результате декодирования каждого BD[k], сохраняется в блоке 209 управления буфером. В декодировании каждой картинки блок 209 управления буфером готовит опорные картинки в памяти 207 кадров, на основе одного элемента информации BD[k] описания буфера, назначенного в сжатых данных, и затем осуществляется обработка декодирования и воспроизведения.
Описание буфера (BD[k], k>0), показанное на фиг. 8, может быть эффективно отправлено. Согласно настоящему варианту осуществления, использование BD[k] в качестве цели и BD[m] для предсказания цели удовлетворяет следующим условиям.
(a) По меньшей мере некоторые из опорных картинок, описанных в BD[k], уже описаны в BD[m].
(b) N картинок, которые только что закодированы или декодированы дополнительно к картинкам из (a) (выше), описаны как "дополнительные опорные картинки" в BD[k]. Число N здесь является целым не меньше 0.
Кроме того, более предпочтительные режимы удовлетворяют следующим условиям.
(c) m=(k-1); то есть непосредственно предыдущее BD в информации описания буфера используется для предсказания.
(d) Количество дополнительных опорных картинок, описанных в вышеупомянутом (b), равно всего лишь одной (N=1). Этой одной дополнительной опорной картинкой предпочтительно является картинка, генерируемая в процессе с использованием BD[m].
Вышеописанные условия будут описаны с использованием фиг. 16. Столбец 1601 на фиг. 16 представляет POC-номер каждой целевой картинки в качестве цели кодирования или процесса декодирования. POC-номера соответственных целевых картинок упорядочены сверху вниз в порядке процесса кодирования или декодирования. А именно, после того, как картинка с POC=32 кодируется или декодируется, картинка с POC=28 кодируется или декодируется. Кроме того, POC-номера опорных картинок (множество картинок), которые должны быть использованы в исполнении процесса кодирования или декодирования каждой целевой картинки, описаны в соответственных ячейках под столбцом 1602.
Информация об опорных картинках, используемых для кодирования или декодирования/воспроизведения целевой картинки (1610) с POC=32, кодируется как BD[0] с использованием синтаксической структуры 820 на фиг. 8. В этом случае #ΔPOC0=4 и опорные картинки с POC-номерами 18, 20, 22 и 24 кодируются как ΔPOC0,i. Значения ΔPOC0,i являются значениями из i=0,1,2,3 в строке 1710 на фиг. 17, и каждое значение получается из разности между POC-номером опорной картинки и POC-номером целевой картинки.
Информация об опорных картинках, описанная в строках 1611-1617 на фиг. 16, кодируется как BD[k], k>0, с использованием синтаксических структур 822, 824 на фиг. 8. Строка 1611 соответствует k=1 и указывает информацию о POC-номерах опорных картинок, которые должны быть использованы для целевой картинки с POC=28. POC-номера (22, 24, 32) из этой информации конвертируются (преобразуются) в значения разности ΔPOC1,i. Полученные в результате значения обеспечиваются как значения из i=0,1,2 в строке 1711 на фиг. 17. В вариантах осуществления согласно настоящему изобретению эти значения ΔPOC1,i кодируются с предсказанием со ссылкой на ΔPOC0,i (значения из i=0,1,2,3 в строке 1710).
Будет описан способ кодирования с предсказанием информации описания буфера согласно настоящему изобретению. Пусть BD[k] является информацией описания буфера в качестве цели, а BD[m] является информацией описания буфера для предсказания BD[k]. Кроме того, пусть POCтекущий является POC-номером целевой картинки с использованием информации BD[k], и POCпредыдущий является POC-номером целевой картинки с использованием информации BD[m]. Дополнительно, пусть POCk,i является POC-номером i-й опорной картинки BD[k], а POCm,j является POC-номером j-й опорной картинки BD[m]. В этом случае значения разности ΔPOCk,i и ΔPOCm,j даются следующим образом.
ΔPOCk,i=POCk,i-POCтекущий (1)
ΔPOCm,j=POCm,j-POCпредыдущий (2)
ΔPOCk,i кодируется с использованием ΔPOCm,j в качестве предсказывающего значения. А именно, соблюдается следующее взаимоотношение.
ΔPOCk,i-ΔPOCm,j=(POCk,i-POCтекущий)-(POCm,j-POCпредыдущий)=(POCk,i-POCm,j)+(POCпредыдущий-POCтекущий)=(POCk,i-POCm,j)+ ΔBDk (3)
Когда вышеупомянутое условие (a) удовлетворено, POCm,j находится в BD[m], и, таким образом, кодируется идентификатор (или индекс) для ΔPOCm,j для обращения (POCk,i-POCm,j) в ноль. В настоящем варианте осуществления используется идентификатор Δidxk,i, определенный ниже.
Δidxk,i=сдвигk,i-сдвигk,i-1 (4)
В этом случае сдвигk,i=j-i, а сдвигk,i-1=0. Поскольку ΔBDk, определенное в вышеприведенной формуле (3), является постоянным независимо от значений (i, j), оно необходимо для описания ΔBDk, определенного ниже, только в BD[k].
ΔBDk=POCпредыдущий-POCтекущий (5)
С другой стороны, есть ситуация, когда ΔPOCm,j для обращения (POCk,i-POCm,j) в ноль отсутствует в BD[m]. Например, компонент POC1,2=32 (ячейка 1620) на фиг. 16 не представлена в качестве опорной картинки в строке 1610. В этом случае значение ΔPOCk,i может быть закодировано без изменений, но когда применяется вышеупомянутое условие (d), ΔPOCk,i=ΔBDk, и это значение уже описано в BD[k]; таким образом, нет необходимости в повторном его кодировании. Значение количества компонентов BD[m] (т.е. #ΔPOCm) или значение, большее, чем количество компонентов BD[m], устанавливается в качестве значения j для указания, что нет идентичного POC-номера в BD[m]. Способ декодирования ΔPOCk,i с использованием значения j в будущем декодировании будет описан ниже по тексту.
Что касается информации зависимости D_IDk,i, которую имеет каждая опорная картинка, если опорная картинка существует в BD[m], используемом для предсказания, нет необходимости в ее кодировании, поскольку информация зависимости D_IDk,i равна D_IDm,j. С другой стороны, если опорной картинки не существует в BD[m], которое используется для предсказания, информация зависимости D_IDk,i кодируется.
Содержимое (синтаксические структуры) 822, 824 на фиг. 8 конфигурируется на основе вышеописанной концепции и процессов из блока 360 на фиг. 3 и блока 460 на фиг. 4, которые будут объяснены на основе этой концепции.
Фиг. 6 изображает блок-схему, показывающую процесс кодирования информации описания буфера (процесс из блока 360 на фиг. 3) в устройстве 100 кодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения. Этот процесс соответствует процессу кодирования BD[k] в случае, когда k>0 на фиг. 8. Этап 610 предназначен для кодирования количества компонентов BD[k], т.е. для кодирования количества #ΔPOCk описанных опорных картинок. Затем вычисляется ΔBDk (этап 620), и затем оно кодируется (этап 630). После этого следующий процесс осуществляется для каждого компонента BD[k]. Этап 640 предназначен для обнаружения, есть ли ΔPOCm,j, разделяющее одну и ту же опорную картинку с ΔPOCk,i (т.е. POCm,j=POCk,i) в BD[m] (m=k-1). Если на этапе 645 определяется, что оно есть, обработка переходит к этапу 650 для определения и последующего кодирования значения Δidxk,i согласно вышеприведенной формуле (4). Если на этапе 645 определяется, что оно отсутствует, обработка переходит к этапу 655. Этап 655 предназначен для установления значения количества (#ΔPOCm) компонентов BD[m] в значение j. Установленное значение может быть значением больше этого. Этап 660 предназначен для определения значения Δidxk,i согласно вышеприведенной формуле (4) и последующего его кодирования. Этап 670 предназначен для кодирования информации зависимости D_IDk,i от опорной картинки. Каждое из вышеупомянутых значений конвертируется в двоичный код, и затем он кодируется путем арифметического кодирования, но может применяться любой другой способ энтропийного кодирования. Вышеописанная обработка многократно осуществляется вплоть до последнего компонента BD[k].
Фиг. 5 изображает результат, полученный путем обработки информации описания буфера в стандартной технологии, показанной на фиг. 17, посредством вышеупомянутого способа согласно настоящему изобретению. Столбец 501 представляет идентификатор каждого BD[k], и в настоящем варианте осуществления он не является явным образом закодированным. Столбец 502 представляет количество компонентов каждого BD[k], а столбец 504 - данные для описания опорных картинок BD[k]. Строка 510 соответствует BD[0] и закодирована с использованием значений ΔPOCk,i. Строка 511 и последующие строки представляют значения Δidxk,i. Столбец 505 представляет идентификатор каждого BD[m], используемого для предсказания, но поскольку в настоящем варианте осуществления m=k-1, нет необходимости в его кодировании. Столбец 506 представляет ΔBDk. Каждая из записей в ячейках 520-523 соответствует ситуации, где нет идентичной опорной картинки в BD[m], используемом для предсказания, и необходимо кодировать D_IDk,i дополнительно к Δidxk,i; но иллюстрация кодирования D_IDk,i опущена на фиг. 5. Большинство значений в соответственных сотах под 504 на фиг. 5 равны "0", и значения и динамический диапазон меньше, чем у информации в стандартной технологии, показанной на фиг. 17, благодаря чему достигается эффект эффективного кодирования. Стандартная технология нуждается в кодировании D_IDk,i всех компонентов, в то время как способ согласно настоящему изобретению кодирует D_IDk,i только для ограниченных компонентов, чтобы дополнительно уменьшить количество бит.
Фиг. 7 изображает блок-схему, показывающую процесс декодирования информации описания буфера (процесс из блока 460 на фиг. 4) в устройстве 200 декодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения. Этот процесс соответствует процессу декодирования BD[k] в случае, когда k>0 на фиг. 8. Этап 710 предназначен для декодирования количества компонентов BD[k], т.е. для декодирования количества #ΔPOCk описанных опорных картинок. Этап 730 предназначен для декодирования ΔBDk. Нижеописанная обработка декодирования затем осуществляется для каждого из компонентов BD[k]. Этап 740 предназначен для декодирования Δidxk,i, и затем значение индекса j определяется с использованием следующей формулы (этап 745).
j=i+Δidxk,i+сдвигk,i-1, где сдвигk,-1=0 (6)
С использованием этого индекса j на этапе 750 определяется, присутствует ли ΔPOCm,j в качестве опорного значения ΔPOCk,i цели декодирования в BD[m]. Если j<количества (#ΔPOCm) компонентов BD[m], ΔPOCm,j присутствует; если j>(#ΔPOCm), ΔPOCm,j отсутствует. Когда на этапе 750 определяется, что оно присутствует, обработка переходит к этапу 760 для определения значения ΔPOCk,i. Информация зависимости D_IDk,i является попросту копией информации зависимости ΔPOCm,j. Здесь следует заметить, что нет необходимости в кодировании информации зависимости D_IDk,i. Когда на этапе 750 определяется, что оно отсутствует, обработка переходит к этапу 765. На этом этапе информация зависимости D_IDk,i декодируется, и ΔBDk замещается значением ΔPOCk,i на этапе 770. Вышеупомянутая обработка многократно осуществляется вплоть до последнего компонента BD[k].
Как описано выше, способы кодирования и декодирования информации описания буфера согласно настоящему изобретению используют свойство многократного использования опорных картинок и используют корреляцию между элементами информации BD[k] описания буфера, используемыми для различных картинок, для сжатия или устранения избыточной информации, благодаря чему достигается эффективное кодирование информации описания буфера.
Как показано на фиг. 16, информация о буфере упорядочивается в последовательности кодирования и декодирования целевых картинок. По этой причине вышеупомянутые условия (a)-(d) удовлетворяются, и вышеописанный вариант осуществления обеспечивает возможность информации описания буфера быть закодированной наиболее эффективным способом. С другой стороны, порядок описаний буфера произволен, и каждое BD[k] может быть описано в порядке, отличном от показанного на фиг. 16. Ниже будет описан более универсальный вариант осуществления согласно настоящему изобретению, соответствующий этому случаю.
На фиг. 9 информация буфера описана в порядке, несколько отличном от порядка на фиг. 16. Отличие от фиг. 16 изображает то, что информация буфера о POC=25 (913) описана до POC=30 (914). Однако используемые опорные картинки являются теми же, что и в случае с фиг. 16. В этом примере целевая картинка с POC=25 (913) использует опорные картинки с POC=22, 24, 32, 28, 26 и 30, а целевая картинка с POC=26 (912), находящаяся непосредственно выше нее, использует опорные картинки с POC=22, 24, 32 и 28. Если информация описания буфера BD[m] в строке 912 используется для предсказания информации BD[k] описания буфера в строке 913, компонент с POC=30 (963), принадлежащий BD[k], отсутствует в BD[m], и, таким образом, не генерируется путем использования BD[m]. А именно, когда используется вышеупомянутое условие (c) (m=k-1), вышеупомянутое условие (d) не удовлетворяется.
Для того, чтобы решить эту проблему, вышеупомянутое условие (c) облегчается так, чтобы обеспечить возможность свободного выбора BD[m] и, в свою очередь, кодируется индекс m для определения BD[m], используемого для предсказания. В таком случае, когда информация описания буфера в строке 914 используется как BD[m] для предсказания информации BD[k] описания буфера в строке 913, фиг. 6 и фиг. 7 могут применяться без изменений (в случае, если добавляются кодирование и декодирование индекса m).
В качестве другого способа, также возможно задействовать способ кодирования POC-номера ΔPOCk,i в вышеупомянутой формуле (1) без изменений, для дополнительной опорной картинки, отсутствующей в BD[m], используемой для предсказания, или задействовать способ кодирования разности между ΔPOCk,i и ΔBDk в виде IBDRk,i.
IBDRk,i=ΔPOCk,i-ΔBDk (7)
Если вышеприведенную формулу (7) развернуть, она равна (POCk,i-POCпредыдущий). Фиг.12 изображает схематичное представление информации описания буфера, описанной в PPS, созданном посредством вышеупомянутого более универсального варианта осуществления согласно настоящему изобретению. На фиг. 12 ссылочная позиция 1211 та же самая, что и 811 на фиг. 8, а ссылочная позиция 1220 та же самая, что и 820. BD[k] в случае, когда k>1, передается в синтаксической структуре, представленной посредством 1222 или 1224. Синтаксическая структура в этом случае состоит из количества компонентов BD[k] (которое является количеством опорных картинок, необходимых для целевой картинки, и последующих картинок) #ΔPOCk (1233, 1240), идентификатор mk (1234, 1241) информации описания буфера, используемой для предсказания, ΔBDk (1235, 1242) и Δidxk,i (1236, 1237, 1243, 1244) или {Δidxk,i, D_IDk,i, IBDRk,i} (1238, 1239, 1245, 1246).
Информация описания буфера, показанная на фиг. 12, кодируется и декодируется следующим образом. Фиг. 10 изображает блок-схему, показывающую более универсальный процесс кодирования информации описания буфера (процесс из блока 360 на фиг. 3) в устройстве 100 кодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения. Этот процесс соответствует процессу кодирования BD[k] в случае, когда k>0 на фиг. 12. Этап 1010 предназначен для кодирования количества компонентов BD[k], т.е. кодирования количества #ΔPOCk описанных опорных картинок. Следующий этап предназначен для определения информации BD[m] описания буфера для ссылки, используемой в предсказании, чтобы определить ее идентификатор mk и в то же время вычислить ΔBDk (этап 1020). Этап 1030 предназначен для кодирования mk и ΔBDk. Затем следующая обработка осуществляется для каждого из компонентов BD[k]. Этап 1040 предназначен для обнаружения, разделяет ли ΔPOCm,j одну и ту же опорную картинку с ΔPOCk,i (т.е. POCm,j=POCk,i), которая присутствует в BD[mk]. Если на этапе 1045 определяется, что она присутствует, обработка переходит к этапу 1050 для определения значения Δidxk,i согласно вышеупомянутой формуле (4) и последующего его кодирования. Если на этапе 1045 определяется, что она отсутствует, обработка переходит к этапу 1055. Этап 1055 предназначен для установления значения не меньше значения количества (#ΔPOCm) компонентов BD[m] в индексе j. В этом случае значение, еще не использованное для установления, устанавливается в качестве значения индекса j, чтобы приспособиться для возможности наличия одной или нескольких дополнительных опорных картинок (отсутствующих в BD[m]). Этап 1060 предназначен для определения значения Δidxk,i согласно вышеупомянутой формуле (4) и последующего его кодирования. Этап 1070 предназначен для определения значения IBDRk,i согласно вышеупомянутой формуле (7) и последующего его кодирования вместе с информацией зависимости D_IDk,i опорной картинки. Каждое из вышеупомянутых значений конвертируется в двоичный код и кодируется путем арифметического кодирования, но может применяться любой другой способ энтропийного кодирования. Вышеупомянутая обработка многократно осуществляется вплоть до последнего компонента BD[k].
Фиг. 21 изображает результат обработки, полученный путем конвертирования информации описания буфера с фиг. 9 в ΔPOCk,i, показанное на фиг. 20, и последующей его обработки посредством вышеописанного более универсального способа. Столбец 941 представляет идентификатор каждого BD[k]. Столбец 942 представляет количество компонентов каждого BD[k], а столбец 944 - данные для описания опорных картинок BD[k]. Строка 950 соответствует BD[0] и кодируется значениями ΔPOCk,i. Строка 951 и последующие строки кодируются посредством Δidxk,i или {Δidxk,i, D_IDk,i IBDRk,i} (D_IDk,i опущено на фиг.21). Столбец 945 представляет идентификатор mk BD[m], используемого для предсказания. Столбец 946 представляет ΔBDk. Каждая из записей в ячейках 980-983 соответствует ситуации, когда нет идентичной опорной картинки в BD[m], используемом в предсказании, и когда кодируется {Δidxk,i, D_IDk,i, IBDRk,i}. Большинство значений в соответственных ячейках под 944 на фиг.21 равно "0", и значения и динамический диапазон меньше, чем у информации в стандартной технологии с фиг. 20, благодаря чему достигается эффект эффективного кодирования.
Фиг. 11 изображает блок-схему, показывающую более универсальный процесс декодирования информации описания буфера (процесс из блока 460 на фиг. 4) в устройстве 200 декодирования видео с предсказанием согласно одному варианту осуществления настоящего изобретения. Этот процесс соответствует процессу декодирования BD[k] в случае, когда k>0 на фиг. 12. Этап 1110 предназначен для декодирования количества компонентов BD[k], т.е. для декодирования количества #ΔPOCk описанных опорных картинок. Этап 1130 предназначен для декодирования mk и ΔBDk. Затем следующая обработка декодирования осуществляется для каждого из компонентов BD[k]. Этап 1140 предназначен для декодирования Δidxk,i, и затем значение индекса j определяется с использованием вышеупомянутой формулы (6) (этап 1145).
С использованием этого индекса j на этапе 1150 определяется, присутствует ли ΔPOCm,j в качестве опорного значения ΔPOCk,i цели декодирования в BD[m]. В этом примере, если j<количества (#ΔPOCm) компонентов BD[m], ΔPOCm,j присутствует; если j≥(#ΔPOCm), ΔPOCm,j отсутствует. Если на этапе 1150 определяется, что оно присутствует, обработка переходит к этапу 1160 для определения значения ΔPOCk,i. Информация зависимости D_IDk,i может быть попросту копией информации зависимости, которой обладает ΔPOCm,j. Если на этапе 1150 определяется, что оно отсутствует, обработка переходит к этапу 1165. На этом этапе IBDRk,i и информация зависимости D_IDk,i декодируются, и значение ΔPOCk,i вычисляется на этапе 1170. Вышеупомянутая обработка многократно осуществляется вплоть до последнего компонента BD[k].
Как описано выше, способы кодирования и декодирования информации описания буфера согласно настоящему изобретению используют свойство многократного использования опорных картинок и используют корреляцию между элементами информации BD[k] описания буфера, используемыми для различных картинок, чтобы сжать избыточную информацию, тем самым обеспечивая возможность эффективного кодирования информации описания буфера. Дополнительно, есть эффект эффективного кодирования даже в случае, когда перекрестная ссылка на информацию описания буфера делается свободно.
Процессы кодирования с фиг. 6 и фиг. 10 или процессы декодирования с фиг. 7 и фиг. 11 были описаны раздельно, но эти два варианта осуществления могут быть использованы в комбинации. В процессах декодирования этапы 765, 770 на фиг. 7 отличны от этапов 1165, 1170 на фиг. 11, но когда они используются в комбинации, необходимо только добавить информацию (1 бит) для идентификации этих процессов и кодировать ее.
Поскольку все значения Δidxk,i равны нулю, как видно в строках 512, 513, 514 и 517 на фиг. 5, эти значения могут быть представлены одним сигналом (флагом), вместо того чтобы кодировать их по отдельности.
В вышеупомянутых вариантах осуществления POC-номер каждой опорной картинки, описанной в информации описания буфера, конвертируется в ΔPOCk,i, и затем информация описания буфера посредством настоящего изобретения кодируется и декодируется, но способ согласно настоящему изобретению может применяться к самому POC-номеру. А именно, когда POC-номер в информации BD[k] описания буфера в качестве цели представлен в BD[m], используемом для предсказания, Δidxk,i, указывающее POC-номер, кодируется. Когда желаемый POC-номер отсутствует в BD[m], ΔPOCk,i, полученное посредством вышеупомянутой формулы (1), кодируется как IBDRk,i. Формула (7) может быть использована вместо вышеупомянутой формулы (1). В этом случае процесс из блока 360 на фиг. 3 является таким, как показано на фиг. 18, а процесс из блока 460 на фиг. 4 является таким, как показано на фиг. 19. Фиг. 18 приблизительно та же самая, что и обработка с фиг. 10, а фиг. 19 приблизительно та же самая, что и обработка с фиг. 11; фиг. 18 и фиг. 19 используют номера этапов с "S", присоединенным к номерам этапов соответствующих этапов процесса на фиг. 10 и фиг. 11. Однако следует заметить, что обработка осуществляется для POC вместо ΔPOC. В этом случае ΔBDk равно нулю, и, таким образом, оно не должно кодироваться и декодироваться. Затем, если m=(k-1) фиксировано (т.е. в случае предсказания из непосредственно предыдущей BD[m]), mk также не должно кодироваться или декодироваться.
В вышеупомянутых вариантах осуществления, если bdk,i представляет i-й компонент описания буфера BD[k] в качестве цели, а bdm,j - компонент BD[m], используемый для предсказания, Δidxk,i может рассматриваться как относительная позиция (индекс или адрес) bdm,j относительно bdk,i. А именно, предполагая, что bdk,i и bdm,j являются местами хранения информации, их POC-номера могут сохраняться в местах хранения информации, или значения ΔPOC могут сохраняться там. В этом случае Δidxk,i расценивается как относительная позиция между местами хранения информации (в том случае, если их содержимое включать в себя POC-номера, используемые совместно). Иными словами, описание буфера согласно настоящему изобретению является описанием позиционного отношения между местом хранения информации для хранения информации буфера целевой картинки и местом хранения информации для хранения информации буфера в качестве ссылки для целевой картинки, и обеспечивает способ переключения для способов воспроизведения содержимого bdk,i путем сравнения позиции (j) назначенного места хранения информации с количеством (#ΔPOCm или #POCm) мест хранения информации, содержащих их содержимое.
Другой вариант осуществления, описанный ниже, также применим к способам кодирования и декодирования информации описания буфера согласно настоящему изобретению. Настоящий вариант осуществления основан на вышеупомянутых условиях (c) и (d), подобно варианту осуществления, показанному на фиг. 6 и фиг. 7. А именно, информация описания буфера BD[m] используется для предсказания информации BD[k] описания буфера в качестве цели, и BD, непосредственно предыдущее для BD[k], используется в качестве BD[m]. То есть m=(k-1). Есть только одна дополнительная опорная картинка в BD[k], и эта дополнительная опорная картинка генерируется в случае, когда используется BD[m].
При этих условиях настоящий вариант осуществления является тем, в котором определяется в кодировании информации BD[k] описания буфера в качестве цели, "присутствует или нет" ΔPOCm,j в BD[m], которое используется для предсказания, разделяет идентичную опорную картинку с ΔPOCk,i, которое является компонентом BD[k] (т.е. POCm,j=POCk,i). Таким образом, вышеупомянутый вариант осуществления задействует "относительную позицию Δidxk,i", в то время как настоящий вариант осуществления задействует флаг, попросту указывающий на "присутствие или нет". Этот флаг описывается здесь как ibd_флагk,j. Когда флаг ibd_флагk,j указывает "присутствие", j-я картинка, уже сохраненная в буфере, непрерывно используется в качестве опорной картинки. С другой стороны, когда флаг ibd_флагk,j указывает "нет", другая назначенная картинка сохраняется в качестве новой опорной картинки (дополнительной опорной картинки) в буфер.
При условиях (c) и (d) количество BD[k] по большей мере на один большее, чем количество BD[m];, т.е. взаимоотношение #ΔPOCk=#ΔPOCm+1 всегда удовлетворяется, и, таким образом, нет необходимости в передаче #ΔPOCk. По этой причине настоящий вариант осуществления может дополнительно уменьшать количество бит.
Фиг. 22 изображает процесс кодирования информации описания буфера согласно настоящему варианту осуществления на основе вышеприведенной концепции. Этот процесс применяется к процессу с этапа 360 на фиг. 3. Этап 2210 предназначен для выведения информации о количестве ΔPOCk и количестве ΔPOCm, которая используются для последующего определения. Этап 2220 предназначен для получения ΔBDk, задаваемого формулой (5), и кодирования ΔBDk. А именно, ΔBDk получается как разность между POC-номером POCтекущий целевой картинки с использованием информации BD[k] и POC-номером POCпредыдущий картинки с использованием информации BD[m], используемой для предсказания BD[k]. Этап 2230 предназначен для присваивания начальных значений счетчику i BD[k] и счетчику j BD[m], равных нулю.
Далее этапы 2240-2265 предназначены для проверки компонентов BD[m] в том же количестве, что и количество ΔPOCm. Конкретным образом, когда удовлетворено условие этапа 2245, обработка переходит к этапу 2250; иначе обработка переходит к этапу 2260. Конкретным образом, условие этапа 2245 задается формулой (3) и соответствует случаю (POCk,i=POCm,j). Этап 2250 предназначен для кодирования ibd_флагk,j, равного 1, для указания, что условие удовлетворено, или "присутствует". В то же время, счетчику i BD[k] дается приращение. С другой стороны, этап 2260 предназначен для кодирования ibd_флагk,j, равного 0, для указания, что условие "не" удовлетворено. Этап 2265 предназначен для обеспечения счетчику j приращения для проверки следующего BD[m].
Когда условие этапа 2240 не удовлетворяется, т.е. когда проверка завершается для всех компонентов BD[m], обработка переходит к этапу 2270. Это этап предназначен для сравнения количества ΔPOCk со счетчиком i информации BD[k] описания буфера в качестве цели. Поскольку счетчик i BD[k] начинает отсчет от 0, его максимальное значение равно (количество ΔPOCk-1). Если условие (i=количество ΔPOCk) удовлетворено на этапе 2270, счетчик i превосходит количество компонентов BD[k], и ibd_флагk,j устанавливается равным 0 для кодирования, за чем следует окончание обработки. С другой стороны, если условие (i=количество ΔPOCk) не удовлетворено на этапе 2270, это тем самым означает, что дополнительная опорная картинка, отсутствующая в BD[m], сохраняется в буфер. Для кодирования информации о ней, этап 2290 предназначен для кодирования ibd_флагk,j, равного 1, а этап 2295 предназначен для кодирования информации зависимости D_IDk,i дополнительной опорной картинки. Поскольку значение ΔPOCk,i дополнительной опорной картинки равно ΔBDk, как описано на фиг. 6, его не обязательно кодировать.
Фиг.24 изображает компоновку данных информации описания буфера, описанной в PPS, генерируемом, как описано выше. Фиг. 24 подобна фиг. 8. "Количество BD", указанное как 2411, то же самое, что и 811 на фиг. 8, информация 2420 о BD[0], являющемся первым BD, та же самая, что и 820 на фиг. 8, и они генерируются на этапе 320 и этапе 330, соответственно, на фиг. 3.
Информация, содержащаяся в BD[k] в случае, когда k>0, иллюстрируется посредством 2422 и 2424 на фиг. 24. Содержимым, описанным там, являются ΔBDk (2434, 2440) и ibd_флагk,j (2435, 2436, 2437, 2441, 2442, 2443, 2444) или {ibd_флагk,j, D_IDk,i} (2438). Эта структура данных (синтаксическая структура) подобна фиг. 8, и следует заметить, что #ΔPOCk (833, 839), представляющее количество BD[k] в случае, когда k>0, не является необходимым. ibd_флагk,j принимает значение 1 или 0. Поскольку информация о количестве BD[k] не должна быть закодирована, присутствует эффект обеспечения возможности информации описания буфера быть выраженной меньшим количеством бит.
Фиг. 23 изображает другой способ осуществления процесса декодирования информации описания буфера согласно настоящему варианту осуществления. Этап 2310 предназначен для выведения количества (#ΔPOCm) ΔPOCm, являющихся компонентами BD[m], используемыми для предсказания. Количество (#ΔPOCm) ΔPOCm получается путем пересчета количества компонентов при восстановления BD[m]. Этап 2320 предназначен для присвоения начальных значений счетчику i BD[k] и счетчику j BD[m], равных нулю. Этап 2330 предназначен для декодирования значения ΔBDk, описанного в информации буфера. Далее ibd_флагk,j декодируется количество раз, равное количеству (#ΔPOCm+1) (под управлением этапа 2345). Процессы этапа 2345 и последующих этапов осуществляются на основе декодированных значений ibd_флагk,j.
Этап 2345 предназначен для оценки счетчика j BD[m]. Перед тем, как счетчик j достигает количества ΔPOCm, определяется, должно ли ΔPOCk,i быть восстановлено с использованием ΔPOCm,j, на основе значения ibd_флагk,j (1 или 0) (этап 2350). Когда значение ibd_флагk,j равно 1, этап 2355 осуществляется для добавления ΔBDk к ΔPOCm,j для генерирования ΔPOCk,i. В этом случае ΔPOCk,i и ΔPOCm,j разделяют одну и ту же опорную картинку (POCm,j=POCk,i), и, таким образом, информация зависимости D_IDk,i может попросту быть копией информации зависимости D_IDm,j, относящейся к ΔPOCm,j. Далее счетчику i BD[k] дается приращение, и затем выполняется определение следующего компонента BD[m].
После того, как проверка завершена вплоть до последнего компонента BD[m] (или когда этап 2345 дает в результате "нет"), оценивается значение последнего ibd_флагk,j (этап 2370). Когда ibd_флагk,j=0, это тем самым означает, что нет дополнительной опорной картинки, и поток переходит к нижеописанному этапу 2390 без какой-либо обработки. С другой стороны, в случае, когда ibd_флагk,j=1, это тем самым означает, что есть дополнительная опорная картинка (которая отсутствует в BD[m]), и затем осуществляется этап 2375 для восстановления информации зависимости D_IDk,i. Этап 2380 использует ΔBDk в качестве POC-номера дополнительной опорной картинки (поскольку применяется условие (d)). Кроме того, счетчику i BD[k] дается приращение. Наконец, значение, сосчитанное счетчиком i, сохраняется как количество BD[k] (этап 2390). Это количество BD[k] используется для генерирования каждого компонента BD[k+1] (на этапе 2310).
Способами обработки с фиг. 22 и фиг. 23 являются способы осуществления, в которых есть только одна дополнительная опорная картинка в BD[k], и в случае, когда существует N дополнительных опорных картинок, значение N может передаваться и приниматься в составе информации BD[k]. В этом случае POC-номера дополнительных опорных картинок кодируются и декодируются с использованием IBDRk,i. В частности, этап 2295 на фиг. 22 может быть сконфигурирован для выполнения того же самого процесса, что и этап 1070 на фиг. 10, этап 2375 на фиг. 23 может быть сконфигурирован для выполнения того же самого процесса, что и этап 1165 на фиг. 11, и этап 2380 на фиг. 23 может быть сконфигурирован для выполнения того же самого процесса, что и этап 1170 на фиг. 11.
В вышеприведенном примере значения ibd_флагk,j выражены одним битом (1 или 0), но они могут быть выражены двумя или более битами. В этом случае дополнительный бит или биты могут быть использованы для определения, кодируется ли другая информация (D_IDk,i, IBDRk,i или другая информация) явным образом.
Кроме того, дополнительный бит может быть использован для указания диапазона применения опорных картинок, ассоциированных с ΔPOCk,i (т.е. опорных картинок, имеющих POC-номера POCk,i, задаваемые в формуле (1)). В частности, когда ibd_флагk,j равен "1", ΔPOCk,i восстанавливается с использованием ΔPOCm,i, и в то же время опорная картинка, ассоциированная с ΔPOCk,i, применяется к картинке в качестве текущей цели обработки (текущей картинки) и будущей картинке, следующей за ней (будущей картинке или будущим картинкам). Когда ibd_флагk,j равен "01", ΔPOCk,i восстанавливается с использованием ΔPOCm,j, и в то же время опорная картинка, ассоциированная с ΔPOCk,i, не применяется к картинке в качестве текущей цели обработки (текущей картинки), а применяется только к будущей картинке, следующей за ней (будущей картинке или будущим картинкам). Кроме того, когда ibd_флагk,j равен "00", ΔPOCm,j не используется для восстановления ΔPOCk,i.
В вышеупомянутых вариантах осуществления обработка осуществляется для ΔPOCk,i, описанного в информации описания буфера, но обработка может осуществляться для самого POC-номера, которым обладает каждая опорная картинка.
Информация описания буфера была описана во всех вышеупомянутых вариантах осуществления. Поскольку информация описания буфера также является описаниями о множестве опорных картинок, используемых для кодирования и декодирования целевой картинки, вышеупомянутые варианты осуществления могут быть также использованы как способы для управления списками опорных картинок.
Вышеупомянутые варианты осуществления пояснили случаи, когда вся информация описания буфера была закодирована в составе PPS-информации, но они также применимы к случаям, когда информация описания буфера описана в заголовке каждой отдельной целевой картинки. А именно, они также применимы к конфигурации, в которой информация из строки 510 на фиг. 5 описана в начале (заголовке) сжатых данных картинки с POC=32, и информация из строки 511 описана в начале (заголовке) сжатых данных картинки с POC=28. В этом случае информация BD[k] описания буфера, принадлежащая целевой картинке k, может быть закодирована и декодирована посредством процессов с фиг. 6, 7, 10, 11, 18 и 19 со ссылкой на информацию BD[m] описания буфера, принадлежащую картинке m, обработанной ранее. Однако существуют случаи, когда целевая картинка m вообще не используется в качестве опорной картинки (когда значение информации зависимости D_ID велико) в зависимости от структуры предсказания, и BD[m], принадлежащее картинке m, не используется для предсказания в таких случаях. Причина этого состоит в том, что картинка m, вообще не используемая в качестве опорной картинки, может быть отвергнута в целях управления объемом данных и облегчения процесса декодирования.
Программа кодирования видео с предсказанием для обеспечения возможности компьютеру функционировать в качестве вышеупомянутого устройства 100 кодирования видео с предсказанием, может быть обеспечена как сохраненная в носителе записи. Подобным образом, программа декодирования видео с предсказанием для обеспечения возможности компьютеру функционировать в качестве вышеупомянутого устройства 200 декодирования видео с предсказанием может быть обеспечена как сохраненная в носителе записи. Примеры таких носителей записи включают в себя носители записи, такие как гибкие диски, CD-ROM, DVD, или ROM, или полупроводниковые запоминающие устройства или подобное.
Фиг. 13 изображает чертеж, показывающий аппаратную конфигурацию компьютера 30 для исполнения программы, записанной в носителе записи, и фиг. 14 изображает чертеж, показывающий вид в перспективе компьютера 30 для исполнения программы, сохраненной в носителе записи. Примерный компьютер 30 здесь в общем случае охватывает DVD-проигрыватель, ресивер цифрового телевидения, сотовый телефон и другие устройства, обеспеченные CPU и сконфигурированные для выполнения обработки информации и управления на основе программных средств.
Как показано на фиг. 13, компьютер 30 обеспечен считывающим устройством 12, таким как гибкий дисковый накопитель, CD-ROM-накопитель, или DVD-накопитель, рабочая память (RAM) 14, в которой располагается операционная система, память 16 для сохранения программы, сохраненной в носителе 10 записи, устройство 18 наблюдения, такое как дисплей, мышь 20 и клавиатура 22 в качестве устройств ввода, устройство 24 связи для передачи и приема данных и другого и CPU 26 для управления исполнением программы. Когда носитель 10 записи помещается в считывающее устройство 12, компьютер 30 становится доступным для программы кодирования видео с предсказанием, сохраненной в носителе 10 записи, через считывающее устройство 12 и получает возможность работать как вышеупомянутое устройство 100 кодирования видео с предсказанием на основе программы кодирования видео с предсказанием. Подобным образом, когда носитель 10 записи помещается в считывающее устройство 12, компьютер 30 становится доступным для программы декодирования видео с предсказанием, сохраненной в носителе 10 записи, через считывающее устройство 12 и получает возможность работать как вышеупомянутое устройство 200 декодирования видео с предсказанием на основе программы декодирования видео с предсказанием.
Список позиционных обозначений
100: устройство кодирования видео с предсказанием; 101: вход; 102: блок разделения на блоки; 103: блок генерирования предсказанного сигнала; 104: память кадров (или буфер, DPB); 105: блок вычитания; 106: блок преобразования; 107: блок квантования; 108: блок обратного квантования; 109: блок обратного преобразования; 110: блок добавления; 111: блок энтропийного кодирования; 112: выход; 114: блок управления буфером; 200: устройство декодирования видео с предсказанием; 201: вход; 202: блок анализа данных; 203: блок обратного квантования; 204: блок обратного преобразования; 205: блок добавления; 206: выход; 207: память кадров; 208: блок генерирования предсказанного сигнала; 209: блок управления буфером.
Изобретение относится к декодированию видео с предсказанием. Технический результат заключается в повышении эффективности кодирования информации за счет уменьшения избыточной информации и отсутствия необходимости повторного кодирования и декодирования информации. Такой результат достигается тем, что способ декодирования информации описания буфера использует свойство многократного использования одной и той же опорной картинки в процессах кодирования с предсказанием и декодирования для множества картинок, чтобы использовать корреляцию между элементами информации BD[k] описания буфера, используемыми для различных картинок, для того, чтобы уменьшить избыточную информацию, тем самым достигая эффекта эффективного кодирования информации описания буфера. Дополнительно, информация, характерная для каждой опорной картинки (информация зависимости), является той же самой, что и для картинки, на которую делается ссылка, и, таким образом, информация может быть унаследована без изменений. 1 з.п. ф-лы, 24 ил.
1. Способ декодирования видео с предсказанием, исполняемый устройством декодирования видео с предсказанием, содержащий:
этап ввода, на котором вводят (i) данные изображения в сжатой форме для воспроизведения целевого изображения [k], причем данные изображения получены в результате выполнения кодирования с предсказанием, с использованием первого набора опорных изображений, над целевым изображением [k] и (ii) информацию BD[k] описания буфера в сжатой форме, которая описывает первый набор опорных изображений, использованных для кодирования с предсказанием целевого изображения [k], при этом опорные изображения упомянутого первого набора описаны в информации BD[k] описания буфера с их идентификационными номерами относительно идентификационных номеров опорных изображений второго набора, описанных в информации BD[m] описания буфера, которые используются для воспроизведения другого целевого изображения [m], отличного от целевого изображения [k];
этап восстановления, на котором декодируют данные изображения для воспроизведения целевого изображения [k];
этап сохранения изображения, на котором сохраняют воспроизведенное целевое изображение [k] в качестве опорного изображения, подлежащего использованию для декодирования последующего целевого изображения; и
этап управления буфером, на котором управляют этапом сохранения изображения,
при этом этап управления буфером содержит:
перед воспроизведением целевого изображения [k] обращение к информации BD[m] описания буфера для восстановления идентификационных номеров опорных изображений упомянутого первого набора;
декодирование целевого изображения [k] с использованием опорных изображений упомянутого первого набора из информации BD[k] описания буфера, идентификационные номера которых были восстановлены;
управление этапом сохранения изображения на основе декодированной информации BD[k] описания буфера,
при этом обращение к информации BD[m] описания буфера для восстановления идентификационных номеров опорных изображений упомянутого первого набора, описанных в информации BD[k] описания буфера, содержит:
восстановление индекса m, идентифицирующего информацию BD[m] описания буфера;
восстановление значения deltaBD, представляющего разность между идентификационными номерами соответствующих опорных изображений, описанных в информации BD[m] описания буфера, и информации BD[k] описания буфера;
восстановление множества флагов ibd_flag [j], каждый из которых адаптирован для принятия нескольких значений, одно из которых указывает как: (a) используется ли идентификационный номер j-го опорного изображения, описанного в информации BD[m] описания буфера, для восстановления идентификационного номера опорного изображения, описанного в информации BD[k] описания буфера; так и (b) используется ли j-ое опорное изображение, описанное в информации BD[m] описания буфера, для воспроизведения целевого изображения [k], и
восстановление идентификационных номеров опорных изображений упомянутого первого набора, описанных в информации BD[k] описания буфера, на основе восстановленного индекса m, восстановленного значения deltaBD и восстановленных флагов ibd_flag[j].
2. Способ декодирования видео с предсказанием по п. 1, при этом общее количество флагов ibd_flag[j] равно общему количеству вторых наборов опорных изображений, описанных в информации BD[m] описания буфера, плюс 1.
КОДИРУЮЩЕЕ УСТРОЙСТВО, СПОСОБ КОДИРОВАНИЯ И ПРОГРАММА ДЛЯ НЕГО И ДЕКОДИРУЮЩЕЕ УСТРОЙСТВО, СПОСОБ ДЕКОДИРОВАНИЯ И ПРОГРАММА ДЛЯ НЕГО | 2006 |
|
RU2368096C2 |
БУФЕРИЗАЦИЯ ИЗОБРАЖЕНИЙ ДЛЯ ЭТАЛОНОВ ДЛЯ ПРЕДСКАЗАНИЯ И ОТОБРАЖЕНИЯ | 2003 |
|
RU2310290C2 |
УСТРОЙСТВО КОДИРОВАНИЯ ДВИЖУЩИХСЯ ИЗОБРАЖЕНИЙ, СПОСОБ И ПРОГРАММА УПРАВЛЕНИЯ ЭТИМ УСТРОЙСТВОМ | 2004 |
|
RU2335859C2 |
КОДИРОВАНИЕ С ПРЕОБРАЗОВАНИЕМ И ПРОСТРАНСТВЕННЫМ УЛУЧШЕНИЕМ | 2008 |
|
RU2427099C2 |
НЕЯВНОЕ ВЗВЕШИВАНИЕ ОПОРНЫХ ИЗОБРАЖЕНИЙ В ВИДЕОДЕКОДЕРЕ | 2003 |
|
RU2335860C2 |
US 20060083298 A1, 20.04.2006 | |||
US 20070086521 A1, 19.04.2007 | |||
US 20100316123 A1, 16.12.2010 | |||
JP 2009267689 A, 12.11.2009. |
Авторы
Даты
2020-04-17—Публикация
2019-11-11—Подача