УСТРОЙСТВО ОБРАБОТКИ ИЗОБРАЖЕНИЯ, СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЯ И ПРОГРАММА
IMAGE PROCESSING DEVICE, IMAGE PROCESSING METHOD AND PROGRAMME

УРОВЕНЬ ТЕХНИКИ
Область техники, к которой относится изобретение
Настоящее изобретение относится к устройству обработки изображения, способу обработки изображения и программе и, в частности, к устройству обработки изображения, способу обработки изображения и программе, которые выполнены с возможностью улучшения эффективности кодирования при кодировании изображений.
Уровень техники
В последние годы устройство кодирования или устройство декодирования, которое основано на MPEG (Группа экспертов движущегося изображения) или тому подобном, получило широкое использование при распространении информации в станциях широковещательной передачи или тому подобном и приеме информации в обычном доме. Устройство кодирования или устройство декодирования обрабатывает информацию изображения как цифровой сигнал и в контексте эффективной передачи и накоплении информации при этом сжимает информацию изображения, используя ортогональное преобразование, такое как дискретное косинусное преобразование, и компенсацию движения, используя избыточность, присущую информации изображения.
Таким образом, широкое распространение получило устройство кодирования, которое кодирует информацию изображения путем кодирования, используя, например, MPEG, Н.26х или тому подобное, применяя ортогональное преобразование, такое как дискретное косинусное преобразование или преобразование Кархунена-Лоэва, и компенсацию движения. Кроме того, широкое распространение получило устройство декодирования, которое используется для приема кодированных данных (потока битов), полученных устройством кодирования через сетевую среду, такую как спутниковая широковещательная передача, кабельное телевидение или Интернет, или используется для воспроизведения кодированных данных, записанных на носитель записи, такой как оптический диск, магнитный диск или запоминающее устройство типа «флэш».
Например, MPEG2 (ISO/IEC 13818-2) определено как кодирование изображения общего использования и часто применяется в настоящее время в широком диапазоне в профессиональных и бытовых областях применения как стандарт, используемый как для изображений с чересстрочной разверткой (чересстрочные изображения), так и для изображений с последовательной разверткой (прогрессивные изображения), а также для изображений со стандартным разрешением и изображений высокой четкости. При использовании сжатия MPEG2 количество кодов (скорость передачи битов) 4-8 Мбит/с присваивают чересстрочным изображениям со стандартным разрешением, например, имеющим размер 720 пикселей по горизонтали ×480 пикселей по вертикали, и количество кодов от 18-22 Мбит/с присваивают изображениям с чересстрочной разверткой, с высоким разрешением, имеющим размер 1920×1088 пикселей, при этом могут быть реализованы высокая степень сжатия и удовлетворительное качество изображения.
MPEG2 в основном используют при высококачественном кодировании, которое пригодно для широковещательной передачи, но такое кодирование не способно обеспечить кодирование с количеством кодов (скоростью передачи битов) меньшим, чем у MPEG1, то есть, со степенью сжатия более высокой, чем у MPEG1. По мере распространения мобильных телефонов в будущем возникнет большая потребность в таком кодировании, и, соответственно, была создана стандартизация кодирования MPEG4. Что касается кодирования изображения, в декабре 1998 г. эта спецификация была принята в качестве международного стандарта ISO/IEC 14496-2.
В последние годы в контексте кодирования изображения для видеоконференции был принят стандарт H.26L (ITU-T Q6/16 VCEG). Известно, что при использовании Н.264 количество арифметических операций для кодирования и декодирования увеличивается по сравнению с известным кодированием, таким как MPEG2 или MPEG4, но реализуется более высокая эффективность кодирования.
Как часть действий по разработке MPEG4 в марте 2003 г. был принят стандарт, в котором H.26L используется как основа и в который была внедрена функция, которая не поддерживается H.26L и которая позволяет обеспечить более высокую эффективность кодирования, в виде обобщенной модели видеокодирования с улучшенной степенью сжатия, и который применяется как международный стандарт Н.264 и MPEG-4 Часть 10 (усовершенствованное видеокодирование) (ниже называется просто Н.264/AVC или AVC).
В соответствии с AVC во время компенсации движения, когда формируется прогнозируемое изображение, множество изображений могут быть обозначены как опорные изображения.
В устройстве декодирования AVC изображения после декодирования (декодированные изображения), включающие в себя изображения, используемые как опорные изображения, сохраняют в буфере, который называется DPB (буфер декодированных кадров).
В DPB изображение, которое является опорным в течение короткого срока, помечается как краткосрочный опорный кадр (используется для ссылки в течение краткого срока), изображение, которое является опорным в течение длительного срока, помечается как долгосрочный опорный кадр (используется для ссылки в течение длительного срока), и изображение, которое не является опорным, помечается как не опорный кадр (не используемое для ссылки).
Изображения (декодированные изображения), хранящиеся в DPB, сортируют в порядке изображения и выводят (считывают) в моменты времени, обозначенные заранее.
Размер DPB определяется по профилю и уровню и задается количеством битов, а не количеством изображений.
Таким образом, количество изображений, которое может быть сохранено в DPB, изменяется в зависимости от кадров изображений или тому подобного даже на одном и том же профиле и уровне.
Например, в основном профиле, уровень 4, размер MaxDPB для DPB задается выражением MaxDPB=12288,0×1024 байтов.
Таким образом, в основном профиле, уровень 4, например, когда изображение в формате YUV 4:2:0 с размером 1440 пикселей по горизонтали ×1088 пикселей по вертикали представляет собой изображение, которое должно быть кодировано (текущее изображение в процессе кодирования), DPB может сохранять максимум пять изображений.
Кроме того, в основном профиле, уровень 4, например, когда изображение в формате YUV 4:2:0 с размером 1920 пикселей по горизонтали ×1088 пикселей по вертикали представляет собой текущее изображение в процессе кодирования, DPB может сохранять максимум четыре изображения.
В устройстве кодирования AVC, учитывая размер DPB в устройстве декодирования, кодирование должно быть выполнено в порядке вывода, в котором изображения выводят из DPB, или таким образом, чтобы не возникало противоречия в изображении, которое является опорным при формировании прогнозируемого изображения.
При управлении DPB известны два типа процесса управления памятью - типа скользящего окна и процесса адаптивного управления памятью (например, Shinya Kakuno, Yoshihiro Kikuchi, and Teruhiko Suzuki, "Impress Standard Textbook Series Third Revised Edition H.264/AVC Textbook", Impress Corporation).
В процессе управления памятью типа скользящего окна DPB управляют в соответствии с подходом FIFO (первым прибыл - первым обслужен), и изображения, хранящиеся в DPB, выводят в порядке возрастания frame_num (становятся неопорными изображениями).
Таким образом, в процессе управления памятью типа скользящего окна кадр I (внутрикадровое), кадр Р (прогнозируемое) и кадр Bs, который представляет собой подлежащий ссылке кадр В (двунаправленное прогнозируемое), хранятся в DPB как краткосрочные опорные изображения.
Затем, после того как будет сохранено такое количество опорных кадров, которое может содержаться в DPB, самый ранний (самый старый) краткосрочный опорный кадр среди краткосрочных опорных кадров, хранящихся в DPB, выводится.
Когда долгосрочные опорные изображения хранятся в DPB, процесс управления памятью типа скользящего окна не влияет на долгосрочные опорные изображения, хранящиеся в DPB. Таким образом, в процессе управления памятью типа скользящего окна только краткосрочными опорными изображения среди опорных кадров управляют с использованием подхода FIFO.
В процессе адаптивного управления памятью изображениями, сохраненными в DPB, управляют, используя команду, которая называется ММСО (операция административного управления памятью).
В соответствии с командой ММСО для опорных кадров, хранящихся в DPB, краткосрочные опорные изображения устанавливают как неопорные изображения, или индекс долгосрочного кадра для управления долгосрочными опорными изображениями присваивают каждый из краткосрочных опорных кадров. Таким образом, краткосрочные опорные изображения могут быть установлены как долгосрочные опорные изображения, при этом может быть установлено максимальное значение индекса долгосрочного кадра, или все опорные изображения могут быть установлены как неопорные изображения.
В случае AVC, компенсацию движения опорных кадров, хранящихся в DPB, выполняют таким образом, что выполняют межкадровое прогнозирование для формирования прогнозируемого изображения. Межкадровое прогнозирование кадра В (включая кадр Bs) может использовать максимальный из двух опорных кадров. Межкадровое прогнозирование с использованием этих двух опорных кадров соответственно называется прогнозированием L0 (список 0) и прогнозированием L1 (список 1).
Для кадра В (включая кадр Bs) при межкадровом прогнозировании используется либо прогнозирование L0, либо прогнозирование L1, или как прогнозирование L0, так и прогнозирование L1 одновременно. Для кадра Р в качестве межкадрового прогнозирования используется только прогнозирование L0.
При межкадровом прогнозировании опорными изображениями, на которые опираются при формировании прогнозируемого изображения, управляют на основе списка опорных кадров.
В списке опорных кадров номер опорного кадра (индекс ссылки) для обозначения опорного кадра, к которому обращаются при формировании прогнозируемого изображения, присваивают каждому из опорных кадров, хранящихся в DPB.
Когда текущее изображение в процесс декодирования, которое представляет собой изображение, которое должно быть декодировано (и текущее изображение в процессе кодирования), представляет собой кадр Р, как описано выше, поскольку используется только прогнозирование L0 в качестве межкадрового прогнозирования для кадра Р, присвоение номера опорного кадра выполняют только для прогнозирования L0.
Когда текущее изображение в процессе декодирования представляет собой кадр В (включая в себя кадр Bs), как описано выше, поскольку используются как прогнозирование L0, так и прогнозирование L1 в качестве межкадрового прогнозирования для кадра В, присвоение номера опорного кадра выполняют как для прогнозирования L0, так и для прогнозирования L1.
Номер опорного кадра для прогнозирования L0 также называется индексом L0, а номер опорного кадра для прогнозирования L1 также называется индексом L1.
Когда текущее изображение в процессе декодирования представляет собой кадр Р, при принятом по умолчанию AVC (заранее установленное значение), для опорных кадров, хранящихся в DPB, меньший номер опорного кадра (индекс L0) присваивают более позднему опорному изображению в порядке декодирования.
Номер опорного кадра представляет собой целое число, равное или большее 0, и минимальное его значение равно 0. Таким образом, когда текущее изображение в процессе декодирования представляет собой кадр Р, для индекса L0 0 присваивают опорному кадру, который декодируют непосредственно перед текущим изображением в процессе декодирования.
Когда текущее изображение в процессе декодирования представляет собой кадр В (включая кадр Bs), при принятом по умолчанию AVC, для опорных кадров, хранящихся в DPB, номер опорного кадра (индекс L0 и индекс L1) присваивают в порядке РОС (подсчет порядка изображения), то есть в порядке изображения.
Таким образом, в случае прогнозирования L0 для опорных кадров, которые по времени являются более ранними, чем текущее изображение в процессе декодирования в порядке изображения, индекс L0, имеющий меньшее значение, присваивают опорному кадру, который расположен ближе к текущему изображению в процессе декодирования. Далее, для опорных кадров, по времени следующих позже текущего изображения в процессе декодирования в порядке изображения, индекс L0, имеющий меньшее значение, присваивают опорному кадру, расположенному ближе к текущему изображению в процессе декодирования.
В случае прогнозирования L1 для опорных кадров, по времени следующих после текущего изображения в процессе декодирования в порядке изображения, индекс L1, имеющий меньшее значение, присваивают опорному кадру, расположенному ближе к текущему изображению в процессе декодирования. Далее, в отношении опорных кадров, которые по времени следуют раньше, чем текущее изображение в процессе декодирования, в порядке изображения, индекс L1, имеющий меньшее значение, присваивают опорному кадру, расположенному ближе к текущему изображению в процессе декодирования.
Присвоение номера опорного кадра (индекс L0 и индекс L1) при принятом по умолчанию AVC выполняют для каждого из краткосрочных опорных кадров. Присвоение номера опорного кадра для долгосрочного опорного кадра выполняют после назначения номера опорного кадра для краткосрочного опорного кадра.
Таким образом, при принятом по умолчанию AVC номер опорного кадра, имеющий большее значение, чем номер опорного кадра, назначенный для каждого из краткосрочных опорных кадров, присваивают каждому из долгосрочных опорных кадров.
В случае AVC присвоение номера опорного кадра может быть выполнено произвольно, используя команду, называемую изменением порядка в списке опорных кадров (ниже также называется командой RPLR), в дополнение к описанному выше принятому по умолчанию способу.
После того как присвоение номера опорного кадра будет выполнено, используя команду PvPLR, когда существует опорный кадр, которому не присвоен номер опорного кадра, номер опорного кадра присваивают опорному кадру, используя принятый по умолчанию способ.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В последние годы были созданы стереоскопические изображения, которые можно просматривать стереоскопически, в дополнение к двумерным изображениям.
Для изображения стереоскопических изображений применяют специальное устройство (ниже называемое стереоскопическим устройством). В таком стереоскопическом устройстве, например, используется система стереоскопического кадра IP (интегральная фотография), которая была разработана NHK (Japan Broadcasting Corporation).
Данные изображения для стереоскопических изображений составлены из данных изображения, снятых с множества точек съемки (данные изображения для изображений, снятых с множества точек). Таким образом, может быть реализовано так называемое "многообзорное телевидение", в котором, поскольку используется большое количество точек обзора и точки обзора расположены в широком диапазоне, объект можно просматривать из разных направлений.
Что касается стереоскопических изображений, стереоскопическое изображение, имеющее наименьшее количество точек обзора, представляет собой 3D (трехмерное) изображение (стереоизображение), снятое из двух точек. Данные изображения 3D изображения включают в себя данные изображения для левого глаза (ниже также называется изображением L (левое)), которое представляет собой изображение, наблюдаемое левым глазом, и данные изображения для правого глаза (ниже также называется изображением R (правое)), которое представляет собой изображение, наблюдаемое правым глазом.
Поток стереоскопических изображений, включающих в себя 3D изображение, составлен из потока множества изображений, когда один и тот же объект просматривают с множества разных точек обзора, то есть, поток изображений, полученных с множества точек обзора, отличающихся друг от друга. В качестве технологии кодирования и декодирования потока стереоскопических изображений, составляющих поток изображений, снятых с множества точек обзора, известно MVC (кодирование видеоданных для множества точек обзора), но устройство декодирования MVC не нашло широкого использования.
В настоящее время широкое применение нашло устройство декодирования AVC, с помощью которого декодируют содержание двумерных изображений. Существует все больший спрос на устройство декодирования AVC, позволяющее декодировать содержимое 3D изображений, количество которых будет увеличиваться в будущем.
Следовательно, рассматривается способ, в котором изображения из изображения L и изображения R, составляющие 3D изображение, располагают поочередно для кодирования двух потоков - потока изображения L и потока изображения R, в виде одного потока, называемого последовательностью кадров, используя AVC.
В этом случае, кодированные данные, которые получают путем кодирования последовательности кадров с помощью AVC, могут быть декодированы с помощью устройства декодирования AVC, получившего широкое использование.
В то же время, как описано выше, поскольку размер DPB устройства декодирования AVC определен по профилю и уровню, ограниченное количество кадров может быть сохранено в DPB.
В последовательности кадров, поскольку кадры изображения L и изображения R расположены поочередно, кадр непосредственно перед текущим кадром, находящимся в процессе декодирования (текущий кадр, находящийся в процессе кодирования), представляет собой кадр, снятый с точки обзора, отличающейся от текущего кадра, находящегося в процессе декодирования, в порядке РОС.
Когда прогнозируемое изображение формируют на основе изображения, снятого с точки обзора, отличающейся от текущего кадра, находящегося в процессе декодирования, используемого в качестве опорного кадра, могут увеличиться ошибки прогнозирования и эффективность кодирования может быть ухудшена по сравнению со случаем, когда прогнозируемое изображение формируют на основе кадра, снятого с той же точки съемки, что и текущий кадр, находящийся в процессе декодирования, используемый в качестве опорного кадра.
Таким образом, в случае межкадрового прогнозирования желательно, чтобы кадр, который снят с той же точки обзора, что и текущий кадр, в процессе декодирования, и расположен ближе всего к текущему кадру, находящемуся в процессе декодирования, в порядке РОС, можно было использовать в качестве опорного кадра.
Однако среди кадров, которые могут использоваться как опорные кадры, кадр, который снят с той же точки съемки, что и текущий кадр, находящийся в процессе декодирования, и который расположен ближе всего к текущему кадру, находящемуся в процессе декодирования, в порядке РОС, представляет собой кадр, следующий на два изображения вперед (или назад) от текущего кадра, находящегося в процессе декодирования, в порядке РОС, даже если кадр не является самым дальним от текущего кадра, находящегося в процессе декодирования.
По этой причине в случае процесса управления памятью типа скользящего окна, когда DPB с ограниченным количеством сохраняемых кадров управляют, используя подход FIFO, среди кадров, которые могут представлять собой опорные кадры, кадр, который был снят с той же точки съемки, что и текущий кадр, находящийся в процессе декодирования, и является ближайшим к текущему кадру, находящемуся в процессе декодирования, в порядке РОС, может быть уже выведен из DPB таким, что этот кадр невозможно сделать опорным при формировании прогнозируемого изображения текущего кадра, находящегося в процессе декодирования. В этом случае, эффективность кодирования может быть ухудшена.
Таким образом, желательно улучшить эффективность кодирования.
Вариант выполнения изобретения направлен на устройство обработки изображения или программу, которые обеспечивают выполнение компьютером функции устройства обработки изображения. Устройство обработки изображения или программа включают в себя средство хранения данных для хранения декодированного изображения, получаемого путем кодирования кадров, составляющих последовательность кадров, в которой расположены поочередно кадры, относящиеся к первому изображении и второму изображению, имеющим различие, и путем выполнения локального декодирования, в качестве опорного кадра для формирования прогнозируемого изображения, предназначенного для использования при выполняемом позже по времени предиктивном кодировании, и средство управления сохранением для выполнения управления сохранением для управления сохранением опорного кадра в средстве хранения данных так, чтобы из кадров, кодированных по времени раньше, чем текущий кадр, находящийся в процессе кодирования, который является кадром, подлежащим кодированию, и потенциально являющихся опорными кадрами в средстве хранения данных, сохранялся кадр, относящийся к тому изображению из первого изображения и второго изображения, которое получено с той же точки наблюдения, что и текущий кадр, находящийся в процессе кодирования и расположенный в порядке изображения ближе всего к текущему кадру, находящемуся в процессе кодирования.
Другой вариант выполнения изобретения направлен на способ обработки изображения. Способ обработки изображения включает в себя этапы, на которых сохраняют в средстве хранения данных декодированное изображение, полученное путем кодирования кадров, составляющих последовательность кадров, расположены поочередно кадры, относящиеся к первому изображению и второму изображению, имеющим различие, и путем выполнения локального декодирования в качестве опорного кадра для формирования прогнозируемого изображения, предназначенного для использования при более позднем по времени предиктивном кодировании, и выполняют управление сохранением для управления сохранением опорного кадра в средстве хранения данных так, чтобы из кадров, кодированных по времени раньше, чем текущий кадр, находящийся в процессе кодирования, который является кадром, подлежащим кодированию, и потенциально являющихся опорными кадрами, в средстве хранения данных, сохранялся кадр, относящийся к тому изображению из первого изображения и второго изображения, которое получено с той же точки наблюдения, что и текущий кадр, находящийся в процессе кодирования и расположенный в порядке изображения ближе всего к текущему кадру, находящемуся в процессе кодирования.
В соответствии с описанными выше вариантами выполнения, декодированное изображение, получаемое путем кодирования кадров, составляющих последовательность кадров, в которой расположены поочередно кадры, относящиеся к первому и второму изображениям, имеющим несоответствие и составляющим 3D (трехмерное) изображение, и путем выполнения локального декодирования, сохраняют в средстве хранения данных в качестве опорного кадра для формирования прогнозируемого изображения, предназначенного для использования при выполняемом позже по времени предиктивном кодировании. Управление сохранением для управления сохранением опорного кадра в средстве хранения данных выполняют так, чтобы из кадров, кодированных по времени раньше, чем текущий кадр, находящийся в процессе кодирования, который является кадром, подлежащим кодированию, и потенциально являющихся опорными кадрами, в средстве хранения данных, сохранялся кадр, относящийся к тому изображению из первого изображения и второго изображения, которое получено с той же точки наблюдения, что и текущий кадр, находящийся в процессе кодирования и расположенный в порядке изображения ближе всего к текущему кадру, находящемуся в процессе кодирования.
Устройство обработки изображения может представлять собой отдельное устройство или может быть выполнено как внутренний блок, входящий в состав единого устройства.
Программа может быть передана через среду передачи или может быть записана на носителе записи и предоставлена.
В соответствии с вариантами выполнения изобретения, возможно улучшить эффективность кодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На фиг.1 показана блок-схема, представляющая пример конфигурации устройства кодирования AVC.
На фиг.2 показана блок-схема, представляющая пример конфигурации устройства декодирования AVC.
На фиг.3 показана схема, иллюстрирующая последовательность кадров.
На фиг.4 показана схема, представляющая пример структуры GOP.
На фиг.5 показана схема, представляющая пример взаимосвязи опорных кадров.
На фиг.6 показана схема, иллюстрирующая состояние DPB, когда последовательность кадров кодируют/декодируют, используя AVC.
На фиг.7 показана схема, иллюстрирующая случай, когда эффективность кодирования ухудшается, когда DPB управляют, используя только процесс управления памятью типа скользящего окна.
На фиг.8 показана блок-схема, представляющая пример конфигурации варианта выполнения устройства кодирования, в котором применяется изобретение.
На фиг.9 показана блок-схема последовательности операций, иллюстрирующая обработку устройства кодирования.
На фиг.10 показана схема, иллюстрирующая первое управление сохранением.
На фиг.11 показана схема, иллюстрирующая состояние DPB, когда вырабатывают команду ММСО, а последовательность кадров кодируют/декодируют, используя AVC.
На фиг.12 показана схема, иллюстрирующая выработку команды RPLR, которую выполняют вместе с выработкой команды ММСО, в качестве первого управления сохранением.
На фиг.13 показана схема, иллюстрирующая состояние DPB, когда вырабатывают команду ММСО и команду RPLR, и последовательность кадров кодируют/декодируют, используя AVC.
На фиг.14 показана блок-схема последовательности операций, иллюстрирующая обработку для декодирования кодированных данных, выводимых из устройства кодирования.
На фиг.15 показана схема, представляющая состояние запоминающего устройства 49 кадра, соответствующего DPB, когда обработку выполняют для декодирования кодированных данных.
На фиг.16 показана схема, иллюстрирующая второе управление сохранением.
На фиг.17 показана схема, иллюстрирующая состояние DPB, когда вырабатывают команду ММСО, и последовательность кадров кодируют/декодируют, используя AVC.
На фиг.18 показана схема, иллюстрирующая выработку команды RPLR, которую выполняют вместе с выработкой команды ММСО, в качестве второго управления сохранением.
На фиг.19 показана схема, иллюстрирующая состояние DPB, когда вырабатывают команду ММСО и команду RPLR, и последовательность кадров кодируют/декодируют, используя AVC.
На фиг.20 показана блок-схема, представляющая пример конфигурации варианта выполнения компьютера, в котором применяется изобретение.
ПОДРОБНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Ниже будет описан случай, в котором вариант выполнения изобретения применяют для AVC после пояснения AVC в качестве предварительного этапа.
Устройство кодирования AVC
На фиг.1 показана блок-схема, представляющая пример конфигурации устройства кодирования AVC.
Как показано на фиг.1, устройство кодирования включает в себя модуль 11 A/D (аналогово-цифрового) преобразования, буфер 12 сортировки экрана, арифметический модуль 13, модуль 14 ортогонального преобразования, модуль 15 квантования, инвертируемый модуль 16 кодирования, буфер 17 накопления, модуль 18 обратного квантования, модуль 19 обратного ортогонального преобразования, арифметический модуль 20, фильтр 21 устранения блоков в изображении, запоминающее устройство 22 кадра, переключатель 23, модуль 24 прогнозирования внутри кадра, модуль 25 детектирования/компенсации движения, модуль 26 выбора прогнозируемого изображения и модуль 27 управления скоростью.
Целевое изображение кодирования (движущееся изображение) подают последовательно в модуль 11 A/D преобразования в порядке изображения.
Когда подаваемое изображение представляет собой аналоговый сигнал, модуль 11 A/D преобразования выполняет A/D преобразование аналогового сигнала и подает цифровой сигнал в буфер 12 сортировки экрана.
Буфер 12 сортировки экрана временно сохраняет изображения, полученные из модуля 11 A/D преобразования, и эти изображения считывают в соответствии со структурой GOP (группа изображений), определенной заранее, для сортировки изображений, которые расположены в порядке изображения, в порядке кодирования (порядке декодирования).
Изображения, считываемые из буфера 12 сортировки экрана, подают в арифметический модуль 13, модуль 24 прогнозирования внутри кадра и модуль 25 детектирования/компенсации движения.
В арифметический модуль 13 подают изображения из буфера 12 сортировки экрана и также подают прогнозируемое изображение, сформированное модулем 24 прогнозирования внутри кадра или модулем 25 детектирования/компенсации движения из модуля 26 выбора прогнозируемого изображения.
Когда каждое изображение считывают из буфера 12 сортировки экрана как текущее изображение, находящееся в процессе кодирования, в соответствии с необходимостью, арифметический модуль 13 рассчитывает значение пикселей прогнозируемого изображения, подаваемого из модуля 26 выбора прогнозируемого изображения по значению пикселя (каждого блока) текущего изображения, находящегося в процессе кодирования, и подает это значение пикселя в модуль 14 ортогонального преобразования.
Модуль 14 ортогонального преобразования выполняет ортогональное преобразование, такое как дискретное косинусное преобразование или преобразование Кархунена-Лоэва, для (значения пикселя или значения после вычитания, полученного в результате вычитания прогнозируемого изображения) текущего изображения, находящегося в процессе кодирования, из арифметического модуля 13, и подает полученный в результате коэффициент преобразования в модуль 15 квантования.
Модуль 15 квантования выполняет квантование коэффициента преобразования, подаваемого из модуля 14 ортогонального преобразования, и подает полученное в результате квантованное значение в модуль 16 инвертируемого кодирования.
Модуль 16 инвертируемого кодирования выполняет инвертированное кодирование, такое как кодирование переменной длины (например, CAVLC (контекстно-адаптивное кодирование с переменной длиной) или тому подобное) или арифметическое кодирование (например, САВАС (контекстно-адаптивное двоичное арифметическое кодирование) или тому подобное) для квантованного значения из модуля 15 квантования и подает полученные в результате кодированные данные в буфер 17 накопления.
В модуль 16 инвертируемого кодирования подают квантованные значения из модуля 15 квантования, а также подают информацию, обозначающую прогнозирование внутри кадров, которое было выполнено, из модуля 24 прогнозирования внутри кадров в блоках или макроблоках, в соответствии с необходимостью, и вектор движения и информацию, обозначающую режим межкадрового прогнозирования в блоках или макроблоках, из модуля 25 детектирования/компенсации движения, в соответствии с необходимостью.
Модуль 16 инвертируемого кодирования кодирует информацию, обозначающую прогнозирование внутри кадров, которое было выполнено, из модуля 24 прогнозирования внутри кадров, или вектор движения и информацию или тому подобное, указывающую режим межкадрового прогнозирования, полученную из модуля 25 детектирования/компенсации движения, так, что она может быть включена в заголовок или тому подобное кодированных данных.
Информация, указывающая выполненное прогнозирование внутри кадра, и информация, указывающая режим межкадрового прогнозирования, также совместно называются режимом прогнозирования.
Буфер 17 накопления временно сохраняет кодированные данные из модуля 16 инвертируемого кодирования и выводит кодированные данные с заданной скоростью.
Кодированные данные, выводимые из буфера 17 накопления, передают через путь передачи или записывают на носителе записи.
Квантованное значение, получаемое модулем 15 квантования, подают в модуль 16 инвертируемого кодирования и также в модуль 18 обратного квантования и подвергают локальному декодированию в модуле 18 обратного квантования, модуле 19 обратного ортогонального преобразования и в арифметическом модуле 20.
Таким образом, модуль 18 обратного квантования выполняет обратное квантование значения, получаемого из модуля 15 квантования, в коэффициент преобразования и подает этот коэффициент преобразования в модуль 19 обратного ортогонального преобразования.
Модуль 19 обратного ортогонального преобразования выполняет обратное ортогональное преобразование для коэффициента преобразования из модуля 18 обратного квантования и подает полученные в результате данные в арифметический модуль 20.
Арифметический модуль 20 добавляет значение пикселя прогнозируемого изображения, подаваемого из модуля 26 выбора прогнозируемого изображения, к данным, подаваемым из модуля 19 обратного ортогонального преобразования, в соответствии с необходимостью, получает декодированное изображение путем декодирования части (блока) текущего изображения, находящегося в процессе кодирования, которое должно быть выполнено, в арифметическом модуле 13, в модуле 14 ортогонального преобразования и в модуле 15 квантования, и подает декодированное изображение в фильтр 21 устранения блоков в изображении.
Фильтр 21 устранения блоков в изображении фильтрует декодированное изображение из арифметического модуля 20 для удаления (уменьшения) искажений в виде блоков, генерируемых в декодированном изображении, и подает полученное в результате декодированное изображение в запоминающее устройство 22 кадра.
Запоминающее устройство 22 кадра сохраняет декодированное изображение, полученное из фильтра 21 устранения блоков в изображении как (часть) опорный кадр, к которому обращаются при формировании прогнозируемого изображения, для использования при следующем по времени позже предиктивном кодировании (кодирование, при котором прогнозируемое изображение вычитают в арифметическом модуле 13).
Локальное декодирование, выполняемое модулем 18 обратного квантования, модулем 19 обратного ортогонального преобразования и арифметическим модулем 20, выполняют для кадра I, кадра Р и кадра Bs, которые представляют собой потенциально опорные изображения, способные стать опорными изображениями. В запоминающем устройстве 22 кадра сохраняют декодированные изображения для кадра I, кадра Р и кадра Bs.
Переключатель 23 выбирает модуль 24 прогнозирования внутри кадра или модуль 25 детектирования/компенсации движения. Опорный кадр, сохраненный в запоминающем устройстве 22 кадра, подают в один модуль из модуля 24 прогнозирования внутри кадра и модуля 25 детектирования/компенсации движения, выбранный переключателем 23.
Когда текущее изображение, находящееся в процессе кодирования, представляет собой кадр I, кадр Р или кадр В (включая кадр Bs), которые могут быть прогнозированы внутри кадра, модуль 24 прогнозирования внутри кадра считывает декодированное изображение, которое представляет собой опорный кадр, и часть текущего изображения, находящегося в процессе кодирования, которое уже было подвергнуто локальному декодированию, из запоминающего устройства 22 кадра через переключатель 23. Затем модуль 24 прогнозирования внутри кадра формирует прогнозируемое изображение из пикселей в непосредственной близости к участку (блоку) декодируемого изображения, которое должно быть обработано арифметическим модулем 13, и подает это прогнозируемое изображение в модуль 26 выбора прогнозируемого изображения.
Модуль 24 прогнозирования внутри кадра рассчитывает ошибку прогнозирования прогнозируемого изображения, формируемого из декодируемого изображения относительно текущего изображения, находящегося в процессе кодирования, из буфера 12 сортировки экрана, и подает ошибку прогнозирования в модуль 26 выбора прогнозируемого изображения вместе с прогнозируемым изображением.
Когда текущее изображение, находящееся в процессе кодирования, представляет собой кадр Р или кадр В (включая кадр Bs), которое может быть спрогнозировано между кадрами, модуль 25 детектирования/компенсации движения считывает из запоминающего устройства 22 кадра через переключатель 23 изображение, которое представляет собой опорный кадр и которое было кодировано раньше, чем текущее изображение, находящееся в процессе кодирования, и подвергает его локальному декодированию.
Модуль 25 детектирования/компенсации движения детектирует вектор движения между текущим изображением, находящимся в процессе кодирования, и опорным кадром из запоминающего устройства 22 кадра и далее, например, выполняет сопоставление блоков, используя изображения из буфера 12 сортировки экрана.
Модуль 25 детектирования/компенсации движения выполняет компенсацию движения для опорного кадра из запоминающего устройства 22 кадра в соответствии с вектором движения для текущего изображения, находящегося в процессе кодирования, для формирования прогнозируемого изображения, и затем подает это прогнозируемое изображение в модуль 26 выбора прогнозируемого изображения.
Модуль 25 детектирования/компенсации движения рассчитывает ошибку прогнозирования для прогнозируемого изображения, сформированного из опорного кадра, относительно текущего изображения, находящегося в процессе кодирования, из буфера 12 сортировки экрана, и подает ошибку прогнозирования в модуль 26 выбора прогнозируемого изображения вместе с прогнозируемым изображением.
Модуль 26 выбора прогнозируемого изображения выбирает изображение с наименьшей ошибкой прогнозирования среди прогнозируемых изображений из модуля 24 прогнозирования внутри кадра и модуля 25 детектирования/компенсации движения, и подает выбранное прогнозируемое изображение в арифметические модули 13 и 20.
Модуль 26 выбора прогнозируемого изображения подает сообщение, обозначающее, что прогнозируемое изображение было выбрано, в один из модуля 24 прогнозирования внутри кадра и модуля 25 детектирования/компенсации движения, из которых выбирают прогнозируемое изображение.
Когда сообщение подают из модуля 26 выбора прогнозируемого изображения, модуль 24 прогнозирования внутри кадра подает информацию, указывающую, что прогнозирование внутри кадра было выполнено, в модуль 16 обратного кодирования.
Когда сообщение подают из модуля 26 выбора прогнозируемого изображения, модуль 25 детектирования/компенсации движения подает вектор движения и информацию, указывающую режим межкадрового прогнозирования, в модуль 16 обратного кодирования.
Модуль 27 управления скоростью отслеживает накопленное количество кодированных данных в буфере 17 накопления и управляет поведением модуля 15 квантования, например, на этапе квантования модуля 15 квантования, на основе накопленного количества.
Устройство декодирования AVC
На фиг.2 показана блок-схема, представляющая пример конфигурации устройства декодирования AVC.
На фиг.2 показано устройство декодирования, включающее в себя буфер 41 накопления, модуль 42 инвертируемого декодирования, модуль 43 обратного квантования, модуль 44 обратного ортогонального преобразования, арифметический модуль 45, фильтр 46 устранения блоков в изображении, буфер 47 сортировки экрана, модуль 48 D/A преобразования, запоминающее устройство 49 кадра, переключатель 50, модуль 51 прогнозирования внутри кадра, модуль 52 компенсации движения и переключатель 53.
В буфер 41 накопления подают кодированные данные, получаемые в результате кодирования изображения (изображение движения), используя AVC, в устройстве кодирования по фиг.1 или тому подобное.
Буфер 41 накопления временно сохраняет кодированные данные, подаваемые в него, и подает эти кодированные данные в модуль 42 инвертируемого декодирования.
Модуль 42 инвертируемого декодирования выполняет обработку, такую как декодирование с переменной длиной или арифметическое декодирование, для кодированных данных, поданных из буфера 41 накопления, на основе формата кодированных данных, и декодирует информацию, необходимую для декодирования изображения, такую как квантованное значение и режим прогнозирования или вектор движения, включенную в заголовок или тому подобное кодированных данных.
Квантованное значение, полученное модулем 42 инвертируемого декодирования, подают в модуль 43 обратного квантования, а режим прогнозирования подают в модуль 51 прогнозирования внутри кадра и в модуль 52 компенсации движения. Вектор движения, полученный модулем 42 инвертируемого декодирования, подают в модуль 52 компенсации движения. Другую информацию, необходимую для декодирования изображения, полученную модулем 42 инвертируемого декодирования, подают в необходимые блоки.
Модуль 43 обратного квантования выполняет обратное квантование для квантованного значения, полученного из модуля 42 инвертируемого декодирования, получая коэффициент преобразования, и подает этот коэффициент преобразования в модуль 44 обратного ортогонального преобразования.
Модуль 44 обратного ортогонального преобразования выполняет обратное ортогональное преобразование для коэффициента преобразования из модуля 43 обратного квантования и подает полученные в результате данные в арифметический модуль 45.
Арифметический модуль 45 суммирует прогнозируемое изображение, полученное в результате прогнозирования внутри кадра, или прогнозируемое изображение после межкадрового прогнозирования, подаваемое из переключателя 53 для данных, подаваемых из модуля 44 обратного ортогонального преобразования, в соответствии с необходимостью, для расчета декодированного изображения, и подает это декодированное изображение в фильтр 46 устранения блоков в изображении.
Фильтр 46 устранения блоков в изображении выполняет, например, такую же фильтрацию, как и фильтр 21 устранения блоков в изображении по фиг.1, для декодированного изображения из арифметического модуля 45 и подает декодированное изображение после фильтрации в буфер 47 сортировки экрана.
Фильтр 46 устранения блоков в изображении подает декодированное изображение, состоящее из кадра I, кадра Р и кадра Bs, которые представляют собой изображения, на которые может быть сделана ссылка, среди декодированных изображений после фильтрации, в запоминающее устройство 49 кадра.
Буфер 47 сортировки экрана временно сохраняет и считывает изображение (декодированное изображение), составленное декодированными изображениями, из арифметического модуля 45, сортирует это декодированное изображение в исходном порядке (порядке изображения) и подает это декодированное изображение в модуль 48 D/A (цифро-аналогового) преобразования.
Когда декодированное изображение из буфера 47 сортировки экрана должно быть выведено как аналоговый сигнал, модуль 48 D/A преобразования выполняет D/A преобразование декодированного изображения и выводит полученные в результате данные.
Запоминающее устройство 49 кадра сохраняет декодированные изображения, подаваемые из арифметического модуля 45, как (часть) опорный кадр, к которому обращаются при формировании прогнозируемого изображения.
Когда текущее изображение, находящееся в процессе декодирования, то есть изображение, которое должно быть обработано в модуле 43 обратного квантования, модуле 44 обратного ортогонального преобразования и в арифметическом модуле 45, является прогнозируемым внутри кадра, переключатель 50 выбирает модуль 51 прогнозирования внутри кадра среди модуля 51 прогнозирования внутри кадра и модуля 52 компенсации движения. Когда текущее изображение в процессе декодирования является прогнозируемым между кадрами, переключатель 50 выбирает модуль 52 компенсации движения среди модуля 51 прогнозирования внутри кадра и модуля 52 компенсации движения.
Опорный кадр, который используют при формировании прогнозируемого изображения, во время кодирования среди опорных кадров, хранящихся в запоминающем устройстве 49 кадра, подают в один модуль из модуля 51 прогнозирования внутри кадра и модуля 52 компенсации движения, выбранного переключателем 50.
Модуль 51 прогнозирования внутри кадра формирует прогнозируемое изображение для прогнозирования внутри кадра из опорного кадра, подаваемого из запоминающего устройства 49 кадра, через переключатель 50, и подает прогнозируемое изображение на переключатель 53.
Модуль 52 компенсации движения выполняет компенсацию движения для опорного кадра, подаваемого из запоминающего устройства 49 кадра через переключатель 50, в соответствии с вектором движения из модуля 42 инвертируемого декодирования, для формирования нового прогнозируемого изображения с прогнозированием между кадрами, и подает это прогнозируемое изображение в переключатель 53.
Модуль 51 прогнозирования внутри кадра и модуль 52 компенсации движения распознают, является ли текущее изображение, находящееся в процессе декодирования, прогнозируемым внутри кадра или прогнозируемым между кадрами, на основе режима прогнозирования из модуля 43 обратного декодирования.
Переключатель 53 выбирает один из модуля 51 прогнозирования внутри кадра и модуля 52 компенсации движения, выбранного переключателем 50, и подает прогнозируемое изображение, передаваемое из выбранного модуля, в арифметический модуль 45.
В устройстве декодирования по фиг.2, буфер 47 сортировки экрана и запоминающее устройство 49 кадра соответствуют DPB. Таким образом, буфер 47 сортировки экрана соответствует области сохранения DPB, в которой сохраняет неопорный кадр, а запоминающее устройство 49 кадра соответствует области сохранения DPB, в которой сохраняют опорный кадр.
Последовательность кадров
На фиг.3 показана схема, иллюстрирующая последовательность кадров.
3D изображение составлено потоками изображений L и R (изображение движения), являющихся первым и вторым изображениями, имеющими различие.
На фиг.3, L№i обозначает (i+1)-e изображение от начала изображения L (левое изображение), a R№i обозначает (i+1)-e изображение от начала изображения R (правое изображение) (где i=0, 1, …).
Изображения L№i и R№i представляют собой изображения, получаемые, когда один и тот же объект (сцену) наблюдают с разных точек наблюдения. Набор изображений L№i и R№i также называется парой LR.
Для устройства кодирования AVC по фиг.1, устройства декодирования AVC по фиг.2 трудно непосредственно обрабатывать 3D изображение, имеющее два потока, такие как поток изображения L и поток изображения R.
Таким образом, для того чтобы устройство кодирования AVC по фиг.1 и устройство декодирования AVC по фиг.2 обрабатывали 3D изображение, необходимо превратить два потока, такие как поток изображения L и поток изображения R, в один поток.
В качестве способа превращения двух потоков, таких как поток изображения L и поток изображения R, в один поток, как показано на фиг.3, известен способ, в котором изображения для изображения L и изображения R, составляющих 3D изображение, расположены поочередно.
Как описано выше, один поток изображения, получаемый путем поочередного размещения изображений для изображения L и изображения R, составляющих 3D изображение, называется последовательностью кадров.
Если 3D изображение сформировано как последовательность кадров, такое 3D изображение, которое представляет собой последовательность кадров, может быть обработано в устройстве кодирования AVC по фиг.1 и в устройстве декодирования AVC по фиг.2.
Что касается последовательности кадров, показанной на фиг.3, в паре LR изображение L№i для изображения L расположено по времени раньше, чем изображение R№i изображения R. В отличие от этого изображение R№i изображения R может быть расположено по времени раньше, чем изображение L№i для изображения L.
Ниже, соответственно, изображения для изображения L обозначены сплошными линиями, а изображения для изображения R обозначены пунктирными линиями.
На фиг.4 показана схема, представляющая пример структуры GOP, когда последовательность кадров по фиг.3 кодируют/декодируют с помощью AVC.
На фиг.4, одна GOP включает в себя изображения, состоящие из 16 изображений, таких как кадры I, Р, Bs, В, Р, Р, Bs, В, Р, Р, Bs, В, Р, Р, Bs и В в порядке РОС.
В соответствии с фиг.4, 16 изображений, таких как изображения L№(8j+0), R№(8j+0), L№(8j+1), R№(8j+1), L№(8j+7) и R№(8j+7), составляющие последовательность кадров по фиг.3, составляют одну GOP, и их, соответственно, кодируют/декодируют как кадры I, Р, Bs, В, Р, Р, Bs, В, Р, Р, Bs, Р, Bs и В (где j=0, 1, …).
(J+1)-я GOP от начала последовательности кадров также выражена как GOP№j.
(К+1)-е изображение от начала GOP№j выражено как строка символов с типом изображения соответствующего изображения и переменной к, выражающей установленный порядок изображения. В этом случае 16 изображений, таких как кадр I, Р, BS, В, Р, Р, Bs, В, Р, Р, Bs, В, Р, Р, Bs и В, составляющих одну GOP, соответственно, выражены как I0, P1, Bs2, В3, Р4, Р5, Bs6, В7, Р8, Р9, Bs10, B11, Р12, Р13, Bs14 и В15.
Однако изображения GOP№j+1, которые расположены рядом с GOP№j, могут быть выражены строкой символов, обозначающей тип изображения, и номером, представляющим порядок изображения от начала GOP№j для отличия от изображений GOP№j.
В этом случае 16 изображений, представляющих собой кадры I, Р, Bs, В, Р, Р, Bs, В, Р, Р, Bs, В, Р, Р, Bs и В, составляющих GOP№j+1, соответственно, выражены как I16, Р17, Bs18, В19, Р20, Р21, Bs22, В23, Р24, Р25, Bs26, В27, Р28, Р29, Bs30 и B31.
Когда (k+1)-e изображение от начала GOP№j выражено строкой символов, представляющей тип изображения соответствующего изображения, и переменной к, переменная к соответствует РОС. РОС сбрасывают в 0 в заданные моменты времени, такие как моменты времени IDR (мгновенное обновление декодирования) изображения.
Кодирование/декодирование последовательности кадров с использованием AVC
На фиг.5 показана схема, представляющая пример взаимозависимости между опорными изображениями, предназначенная для улучшения эффективности кодирования, когда последовательность кадров, имеющая структуру GOP, показанную на фиг.4, кодируют/декодируют, используя AVC.
На фиг.5 (то же самое относится к фиг.7, которая будет описана ниже) стрелка обозначает взаимосвязь опорных кадров. Изображение в исходной точке стрелки представляет собой изображение, которое может быть опорным, когда изображение в конечной точке стрелки представляет собой текущее изображение, находящееся в процессе кодирования (текущее изображение в процессе декодирования).
Например, для кадра Bs6 изображения L кадр Р4 и кадр Р8, ближайшие к изображению Bs6 в порядке изображения из кадров изображения L, которое представляет собой изображение, снятое из той же точки съемки, делают изображениями, которые могут быть сделаны опорными (могут быть сделаны опорными изображениями, на которое может быть сделана ссылка при формировании прогнозируемого изображения), что, таким образом, позволяет улучшить эффективность кодирования.
Например, для кадра В7 изображения R кадры Р5 и кадры Р9, ближайшие к изображению В7 в порядке изображения из кадров изображения R, которое представляет собой изображение, снятое из той же точки съемки, и к изображению Bs6 среди изображения изображения L, составляющие пару LR с изображением В7 изображения R, могут быть сделаны опорными, что, таким образом, позволяет улучшить эффективность кодирования.
Например, что касается кадра Bs10 изображения L кадр Р8 и кадр Р12, ближайшие к изображению Bs10 в порядке изображения из кадров изображения L, которые представляют собой изображения, снятые из той же точки съемки, делают изображениями, которые могут быть опорными, что, таким образом, позволяет улучшить эффективность кодирования.
Например, для кадра В11 изображения R кадр Р9 и кадр Р13, ближайшие к изображению В11 в порядке изображения из кадров изображения R, которое представляет собой изображение, снятое из той же точки съемки, и к изображению Bs10 изображения L, составляющее пару LR с изображением В11 изображения R, делают изображением, которое может быть опорным, что, таким образом, позволяет улучшить эффективность кодирования.
Например, для кадра Bs14 изображения L кадр Р12 и кадр I16 (кадр 10 следующей GOP), ближайшие к изображению Bs14 в порядке изображения из кадров изображения L, которое представляет собой изображение, снятое из той же точки съемки, делают изображением, которое может быть опорным, что, таким образом, позволяет улучшить эффективность кодирования.
Например, для кадра В15 изображения R кадр Р13 и кадр Р17 (кадр Р1 следующей GOP), ближайшие к изображению В15 в порядке изображения из кадров изображения R, которое представляет собой изображение, снятое из той же точки съемки, и к изображению Bs14 изображения L, составляющие пару LR с изображением В15 изображения R, делают изображением, которое может быть опорным, что, таким образом, позволяет улучшить эффективность кодирования.
Хотя при использовании AVC, по фиг.5, кадр Bs может быть опорным для изображений Р и В, кадр Bs может быть опорным только для кадра В, но не для кадра Р.
На фиг.5 из кадров, составляющих пару LR изображения L и изображения R, составляющих последовательность кадров, изображение изображения L может быть опорным для изображений изображения R, но изображение изображения R не может быть опорным для изображений изображения L.
Однако кадр Bs может быть опорным для кадра Р, и изображение изображения R может быть опорным для изображений изображения L.
Что касается последовательности кадров, показанной на фиг.4, как можно видеть на фиг.5, кадры I, Bs, Р, Bs, Р, Bs, Р, Bs, I, Bs, Р, … расположены в изображении L, а кадры Р, В, Р, В, Р, … расположены в изображении R.
Кодирование/декодирование с использованием AVC, когда команда ММСО и команда RPLR не вырабатываются
На фиг.6 показана схема, иллюстрирующая состояние DPB, когда последовательность кадров кодируют/декодируют, используя AVC, без выработки команды ММСО и команды RPLR.
Ниже предполагается, что max_dec_frame_buffering и num_ref_frames установлены, например, как max_dec_frame_bufrering=4 и num_ref_frames=3. Однако max_dec_frame_buffering не ограничен 4, и num_ref_frames не ограничен 3.
Здесь "max_dec_frame_buffering=4" обозначает, что DPB может сохранять максимум четыре опорных кадра. Кроме того, "num_ref_frames=3" обозначает, что максимальное значение номера опорного кадра равняется 3, то есть номер опорного кадра присваивают максимум для четырех изображений.
На фиг.6 показан порядок отображения кадров, составляющих последовательность кадров, порядок кодирования/декодирования (порядок декодирования), PN (номер кадра), состояние сохранения DPB и состояние сохранения буфера изображения.
Как показано на фиг.6, в последовательности кадров, как описано со ссылкой на фиг.4, кадры 10, P1, Bs2, В3, Р4, Р5, Bs6, В7, Р8, Р9, Bs10, B11, Р12, Р13, Bs14, В15, I16 (10), P17 (P1), Bs18 (Bs2), B19 (В3), P20 (P4), P21 (P5), … расположены в порядке изображения, и 16 кадров составляют GOP.
Последовательность кадров кодируют/декодируют, например, в порядке кадров I, Р, В, В, Р, Р, В, В, Р, Р, В, В, Р, Р, В, В, I, Р, В, В, Р, Р, В, В, Р, ….
Только GOP№0 в начале последовательности кадров кодируют/декодируют в порядке кадров I, Р, Р, Р, В, В, Р, Р, В, В, Р, …, а не в порядке кадров I, Р, В, В, Р, Р, В, В, Р, Р, В, … Таким образом, как показано на фиг.6, последовательность кадров кодируют/декодируют в порядке кадров I0, Р1, Р4, Р5, Bs2, В3, Р8, Р9, Bs6, В7, Р12, Р13, Bs10, B11, I16 (I0), Р17 (P1), Bs14, B15, ….
На фиг.6 показан PN ниже порядка кодирования/декодирования последовательности кадров. PN представляет собой целое число, равное или большее 0. Значение, которое последовательно увеличивают на 1, присоединяют как PN к текущему кадру, находящемуся в процессе декодирования, в порядке декодирования.
Когда предыдущий кадр в порядке декодирования не представляет собой опорный кадр (кадр, который не становится опорным кадром), для PN не выполняют последовательное приращение, и PN с тем же значением, что и у предыдущего кадра перед текущим кадром, находящимся в процессе декодирования, присваивают к текущему кадру, находящемуся в процессе декодирования.
Таким образом, такие PN, как 0, 1, 2, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 11, 11, 12, 13, 14, присваивают кадрам I0, Р1, Р4, Р5, Bs2, В3, Р8, Р9, Bs6, В7, Р12, Р13, Bs10, B11, I16 (I0), P17 (P1), Bs14, В15, … в порядке декодирования по фиг.6.
PN сбрасывают в 0 в определенный момент времени, например в момент времени кадра IDR.
Если последовательность кадров кодирована в порядке кодирования, показанном на фиг.6 в устройстве кодирования AVC по фиг.1, кодированные данные, полученные в результате кодирования, декодируют в порядке декодирования по фиг.6 в устройстве декодирования AVC по фиг.2.
Здесь предполагается, что кодированные данные не включают в себя команду ММСО и команду RPLR (не кодированные (мультиплексированные)) (без сигналов).
В этом случае в устройстве декодирования AVC по фиг.2, при декодировании кодированных данных, DPB управляют только при помощи обработки управления памятью типа скользящего окна. В устройстве декодирования в качестве номера опорного кадра (индекс L0) для прогнозирования L0 и номера опорного кадра (индекс L1) для прогнозирования L1 значения (заранее установленные значения) при принятом по умолчанию AVC присваивают опорным кадрам, сохраненным в DPB.
Таким образом, устройство декодирования выбирает кадр I0 GOP№0 в момент времени t0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр 10.
Кадр 10 представляет собой опорный кадр, и, как показано на фиг.6, кадр 10 после декодирования хранится в DPB.
В момент времени t1, следующий после момента времени I0, устройство декодирования выбирает кадр P1 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р1.
Когда декодируют кадр Р1, как показано на фиг.6, кадр I0 хранится в DPB, и кадр Р1 декодируют с учетом кадра I0, хранящегося в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения при прогнозировании L0.
Как описано выше, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р, при принятом по умолчанию AVC, индекс L0, который представляет собой меньший номер опорного кадра, присваивают следующему опорному кадру в порядке декодирования.
Таким образом, когда декодируют кадр Р1, как показано на фиг.6, индекс L0, имеющий значение 0, присваивают кадру I0, сохраненному в DPB (L0=0).
Кадр Р1 представляет собой опорный кадр, как показано на фиг.6, кадр Р1 после декодирования хранится в DPB как опорный кадр.
В момент времени t2, следующий после времени t1, устройство декодирования выбирает кадр Р4 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р4.
Когда декодируют кадр Р4, как показано на фиг.6, кадры I0 и Р1 хранятся в DPB, и кадр Р4 декодируют с учетом кадров I0 или Р1, хранящихся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения для прогнозирования L0.
При принятом по умолчанию AVC, когда декодируют Р4 с учетом кадров I0 и Р1, хранящихся в DPB, как показано на фиг.6, выполняют следующее назначение: индекс L0, имеющий значение 0, присваивают кадру Р1, который расположен ближе всего к кадру Р4 в порядке декодирования; а индекс L0, имеющий значение 1, присваивают кадру I0, который расположен вторым от кадра Р4 в порядке декодирования (L0=1).
Кадр Р4 представляет собой опорный кадр, и, как показано на фиг.6, кадр Р4 после декодирования хранится в DPB.
Когда декодируют кадр Р4, кадр I0, хранящийся в DPB, считывают и подают в дисплей (не показан). Как показано на фиг.6, в дисплее кадр I0 сохраняют в буфере дисплея (не показан), который является внутренним буфером, и отображают в необходимые моменты времени.
В момент времени t3, который следует после момента времени t2, устройство декодирования выбирает кадр Р5 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р5.
Когда декодируют кадр Р5, как показано на фиг.6, кадры I0, Р1 и Р4 хранятся в DPB, и кадр Р5 декодируют с учетом кадров I0 и Р1 или Р4, хранящихся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения для прогнозирования L0.
При принятом по умолчанию AVC, когда декодируют кадр Р5 с учетом кадров I0, Р1 и Р4, хранящихся в DPB, как показано на фиг.6, выполняют следующие назначения: индекс L0, имеющий значение 0, присваивают кадру Р4, расположенному ближе всего к кадру Р5 в порядке декодирования; индекс L0, имеющий значение 1, присваивают кадру Р1, расположенному вторым от кадра Р5 в порядке декодирования; а индекс L0, имеющий значение 2, присваивают кадру I0, расположенному вторым от кадра Р5 в порядке декодирования (L0=2).
Кадр Р5 представляет собой опорный кадр, и как показано на фиг.6, кадр Р5 после декодирования хранится в DPB.
Когда декодируют кадр Р5, кадр Р1, хранящийся в DPB, считывают и передают для изображения. Как показано на фиг.6, при изображении кадр Р1 сохраняют в буфере дисплея и отображают в необходимые моменты времени.
В момент времени t4, следующий после момента времени t3, устройство декодирования выбирает кадр Bs2 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs2.
Когда декодируют кадр Bs2, как показано на фиг.6, кадры I0, P1, Р4 и Р5 хранятся в DPB, и кадр Bs2 декодируют с учетом кадров I0 или P1, Р4 и Р5, хранящихся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения для прогнозирования L0 или прогнозирования L1.
Как описано выше, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В (включая кадр Bs), при принятом по умолчанию AVC, индекс L0 и индекс L1 присваивают в порядке РОС.
Таким образом, в случае прогнозирования L0 для опорных кадров, которые по времени следуют раньше, чем текущий кадр, находящийся в процессе декодирования, в порядке РОС, индекс L0, имеющий меньшее значение, присваивают опорному кадру, расположенному ближе к текущему кадру, находящемуся в процессе декодирования. Далее, что касается опорных кадров, которые следуют по времени позже, чем текущий кадр, находящийся в процессе декодирования в порядке РОС, индекс L0, имеющий меньшее значение, присваивают опорному кадру, расположенному ближе к текущему кадру, находящемуся в процессе декодирования.
В случае прогнозирования L1, в отношении опорных кадров, которые по времени следуют после текущего кадра, находящегося в процессе декодирования, в порядке РОС, индекс L1, имеющий меньшее значение, присваивают опорному кадру, расположенному ближе к текущему кадру, находящемуся в процессе декодирования. Далее, в отношении опорных кадров, которые по времени следуют раньше, чем текущий кадр, находящийся в процессе декодирования, в порядке РОС, L1 индекс, имеющий меньшее значение, присваивают опорному кадру, расположенному ближе к текущему кадру, находящемуся в процессе декодирования.
Таким образом, при принятом по умолчанию AVC, когда декодируют кадр Bs2, то для кадров I0, P1, Р4 и Р5, хранящихся в DPB, как показано на фиг.6, присвоение выполняют следующим образом: индекс L0, имеющий значение 0, присваивают кадру Р1, который расположен ближе всего к кадру Bs2 перед кадром Bs2 в порядке РОС; а индекс L0, имеющий значение 1, присваивают кадру I0, который расположен вторым от кадра Bs2 перед кадром Bs2 в порядке РОС.
При принятом по умолчанию AVC, для кадров I0, P1, Р4 и Р5, хранящихся в DPB, как показано на фиг.6, присвоение выполняют следующим образом: индекс L0, имеющий значение 2, присваивают кадру Р4, находящемуся ближе всего к кадру Bs2 после кадра Bs2 в порядке РОС; а индекс L0, имеющий значение 3, присваивают кадру Р5, следующему вторым от кадра Bs2 после кадра Bs2 в порядке РОС (L0=3).
При принятом по умолчанию AVC для кадров I0, P1, Р4 и Р5, хранящихся в DPB, как показано на фиг.6, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру Р4, расположенному ближе всего к кадру Bs2 после кадра Bs2 в порядке РОС (L1=0); а индекс L0, имеющий значение 1, присваивают кадру Р5, расположенному вторым от кадра Bs2 после кадра Bs2 в порядке РОС (L1=1).
При принятом по умолчанию AVC для кадров I0, P1, Р4 и Р5, хранящихся в DPB, как показано на фиг.6, присвоение выполняют следующим образом: индекс L1, имеющий значение 2, присваивают кадру Р1, расположенному ближе всего к кадру Bs2 перед кадром Bs2 в порядке РОС (L1=2); а индекс L1, имеющий значение 1, присваивают кадру I0, который следует вторым от кадра Bs2 перед кадром Bs2 в порядке РОС (L1=3).
В устройстве кодирования AVC номер опорного кадра, присвоенный кадру (опорному кадру), используемому при формировании прогнозируемого изображения для изображения, включен в кодированные данные.
Устройство декодирования AVC обращается к кадру, которому присвоен номер опорного кадра, который совпадает с номером опорного кадра (индексом L0, индексом L1), включенным в кодированные данные, как к опорному кадру при формировании прогнозируемого изображения.
То есть, например, для кадра Bs2, когда L0=0 в качестве индекса L0 включен в кодированные данные, устройство декодирования выполняет прогнозирование L0 с присвоением кадру Р1 из I0, P1, Р4 и Р5, хранящихся в DPB, индекса L0, равного 0, как опорному кадру для формирования прогнозируемого изображения для кадра Bs2.
Например, для кадра Bs2, когда L1=0 в качестве индекса L1 включен в кодированные данные, устройство декодирования выполняет прогнозирование L1 с кадром Р4, которому присвоен индекс L1 равный 0, из кадров I0, P1, Р4 и Р5, хранящихся в DPB, в качестве опорного кадра для формирования прогнозируемого изображения для кадра Bs2.
Например, для кадра Bs2, когда L0=1 в качестве индекса L0 включен в кодированные данные, и L1=1 в качестве индекса L1 включен в кодированные данные, устройство декодирования выполняет прогнозирование L0 с кадром I0, которому присвоен индекс L0, равный 0, из изображений I0, P1, Р4 и Р5, хранящихся в DPB, в качестве опорного кадра, и также выполняет прогнозирование L1 с кадром Р5, которому присвоен индекс L1, равный 1, в качестве опорного кадра, для формирования прогнозируемого изображения для кадра Bs2.
Когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р, то, аналогично, к кадру, которому был присвоен номер опорного кадра, совпадающий с номером опорного кадра (индекс L0), включенным в кодированные данные, обращаются как к опорному кадру при формировании прогнозируемого изображения.
Кадр Bs2 представляет собой опорный кадр, и кадр Bs2 после декодирования хранятся в DPB.
Когда кадр Bs2 хранятся в DPB, четыре кадра I0, P1, Р4 и Р5 хранится в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый (по времени сохраненный раньше других) кадр I0 из кадров I0, P1, Р4 и Р5, хранящихся в DPB, выводят через процесс управления памятью типа скользящего окна и удаляют (выбрасывают) из DPB.
После этого кадр Bs2 после декодирования хранится в DPB, и, в результате, как показано на фиг.6, в DPB хранятся кадры Р1, Р4, Р5 и Bs2.
Кадр Bs2 хранится в DPB после декодирования и также подают для изображения. Как показано на фиг.6, при отображении кадр Bs2 сохраняют в буфере дисплея и отображают в необходимые моменты времени.
В момент времени t5, следующий после момента времени t4, устройство декодирования выбирает кадр В3 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В3.
Когда декодируют кадр В3, как показано на фиг.6, кадры Р1, Р4, Р5 и Bs2 хранятся в DPB, и кадр В3 декодируют с учетом кадров Р1 или Р4, Р5 и Bs2, хранящихся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения для прогнозирования L0 или прогнозирования L1.
При принятом по умолчанию AVC, когда декодируют кадр В3, для кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, как показано на фиг.6, выполняют следующие назначения: индекс L0, имеющий значение 0, присваивают кадру Bs2, расположенному ближе всего к кадру В3, перед кадром В3, в порядке РОС; а индекс L0, имеющий значение 1, присваивают кадру Р1, второму ближайшему к кадру В3 перед кадром В3 в порядке РОС.
При принятом по умолчанию AVC для кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, как показано на фиг.6, выполняют следующие назначения: индекс L0, имеющий значение 2, присваивают кадру Р4, расположенному первым ближайшим к кадру В3 после кадра В3 в порядке РОС; а индекс L0, имеющий значение 3, присваивают кадру Р5, второму ближайшему к кадру В3 после кадра В3 в порядке РОС.
При принятом по умолчанию AVC для кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, как показано на фиг.6, выполняют следующие назначения: индекс L1, имеющий значение 0, присваивают кадру Р4, расположенному первым ближайшим к кадру В3 после кадра В3 в порядке РОС; а индекс L0, имеющий значение 1, присваивают кадру Р5, второму ближайшему к кадру В3 после кадра В3 в порядке РОС.
При принятом по умолчанию AVC для кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, как показано на фиг.6, выполняют следующие назначения: индекс L1, имеющий значение 2, присваивают кадру Bs2, расположенному первым ближайшим к кадру В3 перед кадром В3 в порядке РОС; а индекс L1, имеющий значение 3, присваивают кадру Р1, второму ближайшему к кадру В3 перед кадром В3 в порядке РОС.
Таким образом, например, для кадра В3, когда L0=0 в качестве индекса L0 включен в кодированные данные, устройство декодирования выполняет прогнозирование L0 с изображением Bs2, которому присвоен индекс L0, равный 0, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, в качестве опорного кадра, для формирования прогнозируемого изображения для кадра В3.
Например, для кадра В3, когда L1=0 в качестве индекса L1 включен в кодированные данные, устройство декодирования выполняет прогнозирование L1 с кадром Р4, которому присвоен индекс L1, равный 0, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, в качестве опорного кадра для формирования прогнозируемого изображения для кадра В3.
Например, для кадра В3, когда L0=1 в качестве индекса L0 включен в кодированные данные, и L1=1 в качестве индекса L1 включен в кодированные данные, устройство декодирования выполняет прогнозирование L0 с кадром Р1, которому присвоен индекс L0, равный 1, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, в качестве опорного кадра, и выполняет прогнозирование L1 с кадром Р5, которому присвоен индекс L1, равный 1, в качестве опорного кадра, для формирования прогнозируемого изображения для кадра В3.
Кадр В3 не является опорным кадром, таким образом, кадр В3 не хранится в DPB после декодирования.
Таким образом, как показано на фиг.6, как и после декодирования кадра Bs2, которое расположено на одно изображение перед кадром В3 в порядке декодирования, кадры Р1, Р4, Р5 и Bs2 все еще хранятся в DPB.
Кадр В3 подают для изображения после декодирования. Как показано на фиг.6, в ходе отображения кадр В3 сохраняют в буфере дисплея и отображают в необходимые моменты времени.
В момент времени t6, который следует после момента времени t5, устройство декодирования выбирает кадр Р8 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р8.
Когда кадр Р8 декодируют, как показано на фиг.6, кадры Р1, Р4, Р5 и Bs2 хранятся в DPB, и кадр Р8 декодируют со ссылкой на кадры Р1 или Р4, Р5 и Bs2, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения для прогнозирования L0.
При принятом по умолчанию AVC, когда декодируют кадр Р8, для кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, показанном на фиг.6, выполняют следующие назначения: индекс L0, имеющий значение 0, присваивают кадру Bs2, который ближе всего к кадру Р8 в порядке декодирования; а индекс L0, имеющий значение 1, присваивают кадру Р5, который расположен вторым от кадра Р8 в порядке декодирования.
При принятом по умолчанию AVC для кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, как показано на фиг.6, выполняют следующие назначения: индекс L0, имеющий значение 2, присваивают кадру Р4, который расположен третьим от кадра Р8 в порядке декодирования; а индекс L0, имеющий значение 3, присваивают кадру Р1, который расположен четвертым от кадра Р8 в порядке декодирования.
Таким образом, например, для кадра Р8, когда L0=0 в качестве индекса L0 включен в кодированные данные, устройство декодирования выполняет прогнозирование L0 с кадром Bs2, которому присвоен индекс L0, равный 0, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, в качестве опорного кадра, для формирования прогнозируемого изображения для кадра Р8.
Например, для кадра Р8, когда L0=1 в качестве индекса L0 включен в кодированные данные, устройство декодирования выполняет прогнозирование L0 с кадром Р5, которому присвоен индекс L0, равный I, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, в качестве опорного кадра, для формирования прогнозируемого изображения для кадра Р8.
Кадр Р8 представляет собой опорный кадр, и кадр Р8 после декодирования хранится в DPB.
Когда кадр Р8 хранится в DPB, четыре кадра P1, Р4, Р5 и Bs2 хранятся в DPB, занимая максимальный объем памяти. По этой причине в устройстве декодирования самый старый кадр Р1 из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, выводят, используя процесс управления памятью типа скользящего окна, и выбрасывают из DPB.
Затем кадр Р8 после декодирования хранится в DPB, и в результате, как показано на фиг.6, кадры Р4, Р5, Bs2 и Р8 хранятся в DPB.
Когда кадр Р8 декодируют, кадр Р4, хранящийся в DPB, считывают и подают для отображения. Как показано на фиг.6, при отображении кадр Р4 сохраняют в буфере дисплея и отображают в требуемые моменты времени.
В момент времени t7, который следует после момента времени t6, устройство декодирования выбирает кадр Р9 GOP№0 как текущий кадр в процессе декодирования и декодирует кадр Р9.
Когда декодируют кадр Р9, как показано на фиг.6, кадры Р4, Р5, Bs2 и Р8 хранятся в DPB, и кадр Р9 декодируют со ссылкой на кадры Р4 или Р5, Bs2 и Р8, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
При принятом по умолчанию AVC, когда декодируют кадр Р9, для кадров Р4, Р5, Bs2 и Р8, хранящихся в DPB, как показано на фиг.6, выполняют следующие назначения: индекс L0, имеющий значение 0, присваивают кадру Р8, находящемуся ближе всего к кадру Р9 в порядке декодирования; а индекс L0, имеющий значение 1, присваивают кадру Bs2, расположенному вторым от кадра Р9 в порядке декодирования.
При принятом по умолчанию AVC, для кадров Р4, Р5, Bs2 и Р8, хранящихся в DPB, как показано на фиг.6, выполняют следующие назначения: индекс L0, имеющий значение 2, присваивают кадру Р5, расположенному третьим от кадра Р9 в порядке декодирования; а индекс L0, имеющий значение 3, присваивают кадру Р4, расположенному четвертым от кадра Р9 в порядке декодирования.
Кадр Р9 представляет собой опорный кадр, и кадр Р9 после декодирования хранится в DPB.
Когда кадр Р9 хранится в DPB, четыре кадра Р4, Р5, Bs2 и Р8 хранятся в DPB, занимая максимальный объем памяти. По этой причине в устройстве декодирования самый старый кадр Р4 из кадров Р4, Р5, Bs2 и Р8, хранящихся в DPB, выводят, используя процесс управления памятью типа скользящего окна, и выбрасывают из DPB.
Далее, кадр Р9 после декодирования хранится в DPB, и, в результате, как показано на фиг.6, кадры Р5, Bs2, Р8 и Р9 хранятся в DPB.
Когда декодируют кадр Р9, кадр Р5, хранящийся в DPB, считывают и подают для изображения. Как показано на фиг.6, во время изображения, кадр Р5 сохраняют в буфере дисплея и отображают в требуемые моменты времени.
В момент времени t8, следующий после момента времени t7, устройство декодирования считывает кадр Bs6 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs6.
Когда декодируют кадр Bs6, как показано на фиг.6, кадры Р5, Bs2, Р8 и Р9 хранятся в DPB, и кадр Bs6 декодируют со ссылкой на кадры Р5 или Bs2, Р8 и Р9, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
Кадр Bs6 представляет собой опорный кадр, и кадр Bs6 после декодирования хранится в DPB.
Когда кадр Bs6 хранится в DPB, четыре кадра Р5, Bs2, Р8 и Р9 хранятся в DPB, занимая максимальный объем памяти. По этой причине в устройстве декодирования самый старый кадр Р5 из кадров Р5, Bs2, Р8 и Р9, хранящихся в DPB, выводят через процесс управления памятью типа скользящего окна и выбрасывают из DPB.
После этого кадр Bs6 после декодирования хранится в DPB, и, в результате, как показано на фиг.6, кадры Bs2, Р8, Р9 и Bs6 хранятся в DPB.
Кадр Bs6 хранится в DPB после декодирования и также подают для изображения. Как показано на фиг.6, при изображении кадр Bs6 сохраняют в буфере дисплея и отображают в необходимые моменты времени.
В момент времени t9, следующий после момента времени t8, устройство декодирования считывает кадр В7 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В7.
Когда кадр В7 декодируют, как показано на фиг.6, кадры Bs2, Р8, Р9 и Bs6 хранятся в DPB, и кадр В7 декодируют со ссылкой на кадры Bs2 или Р8, Р9 и Bs6, хранящиеся в DPB в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
Кадр В7 не является опорным кадром, таким образом, кадр В7 не хранится в DPB после декодирования.
Таким образом, как показано на фиг.6, аналогично случаю после декодирования кадра Bs6, расположенного на один кадр перед кадром В7 в порядке декодирования, кадры Bs2, Р8, Р9 и Bs6 по-прежнему хранятся в DPB.
Кадр В7 подают для отображения после декодирования. Как показано на фиг.6, во время отображения кадр В7 сохраняют в буфере дисплея и отображают в требуемые моменты времени.
В устройстве декодирования по фиг.2, аналогично, DPB управляют, используя процесс управления памятью типа скользящего окна, и кодированные данные декодируют при присвоении значения (заданного значения), при использовании принятого по умолчанию AVC, каждому из опорных кадров, хранящихся в DPB, в виде индекса L0 для прогнозирования L0 или индекса L1 для прогнозирования L1.
На фиг.7 показана схема, иллюстрирующая ухудшение эффективности кодирования, когда DPB управляют только, используя процесс управления памятью типа скользящего окна в устройстве декодирования AVC по фиг.2 (то же относится к устройству кодирования AVC по фиг.1).
Таким образом, на фиг.7 показана взаимосвязь между опорными кадрами, когда DPB управляют, используя только процесс управления памятью типа скользящего окна.
На фиг.7, для исключения сложности, стрелка, обозначающая ссылку на кадр Bs от кадра Р, и стрелка, обозначающая ссылку на кадр изображения R от кадра изображения L, не показаны.
Фокусируясь только на прогнозировании L0, при котором выполняют прямое прогнозирование для формирования прогнозируемого изображения текущего кадра, находящегося в процессе декодирования, со ссылкой на кадр, расположенный перед текущим кадром, находящимся в процессе декодирования (текущий кадр, находящийся в процессе кодирования) в порядке изображения, например, для кадра Bs6 - изображения L может быть сделана ссылка на кадр Р4, расположенный ближе всего к кадру Bs6 в порядке изображения среди кадров изображения L, которое представляет собой изображение, полученное с той же точки наблюдения, что показано тонкой пунктирной линией на фиг.7, таким образом, эффективность кодирования может быть улучшена.
Однако как показано на фиг.6, когда кадр Bs6 декодируют в момент времени t8, кадры Р5, Bs2, Р8 и Р9 хранятся в DPB, имеющем объем памяти для четырех кадров, а кадр Р4 уже выброшен из DPB.
Таким образом, в случае прямого прогнозирования в виде прогнозирования L0, когда декодируют кадр Bs6, ссылка может быть сделана только на кадры Bs2 или Р5, расположенные перед кадром Bs6 в порядке изображения, из кадров Р5, Bs2, Р8 и Р9, хранящихся в DPB.
Кадр Bs2 представляет собой кадр изображения L, полученный из той же точки наблюдения, что и кадр Bs6 в качестве текущего кадра, находящегося в процессе декодирования, но по времени расположен дальше от кадра Bs6, чем кадр Р4. Поэтому для кадра Bs6 в качестве текущего кадра, находящегося в процессе декодирования, когда делают ссылку на кадр Bs2, ошибка прогнозирования увеличивается по сравнению со случаем, когда делают ссылку на кадр Р4.
Кадр Р5 представляет собой кадр изображения R, полученный с другой точки наблюдения, чем кадр Bs6, который представляет собой кадр изображения L, и не представляет собой кадр, который составляет пару LR вместе с кадром Bs6. Поэтому для кадра Bs6, в качестве текущего кадра, находящегося в процессе декодирования, когда делают ссылку на кадр Р5, во многих случаях ошибка прогнозирования увеличивается по сравнению со случаем, когда делают ссылку на кадр Р4.
Как описано выше, в случае прямого прогнозирования кадра Bs6, когда невозможно сделать ссылку на кадр Р4, который представляет собой кадр изображения L, полученный с той же точки наблюдения, что и кадр Bs6, и расположенный ближе всего к кадру Bs6 в порядке изображения, ссылку можно сделать только на кадр Bs2 или Р5, ошибка прогнозирования увеличивается, в результате чего может быть ухудшена эффективность кодирования.
Например, для кадра В7 изображения R на кадр Р5, который представляет собой кадр изображение изображения R, полученный с той же точки наблюдения и расположенный ближе всего к кадру В7 в порядке изображения из кадров изображения R, может быть сделана ссылка, как показано пунктирной стрелкой на фиг.7, так, чтобы повысить эффективность кодирования.
Однако, как показано на фиг.6, когда кадр В7 декодируют в момент времени t9, кадры Bs2, Р8, Р9 и Bs6 хранятся в DPB, имеющем объем памяти для четырех кадров, и кадр Р5 уже был выброшен из DPB.
Таким образом, в случае прямого прогнозирования в виде прогнозирования L0, когда декодируют кадр В7, ссылка может быть сделана только на кадр Bs2 или Bs6 перед кадром В7 в порядке изображения из кадров Bs2, Р8, Р9 и Bs6, содержащихся в DPB.
Кадр Bs2 представляет собой кадр изображения L, полученный с другой точки наблюдения, чем кадр В7, который представляет собой кадр изображения R и не является кадром, который составляет пару LR вместе с кадром В7. Поэтому для кадра В7 в качестве текущего кадра, находящегося в процессе декодирования, когда делают ссылку на кадр Bs2, во многих случаях ошибка прогнозирования увеличивается по сравнению со случаем, когда делают ссылку на кадр Р5.
Кадр Bs6 представляет собой кадр, который составляет пару LR вместе с кадром В7, но представляет собой кадр изображения L, снятый из другой точки наблюдения, чем кадр В7, который представляет собой кадр изображения R. Поэтому для кадра В7 в качестве текущего кадра, находящегося в процессе декодирования, когда делают ссылку на кадр Bs6, во многих случаях ошибка прогнозирования увеличивается по сравнению со случаем, когда делают ссылку на кадр Р5, хотя не в той же степени, что и ошибка прогнозирования, когда используют кадр Bs2, который представляет собой кадр изображения L, снятый с другой точки наблюдения и который не составляет пару LR.
Как описано выше, в случае прямого прогнозирования кадра В7, когда невозможно сделать ссылку на кадр Р5, который представляет собой кадр изображения R, снятый с той же точки наблюдения, что и кадр В7, и расположенный ближе всего к кадру В7 в порядке изображения, и ссылку можно сделать только на кадр Bs2 или Bs6, ошибка прогнозирования увеличивается, и, таким образом, эффективность кодирования может быть ухудшена.
Аналогично, для кадра Bs10 изображения L может быть сделана ссылка на кадр Р8, который расположен ближе всего к кадру Bs10 в порядке изображения, из кадров изображения L, полученных с той же точки наблюдения. Для кадра В11 изображения R ссылка может быть сделана на кадр Р9, который расположен ближе всего к кадру В11 в порядке изображения из кадров изображения R, полученных с той же точки наблюдения. Для кадра Bs14 изображения L ссылка может быть сделана на кадр Р12, который расположен ближе всего к кадру Bs14 в порядке отображения из кадров изображения L, полученных с той же точки наблюдения. Для кадра В15 изображения R ссылка может быть сделана на кадр Р13, который расположен ближе всего к кадру В15 в порядке отображения из кадров изображения R, полученных с той же точки наблюдения. Таким образом, эффективность кодирования может быть улучшена.
Однако, как показано на фиг.6, когда кадр Bs10 декодируют (кодируют), кадр Р8 выброшен из DPB, и только кадры Р9, Bs6, P12 и Р13 хранятся в DPB. Когда декодируют кадр B11, кадр Р9 выброшен из DPB, и только кадры Bs6, Р12, Р13 и Bs10 хранятся в DPB. Когда декодируют кадр Bs14, кадр Р12 выброшен из DPB, и в DPB хранятся только кадры Р13, Bs10, I16 (I0) и Р17 (Р1). Когда декодируют кадр В15, кадр Р13 выброшен из DPB, и в DPB хранятся только кадры Bs10, I16, Р17 и Bs14.
Поэтому, когда декодируют кадр Bs10 изображения L, ссылка может быть сделана только на кадр Bs6, который представляет собой кадр изображения L, полученный с той же точки наблюдения, но который находится на удалении от кадра Р8 в порядке изображения, или на кадр Р9, который представляет собой кадр изображения R, полученный с другой точки наблюдения, и не составляет пару LR. Когда декодируют кадр В11, ссылка может быть сделана только на кадр Bs6, который представляет собой кадр изображения R, полученный с другой точки наблюдения, и не составляет пару LR, или на кадр Bs10, который представляет собой кадр изображения R, полученный с другой точки наблюдения, и который составляет пару LR. Когда декодируют кадр Bs14, ссылка может быть сделана только на кадр Bs10, который представляет собой кадр изображения L, полученный с той же точки наблюдения, но находится на удалении от кадра Р12 в порядке отображения, или на кадр Р13, который представляет собой кадр изображения R, полученный с другой точки наблюдения, и не составляет пару LR. Когда декодируют кадр В15, ссылка может быть сделана только на кадр Bs10, который представляет собой кадр изображения R, полученный с другой точки наблюдения, и не составляет пару LR, или на кадр Bs14, который представляет собой кадр изображения R, полученный с другой точки наблюдения, и составляет пару LR.
При этом во множестве случаев, когда ошибка прогнозирования увеличивается, эффективность кодирования может ухудшиться.
Пример конфигурации варианта выполнения устройства кодирования, в котором применяется изобретение
На фиг.8 показана блок-схема, представляющая пример конфигурации варианта выполнения устройства кодирования, в котором применяется устройство обработки изображения в соответствии с изобретением.
На фиг.8, участки, соответствующие устройству кодирования по фиг.1, обозначены теми же номерами ссылочных позиций, и их описание будет ниже исключено, соответственно.
Устройство кодирования по фиг.8 выполнено так же, как и устройство кодирования по фиг.1, за исключением того, что представлен новый модуль 71 управления сохранением.
Модуль 71 управления сохранением, управляет сохранением опорного кода в запоминающем устройстве 22 кадра, которое сохраняет декодированное изображение, полученное путем кодирования кадров, составляющих последовательность кадров и выполнения локального декодирования, в качестве опорного кадра, к которому обращаются при формировании прогнозируемого изображения для использования при более позднем по времени предиктивном кодировании.
Таким образом, модуль 71 управления сохранением отслеживает текущий кадр, находящийся в процессе кодирования, который подают из буфера 12 сортировки экрана, в арифметический модуль 13, и выполняет управление сохранением в запоминающем устройстве 22 кадра так, чтобы сохранялось в запоминающем устройстве 22 кадра кадр, который был кодирован по времени раньше, чем текущий кадр, находящийся в процессе кодирования, и представляет собой кадр, который является кадром изображения из изображения L и изображения R, полученным с той же точки наблюдения, что и текущий кадр, находящийся в процессе кодирования, и расположенный в порядке отображения ближе всего к текущему кадру, находящемуся в процессе кодирования, из кадров, которые могут стать опорными кадрами.
Управление сохранением, осуществляемое модулем 71 управления сохранением, выполняют путем выработки команды ММСО для управления сохранением кадра в DPB на основе РОС текущего кадра, находящегося в процессе кодирования, так, чтобы в DPB устройства декодирования AVC по фиг.2 сохранялся кадр, который декодирован по времени раньше, чем текущий кадр, находящийся в процессе декодирования, и представляет собой кадр изображения из изображения L и изображения R, полученный с той же точки наблюдения, что и текущий кадр, находящийся в процессе декодирования, и расположенный в порядке отображения ближе всего к текущему кадру, находящемуся в процессе декодирования, из кадров, которые могут стать опорными кадрами.
Команда ММСО, которую вырабатывают как управление сохранением, выполняемым модулем 71 управления сохранением, подают в запоминающее устройство 22 кадра и в модуль 16 инвертируемого кодирования.
Модуль 71 управления сохранением подает необходимый аргумент в запоминающее устройство 22 кадра и в модуль 16 инвертируемого кодирования, в дополнение к команде ММСО.
Когда команду ММСО подают из модуля 71 управления сохранением, запоминающее устройство 22 кадра сохраняет декодированное изображение из фильтра 21 устранения блоков в изображении, как (участок) опорный кадр, используя адаптивный процесс управления памятью в соответствии с командой ММСО (и необходимым аргументом) из модуля 71 управления сохранением вместо процесса управления памятью типа скользящего окна.
Когда команду ММСО подают из модуля 71 управления сохранением, модуль 16 инвертируемого кодирования включает команду ММСО (и необходимый аргумент) в кодированные данные.
В частности, команду ММСО включают в заголовок среза кодированных данных как синтаксис метки декодированного опорного кадра.
Обработка устройства кодирования
На фиг.9 показана блок-схема последовательности операций, представляющая обработку (обработку кодирования) устройства кодирования по фиг.8.
В устройстве кодирования по фиг.8, если кадр в качестве текущего кадра, находящегося в процессе кодирования, подают из буфера 12 сортировки экрана в арифметический модуль 13, модуль 24 прогнозирования внутри кадра, модуль 25 детектирования/компенсации движения и модуль 71 управления сохранением, то на этапе S11 текущий кадр кодируют в процессе кодирования.
А именно, арифметический модуль 13 рассчитывает значение пикселя прогнозируемого изображения, подаваемого из модуля 26 выбора прогнозируемого изображения и сформированного модулем 24 прогнозирования внутри кадра или модулем 25 детектирования/компенсации движения из значения пикселя (каждого блока, составляющего) текущего кадра, находящегося в процессе кодирования, который представляет собой кадр, полученный из буфера 12 сортировки экрана, в соответствии с необходимостью, и подает это значение пикселя в модуль 14 ортогонального преобразования.
Модуль 14 ортогонального преобразования выполняет ортогональное преобразование (значения пикселя или величины разности, полученной в результате вычитания прогнозируемого изображения) для текущего кадра, находящегося в процессе кодирования, из арифметического модуля 13, и подает полученный в результате коэффициент преобразования в модуль 15 квантования.
Модуль 15 квантования выполняет квантование коэффициента преобразования, подаваемого из модуля 14 ортогонального преобразования, и подает полученное в результате квантованное значение в модуль 16 инвертируемого кодирования.
Модуль 16 инвертируемого кодирования выполняет инвертируемое кодирование для квантованной величины, полученной из модуля 15 квантования. Модуль 16 инвертируемого кодирования кодирует режим прогнозирования, подаваемый из модуля 24 прогнозирования внутри кадра, или вектор движения, подаваемый из модуля 25 детектирования/компенсации движения, и режим прогнозирования или команду ММСО (и необходимый аргумент), подаваемый из модуля 71 управления сохранением, включает полученные в результате данные в заголовок или тому подобные из кодированных данных и выводит кодированные данные через буфер 17 накопления.
На этапе S11, когда текущий кадр, находящийся в процессе кодирования, представляет собой кадр, который может быть опорным, то есть когда текущий кадр, находящийся в процессе кодирования, представляет собой одно из изображений I, Р и Bs, квантованная величина, полученная в результате кодирования текущего кадра, находящегося в процессе кодирования, подвергается локальному декодированию в модуле 18 обратного квантования, модуле 19 обратного ортогонального преобразования и в арифметическом модуле 20.
Таким образом, квантованную величину, получаемую модулем 15 квантования, подают в модуль 16 инвертируемого кодирования и также в модуль 18 обратного квантования.
Модуль 18 обратного квантования выполняет обратное квантование квантованной величины, полученной из модуля 15 квантования, получая коэффициент преобразования, и подает этот коэффициент преобразования в модуль 19 обратного ортогонального преобразования.
Модуль 19 обратного ортогонального преобразования выполняет обратное ортогональное преобразование для коэффициента преобразования, полученного из модуля 18 обратного квантования, и подает полученные в результате данные в арифметический модуль 20.
Арифметический модуль 20 суммирует значение пикселя прогнозируемого изображения, подаваемого из модуля 26 выбора прогнозируемого изображения, с данными, подаваемыми из модуля 19 обратного ортогонального преобразования, в соответствии с необходимостью, для получения декодированного изображения, в котором декодированы участки (блоки) текущего кадра, находящегося в процессе кодирования, которые должны быть обработаны в арифметическом модуле 13, в модуле 14 ортогонального преобразования и в модуле 15 квантования, и подает декодированное изображение в фильтр 21 устранения блоков в изображении.
Фильтр 21 устранения блоков в изображении фильтрует декодированное изображение, полученное из арифметического модуля 20, для удаления искажений блоков, генерируемых в декодированном изображении, и подает полученное в результате декодированное изображение в запоминающее устройство 22 кадра.
После этого обработка переходит с этапа S11 на этап S12, и модуль 71 управления сохранением определяет, удовлетворяется или нет условие, в соответствии с которым должно быть выполнено управление сохранением, для управления сохранением опорного кадра в запоминающем устройстве 22 кадра на основе РОС текущего кадра, находящегося в процессе кодирования.
Условие, в соответствии с которым должно быть выполнено управление сохранением, представляет собой условие использования РОС текущего кадра, находящегося в процессе кодирования, и его конкретный пример будет описан ниже.
На этапе S12, когда определяют, что условие, в соответствии с которым должно быть выполнено управление сохранением, не удовлетворяется, модуль 71 управления сохранением не вырабатывает команду ММСО, и процесс переходит на этап S13.
На этапе S13 запоминающее устройство 22 кадра сохраняет декодированное изображение из фильтра 21 устранения блоков в изображении как (часть) опорного кадра, используя подход FIFO, через процесс управления памятью типа скользящего окна.
В то же время, когда на этапе S12 определяют, что условие, в соответствии с которым должно быть выполнено управление сохранением, удовлетворяется, процесс переходит на этап S14, и модуль 71 управления сохранением вырабатывает команду ММСО на основе РОС текущего кадра, находящегося в процессе кодирования, и подает эту команду ММСО в запоминающее устройство 22 кадра для выполнения управления сохранением в запоминающем устройстве 22 кадра, используя адаптивный процесс управления памятью. Затем обработка переходит на этап S15.
Модуль 71 управления сохранением передает команду ММСО в запоминающее устройство 22 кадра, а также в модуль 16 инвертируемого кодирования. В модуле 16 инвертируемого кодирования команду ММСО из модуля 71 управления сохранением включают в кодированные данные.
На этапе S15, запоминающее устройство 22 кадра сохраняет декодированное изображение из фильтра 21 устранения блоков в изображении в качестве опорного кадра или выполняет операцию над ранее сохраненным опорным кадром в соответствии с управлением сохранением из модуля 71 управления сохранением.
После этапов S13 и S15 обработка ожидает пока кадр, являющийся следующим текущим кадром, находящимся в процессе кодирования, не будет передан из буфера 12 сортировки экрана в арифметический модуль 13, модуль 24 прогнозирования внутри кадра, модуль 25 детектирования/компенсации движения и в модуль 71 управления сохранением, и процесс возвращается к этапу S11.
Первое управление сохранением
На фиг.10 показана схема, иллюстрирующая первое управление сохранением, которое представляет собой пример управления сохранением, выполняемым модулем 71 управления сохранением (фиг.8).
При первом управлении сохранением, как описано со ссылкой на фиг.4, для последовательности кадров, в которой одна GOP состоит из 16 кадров I0, P1, Bs2, В3, Р4, Р5, Bs6, В7, Р8, Р9, Bs10, B11, Р12, Р13, Bs14 и В15, модуль 71 управления сохранением вырабатывает команду ММСО, которая, когда кадр Bs (кадр Bs2, BS6, Bs10 или Bs14) изображения L, которое представляет собой одно изображение из изображения L и изображения R, например, декодируют (локальное декодирование), определяют кадр Bs как долгосрочный опорный кадр, и когда кадр I или Р (кадр I0, Р4, Р8 или Р12) изображения L декодируют в качестве этого одного изображения, выбирают кадр Bs, который становится долгосрочным опорным кадром непосредственно перед этим, и определяют кадр Bs как неопорный кадр.
На фиг.10 показан список команд ММСО, которые вырабатывают в качестве первого управления сохранением, выполняемого модулем 71 управления сохранением.
Когда команда ММСО и необходимый аргумент, вырабатываемые модулем 71 управления сохранением, включены в кодированные данные, в устройстве декодирования по фиг.2, которое декодирует кодированные данные, выполняют ту же операцию, что и операция в устройстве кодирования по фиг.8, для сохранения (управления) опорного кадра в запоминающем устройстве 22 кадра в соответствии с командой ММСО и необходимым аргументом, выработанными модулем 71 управления сохранением, как операцию по сохранению (управлению) опорного кадра в запоминающем устройстве 49 кадра, соответствующем DPB.
Ниже будет предоставлено описание соответствующей замены операции в устройстве кодирования по фиг.8 для сохранения опорного кадра в запоминающем устройстве 22 кадра в соответствии с первым управлением сохранением, выполняемым модулем 71 управления сохранением, операцией по сохранению опорного кадра в запоминающем устройстве 49 кадра, которое соответствует DPB в устройстве декодирования по фиг.2.
В списке на фиг.10 значение в столбце "РОС" представляет собой значение, полученное путем деления РОС текущего изображения в процессе кодирования (текущее изображение в процессе декодирования) на 16. Столбец "команда ММСО" представляет команду ММСО и необходимый аргумент, вырабатываемый, когда остаток РОС соответствует значению в столбце "РОС". Столбец "детали" представляет содержание обработки (операции) в соответствии с командой ММСО и необходимым аргументом в колонке "команда ММСО".
На фиг.10 показано, что когда остаток РОС составляет 0, 4, 2, 8, 6, 12, 10 или 14, вырабатывают команду ММСО, как первое управление сохранением.
Для первого управления сохранением, условие, в соответствии с которым остаток РОС равен 0, 4, 2, 8, 6, 12, 10 или 14, становится условием для определения на этапе S12 по фиг.9, в соответствии с которым выполняют управление сохранением.
Как описано со ссылкой на фиг.4, для последовательности кадров, в которой одна GOP составлена из 16 кадров I0, P1, Bs2, В3, Р4, Р5, Bs6, В7, Р8, Р9, Bs10, B11, Р12, Р13, Bs 14 и В15, условие, что остаток РОС составляет 0, 4, 2, 8, 6, 12, 10 или 14, означает, что текущий кадр, находящийся в процессе кодирования, представляет собой кадр Bs (кадр Bs2, BS6, Bs10 или Bs 14) изображения L или кадр I или Р (кадр I0, Р4, Р8 или Р12) изображения L.
Модуль 71 управления сохранением вырабатывает в качестве команды ММСО (и необходимого аргумента) "400", когда остаток РОС равен 0, "400", когда остаток РОС равен 4, "41600", когда остаток РОС равен 2, "400", когда остаток РОС равен 8, "41600", когда остаток РОС равен 6, "400", когда остаток РОС равен 12, "41600", когда остаток РОС равен 10, и "41600", когда остаток РОС равен 14.
Как показано в нижней части на фиг.10, команда ММСО может иметь семь значений №COMMAND=0, 1, 2, 3, 4, 5 и 6.
Когда команда ММСО представляет собой 1, 2, 3, 4 или 6, команда ММСО сопровождается аргументом, который следует после команды ММСО.
Когда команда ММСО равняется 0 (№COMMAND=0), устройство декодирования AVC интерпретирует команду ММСО как команду NARMMCOEND, и заканчивает операцию (обработку) для DPB через процесс управления адаптивным запоминающим устройством в соответствии с интерпретацией.
Когда команда ММСО представляет собой 1 (№COMMAND=1), устройство декодирования интерпретирует команду ММСО как команду NAR_MMCO_MARK_SHORT_TERM_P1C_UNUSED, выводит краткосрочный опорный кадр, хранящийся в DPB, который обозначен, используя аргумент, следующий после команды ММСО в кодированных данных, в соответствии с интерпретацией, и определяет краткосрочный опорный кадр как неопорный кадр.
Когда команда ММСО представляет собой 2 (№COMMAND=2), устройство декодирования интерпретирует команду ММСО как команду NAR_MMCO_MARK_RONG_TERM_P1C_UNUSED, выводит долгосрочный опорный кадр, хранящийся в DPB, который обозначен с использованием аргумента, следующего после команды ММСО в кодированных данных, в соответствии с интерпретацией, и определяет долгосрочный опорный кадр как неопорный кадр.
Когда команда ММСО равна 3 (№COMMAND=3), устройство декодирования интерпретирует команду ММСО как команду
NAR_MMCO_ASSIGN_RONG_TERM_FRAME_INDE и изменяет краткосрочный опорный кадр, хранящийся в DPB, который обозначен с использованием аргумента, следующего после команды ММСО в кодированных данных, как долгосрочный опорный кадр, в соответствии с интерпретацией.
Когда команда ММСО равна 4 (№COMMAND=4), устройство декодирования интерпретирует команду ММСО как команду
N ARMMCOS PEC IF Y_M AXRONGTERMFRAMEJTNDEX и изменяет верхнее предельное значение MaxLongTennFrameldx (максимальный индекс долгосрочного кадра) индекса LongFrameldx для долгосрочного опорного кадра, которое назначено долгосрочному опорному кадру, хранящемуся в DPB, на значение, обозначенное с использованием аргумента, следующего после команды ММСО в кодированных данных, в соответствии с интерпретацией.
После изменения верхнего предельного значения MaxLongTennFrameldx выводят долгосрочный опорный кадр, которому был присвоен индекс LongFrameldx, превышающий MaxLongTermFrameldx после изменения.
Когда команда ММСО равна 5 (№COMMAND=5), устройство декодирования интерпретирует команду ММСО как команду NARMMCORESETARRREFP1C и выводит все опорные кадры, хранящиеся в DPB, в соответствии с интерпретацией.
Когда команда ММСО равна 6 (№COMMAND=6), устройство декодирования интерпретирует команду ММСО как команду
NAR_MMCO_ASSIGN_RONG_TERM_FRAME INDEXCURRENT, определяет текущий кадр, находящийся в процессе декодирования, как долгосрочный опорный кадр и присваивает индекс LongFrameldx в соответствии с аргументом, который следует после команды ММСО в кодированных данных, для долгосрочного опорного кадра, в соответствии с интерпретацией, и сохраняет этот долгосрочный опорный кадр в DPB.
Команда ММСО и необходимый аргумент могут быть впоследствии описаны, и устройство декодирования выполняет операцию для DPB, последовательно используя процесс адаптивного управления памятью на основе исходной команды ММСО из последовательного описания одной или более команд ММСО и необходимых аргументов. Когда появляется команда О ММСО (№COMMAND=0), операция для DPB путем адаптивного процесса управления памятью заканчивается.
Хотя, как описано со ссылкой на фиг.8, команда ММСО описана в заголовке сегмента кодированных данных как синтаксис метки декодированного опорного кадра, когда "memory_management_control_operation=l" описано в синтаксисе метки декодированного опорного кадра, устройство декодирования выполняет команду ММСО.
В списке на фиг.10, когда остаток РОС равен 0, выводят "400" в качестве команды ММСО и необходимый аргумент. "4" на первом месте от заголовка в "400" представляет собой команду ММСО №COMMAND=4, и "0" на втором месте представляет собой аргумент команды ММСО №COMMAND=4. "0" на третьем месте в "400" представляет команду ММСО №COMMAND=0.
В соответствии с командой ММСО №COMMAND=4 на первом месте и последующим аргументом "0" в "400", в устройстве декодирования переменную Max_long_term_frame_idx_plusl, соответствующую верхнему предельному значению MaxLongTermFrameldx для индекса LongFrameldx для долгосрочного опорного кадра, устанавливают в 0, который представляет собой аргумент.
В устройстве декодирования, поскольку верхнее предельное значение MaxLongTermFrameldx установлено как Max_long_term_frame_idx_plusl-1, если переменная Max_long_term_frame_idx_plusl установлена в 0, верхнее предельное значение MaxLongTermFrameldx установлено в Max_long_term_frame_idx_plusl-l=-1 (="отсутствие индексов долгосрочного кадра").
Последовательное целое число, имеющее минимальное значение 0, используется как индекс LongFrameldx для долгосрочного опорного кадра.
Таким образом, если верхнее предельное значение MaxLongTermFrameldx индекса LongFrameldx для долгосрочного опорного кадра установлено как -1, индексы LongFrameldx для долгосрочного опорного кадра, которые представляют собой целочисленное значение, равное или большее 0, все становятся недействительными, то есть все долгосрочные опорные кадры (долгосрочные кадры), хранящиеся в DPB, будут выведены (выброшены (удалены) из DPB в этом варианте выполнения).
После этого в устройстве декодирования операция для DPB с использованием процесса адаптивного управления памятью заканчивается в соответствии с командой ММСО №COMMAND=0 на третьем месте в "400".
Когда остаток РОС равен 4, 8 или 12, то аналогично случаю, когда остаток РОС равен 0, выводят "400" как команду ММСО и необходимый аргумент. Таким образом, переменную Max_long_term_frame_idx_plusl устанавливают в 0 и в результате выводят все долгосрочные опорные кадры, хранящиеся в DPB.
В списке, показанном на фиг.10, когда остаток РОС равен 2, выводят "41600" как команду ММСО и необходимый аргумент.
"4" на первом месте от начала в "41600" представляет команду ММСО №COMMAND=4, и " 1" на втором месте представляет собой аргумент команды ММСО №COMMAND=4. "6" на третьем месте в "41600" представляет команду ММСО №COMMAND-=6, и "0" на четвертом месте представляет собой аргумент команды ММСО №COMMAND=6. "0" на пятом месте в "41600" представляет команду ММСО №COMMAND=0.
В соответствии с командой ММСО №COMMAND=4 на первом месте в "41600" и последующим аргументом "1", в устройстве декодирования переменную Max_long_term_frame_idx_plusl, соответствующую верхнему предельному значению MaxLongTermFrameldx индекса LongFrameldx для долгосрочного опорного кадра, устанавливают в 1, что представляет собой аргумент.
В устройстве декодирования, как описано выше, поскольку верхнее предельное значение MaxLongTermFrameldx установлено в Max_long_term_frame_idx_plusl-1, если переменная Max_long_term_frame_idx_plusl будет установлена в 1, верхнее предельное значение MaxLongTermFrameldx будет установлено в Max_long_term_frame_idx_plusl-I=0.
Как описано выше, последовательное целое число, имеющее минимальное значение 0, используется как индекс LongFrameldx для долгосрочного опорного кадра.
Таким образом, когда верхнее предельное значение MaxLongTermFrameldx индекса LongFrameldx для долгосрочного опорного кадра установлено в 0, только одно значение 0 можно использовать как индекс LongFrameldx для долгосрочного опорного кадра.
Следовательно, только один кадр может храниться в DPB как долгосрочный опорный кадр.
В соответствии с командой ММСО №COMMAND=:=6 на третьем месте в "41600" и последующим аргументом "0", в устройстве декодирования текущий кадр, находящийся в процессе декодирования, хранится в DPB как долгосрочный кадр, а 0, который представляет собой аргумент, присваивают долгосрочному опорному кадру в качестве индекса LongFrameldx для долгосрочного опорного кадра.
После этого в устройстве декодирования операция для DPB с использованием процесса адаптивного управления памятью заканчивается в соответствии с командой ММСО №COMMAND=0 на пятом месте в "41600".
Когда остаток РОС равен 6, 10 или 14, то аналогично случаю, когда остающийся РОС равен 2, "41600" выводят как команду ММСО и необходимый аргумент. Таким образом, переменную Max_long_term_frame_idx_plusl устанавливают в 1, текущий кадр, находящийся в процессе декодирования, хранится в DPB как долгосрочный опорный кадр, и 0 присваивают долгосрочному опорному кадру в качестве индекса LongFrameldx для долгосрочного опорного кадра.
В соответствии со списком по фиг.10, как описано выше, когда остаток РОС равен 2, 6, 10 или 14, "41600" выводят как команду ММСО и необходимый аргумент.
Случай, когда остаток РОС равен 2, 6, 10 или 14, относится к случаю, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs2, Bs6, Bs10 или Bs14 в одной GOP, который представляет собой кадр Bs изображения L. Таким образом, кадры Bs2, Bs6, Bs10 или Bs14 хранятся в DPB как долгосрочные опорные кадры после декодирования в качестве текущего кадра, находящегося в процессе декодирования.
В соответствии со списком по фиг.10, как описано выше, когда остаток РОС представляет 0, 4, 8 или 12, "400" выводят как команду ММСО и необходимый аргумент.
Случай, когда остаток РОС равен 0, 4, 8 или 12, относится к случаю, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр I0, Р4, Р8 или Р12 в одной GOP, который представляет собой кадр I или Р изображения L. Таким образом, после декодирования кадра I0, Р4, Р8 или Р12 в качестве текущего кадра, находящегося в процессе декодирования, долгосрочный опорный кадр, хранящийся в DPB, выводят (выбрасывают).
Когда кадр I0 (кадр при остатке РОС=0) некоторой GOP становится текущим кадром, находящимся в процессе декодирования, кадр Bs14 (кадр при остатке РОС=14), относящийся к GOP на одну GOP перед соответствующей GOP, хранится в DPB в качестве долгосрочного опорного кадра. Таким образом, после того как декодирован кадр I0 в качестве текущего кадра, находящегося в процессе декодирования, кадр Bs14, хранящийся в DPB в качестве текущего кадра, находящегося в процессе декодирования (относящийся к GOP на одну GOP перед GOP кадра I0 в качестве текущего кадра, находящегося в процессе декодирования), выводят.
Когда кадр Р4 (кадр при остатке РОС=4) некоторой GOP становится текущим кадром, находящимся в процессе декодирования, кадр Bs2 (кадр при остатке РОС=2) соответствующей GOP хранится в DPB в качестве долгосрочного опорного кадра. Таким образом, после декодирования кадра Р4 в качестве текущего кадра, находящегося в процессе декодирования, кадр Bs2, хранящийся в DPB в качестве долгосрочного опорного кадра, выводят из DPB.
Когда кадр Р8 (кадр при остатке РОС=8) некоторой GOP становится текущим кадром, находящимся в процессе декодирования, кадр Bs6 (кадр при остатке РОС=6) соответствующей GOP хранится в DPB как долгосрочный опорный кадр. Таким образом, после того как кадр Р8 как текущий кадр, находящийся в процессе декодирования, декодирован, кадр Bs6, хранящийся в DPB как долгосрочный опорный кадр, выводят из DPB.
Когда кадр Р12 (кадр при остатке РОС=12) некоторой GOP становится текущим кадром, находящимся в процессе декодирования, кадр Bs10 (кадр при остатке РОС=10) соответствующей GOP хранится в DPB как долгосрочный опорный кадр. Таким образом, после того как кадр Р12 как текущий кадр, находящийся в процессе декодирования, декодирован, кадр Bs10, хранящийся в DPB как долгосрочный опорный кадр, выводят из DPB.
Как описано выше, в соответствии со списком на фиг.10, когда кадр Bs (кадр Bs2, Bs6, Bs10 или Bs14) изображения L декодируют, кадр Bs хранится в DPB как долгосрочный опорный кадр. Когда кадр Р (кадр I0, Р4, Р8 или Р12) изображения L декодируют, кадр Bs, который становится долгосрочным опорным кадром, находящимся непосредственно перед ним, выводят из DPB.
Кодирование/декодирование, когда выработана команда ММСО
На фиг.11 показана схема, иллюстрирующая состояние DPB, когда вырабатывают команду ММСО и необходимый аргумент по фиг.10 для кодирования/декодирования последовательности кадров путем использования AVC.
На фиг.11 показан порядок изображения кадров, составляющих последовательность кадров, порядок кодирования/декодирования, PN, состояние сохранения DPB и состояние сохранения буфера дисплея.
Порядок изображения изображений, составляющих последовательность кадров, порядок кодирования/декодирования, PN и состояние сохранения буфера дисплея становятся такими же, как показано на фиг.6, поэтому их описание здесь будет опущено.
Если предположить, что последовательность кадров закодирована в порядке кодирования, показанном на фиг.11, в устройстве кодирования по фиг.8, кодированные данные, полученные как результат кодирования, декодируют в порядке декодирования по фиг.11 в устройстве декодирования AVC по фиг.2.
Также предполагается, что в устройстве кодирования по фиг.8 вырабатывают команду ММСО (и необходимый аргумент) по фиг.10, и команда ММСО включена в кодированные данные.
Здесь, однако, предполагается, что команда RPLR не включена в кодированные данные.
В этом случае в устройстве декодирования AVC по фиг.2 при декодировании кодированных данных DPB управляют через процесс адаптивного управления памятью во время декодирования кадров с выработанной командой ММСО. DPB управляют через процесс управления памятью типа скользящего окна во время декодирования изображения, когда команда ММСО не выработана.
В устройстве декодирования значения (заранее установленные значения) для принятого по умолчанию AVC присвоены опорным кадрам, хранящимся в DPB, в качестве номера (индекс L0) опорного кадра для прогнозирования L0 и номера (индекс L1) опорного кадра для прогнозирования L1.
В момент времени t0, устройство декодирования выбирает кадр I0 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр I0.
Кадр I0 представляет собой опорный кадр, и, как показано на фиг.11, кадр I0 после декодирования хранится в DPB.
Поскольку РОС кадра I0 равен 0, и, следовательно, остаток РОС равен 0, то в соответствии с первым управлением сохранением по фиг.10 вырабатывают команду "400" ММСО (и необходимый аргумент). В результате долгосрочный опорный кадр, хранящийся в DPB, выбрасывают (выводят). В то же время, когда декодируют кадр I0 первой GOP№0, долгосрочный опорный кадр еще не хранится в DPB.
По этой причине, когда декодируют кадр I0, только для первой GOP№0, в виде исключения, не выполняют выбрасывание долгосрочного опорного кадра (невозможно выполнить).
В момент времени t1, который следует после времени t0, устройство декодирования выбирает кадр P1 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р1.
Когда декодируют кадр Р1, как показано на фиг.11, кадр I0 хранится в DPB, и кадр Р1 декодируют со ссылкой на кадр I0, хранящийся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
Как описано выше, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р, то при принятом по умолчанию AVC индекс L0, который представляет собой меньший номер опорного кадра, присваивают более позднему опорному кадру в порядке декодирования, то есть более близкому к текущему кадру, находящемуся в процессе декодирования, в порядке изображения.
Таким образом, когда декодируют кадр Р1, как показано на фиг.11, индекс L0, имеющий значение 0, присваивают кадру I0, хранящемуся в DPB.
Кадр Р1 представляет собой опорный кадр, и, как показано на фиг.11, кадр Р1 после декодирования хранится в DPB в качестве опорного кадра.
В момент времени t2, следующий после времени t1, устройство декодирования выбирает кадр Р4 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р4.
Когда декодируют кадр Р4, как показано на фиг.11, кадры I0 и Р1 хранятся в DPB, и кадр Р4 декодируют со ссылкой на кадры I0 или Р1, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
При принятом по умолчанию AVC, когда декодируют кадр Р4, для кадров I0 и Р1, хранящихся в DPB, как показано на фиг.11, выполняют следующие назначения: индекс L0, имеющий значение 0, присваивают кадру Р1, который расположен ближе всего к кадру Р4 в порядке декодирования; а индекс L0, имеющий значение 1, присваивают кадру I0, расположенному вторым от кадра Р4 в порядке декодирования.
Кадр Р4 представляет собой опорный кадр, и, как показано на фиг.11, кадр Р4 после декодирования хранится в DPB.
Поскольку РОС кадра Р4 равен 4, и, следовательно, остаток РОС равен 4, то в соответствии с первым управлением сохранением по фиг.10 вырабатывают команду "400" ММСО. В результате долгосрочный опорный кадр, хранящийся в DPB, выбрасывают. В то же время, когда кадр Р4 первый GOP№0 декодируют, долгосрочный опорный кадр еще не хранится в DPB.
Поэтому, когда декодируют кадр Р4, только для первой GOP№0, в качестве исключения, не выполняют выбрасывание долгосрочного опорного кадра.
В момент времени t3, следующий после времени t2, устройство декодирования выбирает кадр Р5 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р5.
Когда кадр Р5 декодируют, как показано на фиг.11, кадры I0, Р1 и Р4 хранятся в DPB, и кадр Р5 декодируют со ссылкой на кадры I0 и Р1 или Р4, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
При принятом по умолчанию AVC, когда кадр Р5 декодируют, для кадров I0, Р1 и Р4, хранящихся в DPB, как показано на фиг.11, выполняют следующие назначения: индекс L0, имеющий значение 0, присваивают кадру Р4, который расположен ближе всего к кадру Р5 в порядке декодирования; индекс L0, имеющий значение 1, присваивают кадру Р1, расположенному вторым от кадра Р5 в порядке декодирования; а индекс L0, имеющий значение 2, присваивают кадру I0, расположенному вторым от кадра Р5 в порядке декодирования.
Кадр Р5 представляет собой опорный кадр, и, как показано, на фиг.11, кадр Р5 после декодирования хранится в DPB.
В момент времени t4, следующий после времени t3, устройство декодирования выбирает кадр Bs2 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs2.
Когда декодируют кадр Bs2, как показано на фиг.11, кадры I0, P1, Р4 и Р5 хранятся в DPB, и кадр Bs2 декодируют со ссылкой на кадры I0 или P1, Р4 и Р5, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
Как описано выше, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В (включая кадр Bs), то при принятом по умолчанию AVC индекс L0 и индекс L1 присваивают в порядке РОС.
Таким образом, в случае прогнозирования L0, для опорных кадров, которые по времени следуют раньше, чем текущий кадр, находящийся в процессе декодирования в порядке РОС, индекс L0, имеющий наименьшее значение, присваивают опорному кадру, расположенному ближе всего к текущему кадру, находящемуся в процессе декодирования. После этого, для опорных кадров, которые по времени следуют позже, чем текущий кадр, находящийся в процессе декодирования, в порядке РОС, индекс L0, имеющий меньшее значение, присваивают опорному кадру, расположенному ближе к текущему кадру, находящемуся в процессе декодирования.
В случае прогнозирования L1, для опорных кадров, которые по времени следуют позже, чем текущий кадр, находящийся в процессе декодирования, в порядке РОС, индекс L1, имеющий меньшее значение, присваивают опорному кадру, расположенному ближе к текущему кадру, находящемуся в процессе декодирования. Затем для опорных кадров, которые по времени следуют раньше, чем текущий кадр, находящийся в процессе декодирования, в порядке РОС, индекс L1, имеющий меньшее значение, присваивают опорному кадру, расположенному ближе к текущему кадру, находящемуся в процессе декодирования.
Таким образом, при принятом по умолчанию значении AVC, когда декодируют кадр Bs2, для кадров I0, P1, Р4 и Р5, хранящихся в DPB, как показано на фиг.11, выполняют следующие назначения: индекс L0, имеющий значение 0, присваивают кадру Р1, ближайшему к кадру Bs2 перед кадром Bs2 в порядке РОС; а индекс L0, имеющий значение 1, присваивают кадру I0, расположенному вторым от кадра Bs2 перед кадром Bs2 в порядке РОС.
При принятом по умолчанию AVC для кадров I0, P1, Р4 и Р5, хранящихся в DPB, как показано на фиг.11, выполняют следующие назначения: индекс L0, имеющий значение 2, присваивают кадру Р4, ближайшему к кадру Bs2 после кадра Bs2 в порядке РОС; а индекс L0, имеющий значение 3, присваивают кадру Р5, расположенному вторым от кадра Bs2 после кадра Bs2 в порядке РОС.
При принятом по умолчанию AVC для кадров I0, P1, Р4 и Р5, хранящихся в DPB, как показано на фиг.11, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру Р4, ближайшему к кадру Bs2 после кадра Bs2 в порядке РОС; а индекс L0, имеющий значение 1, присваивают кадру Р5, ближайшему к кадру Bs2 после кадра Bs2 в порядке РОС.
При принятом по умолчанию AVC для кадров I0, P1, Р4 и Р5, хранящихся в DPB, как показано на фиг.11, выполняют следующие назначения: индекс L1, имеющий значение 2, присваивают кадру Р1, ближайшему к кадру Bs2 перед кадром Bs2 в порядке РОС; а индекс L1, имеющий значение 3, присваивают кадру I0, расположенному вторым от кадра Bs2 перед кадром Bs2 в порядке РОС.
Кадр Bs2 представляет собой опорный кадр, и кадр Bs2 после декодирования хранится в DPB.
Когда кадр Bs2 хранится в DPB, четыре кадра I0, P1, Р4 и Р5 хранятся в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый кадр I0 из кадров I0, P1, Р4 и Р5, хранящихся в DPB, выводят (выбрасывают из DPB) через процесс управления памятью типа скользящего окна.
После этого кадр Bs2 после декодирования хранится в DPB, и, в результате, как показано на фиг.11, кадры Р1, Р4, Р5 и Bs2 хранятся в DPB.
Поскольку РОС кадра Bs2 равен 2, и, следовательно, остаток РОС равен 2, то в соответствии с первым управлением сохранением по фиг.10 выводят команду ММСО "41600". В результате кадр Bs2 как текущий кадр, находящийся в процессе декодирования, устанавливают как долгосрочный опорный кадр, что обозначено жирным прямоугольником на фиг.11, и хранится в DPB, используя обработку адаптивного управления памятью.
В момент времени t5, следующий после времени t4, устройство декодирования выбирает кадр из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В3.
Когда декодируют кадр В3, как показано на фиг.11, кадры Р1, Р4, Р5 и Bs2 хранятся в DPB, и кадр В3 декодируют со ссылкой на кадры Р1 или Р4, Р5 и Bs2, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
При принятом по умолчанию AVC, когда декодируют кадр В3, то из кадров P1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров, которые не являются долгосрочным опорным кадром, то есть для кадров P1, Р4 и Р5, как краткосрочных опорных кадров, как показано на фиг.11, индекс L0, имеющий значение 0, присваивают кадру Р1, ближайшему к кадру В3 перед кадром В3 в порядке РОС.
При принятом по умолчанию AVC для кадров P1, Р4 и Р5, как краткосрочных опорных кадров, хранящихся в DPB, как показано на фиг.11, выполняют следующие назначения: индекс L0, имеющий значение 1, присваивают кадру Р4, ближайшему к кадру В3 после кадра В3 в порядке РОС; а индекс L0, имеющий значение 2, присваивают кадру Р5, расположенному вторым от кадра В3 после кадра В3 в порядке РОС.
При принятом по умолчанию AVC присвоение номера опорного кадра для долгосрочного опорного кадра выполняют после присвоения номера опорного кадра для краткосрочного опорного кадра. Таким образом, после того как индекс L0 был присвоен кадрам P1, Р4 и Р5 как краткосрочному опорному кадру, хранящемуся в DPB, индекс L0, имеющий значение 3, присваивают кадру Bs2, как долгосрочному опорному кадру из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB.
При принятом по умолчанию AVC из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров P1, Р4 и Р5 как краткосрочных опорных кадров, как показано на фиг.11, выполняют следующие назначения: индекс L1, имеющий значение 0, присваивают кадру Р4, ближайшему к кадру В3 после кадра В3 в порядке РОС; а индекс L0, имеющий значение 1, присваивают кадру Р5, расположенному вторым от кадра В3 после кадра В3 в порядке РОС.
При принятом по умолчанию AVC для кадров P1, Р4 и Р5 в качестве краткосрочных опорных кадров, хранящихся в DPB, как показано на фиг.11, индекс L1, имеющий значение 2, присваивают кадру Р1, ближайшему к кадру В3 перед кадром В3 в порядке РОС.
При принятом по умолчанию AVC после присвоения индекса L1 кадрам P1, Р4 и Р5 в качестве краткосрочных опорных кадров, хранящихся в DPB, индекс L1, имеющий значение 3, присваивают кадру Bs2 в качестве долгосрочного опорного кадра из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB.
Кадр В3 не является опорным кадром, таким образом, кадр В3 не хранится в DPB после декодирования.
Таким образом, как показано на фиг.11, как и после декодирования кадра Bs2, расположенного на один кадр перед кадром В3 в порядке декодирования, кадры Р1, Р4, Р5 и Bs2 все еще остаются хранящимися в DPB.
В момент времени t6, следующий после времени t5, устройство декодирования выбирает кадр Р8 из GOP№0 как текущий кадр в процессе декодирования и декодирует кадр Р8.
Когда кадр Р8 декодируют, как показано на фиг.11, кадры Р1, Р4, Р5 и Bs2 хранятся в DPB, и кадр Р8 декодируют со ссылкой на кадры Р1 или Р4, Р5 и Bs2, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
При принятом по умолчанию AVC, когда кадр Р8 декодируют, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров P1, Р4 и Р5, являющихся краткосрочным опорным кадром, как показано на фиг.11, выполняют присвоение следующим образом: индекс L0, имеющий значение 0, присваивают кадру Р5, ближайшему к кадру Р8 в порядке декодирования; индекс L0, имеющий значение 1, присваивают кадру Р4, второму ближайшему к кадру Р8 в порядке декодирования; а индекс L0, имеющий значение 2, присваивают кадру Р1, третьему ближайшему к кадру Р8 в порядке декодирования.
При принятом по умолчанию значении AVC, после того, как индекс L0 присвоен кадрам P1, Р4 и Р5 как краткосрочным опорным кадрам, хранящимся в DPB, индекс L0, имеющий значение 3, присваивают кадру Bs2 как долгосрочному опорному кадру из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB.
Поскольку РОС кадра Р8 равен 8, и, следовательно, остаток РОС равен 8, то в соответствии с первым управлением сохранением по фиг.10 вырабатывают команду "400" ММСО. В результате кадр Bs2 как долгосрочный опорный кадр из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, выбрасывают из DPB, используя процесс адаптивного управления памятью.
Кадр Р8 представляет собой опорный кадр, и кадр Р8 после декодирования хранится в DPB, после того как кадр Bs2 как долгосрочный опорный кадр был выброшен.
В результате, как показано на фиг.11, кадры Р1, Р4, Р5 и Р8 хранятся в DPB.
В момент времени t7, следующий после времени t6, устройство декодирования выбирает кадр Р9 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р9.
Когда декодируют кадр Р9, как показано на фиг.11, кадры Р1, Р4, Р5 и Р8 хранятся в DPB, и кадр Р9 декодируют со ссылкой на кадры Р1, Р4, Р5 и Р8, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
При принятом по умолчанию AVC, когда декодируют кадр Р9, для кадров Р1, Р4, Р5 и Р8, хранящихся в DPB, как показано на фиг.11, присвоение выполняют следующим образом: индекс L0, имеющий значение 0, присваивают кадру Р8, ближайшему к кадру Р9 в порядке декодирования; а индекс L0, имеющий значение 1, присваивают кадру Р5, второму ближайшему к кадру Р9 в порядке декодирования.
При принятом по умолчанию AVC для кадров Р1, Р4, Р5 и Р8, хранящихся в DPB, как показано на фиг.11, присвоение выполняют следующим образом: индекс L0, имеющий значение 2, присваивают кадру Р4, третьему ближайшему к кадру Р9 в порядке декодирования; а индекс L0, имеющий значение 3, присваивают кадру Р1, четвертому ближайшему к кадру Р9 в порядке декодирования.
Кадр Р9 представляет собой опорный кадр, и кадр Р9 после декодирования хранится в DPB.
Когда кадр Р9 сохраняют в DPB, четыре кадра Р1, Р4, Р5 и Р8 хранятся в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый кадр Р1 из кадров Р1, Р4, Р5 и Р8, хранящихся в DPB, выводится (становится неопорным кадром) в процессе управления памятью типа скользящего окна.
Затем кадр Р9 после декодирования хранится в DPB, и, в результате, как показано на фиг.11, кадры Р4, Р5, Р8 и Р9 хранятся в DPB.
В момент времени t8, следующий после момента времени t7, устройство декодирования выбирает кадр Bs6 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs6.
Когда декодируют кадр Bs6, как показано на фиг.11, кадры Р4, Р5, Р8 и Р9 хранятся в DPB, и кадр Bs6 декодируют со ссылкой на кадры Р4, Р5, Р8 и Р9, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
Как показано на фиг.11, когда кадр Bs6 изображения L декодируют в момент времени t8, кадр Р4, который представляет собой кадр изображения L и который расположен ближе всего к и по времени раньше, чем кадр Bs6 в порядке отображения, хранится в DPB.
Таким образом, в случае прямого прогнозирования в качестве прогнозирования L0 кадра Bs6 может быть сделана ссылка на кадр Р4, хранящийся в DPB, что, таким образом, позволяет повысить эффективность кодирования по сравнению со случаем, когда к кадру Р44 невозможно обратиться, как описано со ссылкой на фиг.6 и 7.
При декодировании кадра Bs6 при принятом по умолчанию AVC для кадров Р4, Р5, Р8 и Р9 как краткосрочных опорных кадров, хранящихся в DPB, как показано на фиг.11, выполняют следующие назначения: индекс L0, имеющий значение 0, присваивают кадру Р5, ближайшему к кадру Bs6 перед кадром Bs6 в порядке РОС; индекс L0, имеющий значение 1, присваивают кадру Р4, второму ближайшему к кадру Bs6 перед кадром Bs6 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру Р8, ближайшему к кадру Bs6 после кадра Bs6 в порядке РОС; а индекс L0, имеющий значение 3, присваивают кадру Р9, второму ближайшему к кадру Bs6 после кадра Bs6 в порядке РОС.
При принятом по умолчанию AVC для кадров Р4, Р5, Р8 и Р9 как краткосрочных опорных кадров, хранящихся в DPB, как показано на фиг.11, выполняют следующие назначения: индекс L1, имеющий значение 0, присваивают кадру Р8, ближайшему к кадру Bs6 после кадра Bs6 в порядке РОС; индекс L1, имеющий значение 1, присваивают кадру Р9, второму ближайшему к кадру Bs6 после кадра Bs6 в порядке РОС; индекс L1, имеющий значение 2, присваивают кадру Р5, ближайшему к кадру Bs6 перед кадром Bs6 в порядке РОС; а индекс L1, имеющий значение 3, присваивают кадру Р4, второму ближайшему к кадру Bs6 перед кадром Bs6 в порядке РОС.
Кадр Bs6 представляет собой опорный кадр, и кадр Bs6 после декодирования хранится в DPB.
Когда кадр Bs6 хранится в DPB, четыре кадра Р4, Р5, Р8 и Р9 хранятся в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый кадр Р4 из кадров Р4, Р5, Р8 и Р9, хранящихся в DPB, выводят, используя процесс управления памятью типа скользящего окна.
После этого кадр Bs6 после декодирования хранится в DPB, и, в результате, как показано на фиг.11, кадры Р5, Р8, Р9 и Bs6 хранятся в DPB.
Поскольку РОС кадра Bs6 равен 6, и, следовательно, остаток РОС равен 6, то в соответствии с первым управлением сохранением по фиг.10 вырабатывают команду ММСО "41600". В результате кадр Bs6, являющийся текущим кадром, находящимся в процессе декодирования, устанавливают как долгосрочный опорный кадр, что обозначено жирным прямоугольником на фиг.11, и хранят в DPB, используя процесс адаптивного управления памятью.
В момент времени t9 после времени t8 устройство декодирования выбирает кадр В7 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В7.
Когда декодируют кадр В7, как показано на фиг.11, кадры Р5, Р8, Р9 и Bs6 хранятся в DPB, и кадр В7 декодируют со ссылкой на кадры Р5, Р8, Р9 и Bs6, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
Как показано на фиг.11, когда кадр В7 изображения R декодируют в момент времени t9, кадр Р5, который представляет собой кадр изображения R и который расположен ближе всего к и следует по времени раньше, чем кадр В7 в порядке отображения, хранится в DPB.
Таким образом, в случае прямого прогнозирования, такого как прогнозирование L0 кадра В7, можно делать ссылку на кадр Р5, хранящийся в DPB, таким образом, эффективность кодирования может быть улучшена по сравнению со случаем, когда к кадру Р5 невозможно обратиться, как описано со ссылкой на фиг.6 и 7.
При принятом по умолчанию AVC, когда декодируют кадр В7, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, для кадров, которые не представляют собой долгосрочные опорные кадры, то есть кадров Р5, Р8 и Р9 как краткосрочных опорных кадров, как показано на фиг.11, присвоение выполняют следующим образом: индекс L0, имеющий значение 0, присваивают кадру Р5, ближайшему к кадру В7 перед кадром В7 в порядке РОС; индекс L0, имеющий значение 1, присваивают кадру Р8, ближайшему к кадру В7 после кадра В7 в порядке РОС; а индекс L0, имеющий значение 2, присваивают кадру Р9, второму ближайшему к кадру В7 после кадра В7 в порядке РОС.
При принятом по умолчанию AVC, после этого индекс L0, имеющий значение 3, присваивают кадру Bs6 как долгосрочному опорному кадру из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB.
При принятом по умолчанию AVC из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, для кадров Р5, Р8 и Р9 как краткосрочных опорных кадров, как показано на фиг.11, выполняют следующие назначения: индекс L1, имеющий значение 0, присваивают кадру Р8, ближайшему к кадру В7 после кадра В7 в порядке РОС; индекс L0, имеющий значение 1, присваивают кадру Р9, второму ближайшему к кадру В7 после кадра В7 в порядке РОС; а индекс L1, имеющий значение 2, присваивают кадру Р5, ближайшему к кадру В7 перед кадром В7 в порядке РОС.
При принятом по умолчанию AVC, после этого индекс L1, имеющий значение 3, присваивают кадру Bs6 как долгосрочному опорному кадру из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB.
Кадр В7 не является опорным кадром, таким образом, кадр В7 не хранится в DPB после декодирования.
Таким образом, как показано на фиг.11, как и после декодирования кадра Bs6, расположенного на один кадр перед кадром В7 в порядке декодирования, кадры Р5, Р8, Р9 и Bs6 по-прежнему хранятся в DPB.
В момент времени t10, следующий после времени t9, устройство декодирования выбирает кадр Р12 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р12.
Когда декодируют кадр Р12, как показано на фиг.11, кадры Р5, Р8, Р9 и Bs6 хранятся в DPB, и кадр Р12 декодируют со ссылкой на кадры Р5, Р8, Р9 и Bs6, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
Описание присвоения номера опорного кадра (индекс L0, индекс L1) при принятом по умолчанию AVC со ссылкой на фиг.11 ниже будет опущено.
Поскольку РОС кадра Р12 равен 12, и, следовательно, остаток РОС равен 12, в соответствии с первым управлением сохранением по фиг.10 вырабатывают команду ММСО "400". В результате кадр Bs6 как долгосрочный опорный кадр из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, выбрасывают из DPB, используя процесс адаптивного управления памятью.
Кадр Р12 представляет собой опорный кадр, и кадр Р12 после декодирования хранятся в DPB после выбрасывания кадра Bs6 как долгосрочного опорного кадра.
В результате, как показано на фиг.11, кадры Р5, Р8, Р9 и Р12 хранятся в DPB.
В момент времени t11, следующий после времени t10, устройство декодирования выбирает кадр Р13 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р13.
Когда декодируют кадр Р13, как показано на фиг.11, кадры Р5, Р8, Р9 и Р12 хранятся в DPB, и кадр Р13 декодируют со ссылкой на кадры Р5, Р8, Р9 и Р12, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
Кадр Р13 представляет собой опорный кадр, и кадр Р13 после декодирования хранится в DPB.
Когда кадр Р13 сохраняют в DPB, четыре кадра Р5, Р8, Р9 и Р12 хранятся в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый кадр Р5 из кадров Р5, Р8, Р9 и Р12, хранящихся в DPB, выводят через процесс управления памятью типа скользящего окна.
После этого кадр Р13 после декодирования хранится в DPB, и, в результате, как показано на фиг.11, кадры Р8, Р9, Р12 и Р13 хранятся в DPB.
В момент времени t12, следующий после времени t11, устройство декодирования выбирает кадр Bs10 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs10.
Когда декодируют кадр Bs10, как показано на фиг.11, кадры Р8, Р9, Р12 и Р13 хранятся в DPB, и кадр Bs10 декодируют со ссылкой на кадры Р8, Р9, Р12 и Р13, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
Как показано на фиг.11, когда кадр Bs10 изображения L декодируют в момент времени t12, кадр Р8, который представляет собой кадр изображения L и который находится ближе всего к и по времени раньше, чем кадр Bs10 в порядке изображения, хранится в DPB.
Таким образом, в случае прямого прогнозирования, такого как прогнозирование L0 кадра Bs10, можно обращаться к кадру Р48, хранящемуся в DPB, таким образом, может быть улучшена эффективность кодирования по сравнению со случаем, когда к кадру Р8 нельзя обращаться, как описано со ссылкой на фиг.6 и фиг.7.
Кадр Bs10 представляет собой опорный кадр, и кадр Bs10 после декодирования хранится в DPB.
Когда кадр Bs10 сохраняют в DPB, четыре кадра Р8, Р9, Р12 и Р13 хранятся в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый кадр Р8 из кадров Р8, Р9, Р12 и Р13, хранящихся в DPB, выводят через процесс управления памятью типа скользящего окна.
После этого кадр Bs10 после декодирования хранится в DPB, и, в результате, как показано на фиг.11, кадры Р9, Р12, Р13 и Bs10 хранятся в DPB.
Поскольку РОС кадра Bs10 равен 10, и, следовательно, остаток РОС равен 10, то в соответствии с первым управлением сохранением по фиг.10 вырабатывают команду ММСО "41600". В результате кадр Bs10 как текущий кадр, находящийся в процессе декодирования, устанавливают как долгосрочный опорный кадр, что обозначено жирным прямоугольником на фиг.11, и хранят в DPB, используя процесс адаптивного управления памятью.
В момент времени tl3, следующий после времени tl2, устройство декодирования выбирает кадр В11 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр ВН.
Когда декодируют кадр В11, как показано на фиг.11, кадры Р9, Р12, Р13 и Bs10 хранятся в DPB, и кадр В11 декодируют со ссылкой на кадры Р9, Р12, Р13 и Bs10, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
Как показано на фиг.11, когда кадр В11 изображения R декодируют в момент времени t13, кадр Р9, который представляет собой кадр изображения R и находится ближе всего к и по времени раньше, чем кадр B11 в порядке изображения, хранится в DPB.
Таким образом, в случае прямого прогнозирования, в качестве прогнозирования L0 кадра В11, может быть сделана ссылка на кадр Р9, хранящийся в DPB, таким образом, можно улучшить эффективность кодирования по сравнению со случаем, когда нельзя обратиться к кадру Р9, как описано со ссылкой на фиг.6 и фиг.7.
Кадр В11 не является опорным кадром, таким образом, кадр В11 не хранится в DPB после декодирования.
Таким образом, как показано на фиг.11, как и после декодирования кадра Bs10, расположенного на один кадр перед кадром В11 в порядке декодирования, кадры Р9, Р12, Р13 и Bs10 по-прежнему хранятся в DPB.
В момент времени t14, следующий после времени t13, устройство декодирования выбирает кадр I16 (I0) G0P№1 как текущий кадр в процессе декодирования и декодирует кадр I16, не используя межкадровое прогнозирование.
Таким образом, когда декодируют кадр I16, как показано на фиг.11, кадры Р9, Р12, Р13 и Bs10 хранятся в DPB, и кадр I16 декодируют без ссылки на кадры Р9, Р12, Р13 и Bs10, хранящиеся в DPB.
Поскольку РОС кадра I16 равен 0, и, следовательно, остаток РОС равен 0, то в соответствии с первым управлением сохранением по фиг.10 вырабатывают команду ММСО "400" после того, как кадр I16 декодирован. В результате кадр Bs10 как долгосрочный опорный кадр из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, выбрасывают из DPB, используя процесс адаптивного управления памятью.
Кадр I16 представляет собой опорный кадр, и кадр I16 после декодирования хранится в DPB после удаления кадра Bs10 как долгосрочного опорного кадра.
В результате, как показано на фиг.11, кадры Р9, Р12, Р13 и I16 хранятся в DPB.
В момент времени t15, следующий после времени t14, устройство декодирования выбирает кадр Р17 (P1) G0P№1 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р17.
Когда декодируют кадр Р17, как показано на фиг.11, кадры Р9, Р12, Р13 и I16 хранятся в DPB, и кадр Р17 декодируют со ссылкой на кадры Р9, Р12, Р13 и I16, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
Кадр Р17 представляет собой опорный кадр, и кадр Р17 после декодирования сохраняют в DPB.
Когда кадр Р17 сохраняют в DPB, четыре кадра Р9, Р12, Р13 и I16 хранятся в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый кадр Р9 из кадров Р9, Р12, Р13 и I16, хранящихся в DPB, выводят через процесс управления памятью типа скользящего окна.
После этого кадр Р17 после декодирования сохраняют в DPB, и, в результате, как показано на фиг.11, кадры Р12, Р13, I16 и Р17 хранятся в DPB.
В момент времени t16, следующий после времени t15, устройство декодирования выбирает кадр Bs14 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs14.
Когда декодируют кадр Bs14, как показано на фиг.11, кадры Р12, Р13, I16 и Р17 хранятся в DPB, и кадр Bs14 декодируют со ссылкой на кадры Р12, Р13, I16 и Р17, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
Как показано на фиг.11, когда кадр Bs14 изображения L декодируют в момент времени t16, кадр Р12, который представляет собой кадр изображения L, находящийся ближе всего к и по времени раньше, чем кадр Bs14 в порядке изображения, хранится в DPB.
Таким образом, в случае прямого прогнозирования, выполняемого как прогнозирование L0 кадра Bs14, можно делать ссылку на кадр Р12, хранящийся в DPB, таким образом, может быть улучшена эффективность кодирования по сравнению со случаем, когда невозможно сделать ссылку на кадр Р12, как описано на фиг.6 и 7.
Кадр Bs14 представляет собой опорный кадр, и кадр Bs14 после декодирования хранится в DPB.
Когда кадр Bs14 хранится в DPB, четыре кадра Р12, Р13, I16 и Р17 хранятся в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый кадр Р12 из кадров Р12, Р13, I16 и Р17, хранящихся в DPB, выводят, используя процесс управления памятью типа скользящего окна.
После этого кадр Bs14 хранится в DPB, и, в результате, как показано на фиг.11, кадры Р13, I16, Р17 и Bs14 хранятся в DPB.
Поскольку РОС кадра Bs14 равен 14, и, следовательно, остаток РОС равен 14, то в соответствии с первым управлением сохранением по фиг.10 вырабатывают команду ММСО "41600". В результате кадр Bs14 как текущий кадр, находящийся в процессе декодирования, устанавливают как долгосрочный опорный кадр, что обозначено жирным прямоугольником на фиг.11, и хранят в DPB, используя процесс адаптивного управления памятью.
В момент времени t17, следующий после времени t16, устройство декодирования выбирает кадр В15 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В15.
Когда декодируют кадр В15, как показано на фиг.11, кадры Р13, I16, Р17 и Bs14 хранятся в DPB, и кадр В15 декодируют со ссылкой на кадры Р13, I16, Р17 и Bs14, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
Как показано на фиг.11, когда кадр В15 изображения R декодируют в момент времени t17, кадр Р13, который представляет собой кадр изображения R и который распложен ближе всего к и по времени раньше, чем кадр В15, в порядке отображения, хранится в DPB.
Таким образом, в случае прямого прогнозирования, в качестве прогнозирования L0 кадра В15, можно сделать ссылку на кадр Р13, хранящийся в DPB, таким образом, эффективность кодирования может быть улучшена по сравнению со случаем, в котором невозможно обратиться к кадру Р13, как показано на фиг.6 и фиг.7.
Кадр В15 не является опорным кадром, таким образом, кадр В15 не хранится в DPB после декодирования.
Таким образом, как показано на фиг.11, как и после декодирования кадра Bs14, расположенного на один кадр перед кадром В15 в порядке декодирования, кадры Р13, I16, Р17 и Bs14 по-прежнему хранятся в DPB.
Хотя это и не показано на фиг.11, в момент времени, следующий после времени t17, устройство декодирования выбирает кадр Р20 (Р4) в G0P№1 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р20.
Для кадра Р20, поскольку остаток РОС составляет 4, то в соответствии с первым управлением сохранением по фиг.10 вырабатывают команду ММСО "400" после декодирования кадра Р20. В результате кадр Bs14 как долгосрочный опорный кадр из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, выбрасывают из DPB, используя процесс адаптивного управления памятью.
Как описано выше, в соответствии с первым управлением сохранением, в устройстве декодирования из кадров, которые декодируют по времени раньше, чем текущий кадр, находящийся в процессе декодирования, и которые могут стать опорными кадрами, сохраняют в DPB кадр, который представляет собой кадр изображения из изображения L и изображения R, который получен с той же точки наблюдения, что и текущий кадр, находящийся в процессе декодирования, и который расположен в порядке отображения ближе всего к текущему кадру, находящемуся в процессе декодирования. Таким образом, в устройстве кодирования из кадров, которые кодированы по времени раньше, чем текущий кадр, находящийся в процессе кодирования, и которые могут стать опорными кадрами, сохраняют в запоминающем устройстве 22 кадра кадр, который представляет собой кадр изображения из изображения L и изображения R, который получен с той же точки наблюдения, что и текущий кадр, находящийся в процессе кодирования, и который расположен в порядке отображения ближе всего к текущему кадру, находящемуся в процессе кодирования. Поэтому эффективность кодирования может быть улучшена.
В частности, когда для кадра Bs6 изображения L выполняют межкадровое прогнозирование, кадр Р4, который представляет собой кадр изображения L, расположенный непосредственно перед кадром Bs6, хранится в запоминающем устройстве 22 кадра устройства кодирования по фиг.8 и в запоминающем устройство 49 кадра, соответствующем DPB устройства декодирования фиг.2. Когда для кадра В7 изображения R выполняют межкадровое прогнозирование, кадр Р5, который представляет собой кадр изображения R, следующий непосредственно перед кадром В7, хранится в запоминающем устройстве 22 кадра и в запоминающем устройстве 49 кадра. Когда для кадра Bs10 изображения L выполняют межкадровое прогнозирование, кадр Р8, который представляет собой кадр изображения L, следующий непосредственно перед кадром Bs10, хранится в запоминающем устройстве 22 кадра и в запоминающем устройстве 49 кадра. Когда для кадра В11 изображения R выполняют межкадровое прогнозирование, кадр Р9, который представляет собой кадр изображения R, следующий непосредственно перед кадром В11, хранится в запоминающем устройстве 22 кадра и запоминающем устройстве 49 кадра. Когда для кадра Bs14 изображения L выполняют межкадровое прогнозирование, кадр Р12, который представляет собой кадр изображения L непосредственно перед кадром Bs14, сохраняют в запоминающем устройстве 22 кадра и в запоминающем устройстве 49 кадра. Когда для кадра В15 изображения R выполняют межкадровое прогнозирование, кадр Р13, который представляет собой кадр изображения R, расположенный непосредственно перед кадром В15, сохраняют в запоминающем устройстве 22 кадра и в запоминающем устройстве 49 кадра. Поэтому ошибка прогнозирования для прогнозируемого изображения, сформированного в результате межкадрового прогнозирования, уменьшается, и таким образом эффективность кодирования может быть улучшена.
В соответствии с первым управлением сохранением, для кадра изображения L в последовательности кадров, в которой GOP имеет структуру, показанную на фиг.4, возможно межкадровое прогнозирование, при котором обращаются к кадру изображения L, по времени следующему непосредственно перед и после соответствующего кадра, из кадров (кадров, к которым можно обращаться), которые могут стать опорными кадрами.
Для кадра изображения R также возможно межкадровое прогнозирование, при котором можно обратиться к кадру изображения L, составляющего пару LR, в дополнение к кадру изображения R, по времени расположенному непосредственно перед и после соответствующего кадра, из кадров, на которые может быть сделана ссылка. Поэтому, эффективность кодирования может быть улучшена.
Команда RPLR
На фиг.12 показана схема, иллюстрирующая выработку команды RPLR одновременно с выработкой команды ММСО, как и при первом управлении сохранением, выполняемом модулем 71 управления сохранением (фиг.8).
Как описано со ссылкой на фиг.6, в устройстве кодирования AVC номер опорного кадра (индекс L0, индекс L1), присвоенный опорному кадру, используемому при формировании прогнозируемого изображения кадра, включают в кодированные данные.
В устройстве декодирования AVC на кадр, которому присвоен номер кадра, который совпадает с номером опорного кадра, включенного в кодированные данные, ссылаются как на опорный кадр при формировании прогнозируемого изображения.
При принятом по умолчанию AVC (заданное значение) для опорного кадра, когда выполняют межкадровое прогнозирование кадра Р, когда кадр Р, для которого должно быть выполнено межкадровое прогнозирование, используют как основу, номер опорного кадра (индекс L0), имеющий меньшее значение, присваивают опорному кадру, расположенному ближе к кадру Р4 в порядке декодирования.
При принятом по умолчанию AVC для опорного кадра, когда для кадра В (включая кадр Bs) выполняют межкадровое прогнозирование, когда кадр В, для которого выполняют межкадровое прогнозирование, используется как основа, номер опорного кадра (индекс L0 и индекс L1), имеющий меньшее значение, присваивают опорному кадру, расположенному ближе к кадру В в порядке РОС.
В то же время, в устройстве кодирования AVC номер опорного кадра (индекс L0, индекс L1), который присваивают опорному кадру, используемому при формировании прогнозируемого изображения кадра, включен в кодируемые данные в модуле 16 инвертируемого кодирования (фиг.8). Номер опорного кадра, включенный в кодируемые данные, кодируют в код, имеющий более короткую длину кода, поскольку его значение меньше.
Таким образом, номер опорного кадра, имеющий меньшее значение, присваивают опорному кадру, который, весьма вероятно, будет использоваться при формировании прогнозируемого изображения кадра, при этом эффективность кодирования может быть улучшена.
Однако в последовательности кадров кадры изображения L и изображения R расположены поочередно. Поэтому при принятом по умолчанию AVC может возникнуть случай, когда номер опорного кадра, имеющий меньшее значение, не будет присвоен опорному кадру, который, весьма вероятно, будет использоваться при формировании прогнозируемого изображения кадра.
Таким образом, как описано со ссылкой на фиг.11, например, в момент времени t3, когда кадр Р5 становится текущим кадром, находящимся в процессе декодирования, кадры I0, Р1 и Р4 хранятся в DPB. При принятом по умолчанию AVC индекс L0, имеющий значение 0, присваивают кадру Р4, расположенному ближе всего к кадру Р5 в порядке декодирования. Индекс L0, имеющий значение 1, присваивают кадру Р1, который расположен вторым ближайшим к кадру Р45 в порядке декодирования. Индекс L0, имеющий значение 2, присваивают кадру I0, который расположен третьим ближайшим к кадру Р45 в порядке декодирования.
Кадр Р5 как текущий кадр, находящийся в процессе декодирования, представляет собой кадр изображения R, и из кадров I0, Р1 и Р4, хранящихся в DPB, кадр, который представляет собой кадр изображения R, полученный с той же точки наблюдения, что кадр Р5, и по времени расположен ближе всего к кадру Р45, который представляет собой кадр изображения R, - это кадр Р1.
Поэтому для кадра Р5 ошибка прогнозирования прогнозируемого изображения, которое формируют с помощью кадра Р1 из кадров I0, Р1 и Р4, хранящихся в DPB, как опорного кадра, весьма вероятно, будет сведена к минимуму.
Из кадров I0, Р1 и Р4, хранящихся в DPB, для кадров I0 и R4, которые представляют собой кадры изображения L, полученные с другой точки наблюдения, чем кадр Р5 изображения R, кадр Р4 по времени расположен ближе к кадру Р45, чем кадр I0. Таким образом, ошибка прогнозирования прогнозируемого изображения, которое сформировано при помощи кадра Р4 в качестве опорного кадра, весьма вероятно, будет меньше, чем ошибка прогнозирования для прогнозируемого изображения, которое сформировано с использованием кадра I0 в качестве опорного кадра.
Учитывая приведенное выше, кадры I0, Р1 и Р4, хранящиеся в DPB, вероятно, будут использоваться при формировании прогнозируемого изображения кадра Р5 в порядке убывания возможности уменьшения ошибки прогнозирования, то есть в порядке кадров Р1, Р4 и I0.
Поэтому, когда кадр Р5 становится текущим кадром, находящимся в процессе декодирования, для кадров I0, Р1 и Р4, хранящихся в DPB, делают следующие назначения: индекс L0, имеющий минимальное значение, то есть 0, присваивают кадру Р1; индекс L0, имеющий второе по величине значение, то есть 1, присваивают кадру Р4; а индекс L0, имеющий третье по величине значение, то есть 2, присваивают кадру I0. Таким образом, эффективность кодирования может быть улучшена по сравнению со случаем, когда вырабатывают только команду ММСО по фиг.10.
Однако при принятом по умолчанию AVC, как описано со ссылкой на фиг.11, в качестве индекса L0 присваивают 1 кадру Р1, 0 присваивают кадру Р4 и 2 присваивают кадру I0.
В соответствии с этим, в модуле 71 управления сохранением устройства кодирования по фиг.8, когда вырабатывают команду ММСО по фиг.10, дополнительно вырабатывается команда RPLR по фиг.12. Таким образом, номер опорного кадра, имеющий меньшее значение, может быть присвоен опорному кадру, который, весьма вероятно, будет использоваться при формировании прогнозируемого изображения кадра.
Таким образом, на фиг.12 показан список команд RPLR, которые вырабатываются для присвоения номера опорного кадра, когда модуль 71 управления сохранением вырабатывает команду ММСО по фиг.10 в качестве первого управления сохранением.
Выработка команды RPLR по фиг.12 может не осуществляться. Однако когда вырабатывают команду ММСО по фиг.10, то если команда RPLR по фиг.12 также вырабатывается, номер опорного кадра, имеющий меньшее значение, присваивают опорному кадру, который с высокой вероятностью будет использоваться при формировании прогнозируемого изображения кадра, и эффективность кодирования может быть дополнительно улучшена.
В устройстве кодирования по фиг.8, как и команду ММСО, команду RPLR, которую вырабатывает модуль 71 управления сохранением, подают в запоминающее устройство 22 кадра и в модуль 16 инвертируемого кодирования.
В запоминающем устройстве 22 кадра номер опорного кадра присваивают опорному кадру, хранящемуся в запоминающем устройстве 22 кадра, в соответствии с командой RPLR из модуля 71 управления сохранением. В модуле 16 инвертируемого кодирования, команду RPLR из модуля 71 управления сохранением включают в кодированные данные.
Когда команду RPLR, вырабатываемую модулем 71 управления сохранением, включают в кодированные данные, в устройстве декодирования по фиг.2, которое декодирует кодированные данные, ту же операцию, что и операция в устройстве кодирования по фиг.8 для присвоения номера опорного кадра опорным кадрам, хранящимся в запоминающем устройстве 22 кадра, на основе команды RPLR, вырабатываемой модулем 71 управления сохранением, выполняют как операцию присвоения номера опорного кадра опорным кадрам, хранящимся в запоминающем устройстве 49 кадра, которое соответствует DPB.
Ниже, как и в команде ММСО, будет предоставлено описание с соответствующей заменой операции в устройстве кодирования по фиг.8 для присвоения номера опорного кадра опорному кадру, хранящемуся в запоминающем устройстве 22 кадра на основе команды RPLR, выработанной модулем 71 управления сохранением, операцией присвоения номера опорного кадра опорному кадру, хранящемуся в (запоминающем устройстве 49 кадра, соответствующем) DPB устройства декодирования по фиг.2.
В списке по фиг.12 значение столбца "РОС" представляет остаток от деления РОС текущего кадра, находящегося в процессе кодирования (текущее изображение в процессе декодирования) на 16.
"Список" столбцов представляет, какому из (индекса L0) опорного кадра, к которому обращаются для прогнозирования L0, и (индекса L1) опорного кадра, к которому обращаются для прогнозирования L1, присвоен данный номер опорного кадра на основе команды RPLR.
Столбец "ref_pic_list_reordering" представляет команду RPLR и необходимый аргумент, которые вырабатывают, когда остаток РОС соответствует значению столбца "РОС". Столбец "детали" представляет содержание обработки (операции) на основе команды RPLR и необходимого аргумента в столбце "ref_pic_list_reordering".
Как показано в нижней части фиг.12, команда RPLR может иметь четыре значения №COMMAND=0, 1, 2 и 3.
Когда команда RPLR представляет собой 0, 1 или 2 (№COMMAND=0, 1 или 2) (reordering_of_pic_nums_idc=0, 1 или 2), в соответствии с командой RPLR и аргументом а, следующим за командой RPLR, устройство AVC декодирования присваивают номер опорного кадра опорному кадру, хранящемуся в DPB, который указан при помощи аргумента а.
Когда команда RPLR представляет собой 3 (№COMMAND=3) (reordering_of_pic_nums_idc=3), устройство декодирования AVC завершает операцию присвоения номера опорного кадра на основе команды RPLR.
Когда одна или более команд RPLR (и аргументов а) последовательно представлены в исходной команде RPLR, 0, который представляет собой минимальное значение из значений, не присвоенных в качестве номера опорного кадра в этот момент, присваивают в качестве номера опорного кадра. Во второй команде RPLR 1, которая представляет собой минимальное значение из значений, не присвоенных в качестве номера опорного кадра в этот момент, присваивают в качестве номера опорного кадра.
Далее, до тех пор, пока не появится команда RPLR, имеющая значение 3, то есть до тех пор, пока продолжают поступать команды RPLR, имеющие значение 0, 1 или 2, в каждой команде RPLR минимальное значение из значений, не присвоенных в качестве номера опорного кадра в этот момент, присваивают в качестве номера опорного кадра.
Если появляется команда RPLR, имеющая значение 3, устройство декодирования AVC заканчивает присвоение номера опорного кадра на основе команды RPLR и присваивает номер опорного кадра при принятом по умолчанию AVC опорному кадру, которому еще не был присвоен номер опорного кадра, среди опорных кадров, содержащихся в DPB.
Когда команда RPLR равна 0 (№COMMAND=0), устройство декодирования AVC интерпретирует команду RPLR как NAL_REORDERING_ABS_DIFF_P1C_NUM_NEGATIVE и присваивает минимальное значение из значений, не присвоенных в качестве номера опорного кадра, краткосрочному опорному кадру, хранящемуся в DPB, которое указано с помощью аргумента а, следующего после команды RPLR, в качестве номера опорного кадра в соответствии с интерпретацией.
Когда команда RPLR равна 0, переменную abs_diff_pic_num_minus1 для указания опорного кадра, которому был присвоен данный номер опорного кадра, устанавливают как аргумент а.
Опорный кадр, который имеет в качестве PN значение, полученное путем вычитания переменной abs_diff_pic_num_minus1 (=α) из PN опорного кадра, которому был присвоен данный номер опорного кадра непосредственно перед этим, обозначают (задают) как опорный кадр (ниже также называется целевым кадром присвоения), которому данный номер опорного кадра присвоен в соответствии с командой RPLR.
Когда исходная команда RPLR из одной или более последовательных команд RPLR (и аргументов а) равна 0, то если предположить, что PN текущего кадра, находящегося в процессе декодирования (текущий кадр, находящийся в процессе кодирования), выражается как CurrPicNum, целевой кадр присвоения, указанный аргументом а, следующим после команды RPLR, становится кадром, PN которого эквивалентно выражается выражением PN=CurrPicNum-(abs_diff_pic_num_minus1+1).
Когда команда RPLR равна 1 (№COMMAND=1), устройство декодирования интерпретирует команду RPLR как NAL_REORDERING_ABS_DIFF_PIC_NUM_POSITIVE и присваивает минимальное значение из значений, не присвоенных в качестве номера опорного кадра, краткосрочному опорному кадру, хранящемуся в DPB, который указан с использованием аргумента а, следующего после команды RPLR в кодированных данных, в качестве номера опорного кадра в соответствии с интерпретацией.
Когда команда RPLR равна 1, опорный кадр, который имеет в качестве PN значение, полученное путем добавления аргумента а к PN опорного кадра, номер опорного кадра которому был присвоен непосредственно перед этим, обозначают как целевой кадр присвоения.
Когда команда RPLR равна 2 (№COMMAND=2), устройство декодирования интерпретирует команду RPLR как NAL_REORDERING_LONG_TERM_PIC_NUM и присваивает минимальное значение из значений, не присвоенных в качестве номера опорного кадра, долгосрочному опорному кадру, хранящемуся в DPB, который указан путем использования аргумента а, следующего за командой RPLR в кодированных данных, в качестве номера опорного кадра в соответствии с интерпретацией.
Когда команда RPLR равна 2, переменную long_term_pic_num для указания опорного кадра, которому присваивается номер опорного кадра, устанавливают в качестве аргумента а.
Опорный кадр (долгосрочный опорный кадр), в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=α), указывается в качестве целевого кадра присвоения.
Когда команда RPLR равна 3 (№COMMAND=3), устройство декодирования интерпретирует команду RPLR как NAL_REORDERING_END и завершает (заканчивает) операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с интерпретацией.
Команда RPLR описана в заголовке сегмента кодированных данных как синтаксис изменения порядка в списке опорных кадров.
Команда RPLR описана после описания "Ref_pic_list_reordering_flag_11=1" или "Ref_pic_list_reordering_flag_11=1" в заголовке сегмента.
С командой RPLR, следующей после описания "Ref_pic_list_reordering_flag_10=1", выполняют присвоение индекса L0, а с командой RPLR, следующей после описания "Ref_pic_list_reordering_flag_11=1", выполняют присвоения индекса L1.
В списке по фиг.12, команда RPLR, для которой столбец "список" содержит "0", представляет собой команду RPLR, следующую после описания "Ref_pic_list_reordering_flag_10=1", то есть команду RPLR, которая выполняет присвоение индекса L0, и которая ниже также называется командой RPLR L0.
Команда RPLR, для которой столбец "список" содержит "1", представляет собой команду RPLR, следующую после описания "Ref_pic_list_reordering_flag_11=1", то есть команду RPLR, которая выполняет присвоение индекса L1, и далее также называется командой RPLR L1.
В списке по фиг.12, когда остаток РОС равен 1, то есть когда текущий кадр, находящийся в процессе декодирования (текущий кадр, находящийся в процессе кодирования), представляет собой кадр Р1, "023" вырабатывают в качестве команды RPLR и необходимого аргумента. "0" на первом месте от начала в "023" представляет команду RPLR L0 №COMMAND=0, а "2" на втором месте представляет аргумент команды RPLR L0 №COMMAND=0. "3" на третьем месте в "023" представляет команду RPLR №COMMAND=3.
При команде RPLR L0 №COMMAND=0 и в последующем аргументе "2" в "023", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р1, переменная abs_diff_pic_num_minus1 установлена равной 2. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р1 в качестве текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время, в качестве номера опорного кадра (индекса L0), то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, среди опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, что представляет собой PN кадра Р1, являющегося текущим кадром, находящимся в процессе декодирования, представляет кадр Р13 в GOP, которая представляет собой GOP, расположенную на одну GOP перед GOP кадра Р1, являющегося текущим кадром, находящимся в процессе декодирования.
В столбце " детали" списка по фиг.12, например, "установить L0 [0]:Р13" (первая строка) означает, что 0 присваивают кадру Р13 в качестве индекса L0. Например, "установить L1 [0]:Р5" (пятая строка) означает, что 0 присваивают кадру Р5 в качестве индекса L1.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND-3, стоящей на третьем месте в "023".
Когда остаток РОС равен 2, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs2, вырабатывают "033" как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "033" представляет команду RPLR L0 №COMMAND=0, а "3" на втором месте представляет собой аргумент команды RPLR L0 №COMMAND=0. "3" на третьем месте в "033" представляет команду RPLR №COMMAND=3.
При команде RPLR L0 №COMMAND=0 и в последующем аргументе "3" в "033", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs2, переменную abs_diff_pic_num_minus1 устанавливают равной 3. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=4) из CurrPicNum, которое представляет собой PN кадра Bs2 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время, как номер опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, среди опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diffjpic_num_minus1+1 (=4) из CurrPicNum, которое представляет собой PN кадра Bs2 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр I0 в GOP, которой принадлежит кадр Bs2 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию назначения номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND=3, стоящей на третьем месте в "033".
Когда остаток РОС равен 3, то есть когда текущий кадр в процессе декодирования представляет собой кадр В3, "03", "203" и "013" последовательно вырабатываются в качестве команды RPLR и необходимого аргумента. "0" на первом месте с начала в первой команде "03" из команд "03", "203" и "013" представляет команду RPLR L0 №COMMAND=0, а "3" на втором месте представляет аргумент команды RPLR L0 №COMMAND=0.
При команде RPLR L0 №COMMAND=0 и последующем аргументе "3" в первой команде "03" из "03", "203" и "013", которые вырабатываются, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, переменную abs_diff_pic_num_minus1 устанавливают равной 3. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=4) из CurrPicNum, которое представляет собой PN кадра В3 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных как номер опорного кадра в это время, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=4) из CurrPicNum, которое представляет собой PN кадра В3 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р1 в GOP, которой принадлежит кадр В3 как текущий кадр, находящийся в процессе декодирования.
"2" на первом месте от начала во второй команде "203" из "03", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, представляет команду RPLR L0 №COMMAND=2, а "0" на втором месте представляет собой аргумент команды RPLR L0 №COMMAND=2. "3" на третьем месте в "203" представляет команду RPLR №COMMAND=3.
При команде RPLR L0 №COMMAND=2 и последующем аргументе "0" во второй команде "203" из "03", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, переменная long_term_pic_num установлена равной 0. Таким образом, устройство декодирования выбирает долгосрочный опорный кадр, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время, в качестве номера опорного кадра (индекса L0), то есть 1, соответствующему долгосрочному опорному кадру в качестве индекса L0.
Как описано ниже, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, из опорных кадров, хранящихся в DPB, долгосрочный опорный кадр, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=0), представляет собой кадр Bs2 в GOP, которой принадлежит кадр В3 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND=3, стоящей на третьем месте в "203".
Если операция по присвоению номера опорного кадра на основе команды RPLR заканчивается, минимальное значение из значений, не присвоенных как номер опорного кадра, становится равным 0 (его сбрасывают в 0), что представляет собой минимальное значение, которое может быть присвоено как номер опорного кадра.
"0" на первом месте от начала третьей команды "013" среди "03", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, представляет команду RPLR LI №COMMAND=0, и "1" на втором месте представляет аргумент команды RPLR LI №COMMAND=0. "3" на третьем месте в "013" представляет команду RPLR №COMMAND=3.
При команде RPLR L1 №COMMAND=0 и последующем аргументе "1" в третьей команде "013" среди "03", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, переменную abs_diff_pic_num_minus1 устанавливают равной 1. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В3 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время, как номер опорного кадра (индекс L1), то есть 0, опорному кадру в качестве индекса L1.
Как описано ниже, среди опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_dirT_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В3 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р5 в GOP, которой принадлежит кадр В3 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию присвоения номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND=3, стоящей на третьем месте в "013".
Когда остаток РОС равен 4, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р4, "013" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "013" представляет команду RPLR L0 №COMMAND=0, а "1" на втором месте представляет собой аргумент команды RPLR L0 №COMMAND-0. "3" на третьем месте в "013" представляет команду RPLR №COMMAND=3.
При команде RPLR L0 №COMMAND=0 и последующем аргументе "1" в "013", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р4, переменную abs_diff_pic_num_minus1 устанавливают в 1. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра Р4 в качестве текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в качестве номера опорного кадра в это время, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, среди опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра Р4 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр I0 в GOP, которой принадлежит кадр Р4 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию присвоения номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND=3 на третьем месте в "013".
Когда остаток РОС равен 5, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р5, "013" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "013" представляет команду RPLR L0 №COMMAND=0, а "1" на втором месте представляет аргумент команды RPLR L0 №COMMAND=0. "3" на третьем месте в "013" представляет команду RPLR №COMMAND=3.
При команде RPLR L0 №COMMAND=0 и последующем аргументе "1" в "013", которая вырабатывается, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р5, переменную abs_diff_pic_num_minus1 устанавливают в 1. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра Р5 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время, в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, среди опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра Р5 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р1 в GOP, которой принадлежит кадр Р5 в качестве целевого кадра, находящегося в процессе декодирования.
После этого устройство декодирования заканчивает операцию присвоения номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "013".
Когда остаток РОС равен 6, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs6, "043" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала "043" представляет команду RPLR LO №COMMAND==0, а "4" на втором месте представляет собой аргумент команды RPLR LO №COMMAND==0. "3" на третьем месте в "043" представляет команду RPLR №COMMAND==3.
При команде RPLR L0 №COMMAND==0 и последующем аргументе "4" в "043", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs6, переменную abs_diffjpic_num_minus1 устанавливают в 4. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs6 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время, в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, среди опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs6 в качестве текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р4 в GOP, которой принадлежит кадр Bs6 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает работу по присвоению опорного номера кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "043".
Когда остаток РОС равен 7, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, "04", "203" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала первой команды "04" из "04", "203" и "013" представляет команду RPLR L0 №COMMAND==0, а "3" на третьем месте представляет собой аргумент команды RPLR L0 №COMMAND==0.
При команде RPLR L0 №COMMAND=0 и последующем аргументе "4" в первой команде "04" из "04", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, переменную abs_diff_pic_num_minus1 устанавливают равной в 4. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитании abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра В7 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время, в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, среди опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра В7 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р5 в GOP, которой принадлежит кадр В7 как текущий кадр, находящийся в процессе декодирования.
"2" на первом месте от начала во второй команде "203" из "04", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, представляет команду RPLR L0 №COMMAND==2, а "0" на втором месте представляет аргумент команды RPLR L0 №COMMAND==2. "3" на третьем месте в "203" представляет команду RPLR №COMMAND==3.
При команде RPLR L0 №COMMAND==2 и последующем аргументе "0" во второй команде "203" из "04", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, переменную long_term_pic_num устанавливают в 0. Таким образом, устройство декодирования выбирает долгосрочный опорный кадр, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивают минимальное значение из значений, не присвоенных в качестве номера опорного кадра в это время, то есть 1, соответствующему долгосрочному опорному кадру в качестве индекса L0.
Как описано ниже, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, из опорных кадров, хранящихся в DPB, долгосрочный опорный кадр, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=0), представляет собой кадр Bs6 в GOP, которой принадлежит кадр В7 в качестве текущего кадра, находящегося в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR, в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "203".
"0" на первом месте от начала в третьей команде "013" из "04", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, представляет команду RPLR LI №COMMAND==0, а "1" на втором месте представляет аргумент команды RPLR LI №COMMAND==0. "3" на третьем месте в "013" представляет команду RPLR №COMMAND==3.
При команде RPLR L1№COMMAND==0 и последующем аргументе "1" в третьей команде "013" из "04", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, переменную abs_diff_pic_num_minus1 устанавливают в 1. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В7 как текущего кадра, находящегося в процессе декодирования, среди опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L1.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В7 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р9 в GOP, которой принадлежит кадр В7 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию присвоения номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "013".
Когда остаток РОС равен 8, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р8, вырабатывают "023" как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "023" представляет команду RPLR L0 №COMMAND==0, а "2" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "023" представляет команду RPLR №COMMAND==3.
При команде RPLR L0 №COMMAND==0 и последующем аргументе "2" в "023", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р8, переменную abs_diff_pic_num_minus1 устанавливают равной 2. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р8 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в качестве номера опорного кадра в это время, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р8 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р4 в GOP, которой принадлежит кадр Р8 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "023".
Когда остаток РОС равен 9, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р9, вырабатывают "023" как команду RPLR и необходимый аргумент. "0" на первом месте от начала "023" представляет команду RPLR L0 №COMMAND==0, а "2" на втором месте представляет аргумент для команды RPLR L0 №COMMAND==0. "3" на третьем месте в "023" представляет команду RPLR №COMMAND==3.
При команде RPLR L0 №COMMAND==0 и последующем аргументе "2" в "023", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р9, переменную abs_diff_pic_num_minus1 устанавливают равной 2. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р9 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в качестве номера опорного кадра в это время, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р9 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р5 в GOP, которой принадлежит кадр Р9 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "023".
Когда остаток РОС равен 10, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs10, "043" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "043" представляет команду RPLR L0 №COMMAND==0, а "4" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "043" представляет команду RPLR №COMMAND==3.
При команде RPLR L0 №COMMAND==0 и последующем аргументе "4" в "043", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs10, переменную abs_diff_pic_num_minus1 устанавливают равной 4. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs10 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время, в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN для кадра Bs10 в качестве текущего кадра, находящегося в процессе декодирования, представляет кадр Р8 в GOP, которой принадлежит кадр Bs10 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "043".
Когда остаток РОС равен 11, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, "04", "203" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в первой команде "04" из "04", "203" и "013" представляет команду RPLR L0 №COMMAND==0, а "3" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0.
При команде RPLR LO №COMMAND==0 и последующем аргументе "4" в первой команде "04" из "04", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, переменную abs_diff_pic_num_minus1 устанавливают равной 4. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра В11 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в качестве номера опорного кадра в это время, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра В11 в качестве текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р9 в GOP, которой принадлежит кадр В11 как текущий кадр, находящийся в процессе декодирования.
"2" на первом месте от начала во второй команде "203" из "04", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, представляет команду RPLR L0 №COMMAND==2, и "0" на втором месте представляет аргумент команды RPLR L0 №COMMAND==2. "3" на третьем месте в "203" представляет команду RPLR №COMMAND==3.
Для команды RPLR №COMMAND==2 и последующего аргумента "0" во второй команде "203" из "04", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, переменную long_term_pic_num устанавливают равной 0. Таким образом, устройство декодирования выбирает долгосрочный опорный кадр, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в качестве номера опорного кадра в это время, то есть 1, соответствующему долгосрочному опорному кадру в качестве индекса L0.
Как описано ниже, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, из опорных кадров, хранящихся в DPB, долгосрочный опорный кадр, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=0), представляет собой кадр Bs10 в GOP, которой принадлежит кадр В11 как текущий кадр, находящийся в процессе декодирования.
После этого, устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "203".
"0" на первом месте от начала в третьей команде "013" из "04", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, представляет команду RPLR LI №COMMAND==0, а "1" на втором месте представляет аргумент команды RPLR LI №COMMAND==0. "3" на третьем месте в "013" представляет команду RPLR №COMMAND==3.
При команде RPLR LI №COMMAND==0 и последующем аргументе "1" в третьей команде "013" из "04", "203" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, переменную abs_diff_pic_num_minus1 устанавливают равной 1. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В11 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в качестве номера опорного кадра в это время, то есть 0, опорному кадру в качестве индекса L1.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_difT_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В11 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р13 в GOP, которой принадлежит кадр В11 как текущий кадр, находящийся в процессе декодирования.
После этого, устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "013".
Когда остаток РОС равен 12 или 13, то есть, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадры Р12 или Р13, "023" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "023" представляет команду RPLR L0 №COMMAND==0, и "2" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "023" представляет команду RPLR №COMMAND==3.
При команде RPLR L0 №COMMAND==0 и последующем аргументе "2" в "023", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р12, переменную abs_diff_pic_num_minus1 устанавливают равной 2. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р12, как текущего кадра, находящегося в процессе декодирования, среди опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, среди опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р12 как текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р8 в GOP, которой принадлежит кадр Р12 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "023".
При команде RPLR L0 №COMMAND==0 и последующем аргументе "2" в "023", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р13, переменную abs_diff_pic_num_minus1 устанавливают равной 2. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р13 как текущего кадра, находящегося в процессе декодирования, среди опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р13 в качестве текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р9 в GOP, которой принадлежит кадр Р13 как текущий кадр, находящийся в процессе декодирования.
После этого, устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "023".
Когда остаток РОС равен 14, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs14, "043" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "043" представляет команду RPLR LO №COMMAND==0, и "4" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "043" представляет команду RPLR №COMMAND==3.
При команде RPLR LO №COMMAND==0 и последующем аргументе "4" в "043", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs14, переменную abs_diff_pic_num_minus1 устанавливают в 4. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs14, как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs14, как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р12 в GOP, которой принадлежит кадр Bs14 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "043".
Когда остаток РОС равен 15, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, команды "04", "203", и "013" последовательно вырабатывают, как команду RPLR и необходимый аргумент. "0" на первом месте в первой команде "04" из "04", "203", и "013" представляет команду RPLR L0 №COMMAND==0, а "4" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0.
При команде RPLR-L0 №COMMAND==0 и последующем аргументе "4" в первой команде "04" из "04", "203", и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, переменную abs_diff_pic_num_minus1 устанавливает равной 4. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра В15 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, который представляет собой PN кадра В15 как текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р13 в GOP, которой принадлежит кадр В15 как текущий кадр, находящийся в процессе декодирования.
"2" на первом месте от начала во второй команде "203" из "04", "203", и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, представляет команду RPLR L0 №COMMAND==2, а "0" на втором месте представляет аргумент команды RPLR L0 №COMMAND==2. "3" на третьем месте в "203" представляет команду RPLR №COMMAND==3.
При команде RPLR №COMMAND==2 и последующем аргументе "0" во второй команде "203" из "04", "203", и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, переменную long_term_pic_num устанавливают равной 0. Таким образом, устройство декодирования выбирает долгосрочный опорный кадр, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 1, соответствующему долгосрочному опорному кадру в качестве индекса L0.
Как описано ниже, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, из опорных кадров, содержащихся в DPB, долгосрочный опорный кадр, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=0), представляет собой кадр Bs14 в GOP, которой принадлежит кадр В15 как текущий кадр, находящийся в процессе декодирования.
После этого, устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "203".
"0" на первом месте от начала в третьей команде "013" из "04", "203", и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, представляет команду RPLR LI №COMMAND==0, а "1" на втором месте представляет аргумент команды RPLR LI №COMMAND==0. "3" на третьем месте в "013" представляет команду RPLR №COMMAND==3.
При команде RPLR LI №COMMAND==0 и последующем аргументе "1" в третьей команде "013" из "04", "203", и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, переменную abs_diff_pic_num_minus1 устанавливает равной 1. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В15 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L1.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В15 в качестве текущего кадра, находящегося в процессе декодирования, представляет собой кадр P1 (Р17) в GOP, являющийся следующей GOP после GOP кадра В15 как текущего кадра, находящегося в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "013".
Как описано выше, для команды RPLR по фиг.12, когда вырабатывают команду ММСО по фиг.10 и когда остаток РОС равен 1, индекс L0 кадра Р13, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 2, индекс L0 кадра I0, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 3, индекс L0 кадра Р1, содержащегося в DPB, становится равным 0, индекс L0 кадра Bs2, содержащегося в DPB, становится равным 1, а индекс L1 кадра Р5, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 4, индекс L0 кадра I0 (I16), содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 5, индекс L0 кадра Р1, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 6, индекс L0 кадра Р4, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 7, индекс L0 кадра Р5, содержащегося в DPB, становится равным 0, индекс L0 кадра Bs6, содержащегося в DPB, становится равным 1, а индекс L1 кадра Р9, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 8, индекс L0 кадра Р4, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 9, индекс L0 кадра Р5, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 10, индекс L0 кадра Р8, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 11, индекс L0 кадра Р9, содержащегося в DPB, становится равным 0, индекс L0 кадра Bs10, содержащегося в DPB, становится равным 1, а индекс L1 кадра Р13, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 12, индекс L0 кадра Р8, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 13, индекс L0 кадра Р9, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 14, индекс L0 кадра Р12, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 15, индекс L0 кадра Р13, содержащегося в DPB, становится равным 0, индекс L0 кадра Bs14, содержащегося в DPB, становится равным 1, а индекс L1 кадра P1 (Р17), содержащегося в DPB, становится равным 0.
Кодирование/декодирование, когда вырабатывают команду ММСО и команду RPLR
На фиг.13 показана схема, иллюстрирующая состояние DPB, когда вырабатывают команду ММСО по фиг.10 и команду RPLR по фиг.12 для кодирования/декодирования последовательности кадров путем использования AVC.
На фиг.13 показан порядок отображения кадров, составляющих последовательность кадров, порядок кодирования/декодирования, PN, состояние сохранения DPB и состояние сохранения буфера дисплея.
Порядок отображения кадров, составляющих последовательность кадров, порядок кодирования/декодирования, PN, и состояние сохранения буфера дисплея являются теми же, что и на фиг.6 и фиг.11, поэтому их описание здесь будет опущено.
Если предположить, что в устройстве кодирования по фиг.8, последовательность кадров кодируют в порядке кодирования, показанном на фиг.13, в устройстве декодирования AVC по фиг.2, кодированные данные, получаемые в результате кодирования, декодируют в порядке декодирования, показанном на фиг.13.
Также предполагается, что в устройстве кодирования по фиг.8 вырабатывают команду ММСО (и необходимый аргумент) по фиг.10 и команду RPLR (и необходимый аргумент) по фиг.12, и команду ММСО и команду RPLR включают в кодированные данные.
В этом случае, в устройстве декодирования AVC по фиг.2, когда кодированные данные декодируют, сохранение кадров в DPB выполняют так же, как описано со ссылкой на фиг.11.
В устройстве декодирования присвоение номера опорного кадра (индекс L0, индекс L1) для каждого из опорных кадров, хранящихся в DPB, выполняют в соответствии с командой RPLR. После этого номер опорного кадра, имеющий значение (заданное значение) при принятом по умолчанию AVC, присваивают опорному кадру, которому не присвоен номер опорного кадра.
На фиг.13, хотя присвоение номера опорного кадра (индекс L0, индекс L1) опорному кадру отличается от фиг.11, опорные кадры, которые хранятся в DPB, совпадают с показанными на фиг.11. Таким образом, на фиг.13, описание опорных кадров, которые хранятся в DPB, будет, соответственно, опущено.
Как показано на фиг.13, в описании "L0 = целое число " и "L1  =целое число", подчеркнутое описание представляет номер опорного кадра (индекс L0, индекс L1), имеющие значение, отличающееся от показанного на фиг.11.
Как показано на фиг.13, в описании ”L0 = целое число " и " L1 = целое число", подчеркнутое и представленное курсивом описание представляет номер опорного кадра, присвоенный в соответствии с командой RPLR, а подчеркнутое, но не представленное курсивом описание представляет, что присвоение номера опорного кадра выполняют на основе команды RPLR, и что номер опорного кадра, впоследствии назначенный при принятом по умолчанию AVC, отличается от показанного на фиг.11.
В момент времени t0, устройство декодирования выбирает кадр I0 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр I0.
Кадр I0 представляет собой опорный кадр, и, как показано на фиг.13, кадр I0 после декодирования хранятся в DPB.
В момент времени t1, следующий после времени t0, устройство декодирования выбирает кадр Р1 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р1.
Когда кадр Р1 декодируют, как показано на фиг.13, кадр I0 хранят в DPB, и кадр P1 декодируют со ссылкой на кадр I0, хранящийся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения для прогнозирования L0.
Остаток РОС для РОС кадра Р1 равен 1. В этом случае, как описано со ссылкой на фиг.12, "023" вырабатывают как команду RPLR и необходимый аргумент, и номер опорного кадра присваивают кадру Р13 в GOP, являющейся предыдущей GOP перед GOP кадра Р1 как текущего кадра, находящегося в процессе декодирования, в соответствии с командой RPLR. В то же время, когда кадр Р1 первого GOP№0 декодируют, кадр GOP, являющейся предыдущей GOP перед GOP кадра Р1 как текущего кадра, находящегося в процессе декодирования, не хранится в DPB.
Поэтому только для первого GOP№0, когда кадр Р1 декодируют, в качестве исключения команду RPLR "400" не вырабатывают.
Таким образом, когда кадр P1 GOP№0 декодируют при принятом по умолчанию AVC, индекс L0 присваивают кадру I0, хранящемуся в DPB. Таким образом, аналогично фиг.11, индекс L0, имеющий значение 0, присваивают кадру I0, хранящемуся в DPB.
Кадр Р1 представляет собой опорный кадр и, как показано на фиг.13, кадр Р1 после декодирования хранится в DPB как опорный кадр.
В момент времени t2, следующий после времени t1, устройство декодирования выбирает кадр Р4 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р4.
Когда кадр Р4 декодируют, как показано на фиг.13, кадры I0 и Р1 хранятся в DPB, и кадр Р4 декодируют со ссылкой на кадры I0 или Р1, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
Остаток РОС для РОС кадра Р4 равен 4. В этом случае, как описано со ссылкой на фиг.12, "013" вырабатывают как команду RPLR и необходимый аргумент.
Для команды RPLR "013", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р4, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diir_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра Р4 как текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) для кадра Р4 равен 2. Таким образом, из кадров I0 и P1, хранящихся в DPB, кадр I0, который представляет собой опорный кадр с PN=2-2=0, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру I0.
После этого, из кадров I0 и Р1, хранящихся в DPB, для кадра Р1, из которого номер опорного кадра (индекс L0) не присвоен на основе команды RPLR, при принятии по умолчанию AVC, минимальное значение из значений, не используемых как индекс L0 в это время, то есть 1 (индекс L0, имеющий значение 0, присвоен кадру I0 в соответствии с командой RPLR), присваивают в качестве индекса L0.
Кадр Р4 представляет собой опорный кадр и, как показано на фиг.13, кадр Р4 после декодирования хранятся в DPB.
В момент времени t3, следующий после времени t2, устройство декодирования выбирает кадр Р5 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р5.
Когда кадр Р5 декодируют, как показано на фиг.13, кадры I0, Р1 и Р4 хранятся в DPB, и кадр Р5 декодируют со ссылкой на кадры Р1 и I0 или Р4, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
Остаток РОС для РОС кадра Р5 равен 5. В этом случае, как описано со ссылкой на фиг.12, "013" вырабатывают как команду RPLR и необходимый аргумент.
При команде RPLR "013", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р5, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра Р5, как текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных как индекс L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) кадра Р5 равен 3. Таким образом, из кадров I0, Р1 и Р4, хранящихся в DPB, кадр Р1, который представляет собой опорный кадр с PN=3-2=1, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру Р1.
После этого из кадров I0, Р1 и Р4, хранящихся в DPB, для кадров I0 и Р4, которым номер опорного кадра на основе команды RPLR еще не был присвоен, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или больше 1.
Таким образом, из кадров I0, Р1 и Р4, хранящихся в DPB, для кадров I0 и Р4, которым номер опорного кадра на основе команды RPLR не был присвоен, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р4, расположенному ближе всего к кадру Р5 как текущему кадру, находящемуся в процессе декодирования, в порядке декодирования; и индекс L0, имеющий значение 2, присваивают кадру I0, второму ближайшему к кадру Р45 в порядке декодирования.
Кадр Р5 представляет собой опорный кадр, как показано на фиг.13, кадр Р5 после декодирования хранятся в DPB.
В момент времени t4, следующий после времени t3, устройство декодирования выбирает кадр Bs2 GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs2.
Когда декодируют кадр Bs2, как показано на фиг.13, кадры I0, P1, Р4 и Р5 хранятся в DPB, и кадр Bs2 декодируют со ссылкой на кадры I0, P1, Р4 и Р5, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения для прогнозирования L0 или прогнозирования L1.
Остаток РОС для РОС кадра Bs2 равен 2. В этом случае, как описано со ссылкой на фиг.12, "033" вырабатывают как команду RPLR и необходимый аргумент.
Для команды RPLR "033", которую вырабатывают, когда текущее изображение в процессе декодирования представляет собой кадр Bs2, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=4) из CurrPicNum, которое представляет собой PN кадра Bs2 как текущий кадр, находящийся в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных как индекс L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) для кадра Bs2 равен 4. Таким образом, из кадров I0, P1, Р4 и Р5, хранящихся в DPB, кадр I0, который представляет собой опорный кадр с PN=4-4=0, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру I0.
После этого, из кадров I0, P1, Р4 и Р5, хранящихся в DPB, для кадров P1 Р4 и Р5, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или больше 1.
Таким образом, из кадров I0, P1, Р4 и Р5, хранящихся в DPB, для кадров Р1, Р4, Р5, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, как показано на фиг.13, индекс L0, имеющий значение 1, присваивают кадру Р1, ближайшему к кадру Bs2 перед кадром Bs2 в порядке РОС.
Из кадров I0, P1, Р4 и Р5, хранящихся в DPB, для кадров P1 Р4 и Р5, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 2, присваивают кадру Р4, ближайшему к кадру Bs2 после кадра Bs2 в порядке РОС; а индекс L0, имеющий значение 3, присваивают кадру Р5, второму ближайшему к кадру Bs2 после кадра Bs2 в порядке РОС.
Для кадров I0 P1, Р4 и Р5, хранящихся в DPB, для которых присвоение индекса L1 на основе команды RPLR не было выполнено, как показано на фиг.11, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру Р4; индекс L0, имеющий значение 1, присваивают кадру Р5; индекс L1, имеющий значение 2, присваивают кадру Р1; а индекс L1, имеющий значение 3, присваивают кадру I0.
Кадр Bs2 представляет собой опорный кадр, и кадр Bs2 после декодирования хранятся в DPB. В результате, как показано на фиг.11, кадры Р1, Р4, Р5 и Bs2 хранятся в DPB.
Как описано со ссылкой на фиг.11, кадр Bs2 устанавливают как долгосрочный опорный кадр, и сохраняют в DPB. Как описано со ссылкой на фиг.10, 0, как индекс LongFrameldx для долгосрочного опорного кадра, присваивают кадру Bs2 как долгосрочному опорному кадру, хранящемуся в DPB в соответствии с командой ММСО.
В момент времени t5, следующий после времени t4, устройство декодирования выбирает кадр В3 для GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В3.
Когда кадр В3 декодируют, как показано на фиг.13, кадры Р1, Р4, Р5 и Bs2 хранятся в DPB, и кадр В3 декодируют со ссылкой на кадры Р1, Р4, Р5 и Bs2, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения для прогнозирования L0 или прогнозирования L1.
В данном случае остаток РОС для РОС кадра В3 равен 3. В этом случае, как описано со ссылкой на фиг.12, "03", "203" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент.
Для команды RPLR "03", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=4) из CurrPicNum, которое представляет собой PN для кадра В3, как текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) для кадра В3 равен 5. Таким образом, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, кадр Р1, который представляет собой опорный кадр с PN=5-4=1, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру Р1.
При команде RPLR "203", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, как описано со ссылкой на фиг.12, из опорных кадров, хранящихся в DPB, долгосрочный опорный кадр, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=0), выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 1, присваивают долгосрочному опорному кадру в качестве индекса L0.
Когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, кадр Bs2 становится долгосрочным опорным кадром в соответствии с командой ММСО, описанной со ссылкой на фиг.10, а индекс LongFrameldx долгосрочного опорного кадра становится равным 0.
Таким образом, минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 1, присваивает в качестве индекса L0 кадру Bs2 как долгосрочному опорному кадру, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=0).
При команде RPLR "013", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diffjpic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_nurn_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В3 как текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L1 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L1.
Как показано на фиг.13, PN (CurrPicNum) кадра В3 равен 5. Таким образом, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, кадр Р5, который представляет собой опорный кадр с PN=5-2=<3, выбирают в качестве целевого кадра присвоения, и индекс L1, имеющий значение 0, присваивают кадру Р5.
После этого из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров Р4 и Р5, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или больше 2.
Таким образом, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров Р4 и Р5, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 2, присваивают кадру Р4, ближайшему к кадру В3 после кадра В3 в порядке РОС; а индекс L0, имеющий значение 3, присваивают кадру Р5, второму ближайшему к кадру В3 после кадра В3 в порядке РОС.
Из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров P1 Р4 и Bs2, для которых присвоение индекса L1 на основе команды RPLR, не было выполнено, при принятом по умолчанию AVC, присваивают индекс L1, имеющий значение, равное или больше 1.
Таким образом, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, в частности, из кадров P1, Р4 и Bs2, для которых присвоение индекса L1 на основе команды RPLR не было выполнено, для кадров Р1 и Р4 как краткосрочных опорных кадров, как показано на фиг.13, присвоение выполняют следующим образом: индекс L1, имеющий значение 1, присваивают кадру Р4, ближайшему к кадру В3 после кадра В3 в порядке РОС; а индекс L1, имеющий значение 2, присваивают кадру Р1, ближайшему к кадру В3 перед кадром В3 в порядке РОС.
Наконец, индекс L1, имеющий значение 3, присваивают кадру Bs2 как долгосрочному опорному кадру из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, в частности, из кадров P1, Р4 и Bs2, для которых присвоение индекса L1 на основе команды RPLR не было выполнено.
Кадр В3 не является опорным кадром, таким образом, кадр В3 не хранится в DPB после декодирования.
Таким образом, как показано на фиг.13, как и в случае после декодирования кадра Bs2, который является предыдущим кадром перед кадром В3 в порядке декодирования, кадры Р1, Р4, Р5 и Bs2 по-прежнему хранятся в DPB.
В момент времени t6, следующий после времени t5, устройство декодирования выбирает кадр Р8 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р8.
Когда кадр Р8 декодируют, как показано на фиг.13, кадры Р1, Р4, Р5 и Bs2 хранятся в DPB, и кадр Р8 декодируют со ссылкой на кадры Р1, Р4, Р5 и Bs2, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения при прогнозировании L0.
Остаток РОС от РОС кадра Р8 равен 8. В этом случае, как описано со ссылкой на фиг.12, "023" вырабатывают как команду RPLR и необходимый аргумент.
При команде RPLR "023", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р8, как описано со ссылкой, на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитании abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN для кадра Р8 как текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) кадра Р8 равен 5. Таким образом, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, кадр Р4, который представляет собой опорный кадр с PN=5-3=2, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру Р4.
После этого из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров P1 Р5 и Bs2, для которых присвоение номера опорного кадра на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее чем 1.
Таким образом, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, в частности, из кадров P1, Р5 и Bs2, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, для кадров Р1 и Р5 как краткосрочных опорных кадров, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р5, ближайшему к кадру Р48 в порядке декодирования; а индекс L0, имеющий значение 2, присваивают кадру Р1, второму ближайшему к кадру Р48.
Наконец, индекс L0, имеющий значение 3, присваивают кадру Bs2 как долгосрочному опорному кадру из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, в частности, из кадров P1, Р5 и Bs2, для которых присвоение индекса L0 на основе команды RPLR не было выполнено.
Кадр Р8 представляет собой опорный кадр, и результат декодирования кадра Р8 хранится в DPB.
Когда кадр Р8 хранится в DPB, как описано со ссылкой на фиг.11, кадр Bs2, как долгосрочный опорный кадр, хранящийся в DPB, выбрасывают. В результате, как показано на фиг.13, кадры Р1, Р4, Р5 и Р8 хранятся в DPB.
В момент времени t7, следующий после времени t6, устройство декодирования выбирает кадр Р9 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р9.
Когда кадр Р9 декодируют, как показано на фиг.13, кадры Р1, Р4, Р5 и Р8 хранятся в DPB, и кадр Р9 декодируют со ссылкой на кадры Р1, Р4, Р5 и Р8, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
Остаток РОС для РОС кадра Р9 равен 9. В этом случае, как описано со ссылкой на фиг.12, "023" вырабатывают как команду RPLR и необходимый аргумент.
При команде RPLR "023", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р9, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р9 в качестве текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) кадра Р9 равен 6. Таким образом, из кадров Р1, Р4, Р5 и Р8, хранящихся в DPB, кадр Р5, который представляет собой опорный кадр с PN=6-3=3, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру Р5.
После этого из кадров Р1, Р4, Р5 и Р8, хранящихся в DPB, для кадров P1 Р4 и Р8, для которых присвоение номера опорного кадра на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р1, Р4, Р5 и Р8, хранящихся в DPB, для кадров P1 Р4 и Р8, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р8, ближайшему к кадру Р9 в порядке декодирования; индекс L0, имеющий значение 2, присваивают кадру Р4, второму ближайшему к кадру Р9 в порядке декодирования; а индекс L0, имеющий значение 3, присваивают кадру Р1, третьему ближайшему к кадру Р9 в порядке декодирования.
Кадр Р9 представляет собой опорный кадр, и, как описано со ссылкой на фиг.11, кадр Р9 после декодирования хранится в DPB. В результате, как показано на фиг.13, кадры Р4, Р5, Р8 и Р9 хранятся в DPB.
В момент времени t8, следующий после времени t7, устройство декодирования выбирает кадр Bs6 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs6.
Когда декодируют кадр Bs6, как показано на фиг.13, кадры Р4, Р5, Р8 и Р9 хранятся в DPB, и кадр Bs6 декодируют со ссылкой на кадры Р4, Р5, Р8 и Р9, хранящиеся в DPB в соответствии с необходимостью, для формирования прогнозируемого изображения для прогнозирования L0 или прогнозирования L1.
Остаток РОС от РОС кадра Bs6 равен 6. В этом случае, как описано со ссылкой на фиг.12, вырабатывают "043" как команду RPLR и необходимый аргумент.
При команде RPLR "043", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs6, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs6 как текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) для кадра Bs6 равен 7. Таким образом, из кадров Р4, Р5, Р8 и Р9, хранящихся в DPB, кадр Р4, который представляет собой опорный кадр с PN=7-5=2, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру Р4.
После этого из кадров Р4, Р5, Р8 и Р9, хранящихся в DPB, для кадров Р5 Р8 и Р9, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс.L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р4, Р5, Р8 и Р9, хранящихся в DPB, для кадров Р5 Р8 и Р9, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р5, ближайшему к кадру Bs6 перед кадром Bs6 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру Р8, ближайшему к кадру Bs6 после кадра Bs6 в порядке РОС; а индекс L0, имеющий значение 3, присваивают кадру Р9, ближайшему к кадру Bs6 после кадра Bs6 в порядке РОС.
Для кадров Р4 Р5, Р8 и Р9, хранящихся в DPB, для которых присвоение индекса L1 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, как показано на фиг.11, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру Р8; индекс L0, имеющий значение 1, присваивают кадру Р9; индекс L1, имеющий значение 2, присваивают кадру Р5; и индекс L1, имеющий значение 3, присваивают кадру Р4.
Кадр Bs6 представляет собой опорный кадр, и кадр Bs6 после декодирования хранится в DPB. В результате, как показано на фиг.11, кадры Р5, Р8, Р9 и Bs6 хранятся в DPB.
Как описано со ссылкой на фиг.11, кадр Bs6 устанавливают как долгосрочный опорный кадр и хранят в DPB. Для кадра Bs6 как долгосрочного опорного кадра, хранящегося в DPB, как описано со ссылкой на фиг.10, 0 присваивают в качестве индекса LongFrameldx для долгосрочного опорного кадра в соответствии с командой ММСО.
В момент времени t9, следующий после времени t8, устройство декодирования выбирает кадр В7 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В7.
Когда кадр В7 декодируют, как показано на фиг.13, кадры Р5, Р8, Р9 и Bs6 хранятся в DPB, и кадр В7 декодируют со ссылкой на кадры Р5, Р8, Р9 и Bs6, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
Остаток РОС от РОС кадра В7 равен 7. В этом случае, как описано со ссылкой на фиг.12, "04", "203" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент.
Для команды RPLR "04", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=Cun"PicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет PN кадра В7 как текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) кадра В7 равен 8. Таким образом, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, кадр Р5, который представляет собой опорный кадр с PN=8-5=3, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру Р5.
Для команды RPLR "203", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, как описано со ссылкой на фиг.12, из опорных кадров, хранящихся в DPB, долгосрочный опорный кадр, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=0), выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 1, присваивают долгосрочному опорному кадру в качестве индекса L0.
Когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, кадр Bs6 становится долгосрочным опорным кадром в соответствии с командой ММСО, описанной со ссылкой на фиг.10, и индекс LongFrameldx для долгосрочного опорного кадра становится равным 0.
Таким образом, минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 1, присваивают в качестве индекса L0 кадру Bs6 как долгосрочному опорному кадру, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=0).
Для команды RPLR "013", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В7 как текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L1 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L1.
Как показано на фиг.13, PN (CurrPicNum) кадра В7 равен 8. Таким образом, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, кадр Р9, который представляет собой опорный кадр с PN=8-2=6, выбирают в качестве целевого кадра присвоения, и индекс L1, имеющий значение 0, присваивают кадру Р9.
После этого, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, для кадров Р8 и Р9, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, для кадров Р8 и Р9, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 2, присваивают кадру Р8, ближайшему к кадру В7 после кадра В7 в порядке РОС; а индекс L0, имеющий значение 3, присваивают кадру Р9, второму ближайшему к кадру В7 после кадра В7 в порядке РОС.
Из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, для кадров Р5, Р8 и Bs6, для которых присвоение индекса L1 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, в частности, из кадров Р5, Р8 и Bs6, для которых присвоение индекса L1 на основе команды RPLR не было выполнено, для кадров Р5 и Р8 как краткосрочных опорных кадров, как показано на фиг.13, присвоение выполняют следующим образом: индекс L1, имеющий значение 1, присваивают кадру Р8, ближайшему к кадру В7 после кадра В7 в порядке РОС; а индекс L1, имеющий значение 2, присваивают кадру Р5, ближайшему к кадру В7 перед кадром В7 в порядке РОС.
Наконец, индекс L1, имеющий значение 3, присваивают кадру Bs6 как долгосрочному опорному кадру из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, в частности, из кадров Р5, Р8 и Bs6, для которых присвоение индекса L1 на основе команды RPLR не было выполнено.
Кадр В7 не является опорным кадром, таким образом, кадр В7 не хранится в DPB после декодирования.
Таким образом, как показано на фиг.13, как и в случае после декодирования кадра Bs6, который расположен на один кадр перед кадром В7 в порядке декодирования, кадры Р5, Р8, Р9 и Bs6 по-прежнему хранятся в DPB.
В момент времени U0, следующий после времени t9, устройство декодирования выбирает кадр Р12 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р12.
Когда декодируют кадр Р12, как показано на фиг.13, кадры Р5, Р8, Р9 и Bs6 хранятся в DPB, и кадр Р12 декодируют со ссылкой на кадры Р5, Р8, Р9 и Bs6, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
Остаток РОС от РОС кадра Р12 равен 12. В этом случае, как описано со ссылкой на фиг.12, "023" вырабатывают как команду RPLR и необходимый аргумент.
При команде RPLR "023", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р12, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р12 в качестве текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) кадра Р12 равен 8. Таким образом, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, кадр Р8, который представляет собой опорный кадр с PN=8-3=5, выбирают в качестве целевого кадра присвоения, а индекс L0, имеющий значение 0, присваивают кадру Р8.
После этого, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, для кадров Р5 Р9 и Bs6, для которых номер опорного кадра на основе команды RPLR не был присвоен, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, в частности, из кадров Р5, Р9 и Bs6, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, для кадров Р5 и Р9 как краткосрочного опорного кадра, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р9, ближайшему к кадру Р12 в порядке декодирования; а индекс L0, имеющий значение 2, присваивают кадру Р5, второму ближайшему к кадру Р412 в порядке декодирования.
Наконец, индекс L0, имеющий значение 3, присваивают кадру Bs6 как долгосрочному опорному кадру из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, в частности, из кадров Р5, Р9 и Bs6, для которых присвоение индекса L0 на основе команды RPLR не было выполнено.
Кадр Р12 представляет собой опорный кадр, и кадр Р12 после декодирования хранится в DPB.
Когда кадр Р12 хранится в DPB, как описано со ссылкой на фиг.11, кадр Bs6 как долгосрочный опорный кадр, хранящийся в DPB, выбрасывают. В результате, как показано на фиг.13, кадры Р5, Р8, Р9 и Р12 хранятся в DPB.
В момент времени t11, следующий после времени t10, устройство декодирования выбирает кадр Р13 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р13.
Когда декодируют кадр Р13, как показано на фиг.13, кадры Р5, Р8, Р9 и Р12 хранятся в DPB, и кадр Р13 декодируют со ссылкой на кадры Р5, Р8, Р9 и Р12, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
Остаток РОС от РОС кадра Р13 равен 13. В этом случае, как описано со ссылкой на фиг.12, "023" вырабатывают как команду RPLR и необходимый аргумент.
При команде RPLR "023", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р13, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN для кадра Р13 как текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) кадра Р13 равен 9. Таким образом, из кадров Р5, Р8, Р9 и Р12, хранящихся в DPB, кадр Р9, который представляет собой опорный кадр с PN=9-3=6, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру Р9.
После этого из кадров Р5, Р8, Р9 и Р12, хранящихся в DPB, для кадров Р5, Р8 и Р12, для которых номер опорного кадра на основе команды RPLR не был присвоен при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р5, Р8, Р9 и Р12, хранящихся в DPB, для кадров Р5, Р8 и Р12, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р12, ближайшему к кадру Р13 в порядке декодирования; индекс L0, имеющий значение 2, присваивают кадру Р8, второму ближайшему к кадру Р13 в порядке декодирования; а индекс L0, имеющий значение 3, присваивают кадру Р5, третьему ближайшему к кадру Р13 в порядке декодирования.
Кадр Р13 представляет собой опорный кадр и, как описано со ссылкой на фиг.11, кадр Р13 после декодирования хранятся в DPB. В результате, как показано на фиг.13, кадры Р8, Р9, Р12 и Р13 хранятся в DPB.
В момент времени tl2, следующий после времени t11, устройство декодирования выбирает кадр Bs10 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs10.
Когда кадр Bs10 декодируют, как показано на фиг.13, кадры Р8, Р9, Р12 и Р13 хранятся в DPB, и кадр Bs10 декодируют со ссылкой на кадры Р8, Р9, Р12 и Р13, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения для прогнозирования L0 или прогнозирования L1.
Остаток РОС от РОС кадра Bs10 равен I0. В этом случае, как описано со ссылкой на фиг.12, вырабатывают "043", как команду RPLR и необходимый аргумент.
При команде RPLR "043", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs10, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs10 в качестве текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекс L0.
Как показано на фиг.13, PN (CurrPicNum) кадра Bs10 равен I0. Таким образом, из кадров Р8, Р9, Р12 и Р13, хранящихся в DPB, кадр Р8, который представляет собой опорный кадр с PN=I0-5=5, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру Р8.
После этого из кадров Р8, Р9, Р12 и Р13, хранящихся в DPB, для кадров Р9, Р12 и Р13, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р8, Р9, Р12 и Р13, хранящихся в DPB, для кадров Р9, Р12 и Р13, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р9, ближайшему к кадру Bs10 перед кадром Bs10 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру Р12, ближайшему к кадру Bs10 после кадра Bs10 в порядке РОС; а индекс L0, имеющий значение 3, присваивают кадру Р13, второму ближайшему к кадру Bs10 после кадра Bs10 в порядке РОС.
Для кадров Р8, Р9, Р12 и Р13, хранящихся в DPB, для которых присвоение индекса L1 на основе команды RPLR не было выполнено, для принятого по умолчанию AVC, как на фиг.11, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру Р12; индекс L0, имеющий значение 1, присваивают кадру Р13; индекс L1, имеющий значение 2, присваивают кадру Р9; а индекс L1, имеющий значение 3, присваивают кадру Р8.
Кадр Bs10 представляет собой опорный кадр, и кадр Bs10 после декодирования хранится в DPB. В результате, как показано на фиг.11, кадры Р9, Р12, Р13 и Bs10 хранятся в DPB.
Как описано со ссылкой на фиг.11, кадр Bs10 устанавливают как долгосрочный опорный кадр и хранят в DPB. Для кадра Bs10 в качестве долгосрочного опорного кадра, хранящегося в DPB, как описано со ссылкой на фиг.10, 0 назначают как индекс LongFrameldx для долгосрочного опорного кадра в соответствии с командой ММСО.
В момент времени t13, следующий после времени t12, устройство декодирования выбирает кадр B11 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В11.
Когда декодируют кадр В11, как показано на фиг.13, кадры Р9, Р12, Р13 и Bs10 хранятся в DPB, и кадр В11 декодируют со ссылкой на кадры Р9, Р12, Р13 и Bs10, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого кадра, в соответствии с прогнозированием L0 или прогнозированием L1.
Остаток РОС от РОС кадра В11 равен 11. В этом случае, как описано со ссылкой на фиг.12, "04", "203" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент.
При команде RPLR "04", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, который представляет собой PN для кадра В11 как текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) кадра В11 равен 11. Таким образом, из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, кадр Р9, который представляет собой опорный кадр с PN=11-5=6, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру Р9.
При команде RPLR "203", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, как описано со ссылкой на фиг.12, из опорных кадров, хранящихся в DPB, долгосрочный опорный кадр, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=0), выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 1, присваивают долгосрочному опорному кадру в качестве индекса L0.
Когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, кадр Bs10 становится долгосрочным опорным кадром в соответствии с командой ММСО, описанной со ссылкой на фиг.10, и индекс LongFrameldx для долгосрочного опорного кадра становится равным 0.
Таким образом, для кадра Bs10 в качестве долгосрочного опорного кадра, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=0), минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 1, присваивают в качестве индекса L0.
Для команды RPLR "013", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В11 как текущего кадра,' находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L1 в это время, то есть 0 присваивают соответствующему опорному кадру в качестве индекса L1.
Как показано на фиг.13, PN (CurrPicNum) кадра В11 равен 11. Таким образом, из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, кадр Р13, который представляет собой опорный кадр с PN=11-2=9, выбирают в качестве целевого кадра присвоения, и индекс L1, имеющий значение 0, присваивают кадру Р13.
После этого, из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, для кадров Р12 и Р13, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 2.
Таким образом, из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, для кадров Р12 и Р13, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 2, присваивают кадру Р12, ближайшему к кадру В11 после кадра В11 в порядке РОС; а индекс L0, имеющий значение 3, присваивают кадру Р13, второму ближайшему к кадру В11 после кадра В11 в порядке РОС.
Из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, для кадров Р9, Р12 и Bs10, для которых присвоение индекса L1 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, в частности, из кадров Р9, Р12 и Bs10, для которых присвоение индекса L1 на основе команды RPLR не было выполнено для кадров Р9 и Р12 как краткосрочных опорных кадров, как показано на фиг.13, присвоение выполняют следующим образом: индекс L1, имеющий значение 1, присваивают кадру Р12, ближайшему к кадру В11 после кадра В11 в порядке РОС; а индекс L1, имеющий значение 2, присваивают кадру Р9, ближайшему к кадру В11 перед кадром В11 в порядке РОС.
Из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, в частности, из кадров Р9, Р12 и Bs10, для которых присвоение индекса L1 на основе команды RPLR не было выполнено, кадру Bs10 как долгосрочному опорному кадру последнему присваивают индекс L1, имеющий значение 3.
Кадр В11 не является опорным кадром, таким образом, кадр В11 не хранятся в DPB после декодирования.
Таким образом, как показано на фиг.13, как и в случае после декодирования кадра Bs10, расположенного на один кадр раньше кадра В11 в порядке декодирования, кадры Р9, Р12, Р13 и Bs10 по-прежнему хранятся в DPB.
В момент времени t14, следующий после времени t13, устройство декодирования выбирает кадр I16 (I0) из G0P№1 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр I16 без межкадрового прогнозирования.
Таким образом, когда декодируют кадр I16, как показано на фиг.11, кадры Р9, Р12, Р13 и Bs10 хранятся в DPB, и кадр I16 декодируют без ссылки на кадры Р9, Р12, Р13 и Bs10, хранящиеся в DPB.
Кадр I16 представляет собой опорный кадр, и кадр I16 после декодирования хранится в DPB.
Когда кадр I16 хранится в DPB, как описано со ссылкой на фиг.11, кадр Bs10, как долгосрочный опорный кадр, хранящийся в DPB, выбрасывают. В результате, как показано на фиг.13, кадры Р9, Р12, Р13 и I16 хранятся в DPB.
В момент времени t15, следующий после времени tl4, устройство декодирования выбирает кадр Р17 (Р1) в G0P№1 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р17.
Когда декодируют кадр Р17, как показано на фиг.13, кадры Р9, Р12, Р13 и I16. хранятся в DPB, и кадр Р17 декодируют со ссылкой на кадры Р9, Р12, Р13 и I16, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
Остаток РОС от РОС кадра Р17 равен 1. В этом случае, как описано со ссылкой на фиг.12, "023" вырабатывают как команду RPLR и необходимый аргумент.
При команде RPLR "023", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р17, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р17 как текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) для кадра Р17 равен 12. Таким образом, из кадров Р9, Р12, Р13 и I16, хранящихся в DPB, кадр Р13, который представляет собой опорный кадр с PN=12-3=9, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру Р13.
После этого из кадров Р9, Р12, Р13 и I16, хранящихся в DPB, для кадров Р9 Р12 и I16, для которых не был присвоен номер опорного кадра на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р9, Р12, Р13 и I16, хранящихся в DPB, для кадров Р9, Р12 и I16, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру I16, ближайшему к кадру Р17 в порядке декодирования; индекс L0, имеющий значение 2, присваивают кадру Р12, второму ближайшему к кадру Р17 в порядке декодирования; а индекс L0, имеющий значение 3, присваивают кадру Р9, третьему ближайшему к кадру Р17 в порядке декодирования.
Кадр Р17 представляет собой опорный кадр и, как описано со ссылкой на фиг.11, кадр Р17 после декодирования хранится в DPB. В результате, как показано на фиг.13, кадры Р12, Р13, I16 и Р17 хранятся в DPB.
В момент времени t16, следующий после времени tl5, устройство декодирования выбирает кадр Bs14 из GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs14.
Когда кадр Bs14 декодируют, как показано на фиг.13, кадры Р12, Р13, I16 и Р17 хранятся в DPB, и кадр Bs14 декодируют со ссылкой на кадры Р12, Р13, I16 и Р17, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
Остаток РОС от РОС кадра Bs14 составляет 14. В этом случае, как описано со ссылкой на фиг.12, "043" вырабатывают как команду RPLR и необходимый аргумент.
При команде RPLR "043", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs14, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs14 в качестве текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) кадра Bs14 равен 13. Таким образом, из кадров Р12, Р13, I16 и Р17, хранящихся в DPB, кадр Р12, который представляет собой опорный кадр с PN=13-5=8, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру Р12.
После этого, из кадров Р12, Р13, I16 и Р17, хранящихся в DPB, для кадров Р13, I16 и Р17, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р12, Р13, I16 и Р17, хранящихся в DPB, для кадров Р13, I16 и Р17, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р13, ближайшему к кадру Bs14 перед кадром Bs14 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру I16, ближайшему к кадру Bs14 после кадра Bs14 в порядке РОС; и индекс L0, имеющий значение 3, присваивают кадру Р17, второму ближайшему к кадру Bs14 после кадра Bs14 в порядке РОС.
Для кадров Р12 Р13, I16 и Р17, хранящихся в DPB, для которых присвоение индекса L1 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, как показано на фиг.11, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру I16; индекс L0, имеющий значение 1, присваивают кадру Р17; индекс L1, имеющий значение 2, присваивают кадру Р13; и индекс L1, имеющий значение 3, присваивают кадру Р12.
Кадр Bs14 представляет собой опорный кадр, и кадр Bs14 после декодирования хранится в DPB. В результате, как показано на фиг.11, кадры Р13, I16, Р17 и Bs14 хранятся в DPB.
Как описано со ссылкой на фиг.11, кадр Bs14 устанавливают как долгосрочный опорный кадр и хранят в DPB. Для кадра Bs14 в качестве долгосрочного опорного кадра, хранящегося в DPB, как описано со ссылкой на фиг.10, 0 присваивают в качестве индекса LongFrameldx для долгосрочного опорного кадра в соответствии с командой ММСО.
В момент времени tl7, следующий после времени tl6, устройство декодирования выбирает кадр В15 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В15.
Когда декодируют кадр В15, как показано на фиг.13, кадры Р13, I16, Р17 и Bs14 хранятся в DPB, и кадр В15 декодируют со ссылкой на кадры Р13, I16, Р17 и Bs14, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0 или прогнозированием L1.
Остаток РОС от РОС кадра В15 составляет 15. В этом случае, как описано со ссылкой на фиг.12, "04", "203" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент.
При команде "04" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра В15 в качестве текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L0.
Как показано на фиг.13, PN (CurrPicNum) кадра В15 равен 14. Таким образом, из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, кадр Р13, который представляет собой опорный кадр с PN=14-5=9, выбирают в качестве целевого кадра присвоения, и индекс L0, имеющий значение 0, присваивают кадру Р13.
При команде "203" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, как описано со ссылкой на фиг.12, из опорных кадров, хранящихся в DPB, долгосрочный опорный кадр, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=0), выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 1, присваивают соответствующему опорному кадру в качестве индекса L0.
Когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, кадр Bs14 становится долгосрочным опорным кадром в соответствии с командой ММСО, описанной со ссылкой на фиг.10, а индекс LongFrameldx для долгосрочного опорного кадра становится равным 0.
Таким образом, для кадра Bs14 как долгосрочного опорного кадра, в котором индекс LongFrameldx для долгосрочного опорного кадра равен переменной long_term_pic_num (=0), минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 1, присваивают в качестве индекса L0.
При команде "013" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, как описано со ссылкой на фиг.12, опорный кадр, который имеет в качестве PN (=CurrPicNum-(abs_diff_pic_num_minus1+1)) значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В15 в качестве текущего кадра, находящегося в процессе декодирования, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L1 в это время, то есть 0, присваивают соответствующему опорному кадру в качестве индекса L1.
Как показано на фиг.13, PN (CurrPicNum) кадра В15 равен 14. Таким образом, из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, кадр Р17 (Р1), который представляет собой опорный кадр с PN=14-2=12, выбирают в качестве целевого кадра присвоения, и индекс L1, имеющий значение 0, присваивают кадру Р17.
После этого, из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, для кадров I16 и Р17, для которых не был присвоен индекс L0 на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 2.
Таким образом, из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, для кадров I16 и Р17, для которых не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 2, присваивают кадру I16, ближайшему к кадру В15 после кадра В15 в порядке РОС; а индекс L0, имеющий значение 3, присваивают кадру Р17, второму ближайшему к кадру В15 после кадра В15 в порядке РОС.
Из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, для кадров Р13 I16 и Bs14, для которых не был присвоен индекс L1 на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, в частности, из кадров Р13, I16 и Bs14, для которых не был присвоен индекс L1 на основе команды RPLR, для кадров Р13 и I16 как краткосрочных опорных кадров, как показано на фиг.13, присвоение выполняют следующим образом: индекс L1, имеющий значение 1, присваивают кадру I16, ближайшему к кадру В15 после кадра В15 в порядке РОС; а индекс L1, имеющий значение 2, присваивают кадру Р13, ближайшему к кадру В15 перед кадром В15 в порядке РОС.
Наконец, из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, в частности, из кадров Р13, I16 и Bs14, для которых не был присвоен индекс L1 на основе команды RPLR, для кадра Bs14 как долгосрочного опорного кадра присваивают индекс L1, имеющий значение 3.
Кадр В15 не является опорным кадром, таким образом, кадр В15 не сохраняют в DPB после декодирования.
Таким образом, как показано на фиг.13, как и в случае после декодирования кадра Bs14, расположенного на один кадр перед кадром В15 в порядке декодирования, кадры Р13, I16, Р17 и Bs14 по-прежнему хранятся в DPB.
Хотя это не показано на фиг.13, в момент времени, следующий после времени t17, устройство декодирования выбирает кадр Р20 (Р4) в GOP№1 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р20.
Когда декодируют кадр Р20, как показано на фиг.13, кадры Р13, I16, Р17 и Bs14 хранятся в DPB, и кадр Р20 декодируют со ссылкой на кадры Р13, I16, Р17 и Bs14, хранящиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
В этом случае РОС кадры Р20 как текущего кадра, находящегося в процессе декодирования, равен 4, и устройство декодирования присваивает индекс L0, имеющий значение 0, кадру I16 из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, в соответствии с командой RPLR, когда РОС равен 4.
После этого из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, для кадров Р13 Р17 и Bs14, которым не был присвоен номер опорного кадра на основе команды RPLR, для принятого по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, в частности из кадров Р13 Р17 и Bs14, которым не был присвоен индекс L0 на основе команды RPLR, для кадров Р13 и Р17 как краткосрочных опорных кадров, как показано на фиг.13, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р17, ближайшему к кадру Р20 в порядке декодирования; а индекс L0, имеющий значение 2, присваивают кадру Р13, второму ближайшему к кадру Р20.
Наконец, из кадров Р13,I16, Р17 и Bs14, хранящихся в DPB, в частности из кадров Р13 Р17 и Bs14, которым не был присвоен индекс L0 на основе команды RPLR, для кадра Bs14 как долгосрочного опорного кадра присваивают индекс L0, имеющий значение 3.
Как описано выше, при команде RPLR по фиг.12, когда вырабатывают команду ММСО по фиг.10, присвоение номера опорного кадра для опорного кадра выполняют таким образом, что минимальный номер опорного кадра, то есть 0 присваивают кадру, который представляет собой кадр изображения из изображения L и изображения R, полученный с той же точки наблюдения, что и текущий кадр, находящийся в процессе декодирования, и находится ближе всего к текущему кадру, находящемуся в процессе декодирования, среди кадров, которые декодируют по времени раньше, чем текущий кадр, находящийся в процессе декодирования, и которые могут стать опорными кадрами.
При команде RPLR по фиг.12, когда опорный кадр, который составляет пару LR с текущим кадром, находящимся в процессе декодирования, сохраняют в DPB, номер опорного кадра, имеющий малое значение, присваивают соответствующему опорному кадру.
В частности, как описано со ссылкой на фиг.11, например, в момент времени t3, когда кадр Р5 становится текущим кадром, находящимся в процессе декодирования, кадр I0, Р1 и Р4 хранятся в DPB.
Кадр Р5 представляет собой кадр изображения R, и из кадров I0, Р1 и Р4, хранящихся в DPB, кадр, который представляет собой кадр изображения R, полученный с той же точки наблюдения и по времени ближайший к кадру Р45, который представляет собой кадр изображения R, - это кадр Р1.
Таким образом, для кадра Р5, ошибка прогнозирования для прогнозируемого изображения, которое формируют когда кадр Р1 из кадров I0, Р1 и Р4, хранящихся в DPB как опорный кадр, весьма вероятно, будет минимальной.
Из кадров I0, Р1 и Р4, хранящихся в DPB, для кадров I0 и Р4, которые представляют собой кадры изображения L, полученный с другой точки наблюдения, чем кадр Р5 изображения R, кадр Р4 по времени находится ближе к кадру Р45, чем кадр I0, и составляет пару LR с кадром Р5. Таким образом, ошибка прогнозирования для прогнозируемого изображения, которое сформировано с помощью кадра Р4 в качестве опорного кадра, весьма вероятно, будет меньше, чем ошибка прогнозирования для прогнозируемого изображения, которое сформировано с помощью кадра I0 в качестве опорного кадра.
Учитывая описанное выше, кадры I0, Р1 и Р4, хранящиеся в DPB, весьма вероятно, будут использоваться при формировании прогнозируемого изображения для кадра Р5 в порядке убывания возможности уменьшения ошибки прогнозирования, то есть в порядке кадров P1, Р4 и I0.
Поэтому когда кадр Р5 становится текущим кадром, находящимся в процессе декодирования, то для кадров I0, Р1 и Р4, хранящихся в DPB, присвоение выполняют следующим образом: индекс L0, имеющий минимальное значение, то есть 0, присваивают кадру Р1; индекс L0, имеющий второе по величине значение, то есть 1, присваивают кадру Р4; а индекс L0, имеющий третье по величине значение, то есть 2, присваивают кадру I0. Таким образом, меньшее значение, которое кодировано в код с меньшей величиной кода, вероятно, станет номером опорного кадра, который представляет опорный кадр, к которому обращаются при декодировании кадра Р5, и таким образом эффективность кодирования может быть улучшена.
Однако при принятом по умолчанию AVC, как описано со ссылкой на фиг.11, в качестве индекса L0 присваивают 1 кадру Р1, присваивают 0 кадру Р4 и присваивают 2 кадру I0.
В то же время для команды RPLR по фиг.12, когда кадр Р5 становится текущим кадром, находящимся в процессе декодирования (текущий кадр, находящийся в процессе кодирования), для кадров I0, Р1 и Р4, хранящихся в DPB, присвоение выполняют следующим образом: индекс L0, имеющий минимальное значение, то есть 0, присваивают кадру Р1; индекс L0, имеющий второе по величине значение, то есть 1, присваивают кадру Р4; и индекс L0, имеющий третье по величине значение, то есть 2, присваивают кадру I0. Таким образом, индекс L0, имеющий меньшее значение, присваивают опорному кадру, который, весьма вероятно, уменьшит ошибку прогнозирования, что таким образом может улучшить эффективность кодирования.
Как описано со ссылкой на фиг.11, при команде ММСО по фиг.10, например в момент времени t8, когда кадр Bs6 изображения L подвергают межкадровому прогнозированию, кадр Р4, который представляет собой кадр изображения L, расположенный непосредственно перед кадром Bs6, и весьма вероятно, уменьшающего ошибку прогнозирования, хранятся в DPB. В то же время при принятом по умолчанию AVC, 1, которое не является минимальным значением, присваивают кадру Р4 в качестве индекса L0.
В то же время, если команду RPLR по фиг.12 вырабатывают вместе с командой ММСО по фиг.10, как описано со ссылкой на фиг.13, когда декодируют кадр Bs6, минимальное значение, то есть 0, присваивают в качестве индекса L0 кадру Р4, что, весьма вероятно, уменьшает ошибку прогнозирования. Таким образом, индекс L0, весьма вероятно, будет кодирован в код с меньшей величиной кода, и таким образом может быть улучшена эффективность кодирования.
Когда команда ММСО и команда RPLR включены в кодируемые данные, в устройстве декодирования по фиг.2 модуль 42 инвертируемого декодирования отделяет команду ММСО и команду RPLR (в том числе необходимые аргументы), включенные в кодированные данные, от кодированных данных. Управление сохранением опорного кадра в запоминающем устройстве 49 кадра, соответствующем DPB, и присвоение номера опорного кадра опорному кадру, хранящемуся в запоминающем устройстве 49 кадра, соответствующего DPB, выполняют в соответствии с командой ММСО и командой RPLR.
Декодирование кодированных данных
На фиг.14 показана блок-схема последовательности операций, иллюстрирующая обработку (обработку декодирования) для декодирования кодированных данных, включающих в себя команду ММСО по фиг.10 и команду RPLR по фиг.12, выводимую из устройства кодирования по фиг.8 в устройстве декодирования по фиг.2.
На фиг.15 показана схема, представляющая состояние запоминающего устройства 49 кадра (фиг.2), соответствующего DPB, когда выполняют обработку по фиг.14 в устройстве декодирования по фиг.2.
Таким образом, на фиг.15 показаны кадры, которые хранятся в DPB непосредственно после выполнения этапов, показанных на фиг.14.
На фиг.15 знак, включающий в себя букву "S" и номера с левой стороны от четырех квадратов, обозначающих кадры, хранящиеся в DPB, совпадает со знаком, присвоенным каждому этапу в блок-схеме последовательности операций на фиг.14. Таким образом, каждый из четырех квадратов на фиг.15 обозначают состояние DPB непосредственно после этапа в блок-схеме последовательности операций на фиг.14, которому присвоен тот же знак, что и знак с левой стороны от четырех квадратов.
Когда начинается обработка в устройстве декодирования, ни один кадр не хранится в DPB.
На этапе S31 по фиг.14 устройство декодирования выбирает кадр I0, который представляет собой кадр I как текущий кадр, находящийся в процессе декодирования, и выполняет декодирование кадра I0, а именно декодирование в модуле 42 инвертируемого декодирования, обратное квантование в модуле 43 обратного квантования, обратное ортогональное преобразование в модуле 44 обратного ортогонального преобразования, суммирование с необходимым прогнозируемым изображением в арифметическом модуле 45, и фильтрацию в фильтре 46 устранения блоков в изображении. После этого обработка переходит на этап S32.
В данном случае кадр I0, который становится текущим кадром, находящимся в процессе декодирования, представляет собой кадр I0 первой GOP, которая подлежит обработке в устройстве декодирования. На этапе S31 ни один кадр не хранится в DPB. Таким образом, после этапа S31, как показано на фиг.15, ни один кадр по-прежнему не хранится в DPB.
На этапе S32 устройство декодирования запоминает (сохраняет) кадр I0, декодированный на непосредственно предыдущем этапе S31, в DPB, и обработка переходит на этап S33.
Таким образом, после этапа S32, как показано на фиг.15, кадр I0 хранится в DPB.
На этапе S33 устройство декодирования выбирает кадр Р1, который представляет собой кадр Р, как текущий кадр, находящийся в процессе декодирования, и присваивает индекс L0 опорному кадру, для которого не был присвоен индекс L0, из опорных кадров, хранящихся в DPB, при принятом по умолчанию AVC.
На этапе S33 декодирование кадра Р1 как текущего кадра, находящегося в процессе декодирования, выполняют со ссылкой на опорные кадры, хранящиеся в DPB в соответствии с необходимостью. Затем обработка переходит на этап S34.
Таким образом, на этапе S33, поскольку ни один кадр не сохранен в DPB, после этапа S33, как показано на фиг.15, кадр I0 по-прежнему хранится в DPB.
На этапе S34 устройство декодирования сохраняет кадр Р1, декодированный на предыдущем этапе S33 в DPB. Затем обработка переходит на этап S35.
Таким образом, после этапа S34, как показано на фиг.15, кадры I0 и Р1 хранятся в DPB.
На этапе S35 устройство декодирования выбирает кадр Р4, который представляет собой кадр Р как текущий кадр, находящийся в процессе декодирования, и присваивает индекс L0 опорным кадрам, хранящимся в DPB, в соответствии с командой RPLR, включенной в кодированные данные. После этого устройство декодирования присваивает индекс L0 опорному кадру, для которого не был присвоен индекс L0, из опорных кадров, хранящихся в DPB, при принятом по умолчанию AVC. Затем обработка переходит с этапа S35 на этап S36.
Таким образом, на этапе S35, поскольку никакой кадр не сохраняют в DPB после этапа S35, как показано на фиг.15, кадры I0 и Р1 по-прежнему хранятся в DPB.
На этапе S36 декодирование кадра Р4 как текущего кадра, находящегося в процессе декодирования, выполняют со ссылкой на опорные кадры, содержащиеся в DPB, по мере необходимости. Затем, обработка переходит на этап S37.
Таким образом, на этапе S36, поскольку никакой кадр не сохраняют в DPB после этапа S36, как показано на фиг.15, кадры I0 и Р1 по-прежнему хранятся в DPB.
На этапе S37 устройство декодирования сохраняет кадр Р4, декодированный на предыдущем этапе S36 в DPB. Затем обработка переходит на этап S38.
Таким образом, после этапа S37, как показано на фиг.15, кадры I0, Р1 и Р4 хранятся в DPB.
На этапе S38 устройство декодирования выбирает кадр Р5, который представляет собой кадр, расположенный рядом с кадром Р, декодированным непосредственно перед ним в порядке декодирования, как текущий кадр, находящийся в процессе декодирования, и присваивает индекс L0 опорным кадрам, хранящимся в DPB, в соответствии с командой RPLR, включенной в кодированные данные. После этого устройство декодирования присваивает индекс L0 опорному кадру, которому индекс L0 не был присвоен, из опорных кадров, хранящихся в DPB, при принятом по умолчанию AVC. Затем обработка переходит с этапа S38 на этап S39.
Таким образом, на этапе S38, поскольку никакой кадр не было сохранен в DPB после этапа S38, как показано на фиг.15, кадры I0, Р1 и Р4 по-прежнему хранятся в DPB.
На этапе S39 декодирование кадра Р5 как текущего кадра, находящегося в процессе декодирования, выполняют со ссылкой на опорные кадры, содержащиеся в DPB, по мере необходимости. Затем обработка переходит на этап S40.
Таким образом, на этапе S39, поскольку никакой кадр не был сохранен в DPB после этапа S39, как показано на фиг.15, кадры I0, Р1 и Р4 по-прежнему хранятся в DPB.
На этапе S40 устройство декодирования сохраняет кадр Р5, декодированный на предыдущем этапе S39, в DPB. Затем обработка переходит на этап S41.
Таким образом, после этапа S40, как показано на фиг.15, кадры I0, P1, Р4 и Р5 хранятся в DPB.
На этапе S41 устройство декодирования выбирает кадр Bs, следующий после кадра Р, декодированным непосредственно перед этим, в порядке декодирования, например, кадр Bs2, как текущий кадр, находящийся в процессе декодирования, и присваивает индекс L0 и индекс L1 опорным кадрам, содержащимся в DPB, в соответствии с командой RPLR, включенной в кодированные данные. После этого устройство декодирования присваивает индекс L0 опорному кадру, которому индекс L0 не был присвоен, из опорных кадров, содержащихся в DPB, при принятом по умолчанию AVC, и также присваивает индекс L1 опорному кадру, которому индекс L1 не был присвоен, при принятом по умолчанию AVC. Затем обработка переходит с этапа S41 на этап S42.
Таким образом, на этапе S41, поскольку никакой кадр не был сохранен в DPB после этапа S41, как показано на фиг.15, кадры I0, P1, Р4 и Р5 по-прежнему хранятся в DPB.
На этапе S42 декодирование кадра Bs2 как текущего кадра, находящегося в процессе декодирования, выполняют со ссылкой на опорные кадры, содержащиеся в DPB, по мере необходимости. Затем обработка переходит на этап S43.
Таким образом, на этапе S42, поскольку никакой кадр не было сохранен в DPB после этапа S42, как показано на фиг.15, кадры I0, P1, Р4 и Р5 по-прежнему содержатся в DPB.
На этапе S43 устройство декодирования устанавливает кадр В (в этом случае кадр Bs2), декодированный на предыдущем этапе S42 как долгосрочный опорный кадр с индексом LongFrameldx, равным 0, в соответствии с командой ММСО, включенной в кодированные данные. Затем обработка переходит на этап S44.
Таким образом, на этапе S43, поскольку никакой кадр не был сохранен в DPB после этапа S43, как показано на фиг.15, кадры I0, P1, Р4 и Р5 по-прежнему содержатся в DPB.
На этапе S44 устройство декодирования сохраняет кадр Bs2 как долгосрочный опорный кадр, декодированный на предыдущем этапе S42 в DPB. Затем обработка переходит на этап S45.
DPB имеет емкость памяти для четырех кадров, и теперь четыре кадра I0, P1, Р4 и Р5 содержатся в DPB. Таким образом, кадр Bs2 сохраняют после того как самый старый кадр I0 из кадров I0, P1, Р4 и Р5, содержащихся в DPB, будет выведен (выброшен).
Таким образом, после этапа S44, как показано на фиг.15, кадры Р1, Р4, Р5 и Bs2 содержатся в DPB.
На этапе S45 устройство декодирования выбирает кадр В, следующий за кадром Bs, декодированным непосредственно перед этим, в порядке декодирования, например, кадр В3, как текущий кадр, находящийся в процессе декодирования, и присваивает индекс L0 и индекс L1 опорным кадрам, содержащимся в DPB, в соответствии с командой RPLR, включенной в кодированные данные. После этого устройство декодирования присваивает индекс L0 опорному изображению, которому индекс L0 не был присвоен, среди опорных кадров, содержащихся в DPB, при принятом по умолчанию AVC, а также присваивает индекс L1 опорному кадру, которому индекс L1 не был присвоен, при принятом по умолчанию AVC. Затем обработка переходит с этапа S45 на этап S46.
Таким образом, на этапе S45, поскольку никакой кадр не был сохранен в DPB после этапа S45, как показано на фиг.15, кадры Р1, Р4, Р5 и Bs2 по-прежнему содержатся в DPB.
На этапе S46 декодирование кадра В3 как текущего кадра, находящегося в процессе декодирования, выполняют со ссылкой на опорные кадры, содержащиеся в DPB, по мере необходимости. Затем обработка переходит на этап S47.
Таким образом, на этапе S46, поскольку никакой кадр не был сохранен в DPB после этапа S46, как показано на фиг.15, кадры Р1, Р4, Р5 и Bs2 по-прежнему содержатся в DPB.
На этапе S47 устройство декодирования определяет, декодирован ли последний кадр в GOP в порядке декодирования.
На этапе S47, когда определено, что последний кадр в GOP еще не декодирован, обработка переходит на этап S48. Затем устройство декодирования выбирает кадр Р, следующий за кадром В, декодированным непосредственно перед этим, в порядке декодирования, например кадр Р8, как текущий кадр, находящийся в процессе декодирования, и присваивает индекс L0 опорному кадру, содержащемуся в DPB, в соответствии с командой RPLR, включенной в кодированные данные. После этого устройство декодирования присваивает индекс L0 опорному кадру, которому не был присвоен индекс L0, среди опорных кадров, содержащихся в DPB, при принятом по умолчанию AVC. Затем обработка переходит с этапа S48 на этап S49.
Таким образом, на этапах S47 и S48, поскольку никакой кадр не хранятся в DPB, после любого из этапов S47 и S48, как показано на фиг.15, кадры Р1, Р4, Р5 и Bs2 по-прежнему содержатся в DPB.
На этапе S49 декодирование кадра Р8 как текущего кадра, находящегося в процессе декодирования, выполняют со ссылкой на опорные кадры, содержащиеся в DPB, по мере необходимости. Затем обработка переходит на этап S50.
Таким образом, на этапе S49, поскольку никакой кадр не был сохранен в DPB после этапа S49, как показано на фиг.15, кадры Р1, Р4, Р5 и Bs2 по-прежнему содержатся в DPB.
На этапе S50 устройство декодирования устанавливает верхнее предельное значение MaxLongTermFrameldx (Индекс максимального долгосрочного кадра) индекса LongFrameldx для долгосрочного опорного кадра, равным -1, в соответствии с командой ММСО, включенной в кодированные данные. Затем обработка переходит на этап S51.
На этапе S50 верхнее предельное значение MaxLongTermFrameldx устанавливают равным -1 таким образом, чтобы отбросить кадр Bs, который установлен как долгосрочный опорный кадр непосредственно перед этим, из опорных кадров, хранящихся в DPB, например кадр Bs2. Таким образом, после этапа S50, как показано на фиг.15, кадры P1, Р4 и Р5 хранятся в DPB.
На этапе S51 устройство декодирования сохраняет кадр Р8, декодированный на этапе S49 непосредственно перед этим, в DPB.
Таким образом, после этапа S51, как показано на фиг.15, кадры Р1, Р4, Р5 и Р8 хранятся в DPB.
После этапа S51 обработка переходит на этап S52. Затем устройство декодирования выбирает кадр Р, следующий после кадра Р, декодированного непосредственно перед этим, в порядке декодирования, например кадр Р9, как текущий кадр, находящийся в процессе декодирования, и присваивает индекс L0 опорным кадрам, хранящимся в DPB, в соответствии с командой RPLR, включенной в кодированные данные. После этого устройство декодирования присваивает индекс L0 опорному кадру, которому не был присвоен индекс L0, среди опорных кадров, хранящихся в DPB, при принятом по умолчанию AVC. Далее обработка переходит с этапа S52 на этап S53.
Таким образом, на этапе S52, поскольку ни один кадр не был сохранен в DPB, после этапа S52, как показано на фиг.15, кадры Р1, Р4, Р5 и Р8 по-прежнему хранятся в DPB.
На этапе S53 выполняют декодирование кадра Р9 как текущего кадра, находящегося в процессе декодирования, со ссылкой на опорные кадры, хранящиеся в DPB, в соответствии с необходимостью. Затем обработка переходит на этап S54.
Таким образом, на этапе S53, поскольку никакой кадр не был сохранен в DPB после этапа S53, как показано на фиг.15, кадры Р1, Р4, Р5 и Р8 по-прежнему содержатся в DPB.
На этапе S54 устройство декодирования сохраняет кадр Р9, декодированный на предыдущем этапе S53 в DPB.
Таким образом, после этапа S54, как показано на фиг.15, кадры Р4, Р5, Р8 и Р9 хранятся в DPB.
После этапа S54 обработка возвращается на этап S41. Затем устройство декодирования выбирает кадр Bs, следующий после кадра Р, декодированного непосредственно перед этим, например кадр Bs6, как текущий кадр, находящийся в процессе декодирования, и повторяет далее ту же обработку.
На этапе S47, когда определяют, что последний кадр в GOP был декодирован, обработка переходит на этап S55. Затем устройство декодирования выбирает кадр I0, который представляет собой кадр I следующей GOP, как текущий кадр, находящийся в процессе декодирования, и декодирует кадр I0. Затем обработка переходит на этап S56.
На этапе S56 устройство декодирования устанавливает значение MaxLongTermFrameldx верхнего предела (максимальный долгосрочный индекс кадра) индекса LongFrameldx для долгосрочного опорного кадра равным -1, в соответствии с командой ММСО, включенной в кодированные данные. Затем, обработка переходит на этап S57.
На этапе S56 верхнее предельное значение MaxLongTermFrameldx устанавливают равным -1 таким образом, чтобы отбросить долгосрочный опорный кадр, хранящийся в DPB.
На этапе S57 устройство декодирования запоминает (сохраняет) кадр I0, декодированный на предыдущем этапе S55, в DPB. Затем обработка переходит на этап S58.
На этапе S58 устройство декодирования выбирает кадр Р1, который представляет собой кадр Р, следующий за кадром I, декодированным непосредственно перед этим, в порядке декодирования, как текущий кадр, находящийся в процессе декодирования, и присваивает индекс L0 опорному кадру, содержащемуся в DPB, в соответствии с командой RPLR, включенной в кодированные данные. После этого устройство декодирования присваивает индекс L0 опорному кадру, которому не был присвоен индекс L0, среди опорных кадров, содержащихся в DPB, при принятом по умолчанию AVC. Затем обработка переходит с этапа S58 на этап S59.
На этапе S59 декодирование кадры Р1 как текущего кадра, находящегося в процессе декодирования, выполняют со ссылкой на опорные кадры, содержащиеся в DPB, по мере необходимости. Затем обработка переходит на этап S60.
На этапе S60 устройство декодирования сохраняет кадр Р1, декодированный на предыдущем этапе S59 в DPB.
После этапа S60 обработка возвращается на этап S41. Затем устройство декодирования выбирает кадр Bs, следующий после кадра Р, декодированного непосредственно перед этим, в порядке декодирования, как текущий кадр, находящийся в процессе декодирования, и затем повторяет ту же обработку.
Второе управление сохранением
На фиг.16 показана схема, иллюстрирующая второе управление сохранением, которое представляет собой пример управления сохранением, выполняемого модулем 71 управления сохранением (фиг.8).
При втором управлении сохранением модуль 71 управления сохранением вырабатывает команду ММСО, которая, как описано со ссылкой на фиг.4, для последовательности кадров, в которой одна GOP состоит, например, из 16 кадров, I0, Р1, Bs2, В3, Р4, Р5, Bs6, В7, Р8, Р9, Bs10, B11, P12, Р13, Bs14 и В15, когда остаток РОС от РОС текущего кадра, находящегося в процессе декодирования (текущего кадра, находящегося в процессе кодирования), равен 0, 4, 8 или 12, выводит кадр Bs, РОС которого соответствует значению (РОС - 6), полученному путем вычитания 6 из РОС текущего кадра, находящегося в процессе декодирования, из кадров, хранящихся в DPB, и устанавливает выведенный кадр Bs как неопорный кадр.
На фиг.16 показан список команд ММСО, которые вырабатывают как второе управление сохранением в модуле 71 управления сохранением.
Для второго управления сохранением, как и для первого управления сохранением, описание будет представлено, соответственно, путем замены операций в устройстве кодирования по фиг.8, для сохранения опорных кадров в запоминающем устройстве 22 кадра, используя второе управление сохранением, выполняемое модулем 71 управления сохранением, операцией в устройстве декодирования по фиг.2, по сохранению опорных кадров в (запоминающем устройстве 49 кадра, соответствующем) DPB.
В списке на фиг.16, в столбцах "РОС", "команда ММСО" и "детали" представлено то же содержание, что и на фиг.10.
Как показано на фиг.16, когда остаток РОС равен 0, 4, 8 или 12, вырабатывают команду ММСО как второе управление сохранением.
Что касается второго управления сохранением, условие, что остаток РОС равен 0, 4, 8 или 12, становится условием для определения на этапе S12 по фиг.9, в соответствии с которым выполняют управление сохранением.
Как описано со ссылкой на фиг.4, для последовательности кадров, в которой одна GOP состоит из 16 кадров I0, P1, Bs2, В3, Р4, Р5, Bs6, В7, Р8, Р9, Bs10, B11, Р12, Р13, Bs14 и В15, условие, что остаток РОС равен 0, 4, 8 или 12 означает, что текущий кадр, находящийся в процессе кодирования (текущий кадр, находящийся изображение в процессе декодирования), представляет собой кадр I0, Р4, Р8 или Р12.
Когда остаток РОС представляет собой 0, 4, 8 или 12, модуль 71 управления сохранением вырабатывает "100" как команду ММСО (и необходимый аргумент).
"1" на первом месте от начала в "100" представляет команду ММСО №COMMAND==1, а "0" на втором месте представляет собой аргумент команды ММСО №COMMAND==1. "0" на третьем месте в "100" представляет команду ММСО №COMMAND==0.
При команде ММСО №COMMAND==1 на первом месте в "100" и последующего аргумента "0", как описано со ссылкой на фиг.10, опорный кадр (краткосрочный опорный кадр), указанный аргументом, выводят (становится неопорным кадром).
Таким образом, в устройстве декодирования переменную difFerence_of_pic_nums_minus1 для указания опорного кадра, выводимого из DPB, устанавливают равной 0, что представляет собой аргумент, опорный кадр, который имеет в качестве PN значение, полученное посредством переменной difference_of_pic_nums_minus1+1 из PN текущего кадра в процессе декодирования, выводят из DPB.
После этого устройство декодирования заканчивает операцию для DPB в процессе адаптивного управления памятью в соответствии с командой ММСО №COMMAND==0, стоящей на третьем месте в "100".
В соответствии со списком на фиг.16, как описано выше, когда остаток РОС равен 0, 4, 8 или 12, "100" вырабатывают как команду ММСО и необходимый аргумент.
Условие, что остаток РОС равен 0, 4, 8 или 12, означает, что текущий кадр, находящийся в процессе декодирования, представляет собой кадр I0, Р4, Р8 или Р12 в одной GOP. Таким образом, после того как кадры I0, Р4, Р8 и Р12 стали текущими кадрами, находящимися в процессе декодирования, и были декодированы, опорный кадр, хранящийся в DPB, который обозначен переменной difference_of_pic_nums_minus1, выводят.
Если допустить, что PN текущего кадра, находящегося в процессе декодирования (текущего кадра, находящегося в процессе кодирования), выражен как CurrPicNum, кадр, PN которого выражен выражением PN=CurrPicNum-(difference_of_pic_nuins_minus1+1), становится опорным кадром (ниже также называется целевым кадром вывода), обозначенным переменной difference_of_pic_nums_minus1.
Для аргумента "0", следующего после команды ММСО №COMMAND==l на первом месте в "100", переменная difference_of_pic_nums_minus1 установлена в 0. Таким образом, опорный кадр, PN которого выражен выражением PN=CurrPicNum-l, становится целевым кадром вывода.
PN является таким, как показано на фиг.6 (фиг.11 и 13). Когда кадр I16 (I0) (кадр с остатком РОС=0) GOP№j становится текущим кадром, находящимся в процессе декодирования, как показано на фиг.6, то поскольку CurrPicNum, который представляет собой PN кадра I16, кадр 11, кадр Bs10 с PN=11-1=10 GOP№j-1 предыдущей GOP перед GOP№j становится целевым кадром изображением - целью вывода и его выводят.
Когда кадр Р20 (Р4) (кадр остатком РОС=4) GOP№j становится текущим кадром, находящимся в процессе декодирования, CurrPicNum, который представляет собой PN кадра Р20, равен 14, кадр Bs14 с PN=14-1=13 GOP№j-1 на предыдущей GOP перед GOP№j становится целевым кадром вывода, и его выводят.
Когда кадр Р8 (кадр с остатком РОС=8) GOP№j становится текущим кадром, находящимся в процессе декодирования, как показано на фиг.6, то поскольку CurrPicNum, который представляет собой PN кадра Р8, равен 5, кадр Bs2 с PN=5-1=4 GOP№j становится целевым кадром вывода и его выводят.
Когда кадр Р12 (кадр с остатком РОС=12) GOP№j становится текущим кадром, находящимся в процессе декодирования, как показано на фиг.6, то поскольку CurrPicNum, который представляет собой PN кадра Р12, 8, Bs6 с PN=8-1=7 в GOP№j становится целевым кадром вывода, и его выводят.
Как описано выше, в соответствии со списком по фиг.16, когда кадры I0 (I16), Р4 (Р20), Р8 и Р12 декодируют, кадры Bs10, Bs14, Bs2 и Bs6, хранящиеся в DPB, соответственно становятся целевым кадром вывода и их выводят.
РОС кадра I16 (I0) равен 16 и, когда кадр I16 (I0) становится текущим кадром, находящимся в процессе декодирования, РОС кадра Bs10 как целевого кадра вывода равен I0 (=16-6).
РОС кадра Р20 (Р4) равен 20, и когда кадр Р20 (Р4) становится текущим кадром, находящимся в процессе декодирования, РОС кадра Bs 14 как целевого кадра вывода равен 14 (=20-6).
РОС кадра Р8 равен 8, и когда кадр Р8 становится текущим кадром, находящимся в процессе декодирования, РОС кадра Bs2 как целевого кадра вывода равен 2 (=8-6).
РОС кадра Р12 равен 12, и когда кадр Р12 становится текущим кадром, находящимся в процессе декодирования, РОС кадра Bs6 как целевого кадра вывода равен 6 (=12-6).
Таким образом, в соответствии со списком на фиг.16, когда остаток РОС для РОС текущего кадра, находящегося в процессе декодирования (текущего кадра, находящегося в процессе кодирования), равен 0, 4, 8 или 12, выводят кадр Bs, РОС которого соответствует значению (РОС 6), полученному путем вычитания 6 из РОС текущего кадра, находящегося в процессе декодирования.
Кодирование/декодирование, когда вырабатывают команду ММСО
На фиг.17 показана схема, иллюстрирующая состояние DPB, когда команду ММСО и необходимый аргумент фиг.16 вырабатывают для кодирования/декодирования последовательности кадров путем использования AVC.
На фиг.17 показан порядок изображения кадров, составляющих последовательность кадров, порядок кодирования/декодирования, PN, состояние сохранения DPB и состояние сохранения буфера отображения.
Порядок изображения изображений, составляющих последовательность кадров, порядок кодирования/декодирования, PN, и состояние сохранения буфера отображения являются теми же, что и на фиг.6, таким образом, их описание здесь будет опущено.
Если допустить, что в устройстве кодирования по фиг.8 последовательность кадров кодируют в порядке кодирования по фиг.17, кодируемые данные, получаемые в результате кодирования, декодируют в порядке декодирования по фиг.17 в устройстве декодирования AVC по фиг.2.
Также предполагается, что устройство кодирования по фиг.8 вырабатывает команду ММСО (и необходимый аргумент) по фиг.16, и команда ММСО включена в кодируемые данные.
Однако предполагается, что ни одна команда RPLR не включена в кодируемые данные.
В этом случае в устройстве декодирования AVC по фиг.2 при декодировании кодированных данных DPB управляют в процессе адаптивного управления памятью, когда декодируют кадр с выработанной командой ММСО, и управляют через процесс управления памятью типа скользящего окна, когда декодируют кадр без выработанной команды ММСО.
В устройстве декодирования значения (предварительно установленные значения) при принятом по умолчанию AVC присваивают опорных кадров, хранящихся в DPB, как номер (индекс L0) опорного кадра для прогнозирования L0 и номер (индекс L1) опорного кадра для прогнозирования L1.
В момент времени I0 устройство декодирования выбирает кадр I0 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр I0.
Кадр I0 представляет собой опорный кадр и, как показано на фиг.17, кадр I0 после декодирования хранятся в DPB.
РОС кадра I0 равен 0, и, следовательно, остаток РОС равен 0. Таким образом, в соответствии со вторым управлением сохранением по фиг.16, вырабатывают команду ММСО (и необходимый аргумент) "100". В результате, выводят опорный кадр с PN CurrPicNum-1, хранящийся в DPB. В то же время когда декодируют кадр I0 первой GOP№0, опорный кадр с PN CurrPicNum-1 еще не хранится в DPB.
Поэтому только для первой GOP№0, в качестве исключения, когда декодируют кадр I0, вывод опорного кадра не выполняют (невозможно выполнить).
В момент времени t1, следующий после времени t0, устройство декодирования выбирает кадр Р1 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р1.
Когда декодируют кадр Р1, как показано на фиг.17, кадр I0 хранятся в DPB, и кадр Р1 декодируют со ссылкой на кадр I0, хранящийся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
При принятом по умолчанию AVC, когда кадр Р1 декодируют, как показано на фиг.17, индекс L0, имеющий значение 0, присваивают кадру I0, хранящемуся в DPB.
Кадр P1 представляет собой опорный кадр и, как показано на фиг.17, кадр Р1 после декодирования хранятся в DPB как опорный кадр.
В момент времени t2, следующий после времени t1, устройство декодирования выбирает кадр Р4 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р4.
Когда кадр Р4 декодируют, как показано на фиг.17, кадры I0 и Р1 содержатся в DPB, и кадр Р4 декодируют со ссылкой на кадры I0 и Р1, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
При принятом по умолчанию AVC, как показано на фиг.17, когда декодируют кадр Р4, для кадров I0 и Р1, хранящихся в DPB, выполняют следующие присвоения: индекс L0, имеющий значение 0, присваивают кадру Р1, ближайшему к кадру Р4 в порядке декодирования; и индекс L0, имеющий значение 1, присваивают кадру I0, второму ближайшему к кадру Р44 в порядке декодирования.
Кадр Р4 представляет собой опорный кадр и, как показано на фиг.17, кадр Р4 после декодирования хранятся в DPB.
РОС кадра Р4 равен 4, и, следовательно, остаток РОС равен 4. Таким образом, в соответствии со вторым управлением сохранением по фиг.16 вырабатывают команду ММСО "100". В результате выводят опорный кадр с PN CurrPicNum-1, хранящимся в DPB. В то же время когда кадр Р4 первого GOP№0 декодируют, опорный кадр с PN CurrPicNum-1 еще не хранится в DPB.
Поэтому только для первой GOP№0, в качестве исключения, когда декодируют кадр Р4, вывод опорного кадра не выполняют.
В момент времени t3, следующий после времени t2, устройство декодирования выбирает кадр Р5 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р5.
Когда кадр Р5 декодируют, как показано на фиг.17, кадры I0, Р1 и Р4 содержатся в DPB, и кадр Р5 декодируют со ссылкой на кадры I0, Р1 и Р4, содержащиеся в DPB, по мере необходимости, чтобы сформировать прогнозируемое изображение для прогнозирования L0.
При принятом по умолчанию AVC, как показано на фиг.17, когда кадр Р5 декодируют, для кадров I0, Р1 и Р4, содержащихся в DPB, присвоение выполняют следующим образом: индекс L0, имеющий значение 0, присваивают кадру Р4, ближайшему к кадру Р5 в порядке декодирования; индекс L0, имеющий значение 1, присваивают кадру Р1, второму ближайшему к кадру Р45 в порядке декодирования; и индекс L0, имеющий значение 2, присваивают кадру I0, третьему ближайшему к кадру Р45 в порядке декодирования.
Кадр Р5 представляет собой опорный кадр и, как показано на фиг.17, кадр Р5 после декодирования хранятся в DPB.
В момент времени t4, следующий после времени t3, устройство декодирования выбирает кадр Bs2 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs2.
Когда кадр Bs2 декодируют, как показано на фиг.17, кадры I0, P1, Р4 и Р5 содержатся в DPB, и кадр Bs2 декодируют со ссылкой на кадры I0 или P1, Р4 и Р5, содержащиеся в DPB, по мере необходимости, чтобы для формирования прогнозируемого изображения для прогнозирования L0 или прогнозирования L1.
При принятом по умолчанию AVC, когда кадр Bs2 декодируют, для кадров I0, P1, Р4 и Р5, содержащихся в DPB, как показано на фиг.17, присвоение выполняют следующим образом: индекс L0, имеющий значение 0, присваивают кадру Р1, ближайшему к кадру Bs2 перед кадром Bs2 в порядке РОС; а индекс L0, имеющий значение 1, присваивают кадру I0, второму ближайшему к кадру Bs2 перед кадром Bs2 в порядке РОС.
При принятом по умолчанию AVC, для кадров I0, P1, Р4 и Р5, содержащихся в DPB, как показано на фиг.17, присвоение выполняют следующим образом: индекс L0, имеющий значение 2, присваивают кадру Р4, ближайшему к кадру Bs2 после кадра Bs2 в порядке РОС; а индекс L0, имеющий значение 3, присваивают кадру Р5, второму ближайшему к кадру Bs2 после кадра Bs2 в порядке РОС.
При принятом по умолчанию AVC, для кадров I0, P1, Р4 и Р5, содержащихся в DPB, как показано на фиг.17, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру Р4, ближайшему к кадру Bs2 после кадра Bs2 в порядке РОС; а индекс L0, имеющий значение 1, присваивают кадру Р5, второму ближайшему к кадру Bs2 после кадра Bs2 в порядке РОС.
При принятом по умолчанию AVC, для кадров I0, P1, Р4 и Р5, содержащихся в DPB, как показано на фиг.17, присвоение выполняют следующим образом: индекс L1, имеющий значение 2, присваивают кадру Р1, ближайшему к кадру Bs2 перед кадром Bs2 в порядке РОС; а индекс L1, имеющий значение 3, присваивают кадру I0, второму ближайшему к кадру Bs2 перед кадром Bs2 в порядке РОС.
Кадр Bs2 представляет собой опорный кадр, и кадр Bs2 после декодирования хранятся в DPB.
Когда кадр Bs2 хранятся в DPB, четыре кадра I0, P1, Р4 и Р5 хранятся в DPB, занимая максимальный объем памяти. По этой причине в устройстве декодирования самые старые кадры I0 из кадров I0, P1, Р4 и Р5, хранящихся в DPB, выводят, используя процесс управления памятью типа скользящего окна.
После этого кадр Bs2 после декодирования хранятся в DPB, и в результате, как показано на фиг.17, кадры Р1, Р4, Р5 и Bs2 хранятся в DPB.
В момент времени t5, следующий после времени t4, устройство декодирования выбирает кадр В3 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В3.
Когда кадр В3 декодируют, как показано на фиг.17, кадры Р1, Р4, Р5 и Bs2 содержатся в DPB, и кадр В3 декодируют со ссылкой на кадры Р1, Р4, Р5 и Bs2, содержащиеся в DPB, по мере необходимости, для формирования прогнозируемого изображения для прогнозирования L0 или прогнозирования L1.
При принятом по умолчанию AVC, когда кадр В3 декодируют, кадры Р1, Р4, Р5 и Bs2, содержащиеся в DPB, все являются краткосрочными опорными кадрами. Для кадров Р1, Р4, Р5 и Bs2, как показано на фиг.17, присвоение выполняют следующим образом: индекс L0, имеющий значение 0, присваивают кадру Bs2, ближайшему к кадру В3 перед кадром В3 в порядке РОС; индекс L0, имеющий значение 1, присваивают кадру Р1, второму ближайшему к кадру В3 перед кадром В3 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру Р4, ближайшему к кадру В3 после кадра В3 в порядке РОС; и индекс L0, имеющий значение 3, присваивают кадру Р5, второму ближайшему к кадру В3 после кадра В3 в порядке РОС.
При принятом по умолчанию AVC, для кадров Р1, Р4, Р5 и Bs2, как краткосрочных опорных кадров, содержащихся в DPB, как показано на фиг.17, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру Р4, ближайшему к кадру В3 после кадра В3 в порядке РОС; индекс L1, имеющий значение 1, присваивают кадру Р5, второму ближайшему к кадру В3 после кадра В3 в порядке РОС; индекс L1, имеющий значение 2, присваивают кадру Bs2, ближайшему к кадру В3 перед кадром В3 в порядке РОС; и присваивают индекс L1, имеющий значение 3, кадру Р1, второму ближайшему к кадру В3 перед кадром В3 в порядке РОС.
Кадр В3 не является опорным кадром, таким образом, кадр В3 не хранится в DPB после декодирования.
Таким образом, как показано на фиг.17, как и после декодирования кадра Bs2, предыдущего перед кадром В3 в порядке декодирования, кадры Р1, Р4, Р5 и Bs2 по-прежнему хранятся в DPB.
В момент времени t6, следующий после времени t5, устройство декодирования выбирает кадр Р8 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р8.
Когда кадр Р8 декодируют, как показано на фиг.17, кадры Р1, Р4, Р5 и Bs2 содержатся в DPB, и кадр Р8 декодируют со ссылкой на кадры Р1 или Р4, Р5 и Bs2, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
При принятом по умолчанию AVC, когда кадр Р8 декодируют, для кадров Р1, Р4, Р5 и Bs2, как краткосрочных опорных кадров, содержащихся в DPB, как показано на фиг.17, присвоение выполняют следующим образом: индекс L0, имеющий значение 0, присваивают кадру Bs2, ближайшему к кадру Р8 в порядке декодирования; индекс L0, имеющий значение 1, присваивают кадру Р5, второму ближайшему к кадру Р8 в порядке декодирования; индекс L0, имеющий значение 2, присваивают кадру Р4, третьему ближайшему к кадру Р8 в порядке декодирования; и индекс L0, имеющий значение 3, присваивают кадру Р1, четвертому ближайшему к кадру Р8 в порядке декодирования.
РОС кадра Р8 равен 8, и, следовательно, остаток РОС равен 8. Таким образом, в соответствии со вторым управлением сохранением по фиг.16 вырабатывается команда "100" ММСО. В результате из кадров Р1, Р4, Р5 и Bs2, содержащихся в DPB, опорный кадр с PN CurrPicNum-1 выводят в ходе адаптивной обработки управления памятью.
Таким образом, в этом случае, поскольку текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р8, a CurrPicNum, который представляет собой PN кадра Р8, равен 5, выводят кадр Bs2 с PN 4 (=5-1).
Кадр Р8 представляет собой опорный кадр, и кадр Р8 после декодирования хранится в DPB после вывода кадра Bs2.
В результате, как показано на фиг.17, кадры Р1, Р4, Р5 и Р8 хранятся в DPB. В момент времени t7, следующий после времени t6, устройство декодирования выбирает кадр Р9 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р9.
Когда кадр Р9 декодируют, как показано на фиг.17, кадры Р1, Р4, Р5 и Р8 содержатся в DPB, и кадр Р9 декодируют со ссылкой на кадры Р1, Р4, Р5 и Р8, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
При принятом по умолчанию AVC, когда кадр Р9 декодируют, для кадров Р1, Р4, Р5 и Р8 как краткосрочных опорных кадров, содержащихся в DPB, как показано на фиг.17, присвоение выполняют следующим образом: индекс L0, имеющий значение 0, присваивают кадру Р8, ближайшему к кадру Р9 в порядке декодирования; индекс L0, имеющий значение 1, присваивают кадру Р5, второму ближайшему к кадру Р9 в порядке декодирования; индекс L0, имеющий значение 2, присваивают кадру Р4, третьему ближайшему к кадру Р9 в порядке декодирования; и индекс L0, имеющий значение 3, присваивают кадру Р1, четвертому ближайшему к кадру Р9 в порядке декодирования.
Кадр Р9 представляет собой опорный кадр, и кадр Р9 после декодирования хранятся bDPB.
Когда кадр Р9 содержится в DPB, четыре кадра Р1, Р4, Р5 и Р8 содержатся в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый кадр Р1 из кадров Р1, Р4, Р5, и Р8, содержащихся в DPB, выводят через обработку управления запоминающим устройством типа скользящего окна.
После этого кадр Р9 после декодирования хранятся в DPB, и в результате, как показано на фиг.17, кадры Р4, Р5, Р8 и Р9 хранятся в DPB.
В момент времени t8, следующий после времени t7, устройство декодирования выбирает кадр Bs6 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs6.
Когда кадр Bs6 декодируют, как показано на фиг.17, кадры Р4, Р5, Р8 и Р9 содержатся в DPB, и кадр Bs6 декодируют со ссылкой на кадры Р4, Р5, Р8 и Р9, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Как показано на фиг.17, когда кадр Bs6 изображения L декодируют в моменты времени t8, кадр Р4, который представляет собой кадр изображения L и находится ближе всего к и по времени раньше, чем кадр Bs6, в порядке изображения, хранятся в DPB.
Таким образом, в случае прямого прогнозирования, при прогнозировании L0 кадра Bs6 можно обращаться к кадру Р44, хранящемуся в DPB, и таким образом эффективность кодирования может быть улучшена по сравнению со случаем, когда к кадру Р4 нельзя обращаться, как описано со ссылкой на фиг.6 и 7.
Когда декодируют кадр Bs6, при принятом по умолчанию AVC, для кадров Р4, Р5, Р8 и Р9 как для краткосрочных опорных кадров, содержащихся в DPB, как показано на фиг.17, присвоение выполняют следующим образом: индекс L0, имеющий значение 0, присваивают кадру Р5, ближайшему к кадру Bs6 перед кадром Bs6 в порядке РОС; индекс L0, имеющий значение 1, присваивают кадру Р4, второму ближайшему к кадру В3 перед кадром Bs6 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру Р8, ближайшему к кадру В3 после кадра Bs6 в порядке РОС; и индекс L0, имеющий значение 3, присваивают кадру Р9, второму ближайшему к кадру Bs6 после кадра Bs6 в порядке РОС.
При принятом по умолчанию AVC, для кадров Р4, Р5, Р8 и Р9, как краткосрочных опорных кадров, хранящихся в DPB, как показано на фиг.17, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру Р8, ближайшему к кадру В3 после кадра Bs6 в порядке РОС; индекс L1, имеющий значение 1, присваивают кадру Р9, второму ближайшему к кадру Bs6 после кадра Bs6 в порядке РОС; индекс L1, имеющий значение 2, присваивают кадру Р5, ближайшему к кадру Bs6 перед кадром Bs6 в порядке РОС; и индекс L1, имеющий значение 3, присваивают кадру Р4, второму ближайшему к кадру В3 перед кадром Bs6 в порядке РОС.
Кадр Bs6 представляет собой опорный кадр, и кадр Bs6 после декодирования хранятся в DPB.
Когда кадр Bs6 хранится в DPB, четыре кадра, такие как кадры Р4, Р5, Р8 и Р9, хранятся в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый кадр Р4 из кадров Р4, Р5, Р8 и Р9, хранящиеся в DPB, выводят, используя процесс управления памятью типа скользящего окна.
После этого кадр Bs6 после декодирования хранится в DPB, и, в результате, как показано на фиг.17, кадры Р5, Р8, Р9 и Bs6 хранятся в DPB.
В момент времени t9, следующий после времени t8, устройство декодирования выбирает кадр В7 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В7.
Когда кадр В7 декодируют, как показано на фиг.17, кадры Р5, Р8, Р9 и Bs6 содержатся в DPB, и кадр В7 декодируют со ссылкой на кадры Р5, Р8, Р9 и Bs6, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Как показано на фиг.17, когда кадр В7 изображения R декодируют в момент времени t9, кадр Р5, который представляет собой кадр изображения R и находится ближе всего к и по времени следует раньше, чем кадр В7, в порядке изображения, хранятся в DPB.
Таким образом, в случае прямого прогнозирования в виде прогнозирования L0 кадра В7 можно сделать ссылку на кадр Р5, хранящийся в DPB, таким образом эффективность кодирования может быть улучшена по сравнению со случаем, когда ссылку на кадр Р5 невозможно выполнить, как описано со ссылкой на фиг.6 и 7.
При принятом по умолчанию AVC, когда кадр В7 декодируют, для кадров Р5, Р8, Р9 и Bs6 как краткосрочных опорных кадров, содержащихся в DPB, как показано на фиг.17, присвоение выполняют следующим образом: индекс L0, имеющий значение 0, присваивают кадру Bs6, ближайшему к кадру В7 перед кадром В7 в порядке РОС; индекс L0, имеющий значение 1, присваивают кадру Р5, второму ближайшему к кадру В7 перед кадром В7 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру Р8, ближайшему к кадру В7 после кадра В7 в порядке РОС; и индекс L0, имеющий значение 3, присваивают кадру Р9, второму ближайшему к кадру В7 после кадра В7 в порядке РОС.
При принятом по умолчанию AVC, для кадров Р5, Р8, Р9 и Bs6, содержащихся в DPB, как показано на фиг.17, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру Р8, ближайшему к кадру В7 после кадра В7 в порядке РОС; индекс L0, имеющий значение 1, присваивают кадру Р9, второго ближайшего к изображению В7 после кадра В7 в порядке РОС; индекс L1, имеющий значение 2, присваивают кадру Bs6, ближайшему к кадру В7 перед кадром В7 в порядке РОС; и индекс L1, имеющий значение 3, присваивают кадру Р5, второму ближайшему к кадру В7 перед кадром В7 в порядке РОС.
Кадр В7 не является опорным кадром, таким образом кадр В7 не сохраняется в DPB после декодирования.
Таким образом, как показано на фиг.17, как и после декодирования кадра Bs6, предыдущего перед кадром В7 в порядке декодирования, кадры Р5, Р8, Р9 и Bs6 по-прежнему хранятся в DPB.
В момент времени 110, следующий после времени t9, устройство декодирования выбирает кадр Р12 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р12.
Когда кадр Р12 декодируют, как показано на фиг.17, кадры Р5, Р8, Р9 и Bs6 содержатся в DPB, и кадр Р12 декодируют со ссылкой на кадры Р5, Р8, Р9 и Bs6, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
На фиг.17 описание присвоения номера опорного кадра (индекса L0, индекса L1), в принятом по умолчанию AVC, ниже будет опущено.
РОС кадра Р12 равен 12, и, следовательно, остаток РОС равен 12. Таким образом, в соответствии со вторым управлением сохранением по фиг.16 вырабатывают команду ММСО "100". В результате из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, опорный кадр с PN CurrPicNum-1 выводят через процесс адаптивного управления памятью.
Таким образом, в этом случае поскольку текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р12, и CurrPicNum, который представляет собой PN кадра Р12, равен 8, выводят кадр Bs6 с PN 7 (=8-1).
Кадр Р12 представляет собой опорный кадр, и кадр Р12 после декодирования хранятся в DPB после вывода кадра Bs6.
В результате, как показано на фиг.17, кадры Р5, Р8, Р9 и Р12 хранятся в DPB.
В момент времени til, следующий после времени tl0, устройство декодирования выбирает кадр Р13 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р13.
Когда кадр Р13 декодируют, как показано на фиг.17, кадры Р5, Р8, Р9 и Р12 содержатся в DPB, и кадр Р13 декодируют со ссылкой на кадры Р5, Р8, Р9 и Р12, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
Кадр Р13 представляет собой опорный кадр и кадр Р13 после декодирования сохраняют в DPB.
Когда кадр Р13 хранятся в DPB, четыре кадра Р5, Р8, Р9 и Р12, хранятся в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый кадр Р5 из кадров 5, Р8, Р9 и Р12, хранящихся в DPB, выводят через процесс управления памятью типа скользящего окна.
После этого кадр Р13 после декодирования хранится в DPB и в результате, как показано на фиг.17, кадры Р8, Р9, Р12 и Р13 хранятся в DPB.
В момент времени t12, следующий после времени til, устройство декодирования выбирает кадр Bs10 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs10.
Когда кадр Bs10 декодируют, как показано на фиг.17, кадры Р8, Р9, Р12 и Р13 содержатся в DPB, и кадр Bs10 декодируют со ссылкой на кадры Р8, Р9, Р12 и Р13, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Как показано на фиг.17, когда кадр Bs10 изображения L декодируют в момент времени tl2, кадр Р8, который представляет собой кадр изображения L и находится ближе всего к и по времени, следует раньше, чем кадр Bs10, в порядке изображения, хранится в DPB.
Таким образом, в случае прямого прогнозирования, такого как прогнозирование L0 кадра Bs10, к кадру Р48, хранящемуся в DPB, можно обращаться, и таким образом эффективность кодирования может быть улучшена по сравнению со случаем, когда к кадру Р8 нельзя обращаться, как описано со ссылкой на фиг.6 и 7.
Кадр Bs10 представляет собой опорный кадр и кадр Bs10 после декодирования сохраняют в DPB.
Когда кадр Bs10 хранятся в DPB, четыре кадра Р8, Р9, Р12 и Р13 хранятся в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый кадр Р8 из кадров Р8, Р9, Р12 и Р13, хранящихся в DPB, выводят через процесс управления памятью типа скользящего окна.
После этого кадр Bs10 после декодирования хранится в DPB и в результате, как показано на фиг.17, кадры Р9, Р12, Р13 и Bs10 хранятся в DPB.
В момент времени tl3, следующий после времени t12, устройство декодирования выбирает кадр В11 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр ВН.
Когда кадр В11 декодируют, как показано на фиг.17, кадры Р9, Р12, Р13 и Bs10 содержатся в DPB, и кадр В11 декодируют со ссылкой на кадры Р9, Р12, Р13 и Bs10, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Как показано на фиг.17, когда кадр В11 изображения R декодируют в момент времени 113, кадр Р9, который представляет собой кадр изображения R и является самым близким к и по времени следует раньше, чем кадр В11, в порядке изображения, содержится в DPB.
Таким образом, в случае прямого прогнозирования, выполняемого как прогнозирование L0 кадра В11, к кадру Р9, содержащемуся в DPB, можно обращаться, что таким образом позволяет улучшить эффективность кодирования по сравнению со случаем, когда к кадру Р9 нельзя обращаться, как описано со ссылкой на фиг.6 и 7.
Кадр В11 не является опорным кадром, таким образом, кадр В11 не хранятся в DPB после декодирования.
Таким образом, как показано на фиг.17, как и после декодирования кадра Bs10, предыдущего перед кадром В11 в порядке декодирования, кадры Р9, Р12, Р13 и Bs10 по-прежнему хранятся в DPB.
В момент времени tl4, следующий после времени tl3, устройство декодирования выбирает кадр I16 (I0) в GОP№1 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр I16 без межкадрового прогнозирования.
Таким образом, когда кадр I16 декодируют, как показано на фиг.17, кадры Р9, Р12, Р13 и Bs10 хранятся в DPB, и кадр I16 декодируют без ссылки на кадры Р9, Р12, Р13 и Bs10, хранящиеся в DPB.
РОС кадра I16 равен 0 и, следовательно, остаток РОС равен 0. Таким образом, в соответствии со вторым управлением сохранением по фиг.16 вырабатывают команду ММСО "100". В результате из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, опорный кадр с PN CurrPicNum-1 выводят через процесс адаптивного управления памятью.
Таким образом, в этом случае поскольку текущий кадр, находящийся в процессе декодирования, представляет собой кадр I16, и CurrPicNum, который представляет собой PN кадра I16, равен 11, кадр Bs10 с PN I0 (=11-1) выводят.
Кадр I16 представляет собой опорный кадр, и кадр I16 после декодирования хранятся в DPB после вывода кадра Bs10.
В результате, как показано на фиг.17, кадры Р9, Р12, Р13 и I16 хранятся в DPB.
В момент времени t15, следующий после времени t14, устройство декодирования выбирает кадр Р17 (Р1) в GОP№1 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р17.
Когда кадр Р17 декодируют, как показано на фиг.17, кадры Р9, Р12, Р13 и I16 содержатся в DPB, и кадр Р17 декодируют со ссылкой на кадры Р9, Р12, Р13 и I16, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
Кадр Р17 представляет собой опорный кадр, и кадр Р17 после декодирования сохраняют в DPB.
Когда кадр Р17 сохраняют в DPB, четыре кадра Р9, Р12, Р13 и I16 содержатся в DPB, занимая максимальный объем памяти. Поэтому в устройстве декодирования самый старый кадр Р9 из кадров Р9, Р12, Р13 и I16, содержащихся в DPB, выводят, используя обработку управления запоминающим устройством типа скользящего окна.
После этого кадр Р17 после декодирования сохраняют в DPB и в результате, как показано на фиг.17, кадры Р12, Р13, I16 и Р17 содержатся в DPB.
В момент времени t16, следующий после времени tl5, устройство декодирования выбирает кадр Bs14 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs14.
Когда кадр Bs14 декодируют, как показано на фиг.17, кадры Р12, Р13, I16 и Р17 содержатся в DPB, и кадр Bs14 декодируют со ссылкой на кадры Р12, Р13, I16 и Р17, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Как показано на фиг.17, когда кадр Bs14 изображения L декодируют в момент времени t16, кадр Р12, который представляет собой кадр изображения L и является самым близким к и по времени, следует раньше, чем кадр Bs14, в порядке изображения, содержится в DPB.
Таким образом, в случае прямого прогнозирования в виде прогнозирования L0 кадра Bs14 к кадру Р412, содержащемуся в DPB, можно обращаться, что таким образом позволяет улучшить эффективность кодирования по сравнению со случаем, в котором к кадру Р412 нельзя обращаться, как описано со ссылкой на фиг.6 и 7.
Кадр Bs14 представляет собой опорный кадр, и кадр Bs14 после декодирования хранится в DPB.
Когда кадр Bs14 содержится в DPB, четыре кадра Р12, Р13, I16 и Р17, содержатся в DPB, занимая максимальную емкость памяти. Поэтому в устройстве декодирования самый старый кадр Р12 из кадров Р12, Р13, I16 и Р17, содержащихся в DPB, выводят в результате обработки управления запоминающим устройством типа скользящего окна.
После этого кадр Bs14 после декодирования сохраняется в DPB, и, в результате, как показано на фиг.17, кадры Р13, I16, Р17 и Bs14 содержатся в DPB.
В момент времени t17, следующий после времени t16, устройство декодирования выбирает кадр В15 в GOP№0, как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В15.
Когда кадр В15 декодируют, как показано на фиг.17, кадры Р13, I16, Р17 и Bs14 содержатся в DPB, и кадр В15 декодируют со ссылкой на кадры Р13, I16, Р17 и Bs14, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Как показано на фиг.17, когда кадр В15 изображения R декодируют в момент времени t17, кадр Р13, который представляет собой кадр изображения R и является самым близким к и следует по времени раньше, чем кадр В15, в порядке отображения, содержится в DPB.
Таким образом, в случае прямого прогнозирования, такого как прогнозирование L0, кадр В15 может обращаться к кадру Р13, содержащемуся в DPB, что таким образом позволяет улучшить эффективность кодирования по сравнению со случаем, когда нельзя обращаться к кадру Р13, как описано со ссылкой на фиг.6 и 7.
Кадр В15 не является опорным кадром, таким образом кадр В15 не сохраняется в DPB после декодирования.
Таким образом, как показано на фиг.17, как и после декодирования кадра Bs14, предыдущего перед кадром В15 в порядке декодирования, кадры Р13, I16, Р17 и Bs14 по-прежнему содержатся в DPB.
Хотя это не показано на фиг.17, в момент времени, следующий после времени t17, устройство декодирования выбирает кадр Р20 (Р4) в GОP№1 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р20.
Для кадра Р20 остаток РОС равен 4. Таким образом, в соответствии со вторым управлением сохранением по фиг.16 вырабатывают команду "100" ММСО после декодирования кадра Р20. В результате из кадров Р13, I16, Р17 и Bs14, содержащихся в DPB, опорный кадр с PN, равным CurrPicNum-1, выводят через адаптивную обработку управления памятью.
Таким образом, в этом случае поскольку текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р20, и CurrPicNum, который представляет собой PN кадра Р20, равен 14, кадр Bs14 с PN 13 (=14-1) выводят.
Как описано выше, в соответствии со вторым управлением сохранением, как и в первом управлении сохранением, в устройстве декодирования из кадров, которые декодируют по времени раньше, чем текущий кадр, находящийся в процессе декодирования, и которые могут стать опорными кадрами, кадр, который представляет собой кадр изображения, из изображения L и изображения R, полученный с той же точки наблюдения, что и текущий кадр, находящийся в процессе декодирования, и расположен ближе всего к текущему кадру, находящемуся в процессе декодирования, в порядке изображения, хранятся в DPB. Таким образом, в устройстве кодирования из кадров, которые были кодированы по времени раньше, чем текущий кадр, находящийся в процессе кодирования, и которые могут стать опорными кадрами, кадр, который представляет собой кадр изображения из изображения L и изображения R, полученный с той же точки наблюдения, что и текущий кадр, находящийся в процессе кодирования, и расположенный ближе всего к текущему кадру, находящемуся в процессе кодирования, в порядке отображения, сохраняют в запоминающем устройстве 22 кадра. Поэтому может быть улучшена эффективность кодирования.
В частности, когда выполняют межкадровое прогнозирование кадра Bs6 изображения L, кадр Р4, который представляет собой кадр изображения L, предшествующий кадру Bs6, хранится в запоминающем устройстве 22 кадра устройства кодирования по фиг.8 и в запоминающем устройстве 49 кадра, соответствующем DPB устройства декодирования по фиг.2. Когда выполняют межкадровое прогнозирование кадра В7 изображения R, кадр Р5, который представляет собой кадр изображения R, предшествующий кадру В7, хранится в запоминающем устройстве 22 кадра и в запоминающем устройстве 49 кадра. Когда выполняют межкадровое прогнозирование кадра Bs10 изображения L, кадр Р8, который представляет собой кадр изображения L, предшествующий кадру Bs10, хранится в запоминающем устройстве 22 кадра и в запоминающем устройстве 49 кадра. Когда выполняют межкадровое прогнозированием кадра В11 изображения R, кадр Р9, который представляет собой кадр изображения R, предшествующий кадру В11, хранится в запоминающем устройстве 22 кадра и запоминающем устройстве 49 кадра. Когда кадр Bs14 изображения L прогнозируют, используя межкадровое прогнозирование, кадр Р12, которое представляет собой кадр изображения L, предшествующий кадру Bs14, содержится в запоминающем устройстве 22 кадра и запоминающем устройстве 49 кадра. Когда кадр В15 изображения R прогнозируют, используя межкадровое прогнозирование, кадр Р13, который представляет собой кадр изображения R, предшествующий кадру В15, содержится в запоминающем устройстве кадра 22 и в запоминающем устройстве кадра 49. Поэтому ошибка прогнозирования прогнозируемого изображения, формируемого посредством межкадрового прогнозирования, уменьшается, что таким образом позволяет улучшить эффективность кодирования.
В соответствии со вторым управлением сохранением, как и в случае первого управления сохранением, для кадра изображения L последовательности кадров, в которой GOP имеет структуру, показанную на фиг.4, возможно межкадровое прогнозирование, в котором может быть сделана ссылка на кадр изображения L, расположенный по времени непосредственно перед и после соответствующего кадра, из кадров (кадров, к которым можно обращаться), которые могут стать опорными кадрами.
Для кадра изображения R также возможно межкадровое прогнозирование, в котором может быть сделана ссылка на кадр изображения L, составляющее пару LR, в дополнение к кадру изображения R, который расположен по времени непосредственно перед и после соответствующего кадра, из кадров, на которые может быть сделана ссылка.
Поэтому может быть улучшена эффективность кодирования.
Команда RPLR
На фиг.18 показана схема, иллюстрирующая выработку команды RPLR одновременно с выводом команды ММСО как второго управления сохранением, выполняемого модулем 71 управления сохранением (фиг.8).
Как описано со ссылкой на фиг.12, в последовательности кадров кадры изображения L и изображения R распложены поочередно. Таким образом возникает случай, когда при принятом по умолчанию AVC номер опорного кадра, имеющий меньшее значение, который кодируют как код с меньшей величиной кода, не присваивают опорному кадру, который, весьма вероятно, будет использоваться при формировании прогнозируемого изображения кадра.
В модуле 71 управления сохранением устройства кодирования по фиг.8, когда вырабатывают команду ММСО по фиг.16, дополнительно может быть выработана команда RPLR по фиг.18.
Таким образом, как и в случае, когда команду RPLR по фиг.12 вырабатывают вместе с командой ММСО по фиг.10, номер опорного кадра, имеющий меньшее значение, может быть присвоен опорному кадру, которое, весьма вероятно, будет использоваться при формировании прогнозируемого изображения для изображения.
На фиг.18 показан список команд RPLR, вырабатываемых для присвоения номера опорного кадра, когда модуль 71 управления сохранением вырабатывает команду ММСО по фиг.16, как второе управление сохранением.
Выработка команды RPLR по фиг.18 может не осуществляться. В то же время когда вырабатывают команду ММСО по фиг.16, если также вырабатывают команду RPLR по фиг.18, номер опорного кадра, имеющий меньшее значение, которое кодирует код, имеющий меньшую величину кода, присваивают опорному кадру, который, весьма вероятно, будет использоваться при формировании прогнозируемого изображения кадра. Поэтому эффективность кодирования может быть дополнительно улучшена.
Для команды RPLR по фиг.18, как и для команды RPLR по фиг.12, будет предоставлено описание, в котором, соответственно, заменена операция в устройстве кодирования по фиг.8 для присвоения номера опорного кадра опорному кадру, хранящемуся в запоминающем устройстве 22 кадра, в соответствии с командой RPLR, выработанной модулем 71 управления сохранением, которая представляет собой операцию в устройстве декодирования по фиг.2 по присвоению номера опорного кадра опорному кадру, хранящемуся в (запоминающем устройстве 49 кадра, соответствующем) DPB.
В списке по фиг.18 столбцы "РОС", "список", "ref_pic_list_reordering" и "детали" представляют то же содержание, что и на фиг.12.
В списке по фиг.18, когда остаток РОС равен 1, то есть когда текущий кадр, находящийся в процессе декодирования (текущий кадр, находящийся в процессе кодирования), представляет собой кадр Р1, вырабатывают "023" как команду RPLR и необходимый аргумент. "0" на первом месте от начала "023" представляет команду RPLR L0 №COMMAND==0, а "2" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "023" представляет команду RPLR №COMMAND==3.
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "2" в "023", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р1, переменную abs_dirT_pic_num_minus1 устанавливают равной 2. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р1 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в качестве номера опорного кадра (индекс L0) в это время, то есть 0, опорному кадру в качестве индекса L0.
Как описано ниже, среди опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diffj)ic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р1 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р13 в GOP, предыдущей GOP перед GOP кадра Р1 как текущего кадра, находящегося в процессе декодирования.
После этого устройство декодирования заканчивает операцию присвоения номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "023".
Когда остаток РОС равен 2, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs2, "033" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "033" представляет команду RPLR L0 №COMMAND==0, и "3" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "033" представляет команду RPLR №COMMAND==3.
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "3" в "033", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs2, переменную abs_diff_pic_num_minus1 устанавливает равной 3. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=4) из CurrPicNum, которое представляет собой PN кадра Bs2 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время, в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=4) из CurrPicNum, которое представляет собой PN кадра Bs2 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр I0 в GOP, которой принадлежит кадр Bs2 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR, в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "033".
Когда остаток РОС равен 3, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, "033" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте с начала в первом "033" среди "033" и "013" представляет команду RPLR LO №COMMAND==0, и "3" на втором месте представляет аргумент команды RPLR LO №COMMAND==0. "3" на третьем месте в "033" представляет команду RPLR №COMMAND==3.
Для команды RPLR LO №COMMAND==0 и последующего аргумента "3" в первой команде "033" из "033" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, переменную abs_diff_pic_num_minus1 устанавливают равной 3. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=4) из CurrPicNum, которое представляет собой PN кадра В3 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время как номер опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=4) из CurrPicNum, которое представляет собой PN кадра В3 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р1 в GOP, которой принадлежит кадр В3 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR, в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "033".
"0" на первом месте от начала во второй команде "013" из "033" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, представляет команду RPLR LI №COMMAND==0, а "1" на втором месте представляет аргумент команды RPLR LI №COMMAND==0. "3" на третьем месте в "013" представляет команду RPLR №COMMAND==3.
Для команды RPLR LI №COMMAND-0 и последующего аргумента "1" во второй команде "013" из "033" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, переменную abs_diff_pic_num_minus1 устанавливает равной 1. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В3 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра
присвоения, и присваивает минимальное в это время значение среди значений, не присвоенных в качестве номера опорного кадра (индекса L1), то есть 0, соответствующему опорному кадру в качестве индекса L1.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В3, как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р5 в GOP, которой принадлежит кадр В3 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию присвоения номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "013".
Когда остаток РОС равен 4, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р4, "013" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "013" представляет команду RPLR L0 №COMMAND==0, а "1" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "013" представляет команду RPLR №COMMAND==3.
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "1" в "013", который вырабатывают когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р4, переменную abs_diff_pic_num_minus1 устанавливает равной 1. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_nurn_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра Р4 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время, в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_difF_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра Р4, как текущего кадра, находящегося в процессе декодирования, представляет собой кадр I0 в GOP, которой принадлежит кадр Р4 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "013".
Когда остаток РОС равен 5, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р5, "013" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "013" представляет команду RPLR LO №COMMAND==0, а "1" на втором месте представляет аргумент команды RPLR L0 №COMMAND-0. "3" на третьем месте в "013" представляет команду RPLR №COMMAND==3.
Для команды RPLR LO №COMMAND==0 и последующего аргумента "1" в "013", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р5, переменную abs_diff_pic_num_minus1 устанавливают равной 1. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра Р5 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра Р5 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р1 в GOP, которой принадлежит кадр Р5 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "013".
Когда остаток РОС равен 6, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs6, "043" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте с начала "043" представляет команду RPLR L0 №COMMAND==0, а "4" на втором месте представляет собой аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "043" представляет команду RPLR №COMMAND==3.
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "4" в "043", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs6, переменную abs_diff_pic_num_minus1 устанавливает равной 4. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_difl_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs6 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs6 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р4 в GOP, которой принадлежит кадр Bs6 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "043".
Когда остаток РОС равен 7, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, "043" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "043" среди "043" и "013" представляет команду RPLR L0 №COMMAND==0, и "4" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "043" представляет команду RPLR №COMMAND==3.
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "4" в первой команде "043" из "043" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, переменную abs_diff_pic_num_minus1 устанавливает равной 4. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра В7 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение среди значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра В7 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р5 в GOP, которой принадлежит кадр В7, как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию присвоения номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "043".
"0" на первом месте от начала во второй команде "013" из "043" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, представляет команду RPLR LI №COMMAND==0, а "1" на втором месте представляет аргумент команды RPLR LI №COMMAND-0. "3" на третьем месте в "013" представляет команду RPLR №COMMAND==3.
Для команды RPLR LI №COMMAND==0 и последующего аргумента "1" во второй команде "013" из "043" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, переменную abs_diff_pic_num_minus1 устанавливает равной 1. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В7 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L1.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В7 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р9 в GOP, которой принадлежит кадр В7 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "013".
Когда остаток РОС равен 8 или 9, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р8 или Р9, "023" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "023" представляет команду RPLR L0 №COMMAND==0, а "2" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "023" представляет команду RPLR №COMMAND==3.
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "2" в "023", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р8, переменную abs_diff_pic_num_minus1 устанавливает равной 2. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р8, как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время, в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р8, как текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р4 в GOP, которой принадлежит кадр Р8 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "023".
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "2" в "023", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р9, переменную abs_diff_pic_num_minus1 устанавливает равной 2. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р9 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_dirf_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р9 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р5 в GOP, которой принадлежит кадр Р9 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "023".
Когда остаток РОС равен 10, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs10, "043" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "043" представляет команду RPLR L0 №COMMAND==0, а "4" на втором месте представляет собой аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "043" представляет команду RPLR №COMMAND==3.
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "4" в "043", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs10, переменную abs_diff_pic_num_minus1 устанавливает равной 4. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs10 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diffj)ic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs10 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р8 в GOP, которой принадлежит кадр Bs10 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "043".
Когда остаток РОС равен 11, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, "043" и "013" последовательно вырабатывают, как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "033" среди "043" и "013" представляет команду RPLR L0 №COMMAND==0, и "3" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "043" представляет команду RPLR №COMMAND==3.
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "4" в первой команде "043" из "043" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, переменную abs_diff_pic_num_minus1 устанавливает равной 4. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра BU как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра В11 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р9 в GOP, которой принадлежит кадр B11 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "043".
"0" на первом месте от начала во второй команде "013" из "043" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, представляет команду RPLR LI №COMMAND==:0, а "1" на втором месте представляет аргумент команды RPLR L1 №COMMAND==0. "3" на третьем месте в "013" представляет команду RPLR №COMMAND==3.
Для команды RPLR L1 №COMMAND==0 и последующего аргумента "1" во второй команде "013" из "043" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, переменную abs_diff_pic_num_minus1 устанавливают равной 1. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В11 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение среди значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L1.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В11 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р13 в GOP, которой принадлежит кадр B11 как текущий кадр, находящийся в процессе декодирования.
После этого, устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "013".
Когда остаток РОС равен 12 или 13, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р12 или Р13, "023" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "023" представляет команду RPLR LO №COMMAND==0, и "2" на втором месте представляет аргумент команды RPLR LO №COMMAND==0. "3" на третьем месте в "023" представляет команду RPLR №COMMAND==3.
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "2" в "023", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р12, переменную abs_diff_pic_num_minus1 устанавливает равной 2. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus 1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р12 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р12 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р8 в GOP, которой принадлежит кадр Р12 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "023".
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "2" в "023", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р13, переменную abs_diff_pic_num_minus1 устанавливает равной 2. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р13 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum, которое представляет собой PN кадра Р13 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р9 в GOP, которой принадлежит кадр Р13 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "023".
Когда остаток РОС равен 14, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs14, "043" вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в "043" представляет команду RPLR L0 №COMMAND==0, а "4" на втором месте представляет собой аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "043" представляет команду RPLR №COMMAND==3.
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "4" в "043", который вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs14, переменную abs_diff_pic_num_minus1 устанавливает равной 4. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs14 как текущий кадр, находящийся в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра Bs14 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р12 в GOP, которой принадлежит кадр Bs14 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "043".
Когда остаток РОС равен 15, то есть когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, "043" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент. "0" на первом месте от начала в команде "043" из "043" и "013" представляет команду RPLR L0 №COMMAND==0, а "4" на втором месте представляет аргумент команды RPLR L0 №COMMAND==0. "3" на третьем месте в "043" представляет команду RPLR №COMMAND==3.
Для команды RPLR L0 №COMMAND==0 и последующего аргумента "4" в первой команде "043" среди "043" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, переменную abs_diff_pic_num_minus1 устанавливает равной 4. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра В15, как текущий кадр, находящийся в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L0.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum, которое представляет собой PN кадра В15 как текущего кадра, находящегося в процессе декодирования, представляет собой кадр Р13 в GOP, которой принадлежит кадр В15 как текущий кадр, находящийся в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "043".
"0" на первом месте от начала во второй команде "013" из "043" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, представляет команду RPLR LI №COMMAND==0, а "1" на втором месте представляет аргумент команды RPLR LI №COMMAND==0. "3" на третьем месте в "013" представляет команду RPLR №COMMAND==3.
Для команды RPLR LI №COMMAND==0 и последующего аргумента "1" во второй команде "013" из "043" и "013", которые вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, переменную abs_difF_pic_num_minus1 устанавливает равной 1. Таким образом, устройство декодирования выбирает опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В15 как текущего кадра, находящегося в процессе декодирования, из опорных кадров, хранящихся в DPB, в качестве целевого кадра присвоения, и присваивает минимальное значение из значений, не присвоенных в это время в качестве номера опорного кадра, то есть 0, соответствующему опорному кадру в качестве индекса L1.
Как описано ниже, из опорных кадров, хранящихся в DPB, опорный кадр, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum, которое представляет собой PN кадра В15 как текущего кадра, находящегося в процессе декодирования, представляет собой P1 (Р17) кадр GOP, следующей GOP после GOP кадра В15 как текущего кадра, находящегося в процессе декодирования.
После этого устройство декодирования заканчивает операцию по присвоению номера опорного кадра на основе команды RPLR в соответствии с командой RPLR №COMMAND==3, стоящей на третьем месте в "013".
Как описано выше, для команды RPLR по фиг.18, когда вырабатывают команду ММСО фиг.16 и когда остаток РОС равен 1, индекс L0 кадра Р13, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 2, индекс L0 кадра I0, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 3, индекс L0 кадра Р1, содержащегося в DPB, становится равным 0, а индекс L1 кадра Р5, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 4, индекс L0 кадра I0, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 5, индекс L0 кадра Р1, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 6, индекс L0 кадра Р4, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 7, индекс L0 кадра Р5, содержащегося в DPB, становится равным 0, а индекс L1 кадры Р9, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 8, индекс L0 кадра Р4, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 9, индекс L0 кадра Р5, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 10, индекс L0 кадра Р8, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 11, индекс L0 кадра Р9, содержащегося в DPB, становится равным 0, а индекс L1 кадра Р13, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 12, индекс L0 кадра Р8, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 13, индекс L0 кадра Р9, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 14, индекс L0 кадра Р12, содержащегося в DPB, становится равным 0.
Когда остаток РОС равен 15, индекс L0 кадра Р13, содержащегося в DPB, становится равным 0, а индекс L1 кадра P1 (Р17), содержащегося в DPB, становится равным 0.
Кодирование/декодирование, когда вырабатывают команду ММСО и команду RPLR
На фиг.19 показана схема, иллюстрирующая состояние DPB, когда команду ММСО и необходимый аргумент по фиг.16 вырабатывают для кодирования/декодирования последовательности кадров путем использования AVC.
На фиг.19 показан порядок изображения кадров, составляющих последовательность кадров, порядок кодирования/декодирования, PN и состояние сохранения DPB, и состояние сохранения буфера дисплея.
Порядок изображения кадров, составляющих последовательность кадров, порядок кодирования/декодирования, PN и состояние сохранения буфера дисплея являются теми же, что и на фиг.6, таким образом, их описание здесь будет опущено.
Если предположить, что в устройстве кодирования по фиг.8 последовательность кадров кодируют в порядке кодирования по фиг.19, кодированные данные, получаемые как результат кодирования, декодируют в порядке декодирования по фиг.19 в устройстве декодирования AVC по фиг.2.
Также предполагается, что в устройстве кодирования по фиг.8 вырабатывают команду ММСО (и необходимый аргумент) по фиг.16 и команду RPLR (и необходимый аргумент) по фиг.18, и команда ММСО и команда RPLR включены в кодированные данные.
В этом случае, в устройстве декодирования AVC по фиг.2, когда декодируют кодируемые данные, сохранение кадров в DPB выполняют таким же образом, как описано со ссылкой на фиг.17.
В устройстве декодирования присвоение номера опорного кадра (индекс L0, индекс L1) для опорных кадров, хранящихся в DPB, осуществляют в соответствии с командой RPLR. После этого, номер опорного кадра, имеющий значение (заданное значение) при принятом по умолчанию AVC, присваивают опорным кадрам, которым не был присвоен номер опорного кадра.
Таким образом, на фиг.19, присвоение номера опорного кадра (индекс L0, индекс L1) опорным кадрам отличается от фиг.17, но опорные кадры, хранящиеся в DPB, совпадают с представленными на фиг.17. Поэтому, на фиг.19 описание опорных кадров, хранящихся в DPB, будет соответственно опущено.
Как показано на фиг.19, при описании "L0=целое число" и "L1=целое число", подчеркнутое описание представляет номер опорного кадра (индекс L0, индекс L1), имеющий значение, отличающееся от представленного на фиг.17.
Как показано на фиг.19, при описании "L0=целое число" и "L1=целое число", описание, подчеркнутое и представленное курсивом, представляет номер опорного кадра, присвоенный в соответствии с командой RPLR, а подчеркнутое, но не представленное курсивом описание представляет присвоение номера опорного кадра, которое было выполнено на основе команды RPLR, и номер опорного кадра, впоследствии назначенный при принятом по умолчанию AVC, отличается от представленного на фиг.17.
В момент времени t0 устройство декодирования выбирает кадр I0 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр I0.
Кадр I0 представляет собой опорный кадр, и, как показано на фиг.19, кадр I0 после декодирования хранятся в DPB.
В момент времени t1, следующий после времени t0, устройство декодирования выбирает кадр Р1 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р1.
Когда декодируют кадр Р1, как показано на фиг.19, кадр I0 сохраняют в DPB, и кадр Р1 декодируют со ссылкой на кадр I0, хранящийся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
Остаток РОС от РОС кадра Р1 равен 1. В этом случае, как описано со ссылкой на фиг.18, вырабатывают "023" как команду RPLR и необходимый аргумент. Присвоение номера опорного кадра для кадра Р13 в GOP, предыдущей перед GOP кадра Р1 в качестве текущего кадра, находящегося в процессе декодирования, выполняют в соответствии с командой RPLR. В то же время, когда декодируют кадр Р1 первого GOP№0, кадр GOP, предыдущей перед GOP кадра Р1 в качестве текущего кадра, находящегося в процессе декодирования, еще не хранится в DPB.
Поэтому только для первой GOP№0, в качестве исключения, когда декодируют кадр Р1, команду RPLR "100" не вырабатывают (или даже когда команду RPLR вырабатывают, присвоение номера опорного кадра на основе команды RPLR не выполняют).
Таким образом, когда декодируют кадр Р1 в GOP№0, для кадра I0, хранящегося в DPB, при принятом по умолчанию AVC, присваивают индекс L0. Таким образом, как показано на фиг.17, индекс L0, имеющий значение 0, присваивают кадру I0, хранящемуся в DPB.
Кадр Р1 представляет собой опорный кадр и, как показано на фиг.19, кадр Р1 после декодирования сохраняют в DPB как опорный кадр.
В момент времени t2, следующий после времени t1, устройство декодирования выбирает кадр Р4 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р4.
Когда декодируют кадр Р4, как показано на фиг.19, кадры I0 и Р1 хранятся в DPB, и кадр Р4 декодируют со ссылкой на кадр I0 или Р1, хранящийся в DPB, в соответствии с необходимостью, для формирования прогнозируемого кадра в соответствии с прогнозированием L0.
Остаток РОС от РОС кадра Р4 равен 4. В этом случае, как описано со ссылкой на фиг.18, "013" вырабатывают как команду RPLR и необходимый аргумент.
При команде RPLR "013", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р4, как описано со ссылкой на фиг.18, кадр I0, которое представляет собой опорный кадр, имеющее в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum (=2), которое представляет собой PN кадра Р4 в качестве текущего кадра, находящегося в процессе декодирования, то есть 0, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают кадру I0 в качестве индекса L0.
После этого из кадров I0 и Р1, хранящихся в DPB, для кадра Р1, для которого номер опорного кадра на основе команды RPLR не был присвоен, при принятом по умолчанию AVC, минимальное значение из значений, неиспользуемых в это время в качестве индекса L0, то есть 1 (индекс L0, имеющий значение 0, присвоен кадру I0 в соответствии с командой RPLR), присваивают в качестве индекса L0.
Кадр Р4 представляет собой опорный кадр, и, как показано на фиг.19, кадр Р4 после декодирования хранятся в DPB.
В момент времени t3, следующий после времени t2, устройство декодирования выбирает кадр Р5 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р5.
Когда кадр Р5 декодируют, как показано на фиг.19, кадры I0, Р1 и Р4 содержатся в DPB, и кадр Р5 декодируют со ссылкой на кадры Р1 и I0 или Р4, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
Остаток РОС от РОС кадра Р5 равен 5. В этом случае, как описано со ссылкой на фиг.18, "013" вырабатывают как команду RPLR и необходимый аргумент.
Для команды "013" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р5, как описано со ссылкой на фиг.18, кадр Р1, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum (=3), которое представляет собой PN кадра Р5 в качестве текущего кадр, находящийся в процессе декодирования, то есть 1, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру Р1 в качестве индекса L0.
После этого, из кадров I0, Р1 и Р4, хранящихся в DPB для кадров I0 и Р4, номер опорного кадра которым на основе команды RPLR не был присвоен, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров I0, Р1 и Р4, хранящихся в DPB, для кадров I0 и Р4, которым номер опорного кадра на основе команды RPLR не был присвоен, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р4, ближайшему к кадру Р5 как текущему кадру, находящемуся в процессе декодирования в порядке декодирования; а индекс L0, имеющий значение 2, присваивают кадру I0, второму ближайшему к кадру Р45 в порядке декодирования.
Кадр Р5 представляет собой опорный кадр, и, как показано на фиг.19, кадр Р5 после декодирования хранятся в DPB.
В момент времени t4, следующий после времени t3, устройство декодирования выбирает кадр Bs2 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs2.
Когда кадр Bs2 декодируют, как показано на фиг.19, кадры I0, P1, Р4 и Р5 содержатся в DPB, и кадр Bs2 декодируют со ссылкой на кадры I0, P1, Р4 и Р5, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Остаток РОС для РОС кадра Bs2 равен 2. В этом случае, как описано со ссылкой на фиг.18, "033" вырабатывают как команду RPLR и необходимый аргумент.
Для команды "033" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs2, как описано со ссылкой на фиг.18, кадр I0, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=4) из CurrPicNum (=4), которое представляет собой PN кадра Bs2 в качестве текущего кадра, находящегося в процессе декодирования, то есть 0, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру I0 в качестве индекса L0.
После этого, из кадров I0, P1, Р4 и Р5, хранящихся в DPB, для кадров P1, Р4 и Р5, для которых присвоение индекса L0 на основе команды RPLR не выполнено, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров I0, P1, Р4 и Р5, хранящихся в DPB, для кадров P1, Р4 и Р5, для которых присвоение индекса L0 на основе команды RPLR, не было выполнено, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р1, ближайшему к кадру Bs2 перед кадром Bs2 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру Р4, ближайшему к кадру Bs2 после кадра Bs2 в порядке РОС; и индекс L0, имеющий значение 3, присваивают кадру Р5, второму ближайшему к кадру Bs2 после кадра Bs2 в порядке РОС.
Для кадров I0 P1, Р4 и Р5, хранящихся в DPB, для которых присвоение индекса L1 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру Р4; индекс L1, имеющий значение 1, присваивают кадру Р5; индекс L1, имеющий значение 2, присваивают кадру Р1; и индекс L1, имеющий значение 3, присваивают кадру I0.
Кадр Bs2 представляет собой опорный кадр, и кадр Bs2 после декодирования хранятся в DPB. В результате, как показано на фиг.17, кадры Р1, Р4, Р5 и Bs2 хранятся в DPB.
В момент времени t5, следующий после времени t4, устройство декодирования выбирает кадр В3 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В3.
Когда кадр В3 декодируют, как показано на фиг.19, кадры Р1, Р4, Р5 и Bs2 содержатся в DPB, и кадр В3 декодируют со ссылкой на кадры Р1, Р4, Р5 и Bs2, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Остаток РОС от РОС кадра В3 равен 3. В этом случае, как описано со ссылкой на фиг.18, "033" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент.
Для команды RPLR "033", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, как описано со ссылкой на фиг.18, кадр Р1, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=4) из CurrPicNum (=5), которое представляет собой PN кадра В3 как текущего кадра, находящегося в процессе декодирования, то есть 1, выбирают в качестве целевого кадра присвоения, и минимальное значение среди значений, не присвоенных в качестве индекса L0 в это время, то есть 0, присваивают кадру Р1 в качестве индекса L0.
Для команды RPLR "013", которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В3, как описано со ссылкой на фиг.18, кадр Р5, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum (=5), которое представляет собой PN кадра В3 как текущего кадра, находящегося в процессе декодирования, то есть 3, выбирают в качестве целевого кадра присвоения, и минимальное значение среди значений, не присвоенных в качестве индекса L1 в это время, то есть 0, присваивают кадру Р5 в качестве индекса L1.
После этого из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров Р4 Р5 и Bs2, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров Р4 Р5 и Bs2, для которых присвоение индекса L0 на основе команды RPLR не было выполнено, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Bs2, ближайшему к кадру В3 перед кадром В3 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру Р4, ближайшему к кадру В3 после кадра В3 в порядке РОС; и индекс L0, имеющий значение 3, присваивают кадру Р5, второму ближайшему к кадру В3 после кадра В3 в порядке РОС.
Из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров P1 Р4 и Bs2, для которых присвоение индекса L1 на основе команды RPLR не было выполнено, при принятом по умолчанию AVC, присваивают индекс L1, имеющий значение, равное или большее 1.
Таким образом, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров P1 Р4 и Bs2, для которых не был присвоен индекс L1 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L1, имеющий значение 1, присваивают кадру Р4, ближайшему к кадру В3 после кадра В3 в порядке РОС; индекс L1, имеющий значение 2, присваивают кадру Bs2, ближайшему к кадру В3 перед кадром В3 в порядке РОС; а индекс L1, имеющий значение 3, присваивают кадру Р1, второму ближайшему к кадру В3 перед кадром В3 в порядке РОС.
Кадр В3 не является опорным кадром, таким образом, кадр В3 не хранятся в DPB после декодирования.
Таким образом, как показано на фиг.19, как и после декодирования кадра Bs2, предыдущего перед кадром В3 в порядке декодирования, кадры Р1, Р4, Р5 и Bs2 по-прежнему хранятся в DPB.
В момент времени t6, следующий после времени t5, устройство декодирования выбирает кадр Р8 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р8.
Когда кадр Р8 декодируют, как показано на фиг.19, кадры Р1, Р4, Р5 и Bs2 содержатся в DPB, и кадр Р8 декодируют со ссылкой на кадры Р1, Р4, Р5 и Bs2, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
Остаток РОС от РОС кадра Р8 равен 8. В этом случае, как описано со ссылкой на фиг.18, "023" вырабатывают как команду RPLR и необходимый аргумент.
Для команды "023" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р8, как описано со ссылкой на фиг.18, кадр Р4, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum (=5), которое представляет собой PN кадра Р8 в качестве текущего кадра, находящегося в процессе декодирования, то есть 2, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру Р4 в качестве индекса L0.
После этого из кадры Р1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров P1 Р5 и Bs2, которым не был присвоен номер опорного кадра на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р1, Р4, Р5 и Bs2, хранящихся в DPB, для кадров P1 Р5 и Bs2, которым не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Bs2, ближайшему к кадру Р8 в порядке декодирования; индекс L0, имеющий значение 2 присваивают кадру Р5, второму ближайшему к кадру Р8 в порядке декодирования; и индекс L0, имеющий значение 3, присваивают кадру Р1, третьему ближайшему к кадру Р8 в порядке декодирования.
Кадр Р8 представляет собой опорный кадр, и кадр Р8 после декодирования хранятся в DPB.
Когда кадр Р8 хранится в DPB, как описано со ссылкой на фиг.17, кадр Bs2, хранящийся в DPB, выводят. В результате, как показано на фиг.19, кадры Р1, Р4, Р5 и Р8 хранятся в DPB.
В момент времени t7, следующий после времени t6, устройство декодирования выбирает кадр Р9 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р9.
Когда кадр Р9 декодируют, как показано на фиг.19, кадры Р1, Р4, Р5 и Р8 содержатся в DPB, и кадр Р9 декодируют со ссылкой на кадры Р1, Р4, Р5 и Р8, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
Остаток РОС от РОС кадра Р9 равен 9. В этом случае, как описано со ссылкой на фиг.18, "023" вырабатывают как команду RPLR и необходимый аргумент.
Для команды "023" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р9, как описано со ссылкой на фиг.18, кадр Р5, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum (=6), которое представляет собой PN кадра Р9 в качестве текущего кадра, находящегося в процессе декодирования, то есть 3, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру Р5 в качестве индекса L0.
После этого из кадров Р1, Р4, Р5 и Р8, хранящихся в DPB, для кадров P1 Р4 и Р8, которым не был присвоен номер опорного кадра на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р1, Р4, Р5 и Р8, хранящихся в DPB, для кадров P1 Р4 и Р8, которым не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р8, ближайшему к кадру Р9 в порядке декодирования; индекс L0, имеющий значение 2, присваивают кадру Р4, второму ближайшему к кадру Р9 в порядке декодирования; и индекс L0, имеющий значение 3, присваивают кадру Р1, третьему ближайшему к кадру Р9 в порядке декодирования.
Кадр Р9 представляет собой опорный кадр и, как описано со ссылкой на фиг.17, кадр Р9 после декодирования хранятся в DPB. В результате, как показано на фиг.19, кадры Р4, Р5, Р8 и Р9 хранятся в DPB.
В момент времени t8, следующий после времени t7, устройство декодирования выбирает кадр Bs6 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs6.
Когда кадр Bs6 декодируют, как показано на фиг.19, кадры Р4, Р5, Р8 и Р9 содержатся в DPB, и кадр Bs6 декодируют со ссылкой на кадры Р4, Р5, Р8 и Р9, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Остаток РОС от РОС кадра Bs6 равен 6. В этом случае, как описано со ссылкой на фиг.18, "043" вырабатывают как команду RPLR и необходимый аргумент.
Для команды "043" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования представляет собой кадр Bs6, как описано со ссылкой на фиг.18, кадр Р4, который имеет в качестве PN значение, полученное при вычитании abs_diff_pic_num_minus1+1 (=5) из CurrPicNum (=7), которое представляет собой PN кадра Bs6 как текущий кадр, находящийся в процессе декодирования, то есть 2, выбирают в качестве целевого кадра присвоения, и минимальное значение среди значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру Р4 в качестве индекса L0.
После этого из кадров Р4, Р5, Р8 и Р9, хранящихся в DPB, для кадров Р5 Р8 и Р9, которым не был присвоен индекс L0 на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р4, Р5, Р8 и Р9, хранящихся в DPB, для кадров Р5 Р8 и Р9, которым не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р5, ближайшему к кадру Bs6 перед кадром Bs6 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру Р8, ближайшему к кадру Bs6 после кадра Bs6 в порядке РОС; и индекс L0, имеющий значение 3, присваивают кадру Р9, второму ближайшему к кадру Bs6 после кадра Bs6 в порядке РОС.
Для кадров Р4 Р5, Р8 и Р9, хранящихся в DPB, которым не был присвоен индекс L1 на основе команды RPLR, при принятом по умолчанию AVC, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру Р8; индекс L1, имеющий значение 1, присваивают кадру Р9; индекс L1, имеющий значение 2, присваивают кадру Р5; и индекс L1, имеющий значение 3, присваивают кадру Р4.
Кадр Bs6 представляет собой опорный кадр, и кадр Bs6 после декодирования хранятся в DPB. В результате как показано на фиг.17, кадры Р5, Р8, Р9 и Bs6 содержатся в DPB.
В момент времени t9, следующий после времени t8, устройство декодирования выбирает кадр В7 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В7.
Когда кадр В7 декодируют, как показано на фиг.19, кадры Р5, Р8, Р9 и Bs6 содержатся в DPB, и кадр В7 декодируют со ссылкой на кадры Р5, Р8, Р9 и Bs6, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Остаток РОС от РОС кадра В7 равен 7. В этом случае, как описано со ссылкой на фиг.18, "043" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент.
Для команды "043" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, как описано со ссылкой на фиг.18, кадр Р5, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_mininus1+1 (=5) из CurrPicNum (=8), которое представляет собой PN кадра В7 в качестве текущего кадра, находящегося в процессе декодирования, то есть, 3, выбирают в качестве целевого кадра присвоения, и минимальное значение среди значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру Р5 в качестве индекса L0.
Для команды "013" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В7, как описано со ссылкой на фиг.18, кадр Р9, которое имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum (=8), которое представляет собой PN кадра В7 в качестве текущего кадра, находящегося в процессе декодирования, то есть 6, выбирают в качестве целевого кадра присвоения, и минимальное значение среди значений, не присвоенных для индекса L1 в это время, то есть 0, присваивают кадру Р9 в качестве индекса L1.
После этого из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, для кадров Р8 Р9 и Bs6, которым не был присвоен индекс L0 на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, для кадров Р8 Р9 и Bs6, которым не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Bs6, ближайшему к кадру В7 перед кадром В7 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру Р8, ближайшему к кадру В7 после кадра В7 в порядке РОС; и индекс L0, имеющий значение 3, присваивают кадру Р9, второму ближайшему к кадру В7 после кадра В7 в порядке РОС.
Из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, для кадров Р5 Р8 и Bs6, для которых не был присвоен индекс L1 на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L1, имеющий значение, равное или большее 1.
Таким образом, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, для кадров Р5 Р8 и Bs6, для которых не был присвоен индекс L1 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L1, имеющий значение 1, присваивают кадру Р8, ближайшему к кадру В7 после кадра В7 в порядке РОС; индекс L1, имеющий значение 2, присваивают кадру Bs6, ближайшему к кадру В7 перед кадром В7 в порядке РОС; и индекс L1, имеющий значение 3, присваивают кадру Р5, второму ближайшему к кадру В7 перед кадром В7 в порядке РОС.
Кадр В7 не является опорным кадром, таким образом, кадр В7 не сохраняют в DPB после декодирования.
Таким образом, как показано на фиг.19, как и после декодирования кадра Bs6, предыдущего перед кадром В7 в порядке декодирования, кадры Р5, Р8, Р9 и Bs6 по-прежнему содержатся в DPB.
В момент времени t10, следующий после времени t9, устройство декодирования выбирает кадр Р12 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р12.
Когда кадр Р12 декодируют, как показано на фиг.19, кадры Р5, Р8, Р9 и Bs6 содержатся в DPB, и кадр Р12 декодируют со ссылкой на кадры Р5, Р8, Р9 и Bs6, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
Остаток РОС от РОС кадра Р12 равен 12. В этом случае, как описано со ссылкой на фиг.18, "023" вырабатывают как команду RPLR и необходимый аргумент.
Для команды "023" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р12, как описано со ссылкой на фиг.18, кадр Р8, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum (=8), которое представляет собой PN кадра Р12 в качестве текущего кадра, находящегося в процессе декодирования, то есть 5, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру Р8 в качестве индекса L0.
После этого из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, для кадров Р5 Р9 и Bs6, которым не был присвоен номер опорного кадра на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р5, Р8, Р9 и Bs6, хранящихся в DPB, для кадров Р5 Р9 и Bs6, которым не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Bs6, ближайшему к кадру Р12 в порядке декодирования; индекс L0, имеющий значение 2, присваивают кадру Р9, второму ближайшему к кадру Р12 в порядке декодирования; и индекс L0, имеющий значение 3, присваивают кадру Р5, третьему ближайшему к кадру Р412 в порядке декодирования.
Кадр Р12 представляет собой опорный кадр, и кадр Р12 после декодирования хранятся в DPB.
Когда кадр Р12 содержится в DPB, как описано со ссылкой на фиг.17, кадр Bs6, содержащийся в DPB, выводят. В результате, как показано на фиг.19, кадры Р5, Р8, Р9 и Р12 содержатся в DP В.
В момент времени t11, следующий после времени t10, устройство декодирования выбирает кадр Р13 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р13.
Когда кадр Р13 декодируют, как показано на фиг.19, кадры Р5, Р8, Р9 и Р12 содержатся в DPB, и кадр Р13 декодируют со ссылкой на кадры Р5, Р8, Р9 и Р12, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
Остаток РОС от РОС кадра Р13 равен 13. В этом случае, как описано со ссылкой на фиг.18, "023" вырабатывают как команду RPLR и необходимый аргумент.
Для команды "023" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р13, как описано со ссылкой на фиг.
18, кадр Р9, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=3) из CurrPicNum (=9), которое представляет собой PN кадра Р13 в качестве текущего кадра, находящегося в процессе декодирования, то есть 6, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру Р9 в качестве индекса L0.
После этого из кадров Р5, Р8, Р9 и Р12, хранящихся в DPB, для кадров Р5 Р8 и Р12, которым не был присвоен номер опорного кадра на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р5, Р8, Р9 и Р12, хранящихся в DPB, для кадров Р5 Р8 и Р12, которым не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру P12, ближайшему к кадру Р13 в порядке декодирования; индекс L0, имеющий значение 2 присваивают кадру Р8, второму ближайшему к кадру Р13 в порядке декодирования; и индекс L0, имеющий значение 3, присваивают кадру Р5, третьему ближайшему к кадру Р13 в порядке декодирования.
Кадр Р13 представляет собой опорный кадр, и, как описано со ссылкой на фиг.17, кадр Р13 после декодирования хранятся в DPB. В результате как показано на фиг.19, кадры Р8, Р9, Р12 и Р13 содержатся в DPB.
В момент времени t12, следующий после времени t11, устройство декодирования выбирает кадр Bs10 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs10.
Когда кадр Bs10 декодируют, как показано на фиг.19, кадры Р8, Р9, Р12 и Р13 содержатся в DPB, и кадр Bs10 декодируют со ссылкой на кадры Р8, Р9, Р12 и Р13, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Остаток РОС от РОС кадра Bs10 равен I0. В этом случае, как описано со ссылкой на фиг.18, "043" вырабатывают как команду RPLR и необходимый аргумент.
Для команды "043" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования представляет собой кадр Bs10, как описано со ссылкой на фиг.
18, кадр Р8, который имеет в качестве PN значение, полученное путем вычитания abs_difr_pic_num_minus1+1 (=5) из CurrPicNum (=I0), которое представляет собой PN кадра Bs10 в качестве текущего кадра, находящегося в процессе декодирования, то есть 5, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру Р8 в качестве индекса L0.
После этого из кадров Р8, Р9, Р12 и Р13, хранящихся в DPB, для кадров Р9 Р12 и Р13, которым не был присвоен индекс L0 на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р8, Р9, Р12 и Р13, хранящихся в DPB, для кадров Р9 Р12 и Р13, которым не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р9, ближайшему к кадру Bs10 перед кадром Bs10 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру Р12, ближайшему к кадру Bs10 после кадра Bs10 в порядке РОС; и индекс L0, имеющий значение 3, присваивают кадру Р13, второму ближайшему к кадру Bs10 после кадра Bs10 в порядке РОС.
Для кадров Р8 Р9, Р12 и Р13, хранящихся в DPB, которым не был присвоен индекс L1 на основе команды RPLR, при принятом по умолчанию AVC, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру Р12; индекс L1, имеющий значение 1, присваивают кадру Р13; индекс L1, имеющий значение 2, присваивают кадру Р9; и индекс L1, имеющий значение 3, присваивают кадру Р8.
Кадр Bs10 представляет собой опорный кадр, и кадр Bs10 после декодирования хранятся в DPB. В результате как показано на фиг.17, кадры Р9, Р12, Р13 и Bs10 содержатся в DP В.
В момент времени t13, следующий после времени t12, устройство декодирования выбирает кадр В11 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр ВН.
Когда кадр В11 декодируют, как показано на фиг.19, кадры Р9, Р12, Р13 и Bs10 содержатся в DPB, и кадр В11 декодируют со ссылкой на кадры Р9, Р12, Р13 и Bs10, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Остаток РОС для РОС кадра В11 равен П. В этом случае, как описано со ссылкой на фиг.18, "043" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент.
Для команды "043" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования представляет собой кадр В11, как описано со ссылкой на фиг.18, кадр Р9, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum (=11), которое представляет собой PN кадра В11 в качестве текущего кадра, находящегося в процессе декодирования, то есть 6, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру Р9 в качестве индекса L0.
Для команды "013" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В11, как описано со ссылкой на фиг.18, кадр Р13, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=2) из CurrPicNum (=11), которое представляет собой PN кадра В11 в качестве текущего кадра, находящегося в процессе декодирования, то есть 9, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L1 в это время, то есть 0, присваивают кадру Р13 в качестве индекса L1.
После этого из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, для кадров Р12 Р13 и Bs10, которым не был присвоен индекс L0 на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, для кадров Р12 Р13 и Bs10, которым не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Bs10, ближайшему к кадру В11 перед кадром В11 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру Р12, ближайшему к кадру В11 после кадра В11 в порядке РОС; и индекс L0, имеющий значение 3, присваивают кадру Р13, второму ближайшему к кадру B11 после кадра В11 в порядке РОС.
Из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, для кадров Р9, Р12 и Bs10, для которых не был присвоен индекс L1 на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L1, имеющий значение, равное или большее 1.
Таким образом, из кадров Р9, Р12, Р13 и Bs10, хранящихся в DPB, для кадров Р9 Р12 и Bs10, для которых не был присвоен индекс L1 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L1, имеющий значение 1, присваивают кадру Р12, ближайшему к кадру B11 после кадра В11 в порядке РОС; индекс L1, имеющий значение 2, присваивают кадру Bs10, ближайшему к кадру В11 перед кадром В11 в порядке РОС; и индекс L1, имеющий значение 3, присваивают кадру Р9, второму ближайшему к кадру В11 перед кадром B11 в порядке РОС.
Кадр В11 не является опорным кадром, таким образом, кадр В11 не содержится в DPB после декодирования.
Таким образом, как показано на фиг.19, как и после декодирования кадра Bs10, предыдущего перед кадром В11 в порядке декодирования, кадры Р9, Р12, Р13 и Bs10 по-прежнему содержатся в DPB.
В момент времени tl4, следующий после времени tl3, устройство декодирования выбирает кадр I16 (I0) в G0P№1 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр I16 без межкадрового прогнозирования.
Таким образом, когда кадр I16 декодируют, как показано на фиг.17, кадры Р9, Р12, Р13 и Bs10 содержатся в DPB, и кадр I16 декодируют независимо от кадров Р9, Р12, Р13 и Bs10, содержащихся в DPB.
Кадр I16 представляет собой опорный кадр, и кадр I16 после декодирования хранятся в DPB.
Когда кадр I16 содержится в DPB, как описано со ссылкой на фиг.17, кадр Bs10 как долгосрочный опорный кадр, содержащийся в DPB, выводят. В результате как показано на фиг.19, кадры Р9, Р12, Р13 и I16 содержатся в DPB.
В момент времени t15, следующий после времени t14, устройство декодирования выбирает кадр Р17 (P1) в G0P№1 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р17.
Когда кадр Р17 декодируют, как показано на фиг.19, кадры Р9, Р12, Р13 и I16 содержатся в DPB, и кадр Р17 декодируют со ссылкой на кадры Р9, Р12, Р13 и I16, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0.
Остаток РОС для РОС кадра Р17 равен 1. В этом случае, как описано со ссылкой на фиг.18, "023" вырабатывают как команду RPLR и необходимый аргумент.
Для команды "023" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Р17, как описано со ссылкой на фиг.18, кадр Р13, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_nuin_minus1+1 (=3) из CurrPicNum (=12), которое представляет собой PN кадра Р17, в качестве текущего кадра, находящегося в процессе декодирования, то есть 9, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру Р13 в качестве индекса L0.
После этого из кадров Р9, Р12, Р13 и I16, хранящихся в DPB, для кадров Р9 Р12 и I16, которым не был присвоен номер опорного кадра на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р9, Р12, Р13 и I16, хранящихся в DPB, для кадров Р9 Р12 и I16, которым не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру I16, ближайшему к кадру Р17 в порядке декодирования; индекс L0, имеющий значение 2, присваивают кадру Р12, второму ближайшему к кадру Р17 в порядке декодирования; и индекс L0, имеющий значение 3, присваивают кадру Р9, третьему ближайшему к кадру Р17 в порядке декодирования.
Кадр Р17 представляет собой опорный кадр, и, как описано со ссылкой на фиг.17, кадр Р17 после декодирования хранятся в DPB. В результате как показано на фиг.19, кадры Р12, Р13,I16 и Р17 содержатся в DPB.
В момент времени t16, следующий после времени t15, устройство декодирования выбирает кадр Bs14 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Bs14.
Когда кадр Bs14 декодируют, как показано на фиг.19, кадры Р12, Р13, I16 и Р17 содержатся в DPB, и кадр Bs14 декодируют со ссылкой на кадры Р12, Р13, I16 и Р17, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Остаток РОС от РОС кадра Bs14 равен 14. В этом случае, как описано со ссылкой на фиг.18, "043" вырабатывают как команду RPLR и необходимый аргумент.
Для команды "043" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр Bs 14, как описано со ссылкой на фиг.18, кадр Р12, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum (=13), которое представляет собой PN кадра Bs 14 в качестве текущего кадра, находящегося в процессе декодирования, то есть 8, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру Р12 в качестве индекса L0.
После этого из кадров Р12, Р13, I16 и Р17, хранящихся в DPB, для кадров Р13 I16 и Р17, которым не был присвоен индекс L0 на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р12, Р13,I16 и Р17, хранящихся в DPB, для кадров Р13 I16 и Р17, которым не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Р13, ближайшему к кадру Bs14 перед кадром Bs14 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру I16, ближайшему к кадру Bs14 после кадра Bs14 в порядке РОС; и индекс L0, имеющий значение 3, присваивают кадру Р17, второму ближайшему к кадру Bs14 после кадра Bs14 в порядке РОС.
Для кадров Р12 Р13, I16 и Р17, хранящихся в DPB, которым не был присвоен индекс L1 на основе команды RPLR, при принятом по умолчанию AVC, присвоение выполняют следующим образом: индекс L1, имеющий значение 0, присваивают кадру I16; индекс L1, имеющий значение 1, присваивают кадру Р17; индекс L1, имеющий значение 2, присваивают кадру Р13; и индекс L1, имеющий значение 3, присваивают кадру Р12.
Кадр Bs 14 представляет собой опорный кадр, и кадр Bs14 после декодирования хранятся в DPB. В результате как показано на фиг.17, кадры Р13, I16, Р17 и Bs14 содержатся в DPB.
В момент времени tl7, следующий после времени t16, устройство декодирования выбирает кадр В15 в GOP№0 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр В15.
Когда кадр В15 декодируют, как показано на фиг.19, кадры Р13, I16, Р17 и Bs14 содержатся в DPB, и кадр В15 декодируют со ссылкой на кадры Р13, I16, Р17 и Bs14, содержащиеся в DPB, по мере необходимости, чтобы создать прогнозируемое изображение для прогнозирования L0 или прогнозирования L1.
Остаток РОС от РОС кадра В15 равен 15. В этом случае, как описано со ссылкой на фиг.18, "043" и "013" последовательно вырабатывают как команду RPLR и необходимый аргумент.
Для команды "043" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, как описано со ссылкой на фиг.18, кадр Р13, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_minus1+1 (=5) из CurrPicNum (=14), которое представляет собой PN кадра В15 в качестве текущего кадра, находящегося в процессе декодирования, то есть 9, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L0 в это время, то есть 0, присваивают кадру Р13 в качестве индекса L0.
Для команды "013" RPLR, которую вырабатывают, когда текущий кадр, находящийся в процессе декодирования, представляет собой кадр В15, как описано со ссылкой на фиг.18, кадр Р17, который имеет в качестве PN значение, полученное путем вычитания abs_diff_pic_num_iriinus1+1 (=2) из CurrPicNum, которое является PN (=14) кадра В15 в качестве текущего кадра, находящегося в процессе декодирования, то есть 12, выбирают в качестве целевого кадра присвоения, и минимальное значение из значений, не присвоенных для индекса L1 в это время, то есть 0, присваивают кадру Р17 в качестве индекса L1.
После этого из кадров Р13,I16, Р17 и Bs14, хранящихся в DPB, для кадров I16 Р17 и Bs14, которым не был присвоен индекс L0 на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, для кадров I16 Р17 и Bs14, которым не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Bs14, ближайшему к кадру В15 перед кадром В15 в порядке РОС; индекс L0, имеющий значение 2, присваивают кадру I16, ближайшему к кадру В15 после кадра В15 в порядке РОС; и индекс L0, имеющий значение 3, присваивают кадру Р17, второму ближайшему к кадру В15 после кадра В15 в порядке РОС.
Из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, для кадров Р13 I16 и Bs14, для которых не был присвоен индекс L1 на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L1, имеющий значение, равное или большее 1.
Таким образом, из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, для кадров Р13 I16 и Bs14, для которых не был присвоен индекс L1 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L1, имеющий значение 1, присваивают кадру I16, ближайшему к кадру В15 после кадра В15 в порядке РОС; индекс L1, имеющий значение 2, присваивают кадру Bs14, ближайшему к кадру В15 перед кадром В15 в порядке РОС; и индекс L1, имеющий значение 3, присваивают кадру Р13, второму ближайшему к кадру В15 перед кадром В15 в порядке РОС.
Кадр В15 не является опорным кадром, таким образом, кадр В15 не содержится в DPB после декодирования.
Таким образом, как показано на фиг.19, как и после декодирования кадра Bs14, предыдущего перед кадром В15 в порядке декодирования, кадры Р13, I16, Р17 и Bs14 по-прежнему содержатся в DPB.
Хотя это и не показано на фиг.19, в момент времени, следующий после времени tl7, устройство декодирования выбирает кадр Р20 (Р4) из G0P№1 как текущий кадр, находящийся в процессе декодирования, и декодирует кадр Р20.
Когда декодируют кадр Р20, как показано на фиг.19, кадры Р13, I16, Р17 и Bs14 хранятся в DPB, и кадр Р20 декодируют со ссылкой на кадры Р13, I16, Р17 и Bs14, хранящиеся в DPB, в соответствии с необходимостью, для формирования прогнозируемого изображения в соответствии с прогнозированием L0.
В этом случае устройство декодирования присваивает индекс L0, имеющий значение О, кадру I16 из кадров Р13,I16, Р17 и Bs14, хранящихся в DPB, в соответствии с командой RPLRcPOC=4 по фиг.18.
После этого из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, для кадров Р13 Р17 и Bs14, которым не был присвоен номер опорного кадра на основе команды RPLR, при принятом по умолчанию AVC, присваивают индекс L0, имеющий значение, равное или большее 1.
Таким образом, из кадров Р13, I16, Р17 и Bs14, хранящихся в DPB, для кадров Р13, Р17 и Bs14, которым не был присвоен индекс L0 на основе команды RPLR, как показано на фиг.19, присвоение выполняют следующим образом: индекс L0, имеющий значение 1, присваивают кадру Bs14, ближайшему к кадру Р20 в порядке декодирования; индекс L0, имеющий значение 2, присваивают кадру Р17, второму ближайшему к кадру Р20 в порядке декодирования; и индекс L0, имеющий значение 3, присваивают кадру Р13, третьему ближайшему к кадру Р20 в порядке декодирования.
Как описано выше, при команде RPLR по фиг.18, когда вырабатывают команду ММСО на фиг.16, присвоение номера опорного кадра опорному кадру выполняют таким образом, чтобы минимальный номер опорного кадра, то есть 0, был присвоен кадру, который представляет собой кадр изображения из изображения L и изображения R, полученный с той же точки наблюдения, что и текущий кадр, находящийся в процессе декодирования, и находится ближе всего к текущему кадру, находящемуся в процессе декодирования, в порядке отображения, из кадров, которые были декодированы по времени раньше, чем текущий кадр, находящийся в процессе декодирования, и которые могут стать опорными кадрами.
В частности, как описано со ссылкой на фиг.17, например, в момент времени t3, когда кадр Р5 становится текущим кадром, находящимся в процессе декодирования, кадры I0, Р1 и Р4 хранятся в DPB.
Кадр Р5 представляет собой кадр изображения R, и из кадров I0, Р1 и Р4, хранящихся в DPB, кадр, который представляет собой кадр изображения R, полученный с той же точки наблюдения и по времени ближайший к кадру Р45, который является кадром изображения R, - это кадр Р1.
Таким образом, для кадра Р5, из кадров I0, Р1 и Р4, хранящихся в DPB, ошибка прогнозирования для прогнозируемого изображения с кадром Р1 в качестве опорного кадра, весьма вероятно, сведена к минимуму.
Из кадров I0, Р1 и Р4, хранящихся в DPB, для кадров I0 и Р4, которые представляют собой кадры изображения L, полученные с другой точки наблюдения, чем кадр Р5 изображения R, кадр Р4 по времени расположен ближе к кадру Р45, чем кадр I0, и составляет пару LR с кадром Р5. Таким образом, ошибка прогнозирования прогнозируемого изображения, которое сформировано с кадром Р4 в качестве опорного кадра, весьма вероятно, будет меньше, чем ошибка прогнозирования прогнозируемого изображения, которое сформировано с кадром I0 в качестве опорного кадра.
Учитывая описанное выше, кадры I0, Р1 и Р4, хранящиеся в DPB, весьма вероятно, будут использоваться при формировании прогнозируемого изображения кадра Р5 в порядке убывания возможности уменьшения ошибки прогнозирования, то есть, в порядке кадров P1, Р4, и I0.
Поэтому, когда кадр Р5 становится текущим кадром, находящимся в процессе декодирования, для кадров I0, Р1 и Р4, хранящихся в DPB, присвоение выполняют следующим образом: индекс L0, имеющий минимальное значение, то есть 0, присваивают кадру Р1; индекс L0, имеющий второе наибольшее значение, то есть 1, присваивают кадру Р4; и индекс L0, имеющий третье наибольшее значение, то есть 2, присваивают кадру I0. Таким образом, меньшее значение, которое кодируют для кода с меньшим значением кода, вероятно, становится номером опорного кадра, представляющим опорный кадр, к которому обращаются, когда декодируют кадр Р5, таким образом, может быть улучшена эффективность кодирования.
Однако при принятом по умолчанию AVC, как описано со ссылкой на фиг.17, в качестве индекса L0 для кадра Р1 присваивают 1, 0 присваивают кадру Р4, а 2 присваивают кадру I0.
В то же время, для команды RPLR по фиг.18, когда кадр Р5 становится текущим кадром, находящимся в процессе декодирования (текущим кадром, находящимся в процессе кодирования), для кадров I0, Р1 и Р4, хранящихся в DPB, присвоение выполняют следующим образом: индекс L0, имеющий минимальное значение, то есть 0, присваивают кадру Р1; индекс L0, имеющий второе по величине значение, то есть 1, присваивают кадру Р4; и индекс L0, имеющий третье по величине значение, то есть 2, присваивают кадру I0. Таким образом, минимальное значение, то есть 0, присваивают кадру Р1 в качестве индекса L0, что, весьма вероятно, уменьшает ошибку прогнозирования, таким образом, может быть улучшена эффективность кодирования.
Как описано со ссылкой на фиг.17, при команде ММСО по фиг.16, например, в момент времени t8, когда кадр Bs6 изображения L подвергают межкадровому прогнозированию, кадр Р4, который представляет собой кадр изображения L, непосредственно предшествующий кадру Bs6, и, весьма вероятно, может уменьшить ошибку прогнозирования, хранится в DPB. В то же время, при принятом по умолчанию AVC, в качестве индекса L01, присваивают кадру Р4, что не является минимальным значением.
В то же время, если команду RPLR фиг.18 вырабатывают вместе с командой ММСО по фиг.16, как описано со ссылкой на фиг.19, когда декодируют кадр Bs6, минимальное значение, то есть 0, присваивают в качестве индекса L0 кадру Р4, что весьма вероятно, уменьшает ошибку прогнозирования. Таким образом, индекс L0, весьма вероятно, будет кодирован в код с меньшим объемом кода, и, таким образом, эффективность кодирования может быть улучшена.
Описание компьютера, в котором применяется изобретение
Далее, последовательность обработки, описанная выше, может быть выполнена с использованием аппаратных средств или программных средств. Когда последовательность обработки выполняют с использованием программного обеспечения, программу, составляющую программное обеспечение, устанавливают на компьютер общего назначения или тому подобное.
На фиг.20 показан пример конфигурации варианта выполнения компьютера, в котором установлена программа для выполнения последовательности обработки, описанной выше.
Программа может быть записана заранее на жесткий диск 105 или в ПЗУ 103, используемое в качестве внутреннего носителя записи в компьютере.
Программа может быть сохранена (записана) на съемный носитель 111 записи. Такой съемный носитель 111 записи может быть предоставлен как так называемое пакетное программное обеспечение. Примеры съемного носителя 111 записи включают в себя гибкий диск, CD-ROM (постоянное запоминающее устройство на компакт-диске), МО (магнитооптический) диск, DVD (цифровой универсальный диск), магнитный диск, полупроводниковое запоминающее устройство и т.п.
Программа может быть загружена в компьютер через сеть передачи данных или через сеть широковещательной передачи и установлена на внутренний жесткий диск 105, вместо установки с описанного выше съемного носителя 111 записи в компьютер. Таким образом, программа может быть передана, например, с сайта загрузки в компьютер через искусственный спутник для широковещательной цифровой спутниковой передачи, выполняемой по беспроводному каналу, или может быть передана в компьютер через сеть, такую как LAN (ЛВС, локальная вычислительная сеть) или Интернет по проводам.
Компьютер имеет CPU (ЦПУ, центральное процессорное устройство) 102, установленное в нем. Интерфейс 110 входа/выхода соединен с ЦПУ 102 через шину 101.
Если пользователь работает со входным модулем 107, и поступает инструкция через интерфейс 110 входа/выхода, ЦПУ 102 запускает программу, хранящуюся в ROM (ПЗУ, постоянное запоминающее устройство) 103 в соответствии с этой инструкцией. В качестве альтернативы, ЦПУ 102 загружает и выполняет программу, хранящуюся на жестком диске 105, в RAM (ОЗУ, оперативное запоминающее устройство) 104.
Учитывая описанное выше, ЦПУ 102 выполняет обработку, описанную выше в блок-схеме последовательности операций, или обработку, выполняемую конфигурацией описанной выше блок-схемы. ЦПУ 102 выводит результат обработки в соответствии с необходимостью, например, из модуля 106 вывода через интерфейс 110 ввода/вывода, или передает результат обработки из модуля 108 передачи данных, и записывает результат обработки на жестком диске 105.
Модуль 107 ввода включает в себя клавиатуру, мышь, микрофон или тому подобное. Модуль 106 вывода включает в себя LCD (ЖКД, жидкокристаллический дисплей), громкоговоритель или тому подобное.
В данном описании обработка, выполняемая компьютером в соответствии с программой, может быть выполнена не в соответствии с временной последовательностью в соответствии с порядком, описанным в блок-схеме последовательности операций. Таким образом, обработка, выполняемая компьютером в соответствии с программой, включает в себя обработку, выполняемую параллельно или по отдельности (например, параллельная обработка или обработка объектами).
Программа может быть обработана на отдельном компьютере (процессоре) или может быть обработана в распределенном виде множеством компьютеров. Программа может также быть передана в удаленный компьютер и выполнена.
Вариант выполнения изобретения не ограничивается приведенным выше вариантом выполнения, но различные изменения могут быть выполнены без выхода за пределы объема и сущности изобретения.
Так, изобретение можно применять к устройству кодирования, в котором декодируемое изображение, полученное путем кодирования кадров и путем выполнения локального декодирования, хранится как опорный кадр, к которому обращаются при формировании прогнозируемого изображения для использования при более позднем по времени предиктивном кодировании, в дополнение к устройству кодирования AVC.
Хотя в данном варианте выполнения, кодирование и декодирование выполняют для последовательности кадров, в которой кадры изображения L и изображения R, используемые как первое и второе изображения, имеющие отличие, составляющее 3D изображение, расположены поочередно, для кодирования и декодирования может использоваться такая последовательность кадров, в которой кадры первого и второго изображений, имеющие другое отличие, чем у 3D изображения, то есть, кадры произвольных первого и второго изображений, полученных с разных точек наблюдения, расположены поочередно.
Структура GOP не ограничивается структурой, описанной со ссылкой на фиг.4 или тому подобное.
Хотя в данном варианте выполнения, max_dec_frame_buffering установлен равным 4, и num_ref_frames установлен равным 3, max_dec_frame_buffering и num_ref_frames не ограничены этими значениями.
Настоящая заявка содержит предмет изобретения, относящийся к тому, что раскрыто в приоритетной заявке на японский патент JP 2009-231752, поданной в японское патентное ведомство 5 октября 2009 г., полное содержание которой приведено здесь в качестве ссылочного материала.
Для специалистов в данной области техники должно быть понятно, что различные модификации, комбинации, подкомбинации и изменения могут возникнуть в зависимости от требований к конструкции и других факторов, если только они находятся в пределах объема приложенной формулы изобретения или ее эквивалентов.