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

Область техники
[0001] Настоящее изобретение относится к устройствам, способам и программам кодирования и декодирования видео с предсказанием, а конкретнее, к устройствам, способам и программам для управления максимальным количеством восстановленных изображений, хранимых в буфере декодированных изображений.
Уровень техники
[0002] Технологии сжатия видео используются для эффективной передачи и хранения видеоданных. Широко используемыми стандартами сжатия видеоданных являются MPEG 1-4 и H.261-H.264.
[0003] В этих стандартах сжатия видео изображение, которое должно быть кодировано, разделяется на множество блоков, которые кодируются, а затем декодируются. Чтобы увеличить эффективность кодирования, используется описанное ниже кодирование с предсказанием. При внутрикадровом предсказании сигнал предсказания формируется с использованием сигнала восстановленного соседнего изображения (сигнала, восстановленного из ранее сжатых данных изображения), который присутствует в кадре, включающем в себя целевой блок. Путем вычитания сигнала предсказания из сигнала целевого блока получается и кодируется разность между ними. При межкадровом предсказании в сигнале восстановленного изображения, который присутствует в кадре, отличном от кадра, включающего в себя целевой блок, ищут смещение сигнала. Сигнал предсказания формируется для компенсации этого смещения. Путем вычитания сигнала предсказания из сигнала целевого блока получается и кодируется разность между ними. Восстановленное изображение, которое является предметом поиска и компенсации движения, называется опорным изображением.
[0004] При двунаправленном межкадровом предсказании ссылаются не только на прошлое изображение, но также и на будущее изображение, которое для отображения располагается после целевого изображения (будущие изображения нужно кодировать и восстанавливать перед кодированием целевого изображения). Затем усредняются сигналы предсказания, полученные из прошлого изображения и будущего изображения. Этот способ предсказания эффективен для предсказания объекта, отсутствующего в прошлом, но появившегося в будущем кадре, и для уменьшения шума, включенного в два сигнала предсказания.
[0005] Кроме того, при межкадровом предсказании, заданном в H.264, множество опорных изображений, которые были кодированы, и затем восстановлены, подвергаются поиску движения, и сигнал предсказания с наименьшей ошибкой выбирается в качестве оптимального сигнала предсказания для целевого блока. Вычисляется разность между сигналом пикселя целевого блока и оптимальным сигналом предсказания, а затем подвергается дискретному косинусному преобразованию, квантованию и энтропийному кодированию. Одновременно кодируется информация, которая идентифицирует выбранное опорное изображение и область в выбранном опорном изображении, из которой получается оптимальный сигнал предсказания для целевого блока (называются "опорным индексом" и "вектором движения" соответственно).
[0006] В H.264 можно ссылаться на множество восстановленных изображений. Эти восстановленные изображения сохраняются в качестве опорных изображений, которые должны быть использованы при предсказании, в буфере декодированных изображений (DPB), который является буферной памятью изображений. Размер буфера декодированных изображений (DPB) задается профилем и уровнем, и задается в виде счета битов вместо количества опорных изображений. Даже при одинаковом профиле и уровне количество хранимых опорных изображений меняется в соответствии с размером кадра изображений. Например, в случае, когда профиль является главным (Main), а уровнем является 3.2, максимальный размер буфера изображений (MaxDPBSize: Максимальный размер буфера декодированных изображений) для хранения опорных изображений, используемых для предсказания, задается в виде 7680.0x1024 [байт]. Поэтому количество восстановленных изображений, хранимых в буфере декодированных изображений (DPB), равно 5, если изображениями являются 1280x720 и 4:2:0, а максимальное количество восстановленных изображений, хранимых в буфере декодированных изображений (DPB), равно 4, если изображениями являются 1280x1024 и 4:2:0. Фиг. 1(a), 1(b) и 1(c) показывают изображения, размещенные в буфере декодированных изображений, в котором размеры кадра изображений определяют максимальное количество хранимых восстановленных изображений, которое равно 4 (фиг. 1(a)), 5 (фиг. 1(b)) или 6 (фиг. 1(c)). Указатели памяти предоставляются адаптивно к размеру кадра восстановленных изображений в буферной памяти изображений, подготовленной заранее, при помощи чего достигается адаптивная компоновка памяти в буферной памяти изображений.
Список источников
Непатентная литература
[0007] Непатентная литература 1: "H.264: Advanced video coding for generic audiovisual services," Joint Video Team of ITU-T VCEG and ISO/IEC MPEG, ITU-T Rec. H.264 and ISO/IEC14496-10 (MPEG4-Part 10), November 2007
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Техническая проблема
[0008] Поскольку устройство декодирования, которое соответствует вышеупомянутым требованиям H.264, должно быть способно декодировать изображения со всеми размерами кадра, заданными профилями и уровнями, которые входят в поддерживаемый устройством декодирования диапазон, невозможно скомпоновать память в буферной памяти изображений и сохранить восстановленные изображения в этой памяти фиксированным образом. По этой причине необходимо менять указатели памяти, указывающие положения памяти для хранения восстановленных изображений, в соответствии с размером кадра изображений, которые должны быть декодированы, что приводит к усложнению управления памятью и реализации.
[0009] Временным решением этой проблемы является выбор методики, в которой фиксируется максимальное количество восстановленных изображений, хранимых в буферной памяти изображений (max_dec_pic_buffering), независимо от размеров кадра декодированных изображений. По этому решению, поскольку компоновка памяти в буфере декодированных изображений (DPB) неизменно определяется максимальным размером кадра, как показано на фиг. 2(a), указатели памяти также могут фиксироваться. А именно, управление памятью становится легче по сравнению с компоновкой, в которой указателями памяти нужно управлять переменно. Однако, когда размер кадра декодированных изображений меньше максимального размера кадра, или когда вертикальная ширина изображений составляет половину от таковой изображений кадра, как в случае изображений с нечетным полем, реализация вышеупомянутого решения могла бы формировать неиспользуемые области памяти, как показано на фиг. 2(b), и препятствовать эффективному использованию памяти. Кроме того, это решение могло бы лишить возможности повышения эффективности кодирования, которое можно было бы осуществить путем сохранения большего количества восстановленных изображений для увеличения количества опорных изображений.
[0010] Поэтому цель настоящего изобретения - решить вышеупомянутую проблему и предоставить способы, устройства и программы кодирования и декодирования, в которых максимальное количество восстановленных изображений, хранимых в буферной памяти изображений, определяется в соответствии с размером кадра восстановленных изображений, посредством этого обеспечивая эффективное использование буферной памяти изображений и дальнейшее повышение эффективности кодирования.
Решение проблемы
[0011] Чтобы достичь вышеупомянутых целей, устройство кодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения содержит средство ввода, которое вводит множество изображений, образующих видеопоследовательность, и средство кодирования, которое сжимает изображения, используя либо внутрикадровое предсказание, либо межкадровое предсказание, чтобы сформировать сжатые данные изображения, включающие в себя информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра, заданном в качестве ограничения кодирования, и кодирует сжатые данные изображения вместе с данными спецификации кодирования касательно информации о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра. Устройство кодирования видео с предсказанием дополнительно содержит средство декодирования, которое декодирует сжатые данные изображения, чтобы восстановить изображения, средство хранения изображений, которое сохраняет одно или несколько восстановленных изображений в качестве опорных изображений, которые должны быть использованы для кодирования последующего изображения, и средство управления памятью, которое управляет буферной памятью изображений в средстве хранения изображений, при этом, когда размер кадра входных изображений не превышает 1/(2^L) (где L - целое число, равное единице или больше) максимального размера кадра изображений, средство управления памятью определяет, что в памяти кадров можно хранить (2^L) умножить на максимальное количество восстановленных изображений.
[0012] В этом устройстве кодирования видео с предсказанием максимальное количество восстановленных изображений, хранимых в буферной памяти изображений, определяется на основе взаимосвязи между размером кадра, ассоциированным с соответствующими изображениями, образующими видеопоследовательность или сжатые данные изображения, и максимальным размером кадра, заданным в качестве ограничения кодирования. Точнее говоря, когда размер кадра входных изображений, например, больше 1/(2^L) (где L - целое число, равное единице или больше) максимального размера кадра, заданного в качестве ограничения кодирования, максимальное количество хранимых восстановленных изображений устанавливается в N (где N - целое число, равное единице или больше), тогда как объем буфера памяти, доступный для хранения восстановленных изображений, управляется для предоставления возможности хранения вплоть до ((2^L)xN) восстановленных изображений, когда размер кадра входных изображений не превышает 1/(2^L) максимального размера кадра. В этой конфигурации, когда размер кадра восстановленных изображений не превышает 1/(2^L) максимального размера кадра, заданного в качестве настройки кодирования, можно увеличить максимальное количество хранимых восстановленных изображений, и соответственно количество хранимых опорных изображений также можно увеличить, чтобы посредством этого повысить эффективность кодирования.
[0013] В устройстве кодирования видео с предсказанием в соответствии с другим вариантом осуществления настоящего изобретения средство управления памятью фиксирует указатели памяти, указывающие положения хранения восстановленных изображений в памяти, при определении максимального количества восстановленных изображений, хранимых в памяти кадров.
[0014] В этом устройстве кодирования видео с предсказанием указатели памяти, указывающие положения хранения соответствующих восстановленных изображений, могут фиксироваться в положениях, например, равных максимальному размеру кадра и 1/(2^L) максимального размера кадра. Поэтому управлению не нужно менять указатели памяти в зависимости от размеров кадра, и можно осуществить более простую реализацию, более эффективное управление памятью. Поскольку интервалы указателей ограничиваются кратными числами 1/(2^L), положения указателей памяти могут вычисляться с помощью операции сдвига, и соответственно можно уменьшить стоимость вычисления.
[0015] Устройство декодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения содержит средство ввода, которое вводит кодированные данные, содержащие сжатые данные изображения, которые включают в себя информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра, заданном в качестве ограничения кодирования, при этом множество изображений, составляющих видеопоследовательность, сжато с помощью либо внутрикадрового предсказания, либо межкадрового предсказания. Устройство декодирования видео с предсказанием дополнительно содержит средство декодирования, которое декодирует сжатые данные изображения и сжатые данные изображения, составляющие информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра, чтобы восстановить изображения и информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра. Устройство дополнительно содержит средство хранения изображений, которое сохраняет одно или несколько восстановленных изображений в качестве опорных изображений, которые должны быть использованы для декодирования последующего изображения, и средство управления памятью, которое управляет средством хранения изображений, при этом, когда размер кадра входных изображений не превышает 1/(2^L) (где L - целое число, равное единице или больше) максимального размера кадра изображений, средство управления памятью определяет, что в памяти кадров можно хранить (2^L) умножить на максимальное количество восстановленных изображений.
[0016] В этом устройстве декодирования видео с предсказанием максимальное количество восстановленных изображений, хранимых в буферной памяти изображений, определяется на основе взаимосвязи между размером кадра, ассоциированным с соответствующими изображениями, образующими видеопоследовательность или сжатые данные изображения, и максимальным размером кадра, заданным в качестве ограничения кодирования. Точнее говоря, когда размер кадра входных изображений, например, больше 1/(2^L) (где L - целое число, равное единице или больше) максимального размера кадра, заданного в качестве ограничения кодирования, максимальное количество хранимых восстановленных изображений устанавливается в N (где N - целое число, равное единице или больше), тогда как определяется, что можно хранить вплоть до (2^L) x N восстановленных изображений, когда размер кадра входных изображений не превышает 1/(2^L) максимального размера кадра. В этой конфигурации, когда размер кадра восстановленных изображений не превышает 1/(2^L) максимального размера кадра, заданного в качестве настройки кодирования, можно увеличить максимальное количество хранимых восстановленных изображений, и соответственно количество хранимых опорных изображений также можно увеличить, чтобы посредством этого повысить эффективность кодирования.
[0017] В устройстве декодирования видео с предсказанием в соответствии с другим вариантом осуществления настоящего изобретения средство управления памятью фиксирует указатели памяти, указывающие положения хранения восстановленных изображений в памяти кадров, при определении максимального количества восстановленных изображений, хранимых в памяти кадров.
[0018] В этом устройстве декодирования видео с предсказанием указатели памяти, указывающие положения хранения восстановленных изображений, могут фиксироваться в положениях, например, равных максимальному размеру кадра и 1/(2^L) максимального размера кадра. Поэтому управлению не нужно менять указатели памяти в зависимости от размеров кадра, и можно осуществить более простую реализацию, более эффективное управление памятью. Поскольку интервалы указателей ограничиваются кратными числами 1/(2^L), положения указателей памяти могут вычисляться с помощью операции сдвига, и поэтому можно уменьшить стоимость эксплуатации.
[0019] Способ кодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения исполняется устройством кодирования видео с предсказанием. Способ содержит этап ввода, на котором вводят множество изображений, образующих видеопоследовательность, и этап кодирования, на котором кодируют изображения с помощью либо внутрикадрового предсказания, либо межкадрового предсказания, чтобы сформировать сжатые данные изображения, включающие в себя информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра, заданном в качестве ограничения кодирования, где сжатые данные изображения сжимаются вместе с данными спецификации кодирования касательно информации о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра. Способ дополнительно содержит этап декодирования, на котором декодируют сжатые данные изображения, чтобы восстановить изображения, этап сохранения изображений, на котором сохраняют одно или несколько восстановленных изображений в качестве опорных изображений, которые должны быть использованы для кодирования последующего изображения, и этап управления памятью, на котором управляют буферной памятью изображений на этапе сохранения изображений, при этом, когда размер кадра входных изображений не превышает 1/(2^L) (где L - целое число, равное единице или больше) максимального размера кадра изображений, этап управления памятью определяет, что в памяти кадров можно хранить (2^L) умножить на максимальное количество восстановленных изображений.
[0020] Программа кодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения содержит модуль ввода, который вводит множество изображений, образующих видеопоследовательность, и модуль кодирования, который кодирует изображения с помощью либо внутрикадрового предсказания, либо межкадрового предсказания, чтобы сформировать сжатые данные изображения, включающие в себя информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра, заданном в качестве ограничения кодирования, и кодирует сжатые данные изображения вместе с данными спецификации кодирования касательно информации о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра. Программа дополнительно содержит модуль декодирования, который декодирует сжатые данные изображения, чтобы восстановить изображения, модуль хранения изображений, который сохраняет одно или несколько восстановленных изображений в качестве опорных изображений, которые должны быть использованы для кодирования последующего изображения, и модуль управления памятью, который управляет буферной памятью изображений в модуле хранения изображений, при этом, когда размер кадра входных изображений не превышает 1/(2^L) (где L - целое число, равное единице или больше) максимального размера кадра изображений, модуль управления памятью определяет, что в памяти кадров можно хранить (2^L) умножить на максимальное количество восстановленных изображений.
[0021] Способ кодирования видео с предсказанием и программа кодирования видео с предсказанием могут добиться таких же результатов, что и вышеупомянутое устройство кодирования видео с предсказанием.
[0022] Способ декодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения исполняется устройством декодирования видео с предсказанием. Способ содержит этап ввода, на котором вводят кодированные данные, содержащие сжатые данные изображения, которые включают в себя размер кадра целевого изображения, максимальное количество хранимых восстановленных изображений и максимальный размер кадра, заданный в качестве ограничения кодирования, при этом множество изображений, составляющих видеопоследовательность, сжимается с помощью либо внутрикадрового предсказания, либо межкадрового предсказания. Способ дополнительно содержит этап декодирования, на котором декодируют сжатые данные изображения и сжатые данные изображения, составляющие информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра, чтобы восстановить изображения и информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра. Способ дополнительно содержит этап сохранения изображений, на котором сохраняют в средстве хранения изображений одно или несколько восстановленных изображений в качестве опорных изображений, которые должны быть использованы для декодирования последующего изображения, и этап управления памятью, на котором управляют средством хранения изображений, при этом, когда размер кадра входных изображений не превышает 1/(2^L) (где L - целое число, равное единице или больше) максимального размера кадра изображений, этап управления памятью определяет, что в памяти кадров можно хранить (2^L) умножить на максимальное количество восстановленных изображений.
[0023] Программа декодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения содержит модуль ввода, который вводит кодированные данные, содержащие сжатые данные изображения, которые включают в себя размер кадра целевого изображения, максимальное количество хранимых восстановленных изображений и максимальный размер кадра, заданный в качестве ограничения кодирования, при этом множество изображений, составляющих видеопоследовательность, сжимается с помощью либо внутрикадрового предсказания, либо межкадрового предсказания. Программа дополнительно содержит модуль декодирования, который декодирует сжатые данные изображения и те сжатые данные изображения, составляющие информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра, чтобы восстановить изображения и информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра. Программа дополнительно содержит модуль хранения изображений, который сохраняет одно или несколько восстановленных изображений в качестве опорных изображений, которые должны быть использованы для декодирования последующего изображения, и модуль управления памятью, который управляет модулем хранения изображений, при этом, когда размер кадра входных изображений не превышает 1/(2^L) (где L - целое число, равное единице или больше) максимального размера кадра изображений, модуль управления памятью определяет, что в памяти кадров можно хранить (2^L) умножить на максимальное количество восстановленных изображений.
[0024] Способ декодирования видео с предсказанием и программа декодирования видео с предсказанием могут добиться таких же результатов, что и вышеупомянутое устройство декодирования видео с предсказанием.
Результаты изобретения
[0025] Устройства, способы и программы кодирования и декодирования видео с предсказанием в соответствии с настоящим изобретением выполняют определение максимального количества восстановленных изображений, хранимых в буферной памяти изображений, в соответствии с размером кадра восстановленных изображений, посредством этого добиваясь эффективного использования буферной памяти изображений, а также повышая эффективность кодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0026] Фиг. 1(a) и 1(b) - чертежи, показывающие буферную память изображений, количество хранимых изображений и положения переменных указателей памяти.
Фиг. 2(a) и 2(b) - чертежи для объяснения проблемы фиксированных указателей памяти в буферной памяти изображений.
Фиг. 3 - блок-схема, показывающая устройство кодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 4 - блок-схема, показывающая устройство декодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 5 - блок-схема алгоритма, показывающая первые способы кодирования и декодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 6(a) и 6(b) - схематические чертежи для объяснения обработки в первых способах кодирования и декодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 7 - чертеж, показывающий аппаратную конфигурацию компьютера для исполнения программы, записанной на носителе записи.
Фиг. 8 - вид в перспективе компьютера для исполнения программы, сохраненной на носителе записи.
Варианты осуществления изобретения
[0027] Варианты осуществления настоящего изобретения будут описываться ниже с использованием фиг. с 3 по 8.
[0028] Фиг. 3 - блок-схема, показывающая устройство кодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения. Номер 301 ссылки обозначает вход, 302 обозначает узел деления на блоки, 303 обозначает узел формирования сигнала предсказания, 304 обозначает память кадров, 305 обозначает узел вычитания, 306 обозначает узел преобразования, 307 обозначает узел квантования, 308 обозначает узел деквантования, 309 обозначает узел обратного преобразования, 310 обозначает узел сложения, 311 обозначает узел энтропийного кодирования, 312 обозначает выход, и 314 обозначает узел управления памятью кадров (или узел управления буфером). Вход 301 составляет средство ввода. Узел 303 формирования сигнала предсказания, узел 305 вычитания, узел 306 преобразования, узел 307 квантования и узел 311 энтропийного кодирования составляют средство кодирования. Узел 308 деквантования, узел 309 обратного преобразования и узел 310 сложения составляют средство декодирования. Память 304 кадров составляет средство хранения изображений. Узел 314 управления памятью кадров составляет средство управления памятью.
[0029] Ниже будет описываться работа устройства кодирования видео с предсказанием, сконфигурированного как описано выше. Видеосигнал, представляющий множество изображений, подается на вход 301. Изображение, которое должно быть кодировано ("целевое изображение"), разделяется на множество областей с помощью узла 302 деления на блоки. В варианте осуществления в соответствии с настоящим изобретением целевое изображение разделяется на блоки, содержащие 8x8 пикселей каждый, но оно может разделяться на блоки любого размера или формы помимо вышеупомянутых. Затем формируется сигнал предсказания для области, которая должна быть кодирована (в дальнейшем называется целевым блоком). Вариант осуществления в соответствии с настоящим изобретением применяет два типа способов предсказания. А именно, ими являются межкадровое предсказание (inter-frame prediction) и внутрикадровое предсказание (intra-frame prediction).
[0030] При межкадровом предсказании восстановленные изображения, которые были кодированы, а после этого восстановлены, используются в качестве опорных изображений, и из опорных изображений определяется информация движения, которая предоставляет сигнал предсказания с наименьшей ошибкой из целевого блока. Этот процесс называется обнаружением движения. В зависимости от ситуаций также допустимо подразделять целевой блок на подобласти и выполнять межкадровое предсказание над каждой из подобластей. В этом процессе способ деления, который приводит к наиболее эффективному результату, принимая во внимание целевой блок в целом, выбирается из различных способов деления, и определяется информация движения каждой подобласти. В варианте осуществления в соответствии с настоящим изобретением эта операция осуществляется в узле 303 формирования сигнала предсказания, в который целевой блок подается по линии (связи) L302, а опорные изображения подаются по L304. Опорные изображения, которые должны быть использованы в этом документе, являются множеством изображений, которые были кодированы и восстановлены. Подробности этой операции такие же, как и традиционные технологии, принятые в MPEG-2 или 4 и H.264. Информация движения и способ деления подобластей, определенные как описано выше, подаются по линии L312 в узел 311 энтропийного кодирования, кодируются посредством этого узла, а затем выводятся из выхода 312. Информация (опорный индекс), идентифицирующая опорное изображение среди множества опорных изображений, из которого формируется сигнал предсказания, также отправляется по линии L312 в узел 311 энтропийного кодирования. В варианте осуществления в соответствии с настоящим изобретением M восстановленных изображений (M - целое число, равное единице или больше) сохраняются в памяти 304 кадров и должны использоваться в качестве опорных изображений. Узел 303 формирования сигнала предсказания получает сигналы опорных изображений из памяти 304 кадров на основе опорных изображений и информации движения, соответствующей способу деления подобластей и каждой подобласти, и формирует сигнал предсказания. Сформированный таким образом сигнал межкадрового предсказания подается по линии L303 в узел 305 вычитания.
[0031] При внутрикадровом предсказании сигнал внутрикадрового предсказания формируется с использованием значений ранее восстановленных пикселей, пространственно смежных с целевым блоком. В частности, узел 303 формирования сигнала предсказания получает сигналы ранее восстановленных пикселей в том же кадре из памяти 304 кадров и экстраполирует эти сигналы, чтобы сформировать сигнал внутрикадрового предсказания. Информация о способе экстраполяции подается по линии L312 в узел 311 энтропийного кодирования, кодируется посредством этого узла и выводится из выхода 312. Сформированный таким образом сигнал внутрикадрового предсказания подается в узел 305 вычитания. Способ формирования сигнала внутрикадрового предсказания в узле 303 формирования сигнала предсказания является традиционной технологией, принятой в H.264. Выбирается один из сигнала межкадрового предсказания и сигнала внутрикадрового предсказания, полученных как описано выше, который создает меньшую ошибку, и выбранный сигнал предсказания подается в узел 305 вычитания.
[0032] Поскольку перед первым изображением нет изображений, все его целевые блоки обрабатываются с помощью внутрикадрового предсказания.
[0033] Узел 305 вычитания вычитает сигнал предсказания (поданный по линии L303) из сигнала целевого блока (поданного по линии L302), чтобы сформировать остаточный сигнал. Этот остаточный сигнал подвергается дискретному косинусному преобразования с помощью узла 306 преобразования, а затем результирующие коэффициенты преобразования квантуются узлом 307 квантования. В конечном счете узел 311 энтропийного кодирования кодирует квантованные коэффициенты преобразования, и кодированные данные выводятся из выхода 312 вместе с информацией о способе предсказания.
[0034] Чтобы выполнить внутрикадровое предсказание или межкадровое предсказание над последующим целевым блоком, сжатый сигнал целевого блока обратно обрабатывается и восстанавливается. А именно, квантованные коэффициенты преобразования обратно квантуются узлом 308 деквантования, а затем подвергаются обратному дискретному косинусному преобразованию с помощью узла 309 обратного преобразования, чтобы восстановить остаточный сигнал. Узел 310 сложения добавляет восстановленный остаточный сигнал к сигналу предсказания, поданному по линии L303, чтобы восстановить сигнал целевого блока, который хранится в памяти 304 кадров. Хотя настоящий вариант осуществления применяет узел 306 преобразования и узел 309 обратного преобразования, также можно использовать другие типы преобразующей обработки вместо этих узлов преобразования. В зависимости от ситуаций узел 306 преобразования и узел 309 обратного преобразования можно исключить.
[0035] Память 304 кадров является ограниченным хранилищем и не может хранить все восстановленные изображения. В памяти 304 кадров хранятся только восстановленные изображения, которые должны быть использованы для кодирования последующего изображения. Узел 314 управления памятью кадров является узлом, который управляет этой памятью 304 кадров. Узел 314 управления памятью кадров управляет памятью 304 кадров, чтобы удалить самое старое изображение среди M восстановленных изображений (M - целое число, равное единице или больше), сохраненных в памяти 304 кадров, так что самое последнее восстановленное изображение можно сохранить в качестве опорного изображения. Через вход 313 подаются размер кадра каждого изображения и максимальный размер кадра, заданный в качестве ограничения кодирования (профиль и уровень), на основе которых определяется максимальное количество восстановленных изображений, хранимых в памяти кадров, и узел 314 управления памятью кадров работает для хранения восстановленных изображений в пределах максимального количества. Одновременно информация о размере кадра каждого изображения, максимальном размере кадра, заданном в качестве ограничения кодирования, и максимальном количестве восстановленных изображений, хранимых в памяти кадров, подается по линии L314 в узел 311 энтропийного кодирования, кодируется посредством этого узла и выводится вместе со сжатыми данными изображения. Размер кадра, максимальный размер кадра, заданный в качестве ограничения кодирования, и максимальное количество восстановленных изображений, хранимых в памяти кадров, ассоциируются с каждым изображением. Размер кадра может выражаться прямым значением размера кадра или может выражаться в виде экспоненты либо степени. Если максимальный размер кадра задается заранее в виде информации о профиле и уровне, то максимальный размер кадра может вводиться с использованием этой информации. Следует отметить, что в настоящем варианте осуществления значение размера кадра непосредственно преобразуется в двоичные данные, и максимальный размер кадра задается в виде информации об уровне. Позже будет описываться, как управляется узел 314 управления памятью кадров.
[0036] Далее будет описываться способ декодирования видео с предсказанием. Фиг. 4 - блок-схема, показывающая устройство декодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения. Номер 401 ссылки обозначает вход, 402 обозначает узел анализа данных, 403 обозначает узел деквантования, 404 обозначает узел обратного преобразования, 405 обозначает узел сложения, 408 обозначает узел формирования сигнала предсказания, 407 обозначает память кадров, 406 обозначает выход и 409 обозначает узел управления памятью кадров. Вход 401 составляет средство ввода. Узел 403 деквантования и узел 404 обратного преобразования составляют средство декодирования. Вместо вышеупомянутого могут применяться другие типы средства декодирования. Память 407 кадров составляет средство хранения изображений. Узел 409 управления памятью кадров составляет средство управления памятью. Кроме того, средство декодирования может конфигурироваться без узла 404 обратного преобразования.
[0037] Ниже будет описываться работа устройства декодирования видео с предсказанием, сконфигурированного как описано выше. Сжатые данные, кодированные как описано выше, вводятся через вход 401. Сжатые данные содержат остаточный сигнал, возникающий из кодирования с предсказанием каждого целевого блока, полученного путем деления изображения на множество блоков, и информацию о формировании сигнала предсказания. Информация о формировании сигнала предсказания включает в себя информацию о делении блоков (размер блока), информацию движения и вышеупомянутый опорный индекс, когда выполнялось межкадровое предсказание, или включает в себя информацию о способе экстраполяции, выполненном над восстановленными окружающими пикселями, когда выполнялось внутрикадровое предсказание.
[0038] Узел 402 анализа данных извлекает из сжатых данных остаточный сигнал целевого блока, информацию о формировании сигнала предсказания, параметр квантования, размер кадра изображений, максимальный размер кадра, заданный в качестве ограничения кодирования, и максимальное количество восстановленных изображений, хранимых в памяти кадров. Остаточный сигнал целевого блока обратно квантуется с параметром квантования (поданным по линии L402) с помощью узла 403 деквантования. Результат подвергается обратному дискретному косинусному преобразованию с помощью узла 404 обратного преобразования.
[0039] Далее информация о формировании сигнала предсказания подается по линии L406b в узел 408 формирования сигнала предсказания. Узел 408 формирования сигнала предсказания обращается к памяти 407 кадров на основе информации о формировании сигнала предсказания для получения опорного сигнала из множества опорных изображений, чтобы сформировать сигнал предсказания. Этот сигнал предсказания подается по линии L408 в узел 405 сложения. Узел 405 сложения добавляет сигнал предсказания к восстановленному остаточному сигналу, чтобы восстановить сигнал целевого блока, который выводится по линии L405 и одновременно сохраняется в память 407 кадров.
[0040] Восстановленные изображения, которые должны быть использованы для декодирования и восстановления последующего изображения, сохраняются в памяти 407 кадров. Узел 409 управления памятью кадров управляет памятью 407 кадров. Память 407 кадров управляется, чтобы удалять самое старое среди сохраненных M восстановленных изображений (M - целое число), чтобы могло сохраняться самое последнее восстановленное изображение, используемое в качестве опорного изображения. Информация о размере кадра целевого изображения, максимальном размере кадра, заданном в качестве ограничения кодирования, и максимальном количестве восстановленных изображений, хранимых в памяти кадров, подается по линии L406a в узел 409 управления памятью кадров, на основе чего работает узел 409 управления памятью кадров. Позже будет описываться, как управляется узел 409 управления памятью кадров.
[0041] Операции в способе кодирования видео с предсказанием и способе декодирования видео с предсказанием будут описываться ниже с использованием фиг. 5 и 6. Фиг. 5 - блок-схема алгоритма, показывающая способы кодирования и декодирования видео с предсказанием в соответствии с вариантом осуществления настоящего изобретения. Будут объясняться переменные, отмеченные на том же чертеже. pic_width является переменной, указывающей счет пикселей яркости поперечной ширины восстановленных изображений, pic_height является переменной, указывающей счет пикселей яркости ширины по вертикали восстановленных изображений, MaxLumaFS является переменной, указывающей максимальный размер изображения, заданный информацией об уровне, MFSBuffer является переменной, указывающей объем буфера памяти, выраженный максимальным количеством восстановленных изображений, хранимых в буфере декодированных изображений (DPB), которое задается в качестве информации об уровне, maxDPBsize является переменной, указывающей объем буфера памяти, выраженный максимальным количеством восстановленных изображений, хранимых в буфере декодированных изображений (DPB), max_dec_pic_buffering является переменной, указывающей максимальное количество хранения (объем буфера памяти) восстановленных изображений, используемых при декодировании, и DPBpointer является переменной, указывающей указатель, указывающий положение хранения восстановленного изображения в буфере декодированных изображений.
[0042] На фиг. 5 входными данными являются pic_width, указывающая счет пикселей яркости поперечной ширины восстановленных изображений, pic_height, указывающая счет пикселей яркости ширины по вертикали восстановленных изображений, MaxLumaFS, указывающая максимальный размера кадра, заданный в качестве ограничения кодирования, и MFSBuffer, указывающая объем буфера памяти, выраженный максимальным количеством восстановленных изображений, хранимых в буфере декодированных изображений (DPB). Далее произведение pic_width, указывающей счет пикселей яркости поперечной ширины восстановленных изображений, и pic_height, указывающей счет пикселей яркости ширины по вертикали восстановленных изображений, во входных данных сравнивается с половиной (MaxLumaFS/2) от MaxLumaFS, указывающей максимальный размер изображения, заданный в качестве ограничения кодирования (этап S502). Если условие не выполняется (или если произведение pic_width и pic_height больше MaxLumaFS/2), то устанавливается maxDPBsize=MFSBuffer (этап S503). Если условие выполняется (или если произведение pic_width и pic_height не превышает MaxLumaFS/2), то устанавливается maxDPBsize=2*MFSBuffer (этап S504).
(Операции)
maxDPBsize=2*MFSBuffer (если pic_width*pic_height≤(MaxLumaFS>>1))
maxDPBsize=MFSBuffer (в противном случае)
В вышеприведенной операции ">>" представляет операцию сдвига вправо и имеет такой же смысл, что и MaxLumaFS/2.
[0043] Затем объем буфера памяти (max_dec_pic_buffering), выраженный максимальным количеством хранения восстановленных изображений, используемых при декодировании, устанавливается не превышающим maxDPBsize.
(Операция)
max_dec_pic_buffering≤maxDPBsize
[0044] Если maxDPBsize=MFSBuffer, как показано на фиг. 6(a), то DPBpointer=1 устанавливается в начало буфера памяти изображений, а DPBpointer=2, 3 и 4 устанавливаются соответственно в положения, отдаленные от положения DPBpointer=1 в два раза, три раза и четыре раза больше максимального размера кадра.
[0045] Если maxDPBsize=2*MFSBuffer, как показано на фиг. 6(b), то в дополнение к уже установленным указателям DPB с 1 по 4 дополнительные указатели DPB устанавливаются соответственно в положения, отдаленные от положения DPBpointer=1 в 1/2 раза, 3/2 раз, 5/2 раз и 7/2 раз больше максимального размера кадра (этап S505).
[0046] max_dec_pic_buffering и указатели DPB, установленные таким образом, используются в операции управления памятью кадров на этапе S508, который описан ниже. А именно, во время декодирования восстановленные изображения сохраняются в памяти кадров вплоть до максимального количества max_dec_pic_buffering, и при сохранении восстановленные изображения управляются для сохранения на основе указателей DPB, которые установлены выше. При кодировании информация задается извне, что включает в себя информацию о pic_width, указывающей счет пикселей яркости поперечной ширины восстановленных изображений, и pic_height, указывающей счет пикселей яркости ширины по вертикали восстановленных изображений, и информацию об уровне о MaxLumaFS, указывающей максимальный размер изображения, и MFSBuffer, указывающей объем буфера памяти, выраженный максимальным количеством восстановленных изображений, хранимых в буфере декодированных изображений (DPB). На фиг. 3 информация подается через вход 313 от не показанного управляющего устройства.
[0047] С другой стороны, на этапе S506 целевое изображение кодируется, а затем декодируется по способу, описанному с помощью фиг. 3. Кодированные данные изображения выводятся вовне или сохраняются. На этапе S507 определяется, нужно ли использовать целевое изображение в качестве опорного изображения при последующей обработке. Определение на этапе S507 зависит от того, как кодируется изображение (кодирование с внутрикадровым предсказанием, кодирование с межкадровым предсказанием или кодирование с двунаправленным предсказанием). Когда целевое изображение не используется в качестве опорного изображения, алгоритм переходит к этапу S510. Когда целевое изображение используется в качестве опорного изображения, алгоритм переходит к этапу S508, где указатели DPB устанавливаются в положения, показанные на фиг. 6(a) или 6(b). Затем декодированное и восстановленное изображение на этапе S509 сохраняется в память кадров, и алгоритм переходит к этапу S511. Если на этапе S511 имеется следующее изображение, то алгоритм переходит к S506, тогда как если следующее изображение отсутствует, то процесс завершается. Процесс кодирования исполняется таким образом до последнего изображения.
[0048] Вышеописанные процессы выполняются во всем устройстве кодирования видео, показанном на фиг. 3. В частности, этапы S502, S503, 5504, S505 и S508 осуществляются в узле 314 управления памятью кадров.
[0049] Процесс, показанный на фиг. 5, описывался выше в качестве способа кодирования видео, но применим к обработке в способе декодирования видео. Когда выполняется декодирование, на этапе S501 вводятся сжатые и кодированные данные изображения (поток битов). Из входных данных извлекаются pic_width, указывающая счет пикселей яркости поперечной ширины восстановленных изображений, pic_height, указывающая счет пикселей яркости ширины по вертикали восстановленных изображений, MaxLumaFS, указывающая максимальный размера кадра, заданный в качестве ограничения кодирования, MFSBuffer, указывающая объем буфера памяти, выраженный максимальным количеством восстановленных изображений, хранимых в буфере декодированных изображений (DPB), и max_dec_pic_buffering, указывающая максимальное количество хранения (объем буфера памяти) восстановленных изображений, используемых при декодировании, и этапы S502-S505 и S508 осуществляются, как описано выше. На декодирующей стороне на этапе S505 проверяется, не превышает ли восстановленная max_dec_pic_buffering переменную maxDPBsize. На этапе S506 сжатые данные целевого изображения декодируются для восстановления изображения. Этап S507 и последующие этапы выполняются, как описано выше. Эти процессы выполняются в устройстве декодирования видео, показанном на фиг. 4. В частности, этапы S502, S503, S504, 5505 и S508 осуществляются в узле 409 управления памятью кадров в устройстве декодирования видео.
[0050] Фиг. 6(a) и 6(b) - схематические представления для объяснения положений указателей памяти в памяти кадров, реализованных в способах кодирования и декодирования видео с предсказанием и в соответствии с вариантом осуществления настоящего изобретения. Сравнение между фиг. 6(a) и 6(b) обнаруживает, что положения указателей памяти с 1 по 4 являются фиксированными. Когда выполняется условие на этапе S503, добавляются новые указатели памяти с 5 по 8. А именно, независимо от результата определения на этапе S503 положения указателей памяти являются фиксированными.
[0051] (Положения указателей памяти)
В настоящем варианте осуществления указатели памяти с 1 по 4 и с 5 по 8 устанавливаются поочередно, но указателям памяти можно назначить номера, увеличивающиеся от 1 до 8.
[0052] (Количество делений памяти)
В настоящем варианте осуществления pic_width, указывающая счет пикселей яркости поперечной ширины восстановленных изображений, и pic_height, указывающая счет пикселей яркости ширины по вертикали восстановленных изображений, сравниваются с половиной (MaxLumaFS/2) от MaxLumaFS, указывающей максимальный размер кадра, заданный в качестве ограничения кодирования. Однако следует отметить, что pic_width, указывающая счет пикселей яркости поперечной ширины восстановленных изображений, и pic_height, указывающая счет пикселей яркости ширины по вертикали восстановленных изображений, можно сравнивать с максимальным размером кадра MaxLumaFS/(2^L) (где L - целое число, равное 2 или больше), заданным в качестве ограничения кодирования. При таком сравнении положения указателей памяти, указывающие положения хранения восстановленных изображений, могут устанавливаться так, что указатели памяти размещаются в положениях, определенных с помощью 1/(2^L) от MaxLumaFS, тогда как уже размещенные указатели фиксируются, как показано на фиг. 6(a) и 6(b).
[0053] (Определение размера кадра)
В настоящем варианте осуществления размер кадра выражается с помощью pic_width, указывающей счет пикселей яркости поперечной ширины восстановленных изображений, и pic_height, указывающей счет пикселей яркости ширины по вертикали восстановленных изображений. Однако следует отметить, что также можно использовать значение, указывающее уже умноженное значение, которое означает размер кадра. Размер кадра также может вычисляться по способу, отличному от вышеупомянутого.
[0054] В настоящем варианте осуществления в качестве информации об уровне задаются MaxLumaFS, указывающая максимальный размер изображения, и MFSBuffer, указывающая объем буфера памяти, выраженный максимальным количеством восстановленных изображений, имеющих размер MaxLumaFS, хранимых в буфере декодированных изображений (DPB). Однако следует отметить, что их не нужно передавать в качестве информации об уровне. Они могут добавляться в качестве информации, отличной от информации об уровне.
[0055] В настоящем варианте осуществления FSBuffer и maxDPBsize выражаются максимальным количеством хранимых восстановленных изображений. Однако следует отметить, что они могут выражаться в виде фактического объема памяти. При таком выражении количество восстановленных изображений вычисляется путем деления объема памяти на размер кадра.
[0056] Поскольку максимальное количество восстановленных изображений, хранимых в буферной памяти изображений, определяется на основе взаимосвязи между размером кадра изображения и максимальным размером кадра, заданным в качестве ограничения кодирования, когда фактический размер кадра меньше максимального размера кадра, можно уменьшить бесполезный расход памяти кадров, а области памяти для хранения опорных изображений можно увеличить, чтобы посредством этого сделать возможным дальнейшее повышение эффективности кодирования.
[0057] Программа кодирования видео с предсказанием и программа декодирования видео с предсказанием, чтобы компьютер функционировал как вышеупомянутое устройство кодирования видео с предсказанием и устройство декодирования видео с предсказанием, могут предоставляться в виде программ, сохраненных на носителе записи. Примеры таких носителей записи включают в себя такие носители записи, как гибкие (зарегистрированный товарный знак) диски, CD-ROM, DVD и ROM, полупроводниковые запоминающие устройства, и т.п.
[0058] В частности, программа кодирования видео с предсказанием снабжается модулем ввода, который реализует ввод множества изображений, составляющих видеопоследовательность, модулем кодирования, который кодирует изображения с помощью либо внутрикадрового предсказания, либо межкадрового предсказания, чтобы сформировать сжатые данные изображения, включающие в себя информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра в качестве настройки кодирования, и кодирует сжатые данные изображения вместе с данными спецификации кодирования касательно информации о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра, модулем декодирования, который декодирует сжатые данные изображения, чтобы воспроизвести изображения, модулем хранения изображений, который сохраняет одно или несколько восстановленных изображений в качестве опорных изображений, которые должны быть использованы для кодирования последующего изображения, и модулем управления памятью, который управляет буферной памятью изображений в модуле хранения изображений, при этом, когда размер кадра входных изображений не превышает 1/(2^L) (где L - целое число, равное единице или больше) максимального размера кадра изображений, модуль управления памятью определяет, что в памяти кадров можно хранить (2^L) умножить на максимальное количество восстановленных изображений.
[0059] Программа декодирования видео с предсказанием снабжается модулем ввода, который реализует ввод кодированных данных, содержащих сжатые данные изображения, которые включают в себя информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра в качестве настройки кодирования, при этом множество изображений, составляющих видеопоследовательность, кодируется с помощью либо внутрикадрового предсказания, либо межкадрового предсказания, модулем декодирования, который декодирует сжатые данные изображения и сжатые данные изображения, составляющие информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра, чтобы восстановить восстановленные изображения и информацию о размере кадра целевого изображения, максимальном количестве хранимых восстановленных изображений и максимальном размере кадра, модулем хранения изображений, который сохраняет одно или несколько восстановленных изображений в качестве опорных изображений, которые должны быть использованы для декодирования последующего изображения, и модулем управления памятью, который управляет модулем хранения изображений, при этом, когда размер кадра входных изображений не превышает 1/(2^L) (где L - целое число, равное единице или больше) максимального размера кадра изображений, модуль управления памятью определяет, что в памяти кадров можно хранить (2^L) умножить на максимальное количество восстановленных изображений.
[0060] Фиг. 7 - чертеж, показывающий аппаратную конфигурацию компьютера для исполнения программы, записанной на носителе записи, а фиг. 8 - вид в перспективе компьютера для исполнения программы, сохраненной на носителе записи. Компьютер охватывает проигрыватель DVD, телевизионную приставку, сотовый телефон и т.п., снабженные CPU и сконфигурированные для выполнения процессов и управления с помощью программного обеспечения.
[0061] Как показано на фиг. 7, компьютер 30 снабжается считывающим устройством 12, например дисководом для гибких (зарегистрированный товарный знак) дисков, дисководом для компакт-дисков или дисководом для DVD-дисков, рабочей памятью (RAM) 14, в которой находится операционная система, памятью 16 для хранения программ, сохраненных на носителе 10 записи, монитором 18 типа устройства отображения, мышью 20 и клавиатурой 22 в качестве устройств ввода, устройством 24 связи для передачи и приема данных или т.п., и CPU 26 для управления исполнением программ. Когда носитель 10 записи помещается в считывающее устройство 12, компьютер 30 становится доступным программе кодирования или декодирования видео с предсказанием, сохраненной на носителе 10 записи посредством считывающего устройства 12, и становится способным работать в качестве устройства кодирования или декодирования видео с предсказанием в соответствии с настоящим изобретением, на основе программы кодирования или декодирования видео с предсказанием.
[0062] Как показано на фиг. 8, программа кодирования видео с предсказанием или программа декодирования видео с предсказанием может предоставляться по сети в виде компьютерного сигнала 40 данных, наложенного на несущую. В этом случае компьютер 30 может исполнить программу кодирования видео с предсказанием или программу декодирования видео с предсказанием после того, как программа кодирования видео с предсказанием или программа декодирования видео с предсказанием, принятая устройством 24 связи, сохраняется в памяти 16.
Список ссылочных позиций
[0063] 301 вход; 302 узел деления на блоки; 303 узел формирования сигнала предсказания; 304 память кадров; 305 узел вычитания; 306 узел преобразования; 307 узел квантования; 308 узел деквантования; 309 узел обратного преобразования; 310 узел сложения; 311 узел энтропийного кодирования; 312 выход; 313 вход; 314 узел управления памятью кадров; 401 вход; 402 узел анализа данных; 403 узел деквантования; 404 узел обратного преобразования; 405 узел сложения; 406 выход; 407 память кадров; 408 узел формирования сигнала предсказания; 409 узел управления памятью кадров.