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

Область техники, к которой относится изобретение
Настоящее раскрытие относится к устройству и способу обработки изображения и, в частности, к устройству и способу обработки изображения, способным сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
Уровень техники
В последние годы для целей оцифровки информации изображения и передачи и накопления в этом случае информации с высокой эффективностью, получили широкое распространение устройства, которые сжимают и кодируют изображения, используя особую для информации изображения избыточность, и которые используют схему кодирования, выполняющую сжатие посредством ортогонального преобразования, такого как дискретное косинусное преобразование, и компенсации движения. К такой схеме кодирования относится, например, Moving Picture Experts Group (MPEG).
В частности, MPEG2 (ISO/IEC 13818-2) является стандартом, определяемым как универсальная система кодирования изображения, и охватывает изображения с чересстрочной разверткой, изображения с прогрессивной разверткой, изображения со стандартной разрешающей способностью и изображения высокой четкости. Например, MPEG2 широко используется в широком диапазоне применений для профессионального и потребительского использования. Используя способ сжатия MPEG2, например, в случае, когда изображение с чересстрочной разверткой со стандартной разрешающей способностью имеет 720×480 пикселей, назначается объем кода (битовая скорость) 4-8 Мбит/с. Дополнительно, используя способ сжатия MPEG2, например, в случае, когда изображение с чересстрочной разверткой со стандартной разрешающей способностью имеет 1920×1088 пикселей, назначается объем кода (битовая скорость) 18-22 Мбит/с. Таким образом, можно реализовывать высокий коэффициент сжатия и превосходное качество изображения.
MPEG2 предназначен, главным образом, для кодирования высокой четкости, пригодного для вещания, но он не поддерживает схему кодированию, имеющую объем кодирования (битовую скорость) ниже MPEG1, то есть, схему кодирования с высокой степенью сжатия. В связи с распространением мобильных терминалов, потребность в такой схеме кодирования в будущем, как ожидается, должна возрастать и поэтому схема кодирования MPEG4 была стандартизирована. В отношении этой схемы кодирования изображения, в декабре 1998 г. был принят международный стандарт, утвержденный как ISO/IEC 14496-2.
Дополнительно, в последние годы для целей кодирования изображений для видеоконференций произошла стандартизация стандарта, названного H.26L (ITU-T (International Telecommunication Union Telecommunication Standardization Sector, сектор стандартизации в области электросвязи Международного союза электросвязи) Q6/16 VCEG (Video Coding Expert Group, группа экспертов по видеокодированию)). H.26L требует большего объема вычислений при кодировании и декодировании, чем существующая схема кодирования, такая как MPEG2 или MPEG4, но, как известно, позволяет реализовать высокую эффективность кодирования. Дополнительно, в настоящее время, как часть деятельности по MPEG4, основываясь на H.26L, была проведена стандартизация в виде объединенной модели (Joint Model) видеокодирования с улучшенным сжатием (Enhanced-Compression Video Coding), содержащая в себе даже функции, не поддерживаемые H.26L и реализующая более высокую эффективность кодирования.
Согласно календарному графику стандартизации, международный стандарт под названием Н.264 и MPEG-4 Часть L0 (Advanced Video Coding, здесь далее упоминаемый как H.264/AVC) был принят в марте 2003 г.
Однако, размер микроблока 16×16 пикселей может быть не оптимален для больших кадров изображения, таких как Ultra High Definition (UHD, сверхвысокое разрешение; 4000×2000 пикселей), представляющих собой цель для схемы кодирования следующего поколения.
Кроме того, в настоящее время, чтобы дополнительно повысить эффективность кодирования по сравнению с H.264/AVC, группой совместного сотрудничества по видеокодированию, CTVC (Joint Collaboration Team-Video Coding), являющейся совместной группой по стандартизации организаций ITU-T (Международный союз электросвязи - сектор телекоммуникаций) и ISO/IEC (Международная организация по стандартизации/Международная электротехническая комиссия) была проведена стандартизация схемы кодирования под названием HEVC (High Efficiency Video Coding, видеокодирование высокой эффективности). Проект Комитета по стандарту HEVC, являющийся первой версией проекта технических требований, был выпущен в феврале 2012 г. (например, смотрите непатентный документ 1).
Помимо этого, в прошлом, в качестве одной из схем трехмерного расширения HEVC, была рассмотрена схема изменения уровня CU и улучшения характеристик кодирования небазовой проекции. В качестве одного их инструментов этой схемы существует межпроекционное предсказание движения (IVMP), при котором кодированный вектор другой проекции используется в качестве возможного кандидата на вектор предсказания небазовой проекции (например, смотрите непатентный документ 2).
Например, в стандартной версии 1 HEVC существует временной инструмент MVP (TMVP), в котором вектор движения картинки с другой синхронизацией может использоваться в качестве возможного кандидата вектора предсказания. При использовании такого инструмента вектор движения (MV) кодированной картинки сохраняется для TMVP. Вектор движения (MV) кодируется минимум в блоках 4×4, но информация об этом сжимается в блоках 16×16, пока не будет направлена в TMVP. Это сжатие снижает точность предсказания вектора движения (MV), но объем памяти, хранящей вектор движения, может быть уменьшен до 1/16.
Перечень литературы
Непатентный документ
Непатентный документ 1: Benjamin Bross, Woo-Jin Han, Jens-Rainer Ohm, Gary J. Sullivan, Thomas Wiegand, "High efficiency video coding (HEVC) text specification draft 6," JCTVC-H1003 ver 20, February 17, 2012
Непатентный документ 2: Yoshiya Yamamoto, Tomohiro Ikai, Tadashi Uchiumi, "3D-CE5.h related: Simplification of AMVP," JCT2-A0014, Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 111st Meeting: Stockholm, SE, 16-20 July, 2012
Раскрытие изобретения
Проблемы, решаемые изобретением
Однако в системе IVMP такая функция сжатия вектора движения не подготавливается. Другими словами, в случае IVMP вектор движения является вектором с точностью во время кодирования на другом уровне. Например, когда вектор движения кодируется в минимальных блоках 4×4, для IVMP необходим временный буфер, хранящий вектор движения с точностью 4×4.
Другими словами, в этом временном буфере необходима емкость, способная хранить по меньшей мере "вектор движения с точностью 4×4 на один экран" для одной проекции. Таким образом, во временном буфере необходима емкость, которая в 16 раз больше, чем когда сохраняется вектор движения для TMVP, который должен сжиматься с точностью до 16×16, (быть способен хранить 16 картинок).
Другими словами, емкость хранения, необходимая для кодирования и декодирования, из-за IVMP, вероятно, должна увеличиваться.
Настоящее раскрытие было сделано в свете вышесказанного и желательно, чтобы имелась возможность уменьшить увеличение емкости хранения, необходимой для кодирования и декодирования.
Решения проблем
Вариантом настоящей технологии является устройство обработки изображения, содержащее: модуль компенсации движения для выполнения компенсации движения при декодировании текущего уровня; и первый модуль сжатия для сжатия вектора движения текущего уровня, реконструированного модулем компенсации движения и используемый для компенсации движения при декодировании другого уровня.
Устройство обработки изображения может дополнительно содержать второй модуль сжатия для сжатия вектора движения текущего уровня, реконструированного модулем компенсации движения, с коэффициентом сжатия, большим, чем коэффициент сжатия первого модуля сжатия, и модуль компенсации движения может выполнять компенсацию движения при декодировании текущего уровня, с использованием вектора движения, сжатого вторым модулем сжатия.
Второй модуль сжатия может дополнительно сжимать вектор движения, сжатый первым модулем сжатия.
Блок компенсации движения может выполнять компенсацию движения при декодировании текущего уровня, с использованием вектора движения, сжатого первым модулем сжатия.
Устройство обработки изображения может дополнительно содержать: приемный модуль для приема фага, указывающего, используется ли вектор движения текущего уровня при компенсации движения во время декодирования другого уровня; и модуль выбора для выбора вектора движения, сжатого первым блоком сжатия, в качестве вектора движения текущего уровня, используемого при компенсации движения во время декодирования другого уровня, когда флаг, принятый приемным блоком, указывает что вектор движения сжат, и выбора вектора движения, который не сжат первым модулем сжатия, в качестве вектора движения текущего уровня, используемого при компенсации движения во время декодирования другого уровня, когда флаг, принятый приемным модулем, указывает, что вектор движения не сжат.
Блок компенсации движения может выполнять компенсацию движения при декодировании текущего уровня, используя вектор движения, сжатый первым модулем сжатия, независимо от значения флага, принятого приемным модулем.
Первый модуль сжатия может выбрать вектор движения, служащий в качестве репрезентативного значения, из множества векторов движения, реконструированных модулем компенсации движения, и сжать вектор движения текущего уровня.
Первый модуль сжатия может вычислять вектор движения, служащий в качестве, репрезентативного значения, используя множество векторов движения, реконструированных модулем компенсации движения, и сжать вектор движения текущего уровня.
Модуль компенсации движения может выполнять компенсацию движения, используя вектор движения, реконструированный при компенсации движения во время декодирования другого уровня.
Дополнительно, вариантом настоящей технологии является способ обработки изображения устройства обработки изображения, содержащий этапы, на которых: выполняют посредством модуля компенсации движения компенсацию движения при декодировании текущего уровня; сжимают посредством устройства обработки изображения вектор движения текущего уровня, реконструированный путем компенсации движения и используемый для компенсации движения при декодировании другого уровня.
Другим вариантом настоящей технологии является устройство обработки изображения, содержащее: модуль предсказания/компенсации движения, выполняющий предсказание и компенсацию движения при кодировании текущего уровня; и первый модуль сжатия, который сжимает вектор движения текущего уровня, сгенерированного модулем предсказания/компенсации движения и используемый для предсказания и компенсации при кодировании другого уровня.
Устройство обработки изображения может дополнительно содержать второй модуль сжатия для сжатия вектора движения текущего уровня, сгенерированный модулем предсказания/компенсации движения, с коэффициентом сжатия, большим, чем коэффициент сжатия первого модуля сжатия, и модуль предсказания/компенсации движения может выполнять предсказание и компенсацию движения при кодировании текущего уровня, используя вектор движения, сжатый вторым модулем сжатия.
Второй модуль сжатия может дополнительно сжимать вектор движения, сжатый первым модулем сжатия.
Блок предсказания/компенсации движения может выполнять предсказание и компенсацию движения при кодировании текущего уровня, используя вектор движения, сжатый первым модулем сжатия.
Устройство обработки изображения может дополнительно содержать: модуль управления для управления тем, сжимается ли вектор движения текущего уровня, используемый при предсказании и компенсации движения во время кодирования другого уровня; модуль выбора для выбора вектора движения, который не сжимается первым модулем сжатия, или вектор движения, сжатый первым модулем сжатия в качестве вектора движения текущего уровня, используемого при предсказании и компенсации движения во время декодирования другого уровня в соответствии с управлением, осуществляемым модулем управления; и модуль передачи, передающий флаг, сгенерированный модулем генерирования.
Модуль предсказания/компенсации движения может выполнять предсказание и компенсацию движения при кодировании текущего уровня, используя вектор движения, сжатый первым модулем сжатия, независимо от управления, осуществляемого модулем управления.
Первый модуль сжатия может выбрать вектор движения, служащий в качестве репрезентативного значения, из множества векторов движения, сгенерированных модулем предсказания/компенсации движения, и сжать вектор движения текущего уровня.
Первый модуль сжатия может вычислить вектор движения, служащий в качестве репрезентативного значения, используя множество векторов движения, сгенерированных модулем компенсации движения, и сжать вектор движения текущего уровня.
Блок предсказания/компенсации движения может выполнять предсказание и компенсацию движения, используя вектор движения, сгенерированный при предсказании и компенсации движения во время кодирования другого уровня.
Дополнительно, другим вариантом настоящей технологии является способ обработки изображения устройства обработки изображения, содержащий этапы, на которых: выполняют посредством устройства обработки изображения предсказание и компенсацию движения при кодировании текущего уровня; и сжимают посредством устройства обработки изображения вектор движения текущего уровня, генерируемый путем предсказания и компенсации движения и используемый для предсказания и компенсации движения при кодировании другого уровня.
В одном из вариантов настоящей технологии выполняют компенсацию движения при декодировании текущего уровня; и сжимают вектор движения текущего уровня, реконструированный путем компенсации движения и используемый для компенсации движения при декодировании другого уровня.
В другом варианте настоящей технологии выполняют предсказание и компенсацию движения при кодировании текущего уровня; и сжимают вектор движения текущего уровня, сгенерированный путем предсказания и компенсации движения и используемый для предсказания и компенсации движения при декодировании другого уровня.
Устройство обработки изображения может быть независимым устройством или может быть внутренним модулем, конфигурированным как единое устройство кодирования изображения или единое устройство декодирования изображения.
Эффекты изобретения
В соответствии с настоящим раскрытием, можно кодировать и декодировать изображение. Конкретно, можно сдерживать увеличение емкости хранения, необходимой для кодирования и декодирования.
Краткое описание чертежей
Фиг. 1 - пример конфигурации блока кодирования.
Фиг. 2 - пример схемы кодирования мультипроекционного изображения.
Фиг. 3 - пример IVMP.
Фиг. 4 - пример ссылки вектора движения, соответствующий предшествующему уровню техники.
Фиг. 5 - пример ссылки вектора движения, соответствующий настоящей технологии.
Фиг. 6 - блок-схема примерной основной конфигурации устройства кодирования изображения V0.
Фиг. 7 - блок-схема примерной основной конфигурации устройства кодирования изображения V1.
Фиг. 8 - блок-схема примерной основной конфигурации устройства кодирования изображения V2.
Фиг. 9 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования.
Фиг. L0 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования V0.
Фиг. 11 - блок-схема последовательности выполнения примерной последовательности операций процесса межкадрового предсказания движения V0.
Фиг. 12 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования V1.
Фиг. 13 - блок-схема последовательности выполнения примерной последовательности операций процесса межкадрового предсказания движения V1.
Фиг. 14 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования V2.
Фиг. 15 - блок-схема последовательности выполнения примерной последовательности операций процесса межкадрового предсказания движения V2.
Фиг.16 - блок-схема примерной основной конфигурации устройства декодирования изображения V0.
Фиг. 17 - блок-схема примерной основной конфигурации устройства декодирования изображения V1.
Фиг. 18 - блок-схема примерной основной конфигурации устройства декодирования изображения V2.
Фиг. 19 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования.
Фиг. 20 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования V0.
Фиг. 21 - блок-схема последовательности выполнения примерной последовательности операций процесса компенсации движения V0.
Фиг. 22 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования V1.
Фиг. 23 - блок-схема последовательности выполнения примерной последовательности операций процесса компенсации движения V1.
Фиг. 24 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования V2.
Фиг. 25 - блок-схема последовательности выполнения примерной последовательности операций процесса компенсации движения V2.
Фиг. 26 - пример ссылки вектора движения, соответствующий настоящей технологии.
Фиг. 27 - блок-схема примера основной конфигурации устройства кодирования изображения V0.
Фиг. 28 - блок-схема примера основной конфигурации устройства кодирования изображения V1.
Фиг. 29 - блок-схема примера основной конфигурации устройства кодирования изображения V2.
Фиг. 30 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования V0.
Фиг. 31 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования V1.
Фиг. 32 - блок-схема последовательности выполнения примерной последовательности операций процесса межкадрового предсказания движения V1.
Фиг. 33 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования V2.
Фиг. 34 - блок-схема последовательности выполнения примерной последовательности операций процесса межкадрового предсказания движения V2.
Фиг. 35 - блок-схема примерной основной конфигурации устройства декодирования изображения V0.
Фиг. 36 - блок-схема примерной основной конфигурации устройства декодирования изображения V1.
Фиг. 37 - блок-схема примерной основной конфигурации устройства декодирования изображения V2.
Фиг. 38 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования V0.
Фиг. 39 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования V1.
Фиг. 40 - блок-схема последовательности выполнения примерной последовательности операций процесса компенсации движения V1.
Фиг. 41 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования V2.
Фиг. 42 - блок-схема последовательности выполнения операций примерной последовательности операций процесса компенсации движения V2.
Фиг. 43 - пример ссылки вектора движения, соответствующий настоящей технологии.
Фиг. 44 - схема для описания примерного синтаксиса.
Фиг. 45 - блок-схема примерной основной конфигурации устройства кодирования изображения V0.
Фиг. 46 - блок-схема примерной основной конфигурации устройства кодирования изображения V1.
Фиг. 47 - блок-схема примера основной конфигурации устройства кодирования изображения V2.
Фиг. 48 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования.
Фиг. 49 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования V0.
Фиг. 50 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования V0, следующих за фиг. 49.
Фиг. 51 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования V1.
Фиг. 52 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования V1, следующих за фиг. 51.
Фиг. 53 - блок-схема последовательности выполнения примерной последовательности операций процесса межкадрового предсказания движения V1.
Фиг. 54 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования V2.
Фиг. 55 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования V2, следующих за фиг. 54.
Фиг. 56 - блок-схема последовательности выполнения примерной последовательности операций процесса межкадрового предсказания движения V2.
Фиг. 57 - блок-схема примерной основной конфигурации устройства декодирования изображения V0.
Фиг. 58 - блок-схема примерной основной конфигурации устройства декодирования изображения V1.
Фиг. 59 - блок-схема примерной основной конфигурации устройства декодирования изображения V2.
Фиг. 60 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования.
Фиг. 61 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования V0.
Фиг. 62 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования V0, следующих за фиг. 61.
Фиг. 63 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования V1.
Фиг. 64 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования V1, следующих за фиг. 64.
Фиг. 65 - блок-схема последовательности выполнения примерной последовательности операций процесса компенсации движения V1.
Фиг. 66 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования V2.
Фиг. 67 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования V2, следующих за фиг. 66.
Фиг. 68 - блок-схема последовательности выполнения примерной последовательности операций процесса компенсации движения V2.
Фиг. 69 - пример схемы кодирования масштабируемого кодирования изображения.
Фиг. 70 - пример пространственного масштабируемого кодирования.
Фиг. 71 - пример временного масштабируемого кодирования.
Фиг. 72 - пример масштабируемого кодирования отношения сигнал/шум.
Фиг. 73 - пример прореживания вектора движения.
Фиг. 74 - другой пример прореживания вектора движения.
Фиг. 75 - пример углового предсказания.
Фиг. 76 - пример пленарного предсказания.
Фиг. 77 - примерный наиболее вероятный режим.
Фиг. 78 - примерный режим, зависящий от внутрикадрового сглаживания (MDIS).
Фиг. 79 - примерный процесс сглаживания значений границ.
Фиг. 80 - пример прореживания режима внутрикадрового предсказания.
Фиг. 81 - блок-схема примерной основной конфигурации устройства масштабируемого кодирования.
Фиг. 82 - блок-схема примера основной конфигурации блока кодирования изображения основного уровня.
Фиг. 83 - блок-схема примерной основной конфигурации блока кодирования изображения улучшенного уровня.
Фиг. 84 - блок-схема примерной основной конфигурации блока обеспечения режима внутрикадрового предсказания.
Фиг. 85 - блок-схема последовательности выполнения примерной последовательности процесса генерирования общей информации.
Фиг. 86 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования.
Фиг. 87 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования базового уровня.
Фиг. 88 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования улучшенного уровня.
Фиг. 89 - блок-схема примерной основной конфигурации устройства масштабируемого декодирования.
Фиг. 90 - блок-схема примерной основной конфигурации блока декодирования изображения базового уровня.
Фиг. 91 - блок-схема примерной основной конфигурации блока декодирования изображения улучшенного уровня.
Фиг. 92 - блок-схема примерной основной конфигурации блока обеспечения режима внутрикадрового предсказания.
Фиг. 93 - блок-схема последовательности выполнения примерной последовательности операций процесса получения общей информации.
Фиг. 94 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования.
Фиг. 95 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования базового уровня.
Фиг. 96 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования улучшенного уровня.
Фиг. 97 - блок-схема последовательности выполнения примерной последовательности операций процесса предсказания.
Фиг. 98 - схема, иллюстрирующая примерный синтаксис заголовка среза.
Фиг. 99 - схема, иллюстрирующая примерный синтаксис заголовка среза, следующего за фиг. 98.
Фиг. 100 - схема, иллюстрирующая примерный синтаксис заголовка среза, следующего за фиг. 99.
Фиг. 101 - схема иллюстрирующая другой примерный синтаксис заголовка среза.
Фиг. 102 - схема, иллюстрирующая другой примерный синтаксис заголовка среза, следующего за фиг. 101.
Фиг. 103 - схема, иллюстрирующая другой примерный синтаксис заголовка среза, следующего за фиг. 102.
Фиг. 104 - блок-схема примерной основной конфигурации устройства кодирования изображения.
Фиг. 105 - блок-схема примерной основной конфигурации блока кодирования изображения базового уровня.
Фиг. 106 - блок-схема примерной основной конфигурации блока кодирования изображения улучшенного уровня.
Фиг. 107 - блок-схема примерной основной конфигурации блока межкадрового предсказания.
Фиг. 108 - блок-схема последовательности выполнения операций примерной последовательности операций процесса кодирования изображения.
Фиг. 109 - блок-схема последовательности выполнения примерной последовательности операций процесса кодирования базового уровня.
Фиг. 110 - блок-схема последовательности выполнения примерного выполнения операций процесса кодирования улучшенного уровня.
Фиг. 111 - блок-схема последовательности выполнения примерной последовательности операций процесса ссылки на информацию о движении базового уровня.
Фиг. 112 - блок-схема примерной основной конфигурации устройства декодирования изображения.
Фиг. 113 - блок-схема примерной основной конфигурации блока декодирования изображения базового уровня.
Фиг. 114 - блок-схема примерной основной конфигурации блока декодирования изображения улучшенного уровня.
Фиг. 115 - блок-схема примерной основной конфигурации блока межкадрового предсказания.
Фиг. 116 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования изображения.
Фиг. 117 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования базового уровня.
Фиг. 118 - блок-схема последовательности выполнения примерной последовательности операций процесса декодирования улучшенного уровня.
Фиг. 119 - блок-схема примерной основной конфигурации компьютера.
Фиг. 120 - блок-схема примера схематичной конфигурации телевизионного устройства.
Фиг. 121 - блок-схема примера схематичной конфигурации мобильного телефона.
Фиг. 122 - блок-схема примера схематичной конфигурации устройства записи/воспроизведения.
Фиг. 123 - блок-схема примера схематичной конфигурации устройства получения изображения.
Фиг. 124 - блок-схема примера использования масштабируемого кодирования.
Фиг. 125 - блок-схема другого примера использования масштабируемого кодирования.
Фиг. 126 - блок-схема другого примера использования масштабируемого кодирования.
Фиг. 127 - блок-схема примерной схематичной конфигурации видеокомплекта.
Фиг. 128 - блок-схема примерной схематичной конфигурации видеопроцессора.
Фиг. 129 - блок-схема примерной схематичной конфигурации видеопроцессора.
Фиг. 130 - схема примерной конфигурации системы воспроизведения контента.
Фиг. 131 - схема примерного потока данных в системе воспроизведения контента.
Фиг. 132 - схема конкретного примера MPD.
Фиг. 133 - функциональная блок-схема конфигурации сервера системы воспроизведения контента.
Фиг. 134 - функциональная блок-схема конфигурации устройства воспроизведения контента системы воспроизведения контента.
Фиг. 135 - функциональная блок-схема конфигурации сервера контента системы воспроизведения контента.
Фиг. 136 - карта последовательности операций примерного процесса связи, выполняемого устройствами системы беспроводной связи.
Фиг. 137 - карта последовательности операций примерного процесса связи, выполняемого устройствами системы беспроводной связи.
Фиг. 138 - примерная конфигурация формата кадра, передаваемого и принимаемого в процессе связи устройствами системы беспроводной связи.
Фиг. 139 - карта последовательности операций примерного процесса связи, выполняемого устройствами системы беспроводной связи.
Осуществление изобретения
Здесь далее будут описаны способы выполнения настоящего раскрытия (здесь далее упоминаемые как варианты осуществления). Описание будет продолжаться в следующем порядке.
0. Общий обзор
1. Первый вариант осуществления (устройство кодирования изображения и устройство декодирования изображения)
2. Второй вариант осуществления (устройство кодирования изображения и устройство декодирования изображения)
3. Третий вариант осуществления (устройство кодирования изображения и устройство декодирования изображения)
4. Четвертый вариант осуществления (кодирование и декодирование масштабируемого изображения)
5. Общий обзор 2 (внутрикадровое предсказание)
6. Пятый вариант осуществления (устройство кодирования масштабируемого изображения)
7. Шестой вариант осуществления (устройство декодирования масштабируемого изображения)
8. Общий обзор 3 (управление направлением предсказания)
9. Седьмой вариант осуществления (устройство кодирования изображения)
10. Восьмой вариант осуществления (устройство декодирования изображения)
11. Девятый вариант осуществления (компьютер)
12. Примеры применения
13. Примеры применения масштабируемого кодирования
14. Процессор модуля блока установки
15. Примеры применения системы воспроизведения контента для MPEG-DASH
16. Примеры применения системы беспроводной связи по стандарту Wi-Fi
0. Общий обзор
Схема кодирования
Здесь далее, настоящая технология будет описана в связи с применением к кодированию и декодированию изображения по схеме высокоэффективного видеокодирования, High Efficiency Video Coding (HEVC). При таком кодировании изображения, как Advanced Video Coding (AVC) иди HEVC, предсказание движения выполняется, используя корреляцию (между кадрами) в направлении времени.
Блок кодирования
В схеме AVC определяется иерархическая структура, основанная на макроблоке и субмакроблоке. Однако, макроблок 16×16 пикселей не является оптимальным для большого кадра изображения, такого как изображение сверхвысокой четкости, Ultra High Definition (UHD: 4000×2000 пикселей), служащее целью схемы кодирования следующего поколения.
В отличие от этого, в схеме HEVC блок кодирования (CU) определяется в соответствии с фиг. 1.
CU также упоминается со ссылкой на блок дерева кодирования (СТВ) и является частичной областью изображения в блоке картинки, который выполняет ту же самую роль, что и макроблок в схеме H.264/AVC. Хотя последний фиксирован с размером 16×16 пикселей, размер первого не фиксируется конкретно, а назначается в информации о сжатии изображения в каждой последовательности.
Например, в наборе параметров последовательности (Sequence Parameter Set, SPS), содержащемся в кодированных данных, которые должны выводиться, указываются наибольший блок кодирования (Largest Coding Unit, LCU) и наименьший блок кодирования (Smallest Coding Unit, SCU) блока CU.
Поскольку split-flag=1 устанавливается в диапазоне, в котором каждый блок LCU не меньше, чем блок SCU, кодируемый блок может быть разделен на блоки CU меньшего размера. В примере на фиг. 1 размер LCU равен 128 и наибольшая масштабируемая глубина равна 5. Блок CU с размером 2N×2N делится на CU с размером N×N, служащий в качестве иерархии, которая на один уровень ниже, когда значение split_flag равно "1".
Дополнительно, CU делится на блоки предсказания (PU), являющиеся областями, (частичными областями изображения блока картинки), служащими в качестве обрабатываемых блоков внутрикадрового или межкадрового предсказания, и делится на блоки преобразования (TU), являющиеся областями (частичными областями изображения блока картинки), служащими в качестве обрабатываемых блоков ортогонального преобразования. В настоящее время схема HEVC в дополнение к ортогональным преобразованиям 4×4 и 8×8 может использоваться для ортогональных преобразований 16×16 и 32×32.
В случае схемы кодирования, в которой CU определен и процессы различного рода выполняются в блоках CU, такой как схема HEVC, в схеме AVC макроблок может рассматриваться как соответствующий LCU и блок (субблок) может рассматриваться как соответствующий CU. Дополнительно, в схеме AVC блок компенсации движения может рассматриваться как соответствующий блоку PU. Однако, поскольку блок CU имеет иерархическую структуру, размер LCU на самом верхнем уровне обычно устанавливается большим, чем макроблок в схеме AVC, например, таким как 128×128 пикселей.
Таким образом, здесь далее блок LCU предполагается содержащим макроблок в схеме AVC и CU предполагается содержащим блок (субблок) в схеме AVC. Другими словами, термин "блок", используемый в последующем описании, относится к произвольной частичной области в картинке и, например, размер, форма и характеристики блока не ограничиваются. Другими словами, "блок" содержит произвольную область (обрабатываемый блок), такую как TU, PU, SCU, CU, LCU, субблок, макроблок или срез. Конечно "блок" содержит также и любую другую частичную область (обрабатываемый блок). При необходимости ограничить размер, обрабатываемый блок или т.п., он будет должным образом описан.
Выбор режима
В то же время, в схемах кодирования AVC и HEVC, чтобы достигнуть высокой эффективности кодирования, важно выбрать соответствующий режим предсказания.
В качестве примера такого способа выбора, существует способ, реализуемый в справочном программном обеспечении (открывается на http://iphome.hhi.de/suehring/tml/index.htm) способа H.264/MPEG-4 AVC под названием совместная модель (Joint Model, JM).
В JM можно выбрать два способа определения режима, режим высокой сложности и режим низкой сложности, как будет описано ниже. В обоих режимах вычисляются значения функции стоимости, связанные с соответствующими режимами предсказания, и режим предсказания, имеющий меньшее значение функции стоимости, выбирается в качестве оптимального режима для соответствующего блока или макроблока.
Функция стоимости в режиме высокой сложности представляется следующей формулой (1).
Математическая формула 1
Здесь, Ω указывет универсальную установку возможного режима для кодирования соответствующего блока или макроблока, и D указывает разностную энергию между декодированным изображением и входным изображением, когда кодирование в соответствующем режиме предсказания. λ указывает неопределенный множитель Лагранжа, заданный как функция параметра квантования. "R" представляет общий объем кодирования, в том числе коэффициент ортогонального преобразования, когда кодирование выполняется в соответствующем режиме.
Другими словами, чтобы выполнить кодирование в режиме высокой сложности, необходимо выполнить процесс временного кодирования один раз во всех возможных режимах, чтобы вычислить параметры D и R, и, таким образом, требуется большой объем вычислений.
Функция стоимости в режиме низкой сложности представляется следующей формулой (2).
Математическая формула 2
Здесь "D", в отличие от режима высокой сложности, представляет энергетическую разность между предсказанным изображением и входным изображением. "QP2Quant (QP)" задается как функция параметра квантования QP и "HeaderBit" указывает объем кодирования, связанный с информацией, принадлежащей заголовку, такой как вектор движения или режим, не содержащей коэффициент ортогонального преобразования.
Другими словами, в режиме низкой сложности, необходимо выполнять процесс предсказания для каждого из соответствующих возможных режимов, но поскольку нет необходимости в декодированном изображении, нет необходимости выполнять процесс кодирования. Таким образом, можно реализовать кодирование при объеме вычислений, меньшем, чем в режиме высокой сложности.
Мультипроекционное изображение
Между тем, в HEVC можно кодировать и декодировать движущееся изображение, содержащее множество уровней, такое как мультипроекционное изображение, показанное на фиг. 2. В мультипроекционном движущемся изображении каждая картинка содержит множество изображений с параллаксом между ними. Группа изображения (движущееся изображение) для каждой точки зрения упоминается как проекция (уровень). В случае примера, показанного на фиг. 2, движущееся изображение содержит 3 проекции 0-2. Другими словами, картинка определенного РОС содержит изображение проекции 0, изображение проекции 1 и изображение проекции 2. На фиг. 2 проекция 0 (view_id=0) также упоминается как базовая проекция. Дополнительно, проекция 1 (view_id=1) и проекция 2 (view_id=2) также упоминаются как небазовые проекции.
Вектор предсказываемого движения
Дополнительно, в HEVC, когда изображение кодируется или декодируется, процессы предсказания и компенсации движения используются для повышения эффективности кодирования, но чтобы дополнительно повысить эффективность кодирования при процессах предсказания и компенсации движения, вектор движения текущего блока, служащий в качестве цели обработки, предсказывают, используя вектор движения соседнего блока, получают разностный вектор движения между вектором движения текущего блока и его вектором предсказываемого движения и передают разностный вектор движения.
Вектор движения предсказывается таким образом, что из вектора движения соседнего блока генерируется множество возможных кандидатов и из множества возможных кандидатов выбирается оптимальный кандидат.
В HEVC можно генерировать кандидата вектора предсказываемого движения, используя вектор движения блока, пространственно соседнего с текущим блоком. Пространственно соседствующий блок относится к блоку, находящемуся вблизи от текущего блока в том же самом изображении (изображении той же самой проекции того же самого РОС, что и текущий блок.
Дополнительно, в HEVC можно сгенерировать возможного кандидата вектора предсказываемого движения, используя вектор движения блока, соседнего по времени с текущим блоком (Temporal Motion Vector Prediction (TMVP), временное предсказание вектора движения). Соседствующий по времени блок является блоком (который также упоминается как "расположенный по соседству") (например, в том же самом положении), соответствующим текущему блоку в изображении другого РОС той же самой проекции текущего блока.
Дополнительно, когда кодируется мультипроекционное изображение, показанное на фиг. 2, в HEVC можно сгенерировать кандидата вектора предсказываемого движения, используя вектор движения блока, соседнего с текущим блоком с точки зрения проекции (уровня) (межуровневое предсказание движения, Inter-view motion prediction (IVMP). Блок, соседствующий с точки зрения проекции (уровня), является блоком (который также упоминается как "расположенный по соседству") (например, в том же самом положении), соответствующим текущему блоку в изображении другой проекции того же самого РОС, что и текущий блок. Например, как показано на фиг. 3, вектор движения непосредственно предшествующей обработанной проекции упоминается как использующий корреляцию между проекциями.
Поскольку, как описано выше, существует возможность получить больше кандидатов с более высокой точностью предсказания, можно получить вектор предсказания с более высокой точностью предсказания и дополнительно повысить эффективность кодирования.
Однако, для TMVP и IVMP ссылка делается на вектор движения, отличный от изображения текущей проекции текущей картинки. Таким образом, в TMVP и IVMP необходимо хранить вектор движения каждого блока, полученный во время кодирования или декодирования, пока к нему не обратятся (например, пока не закончатся процессы предсказания и компенсации движения или процесс компенсации движения изображения следующей проекции). С этой целью необходимо подготовить память с емкостью максимального ожидаемого значения или больше.
В случае HEVC возможно сжимать вектор движения, который должен храниться для TMVP, и снизить точность вектора движения. Однако, вектор движения, к которому следует обращаться в IVMP, используется без сжатия. Таким образом, вектор движения для IVMP должен храниться без сжатия. По этой причине, память, которая хранит вектор движения для IVMP, вероятно, должна увеличиваться, чтобы быть больше той, в которой хранится вектор движения для TMVP. Другими словами, увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования, вероятно, необходимо сдерживать.
На фиг. 4 показан конкретный пример такой ситуации. Как видно на фиг. 4, в TMVP используется вектор движения (сжатый MV) текущего уровня (проекции), а в IVMP используется вектор движения (несжатый MV) непосредственно предшествующего уровня (другого уровня).
Таким образом, в этом случае, в дополнение к памяти (памяти V0 MV и памяти VI MV), где хранится вектор движения с точностью 16×16 для TMVP, необходима память, в которой хранится вектор движения для IVMP. Кроме того, поскольку вектор движения не сжимается, необходима емкость, большая, чем емкость памяти, в которой хранится вектор движения, на который делается ссылка в TMVP.
Поскольку емкость, необходимая для памяти, увеличивается, затраты на проектирование или изготовление, вероятно, должны увеличиваться. Дополнительно, вероятно, должны увеличиться потребляемая мощность и нагрузка.
Сжатие вектора движения для IVMP
В этом отношении, вектор движения для IVMP также сжимается (например, прореживается с определенным коэффициентом прореживания).
Например, в случае декодирования выполняется компенсация движения для декодирования текущего уровня и вектор движения текущего уровня, реконструированный путем компенсации движения и используемый для компенсации движения при декодировании другого уровня, сжимается (например, прореживанием с определенным коэффициентом прореживания). Другими словами, компенсация движения для декодирования текущего уровня выполняется, используя вектор движения, реконструированный и сжатый (например, прореженный с определенным коэффициентом прореживания) при компенсации движения для декодирования другого уровня.
Дополнительно, например, в случае кодирования выполняются предсказание движения и компенсация для кодирования текущего уровня и вектор движения текущего уровня, сгенерированный посредством предсказания и компенсации движения и используемый для предсказания и компенсации движения при кодировании другого уровня, сжимается (например, прореживается с определенным коэффициентом прореживания). Другими словами, предсказание и компенсация движения для кодирования текущего уровня выполняются, используя вектор движения, сгенерированный и сжатый (например, прореженный с определенным коэффициентом прореживания) при предсказании и компенсации движения для кодирования другого уровня.
В результате, можно сдерживать увеличение емкости памяти, необходимой для хранения вектора движения для IVMP. Другими словами, можно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
1. Первый вариант осуществления
Сжатие вектора движения для IVMP
При сжатии вектора движения, как показано на фиг. 5, вектор движения для IVMP может сжиматься (например, прореживанием с тем же самым коэффициентом прореживания, что и вектор движения для TMVP) с тем же самым коэффициентом сжатия, что и вектор движения для TMVP. Другими словами, вектор движения для IVMP и вектор движения для TMVP на протяжении сжатия могут иметь одну и ту же точность. В этом случае, можно объединить вектор движения для TMVP и вектор движения для IVMP и можно сдерживать увеличение емкости необходимой памяти.
Например, в случае, показанном на фиг. 4, декодер (декодер V0 (Base, базовый), декодер V1 (Depend, подчиненный) и декодер V2 (Depend, подчиненный)) в процессе декодирования реконструирует вектор движения с максимальной точностью 4×4, а блок блок сжатия вектора (устройства сжатия MV (V0-V2)) выполняет сжатие с точностью 16×16. Таким образом, память (временные памяти MV (V0-V2)), хранящая вектор движения для IVMP, нуждается в емкости, способной хранить вектор движения с точностью 4×4 на одном экране.
Как показано в примере на фиг. 5, поскольку вектор движения для IVMP также сжимается (например, прореживается) с точностью 16×16 блоком (устройством сжатия MV (V0-V2)) сжатия вектора движения, можно исключить устройство памяти (временные устройства памяти MV (V0-V2)), способное хранить вектор движения с точностью 4×4 посредством одного экрана.
Можно обобщить процесс сжатия (например, процесс прореживания) посредством обобщения вектора движения и, таким образом, можно сдержать увеличение нагрузки, вызванное процессом сжатия для вектора движения.
Способ сжатия будет ниже описан более конкретно.
Далее предполагается, что движущееся изображение цели кодирования или декодирования является движущимся изображением из 3 проекций (уровней) с проекциями 0-2, как показано на фиг. 2. Дополнительно, картинки движущегося изображения обрабатываются в определенном порядке и предполагается, что в каждой картинке изображение проекции 0, изображение проекции 1 и изображение проекции 2 обрабатываются последовательно.
Устройство кодирования изображения
На фиг. 6 показана блок-схема примерной основной конфигурации устройства V0 кодирования изображения. На фиг. 7 показана блок-схема примерной основной конфигурации устройства кодирования изображения V1. На фиг. 8 показана блок-схема примерной основной конфигурации устройства кодирования изображения V2.
Устройство 100 кодирования изображения (не показано) кодирует движущееся изображение, содержащее множество уровней, такое как мультипроекционное изображение, показанной на фиг. 2. Устройство 100 кодирования изображения содержит устройство 100-0 кодирования изображения V0, показанное на фиг. 6, устройство 100-1 кодирования изображения V1, показанное на фиг. 7, и устройство 100-2 кодирования изображения V2, показанное на фиг. 8, чтобы кодировать проекции мультипроекционного изображения. Устройство 100-1 кодирования изображения V1 кодирует изображение проекции 1. Устройство 100-2 кодирования изображения V2 кодирует изображение проекции 2.
Как показано на фиг. 6, устройство 100-0 кодирования изображения V0 содержит блок 101-0 аналогово-цифрового (A/D) преобразования, буфер 102-0 перегруппировки экрана, операционный блок 103-0, блок 104-0 ортогонального преобразования, блок 105-0 квантования, блок 106-0 кодирования без потерь, накопительный буфер 107-0, блок 108-0 инверсного квантования и блок 109-0 инверсного ортогонального преобразования. Блок 100-0 кодирования изображения V0 дополнительно содержит операционный блок 110-0, контурный фильтр 111-0, буфер 112-0 декодированной картинки, блок 113-0 внутрикадрового предсказания, блок 114-0 предсказания/компенсации движения, блок 115-0 выбора предсказанного изображения и блок 116-0 управления скоростью.
Как показано на фиг. 7, устройство 100-1 кодирования изображения V1 содержит блок 101-1 аналогово-цифрового (A/D) преобразования, буфер 102-1 перегруппировки экрана, операционный блок 103-1, блок 104-1 ортогонального преобразования, блок 105-1 квантования, блок 106-1 кодирования без потерь, накопительный буфер 107-1, блок 108-1 инверсного квантования и блок 109-1 инверсного ортогонального преобразования. Блок 100-1 кодирования изображения V1 дополнительно содержит операционный блок 110-1, контурный фильтр 111-1, буфер 112-1 декодированной картинки, блок 113-1 внутрикадрового предсказания, блок 114-1 предсказания/компенсации движения, блок 115-1 выбора предсказанного изображения и блок 116-1 управления скоростью.
Как показано на фиг. 8, устройство 100-2 кодирования изображения V2 содержит блок 101-2 аналогово-цифрового (A/D) преобразования, буфер 102-2 перегруппировки экрана, операционный блок 103-2, блок 104-2 ортогонального преобразования, блок 105-2 квантования, блок 106-2 кодирования без потерь, накопительный буфер 107-2, блок 108-2 инверсного квантования и блок 109-2 инверсного ортогонального преобразования. Блок 100-2 кодирования изображения V2 дополнительно содержит операционный блок 110-2, контурный фильтр 111-2, буфер 112-2 декодированной картинки, блок 113-2 внутрикадрового предсказания, блок 114-2 предсказания/компенсации движения, блок 115-2 выбора предсказанного изображения и блок 116-2 управления скоростью.
Здесь далее, когда нет необходимости различать блоки 101-0-101-2 A/D-преобразования друг от друга, они упоминаются просто как "блок 101 A/D-преобразования". Дополнительно, когда нет необходимости различать буферы 102-0-102-2 перегруппировки экрана друг от друга, они упоминаются просто как "буфер 102 перегруппировки экрана". Дополнительно, когда нет необходимости различать операционные блоки 103-0-103-2 друг от друга, они упоминаются просто как "операционный блок 103". Дополнительно, когда нет необходимости различать буферы 104-0-104-2 ортогонального преобразования друг от друга, они упоминаются просто как "блок 104 ортогонального преобразования". Дополнительно, когда нет необходимости различать блоки 105-0-105-2 квантования друг от друга, они упоминаются просто как "блок 105 квантования". Дополнительно, когда нет необходимости различать блоки 106-0-106-2 кодирования без потерь друг от друга, они упоминаются просто как "блок 106 кодирования без потерь". Дополнительно, когда нет необходимости различать накопительные буферы 107-0-107-2 друг от друга, они упоминаются просто как "накопительный буфер 107". Дополнительно, когда нет необходимости различать блоки 108-0-108-2 инверсного квантования друг от друга, они упоминаются просто как "блок 108 инверсного квантования". Дополнительно, когда нет необходимости различать блоки 109-0-109-2 инверсного ортогонального преобразования друг от друга, они упоминаются просто как "блок 109 инверсного ортогонального преобразования".
Дополнительно, когда нет необходимости различать операционные блоки 110-0-110-2 друг от друга, они упоминаются просто как "операционный блок 110". Дополнительно, когда нет необходимости различать контурные фильтры 111-0-111-2 друг от друга, они упоминаются просто как "контурный фильтр 111". Дополнительно, когда нет необходимости различать буферы 112-0-112-2 декодированной картинки друг от друга, они упоминаются просто как "буфер 112 декодированной картинки". Дополнительно, когда нет необходимости различать блоки 113-0-113-2 внутрикадрового предсказания друг от друга, они упоминаются просто как "блок 113 внутрикадрового предсказания". Дополнительно, когда нет необходимости различать блоки 114-0-101-2 предсказания/компенсации движения друг от друга, они упоминаются просто как "блок 114 предсказания/компенсации движения". Дополнительно, когда нет необходимости различать блоки 115-0-115-2 выбора изображения предсказания друг от друга, они упоминаются просто как "блок 115 выбора изображения предсказания". Дополнительно, когда нет необходимости различать блоки 116-0-116-2 управления скоростью друг от друга, они упоминаются просто как "блок 116 управления скоростью".
Блок 100-0 кодирования изображения V0 дополнительно содержит блок 121-0 сжатия вектора движения V0 и устройство 122-0 памяти вектора движения V0. Блок 100-1 кодирования изображения V1 дополнительно содержит блок 121-1 сжатия вектора движения V1 и устройство 122-1 памяти вектора движения V1. Блок 100-2 кодирования изображения V2 дополнительно содержит блок 121-2 сжатия вектора движения V2 и устройство 122-2 памяти вектора движения V2.
Блок 101 A/D-преобразования выполняет A/D-преобразования данных входного изображения (данных изображения проекции 0 в случае блока 101-0 A/D-преобразования данных изображения проекции 1 в случае блока 101-1 A/D-преобразования и данных изображения проекции 2 в случае блока 101-2 A/D-преобразования), и подает преобразованные данные изображения (цифровые данные), которые должны сохраняться в буфере 102 перегруппировки экрана.
Буфер 102 перегруппировки экрана выполняет перегруппировку запомненного изображения кадров, расположенных в порядке отображения, в порядок кадров для кодирования, соответствующий группе картинки (GOP). Другими словами, буфер 102 перегруппировки экрана перегруппирует картинки, расположенные в порядке РОС в порядок обработки. Буфер 102 перегруппировки экрана подает изображение, для которого порядок кадров был перегруппирован, на операционный блок 103. Буфер 102 реорганизации экрана также подает изображение, для которого порядок кадров был перегруппирован, на блок 113 внутрикадрового предсказания и на блок 114 предсказания/компенсации движения.
Операционный блок 103 вычитает изображение предсказания, полученное от блока 113 внутрикадрового предсказания или от блока 114 предсказания/компенсации движения через блок 115 выбора изображения предсказания, из изображения, считанного из буфера 102 перегруппировки экрана, и выводит разностную информацию на блок 104 ортогонального преобразования. Например, в случае изображения, для которого выполняется внутрикадровое кодирование, операционный блок 103 вычитает изображение предсказания, поданное от блока 113 внутрикадрового предсказания, из изображения, считанного из буфера 102 перегруппировки экрана. Дополнительно, например, в случае изображения, для которого выполняется внутрикадровое кодирование, операционный блок 103 вычитает изображение предсказания, поданное от блока 114 предсказания/компенсации движения, из изображения, считанного из буфера 102 перегруппировки экрана.
Блок 104 ортогонального преобразования выполняет ортогональное преобразование, такое как дискретное косинусное преобразование или преобразование Карунена-Лоэва для разностной информации, поданной от операционного блока 103. Блок 104 ортогонального преобразования подает коэффициенты преобразования на блок 105 квантования.
Блок 105 квантования квантует коэффициент преобразования, поданный от блока 104 ортогонального преобразования. Блок 105 квантования устанавливает параметр квантования, основываясь на информации, касающейся целевого значения объема кодирования, поданной от блока 116 управления скоростью, и выполняет квантование. Блок 105 квантования подает квантованный коэффициент преобразования на блок 106 кодирования без потерь.
Блок 106 кодирования без потерь кодирует коэффициенты преобразования, квантованные блоком 105 квантования в соответствии с произвольной схемой кодирования. Поскольку данные коэффициента квантуются под управлением блока 116 управления скоростью, объем кодирования является целевым значением, установленным блоком 116 управления скоростью (или аппроксимированным целевым значением).
Блок 106 кодирования без потерь получает, например, информацию, указывающую режим внутрикадрового (внутриэкранного) предсказания, от блока 113 внутрикадрового предсказания и получает, например, информацию, указывающую режим межкадрового (межэкранного) предсказания, и информацию разностного вектора от блока 114 предсказания/компенсации движения.
Блок 106 кодирования без потерь кодирует различные виды информации в соответствии с произвольной схемой кодирования и устанавливает (мультиплексирует) их как часть информации заголовка кодированных данных (упоминаемых также как "кодированный поток"). Блок 106 кодирования без потерь подает кодированные данные, полученные кодированием, в накопительный буфер 107, где они должны накапливаться.
Примерами схемы кодирования, используемой блоком 106 кодирования без потерь, являются кодирование переменной длины и арифметическое кодирование. В качестве кодирования переменной длины, определенного в стандарте H.264/AVC, используется (Context-Adaptive Variable Length Coding, контекстно адаптированное кодирование переменной длины). Примером арифметического кодирования является, например, САВАС (Context-Adaptive Binary Arithmetic Coding, контекстно адаптированное двоичное арифметическое кодирование).
Накопительный буфер 107 временно хранит кодированные данные, поданные от блока 106 кодирования без потерь. Накопительный буфер 107 на последующем этапе с заданной синхронизацией выводит хранящиеся кодированные данные, например, на устройство записи (не показано) (носитель записи) или на тракт передачи. Другими словами, накопительный буфер 107 служит также в качестве блока передачи, который передает кодированные данные.
Коэффициент преобразования, квантованный блоком 105 квантования, также подается на блок 108 инверсного квантования. Блок 108 инверсного квантования инверсно квантует квантованные коэффициенты преобразования согласно способу, соответствующему квантованию, выполняемому блоком 105 квантования. Блок 108 инверсного квантования подает полученные коэффициенты преобразования на блок 109 инверсного ортогонального преобразования.
Блок 109 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование коэффициентов преобразования, подаваемых от блока 108 инверсного квантования, способом, соответствующим процессу ортогонального преобразования, выполняемому блоком 104 ортогонального преобразования. Выходной результат (восстановленная разностная информация), подвергнутый инверсному ортогональному преобразованию, подается на операционный блок 110.
Операционный блок 110 получает локально декодированное изображения (декодированное изображение), суммируя изображение предсказания, принятое от блока 113 внутрикадрового предсказания или от блока 114 предсказания/компенсации движения через блок 115 выбора изображения предсказания, с восстановленной разностной информацией, являющейся результатом инверсного ортогонального преобразования, поданным от блока 109 инверсного ортогонального преобразования. Декодированное изображение подается на контурный фильтр 111.
Контурный буфер 111 содержит деблокирующий фильтр, адаптивный контурный фильтр или т.п. и выполняет соответствующий процесс фильтрации декодированного изображения, поданного от операционного блока 110. Например, контурный фильтр 111 выполняет процесс деблокирующей фильтрации декодированного изображения и удаляет блочное искажение декодированного изображения. Дополнительно, например, контурный фильтр 111 выполняет процесс контурной фильтрации результата процесса деблокирующей фильтрации (декодированного изображения, из которого удалено блочное искажение) используя фильтр Винера (Wiener Filter) и улучшает качество изображения.
Контурный фильтр 111 может выполнить произвольный процесс фильтрации для декодированного изображения. Контурный фильтр 111 может подать информацию, используемую в процессе фильтрации, такую как коэффициент фильтра, когда это необходимо, на блок 106 кодирования без потерь, так что информация будет кодирована.
Контурный фильтр 111 подает результат процесса фильтрации (здесь далее упоминаемый как "декодированное изображение") в буфер 112 декодированной картинки. Контурный фильтр 111 подает реконструированное изображение, поданное от операционного блока 110, на блок 113 внутрикадрового предсказания.
Буфер 112 декодированной картинки сохраняет декодированное изображение, поданное от контурного фильтра. Дополнительно, буфер 112 декодированной картинки сохраняет идентификатор проекции и РОС изображения.
Буфер 112 декодированной картинки подает хранящееся декодированное изображение (и идентификатор проекции и РОС изображения) на блок 114 предсказания/компенсации движения для соответствующей проекции в определенный момент времени или основываясь на запросе, поданном извне, таком запрос от блока 114 предсказания/компенсации движения.
Дополнительно, буфер 112 декодированной картинки также подает хранящееся декодированное изображение (и идентификатор проекции и РОС изображения) на блок 114 предсказания/компенсации движения для следующей обработанной проекции в определенный момент времени или основываясь на запросе, поданном извне, таком как запрос от блока 114 предсказания/компенсации движения. Например, буфер 112-0 декодированной картинки подает декодированное изображение на блок 114-0 предсказания/компенсации движения и на блок 114-1 предсказания/компенсации движения. Дополнительно, буфер 112-1 декодированной картинки подает декодированное изображение на блок 114-1 предсказания/компенсации движения и на блок 114-2 предсказания/компенсации движения. Здесь, поскольку проекция 2 является последней обработанной проекцией, буфер 112-2 декодированной картинки подает декодированное изображение на блок 114-2 предсказания/компенсации движения.
После получения от контурного фильтра 111 изображения соседней области (соседнего блока), расположенной вокруг обрабатываемой целевой области (текущего блока), блок 113 внутрикадрового предсказания выполняет внутрикадровое предсказание генерирования изображения предсказания, используя, главным образом, блок предсказания (PU) в качестве блока обработки, использующего пиксельные значения изображения соседнего блока. Блок 113 внутрикадрового предсказания выполняет внутрикадровое предсказание во множестве режимов (режимов внутрикадрового предсказания), подготовленных заранее.
Блок 113 внутрикадрового предсказания генерирует изображения предсказания во всех возможных режимах внутрикадрового предсказания, оценивает значения функции стоимости изображений предсказания, используя входное изображение, поданное из буфера 102 перегруппировки экрана, и выбирает оптимальный режим. Когда оптимальный режим внутрикадрового предсказания выбран, внутрикадровый блок 113 внутрикадрового предсказания подает изображение предсказания, сгенерированное в оптимальном режиме, на блок 115 выбора изображения предсказания.
Дополнительно, блок 113 внутрикадрового предсказания соответственно подает информацию о внутрикадровом предсказании, содержащую информацию о внутрикадровом предсказании, такую как оптимальный режим внутрикадрового предсказания, на блок 106 кодирования без потерь, чтобы кодировать информацию о внутрикадровом кодировании.
Блок 114 предсказания/кодирования движения выполняет предсказание движения в текущем блоке, чтобы сгенерировать вектор движения, и выполняет процесс компенсации, соответствующий сгенерированному вектору движения, чтобы сгенерировать предсказанное изображение (информацию об изображении межкадрового предсказания) текущего блока. В процессах предсказания и компенсации движения блок 114 предсказания/компенсации движения генерирует изображение предсказания во всех режимах межкадрового предсказания, рассматриваемых как возможные, оценивает значение функции стоимости для каждого изображения предсказания и выбирает оптимальный режим. Когда оптимальный режим межкадрового предсказания выбран, блок 114 предсказания/компенсации движения подает изображение предсказания, сгенерированное в оптимальном режиме, на блок 115 выбора изображения предсказания.
Блок 114 предсказания/компенсации движения выполняет описанные выше процессы предсказания и компенсации движения, используя декодированное изображение, полученное из буфера 112 декодированной картинки.
В случае первоначально обработанной проекции, блок 114 предсказания/компенсации движения выполняет процессы предсказания и компенсации движения, используя декодированное изображение, полученное из буфера 112 декодированной картинки, хранящего изображение соответствующей проекции. Например, блок 114-0 предсказания/компенсации движения выполняет процессы предсказания и компенсации движения, используя декодированное изображение, полученное из буфера 112-0 декодированной картинки.
В случае второй или последующей обработанной проекции, блок 114 предсказания/компенсации движения выполняет процессы предсказания и компенсации движения, используя декодированные изображения, полученные из буфера 112 декодированной картинки, хранящего изображение соответствующей проекции, и из буфера 112 декодированной картинки, хранящего изображение непосредственно перед этим обработанной проекции. Например, блок 114-1 предсказания/компенсации движения выполняет процессы предсказания и компенсации движения, используя декодированные изображения, полученные из буфера 112-0 декодированной картинки и буфера 112-1 декодированной картинки. Дополнительно, например, блок 114-2 предсказания/компенсации движения выполняет процессы предсказания и компенсации движения, используя декодированные изображения, полученные из буфера 112-1 декодированной картинки и буфера 112-2 декодированной картинки.
Дополнительно, когда используется межкадровое предсказание, блок 114 предсказания/компенсации движения подает информацию о межкадровом предсказании, содержащую информацию, относящуюся к межкадровому предсказанию, такую как оптимальный режим межкадрового предсказания, на блок 106 кодирования без потерь, чтобы передать информацию о межкадровом предсказании.
Блок 114 предсказания/компенсации движения передает вектор движения для оптимального режима в качестве информации о межкадровом предсказании, так что компенсация движения выполняется на стороне декодирования. Практически, блок 114 предсказания/компенсации движения вместо вектора движения передает разностный вектор движения, являющийся разностью между вектором движения и вектором предсказания движения, чтобы дополнительно улучшить эффективность кодирования. Другими словами, блок 114 предсказания/компенсации движения предсказывает вектор движения текущего блока, генерирует вектор предсказания движения и генерирует разностный вектор движения, являющийся разностью между вектором движения текущего блока и вектором предсказания движения. Блок 114 предсказания/компенсации движения передает разностный вектор движения на сторону декодирования как часть информации о внутрикадровом предсказании.
При предсказании вектора движения блок 114 предсказания/компенсации движения генерирует вектор предсказания движения текущего блока, используя вектор движения блока, соседнего с текущим блоком. В этом случае, чтобы дополнительно повысить точность предсказания вектора предсказания движения и дополнительно повысить эффективность кодирования, блок 114 предсказания/компенсации движения может сгенерировать множество возможных кандидатов вектора предсказания движения, получить значения функции стоимости для соответствующих кандидатов и выбрать из числа всех возможных кандидатов оптимального кандидата, основываясь на значениях функции стоимости. Другими словами, блок 114 предсказания/компенсации движения может генерировать кандидатов вектора предсказания движения множеством способов.
Например, блок 114 предсказания/компенсации движения может сгенерировать вектор предсказания движения текущего блока со ссылкой на вектор движения блока, соседнего с текущим блоком пространственно, во времени или с точки зрения проекции. Дополнительно, блок 114 предсказания/компенсации движения передает стороне декодирования информацию (то есть, информацию о векторе предсказания движения), указывающую кандидата, выбранного в качестве вектора предсказания движения, как часть информации межкадрового предсказания.
Блок 114 предсказания/компенсации движения получает вектор движения пространственно соседнего блока из устройства памяти вектора движения, соответствующего соответствующей проекции. Например, блок 114-0 предсказания/компенсации движения ползает вектор движения из устройства 122-0 памяти вектора V0 движения. Дополнительно, например, блок 114-1 предсказания/компенсации движения получает вектор движения из устройства 122-1 памяти вектора V1 движения. Дополнительно, например, блок 114-2 предсказания/компенсации движения получает вектор движения из устройства 122-2 памяти вектора V2 движения.
Во второй или последующей обработанной проекции блок 114 предсказания/компенсации движения также получает вектор движения блока, соседнего в точки зрения проекции, от устройства памяти вектора движения, соответствующего ранее обработанной проекции. Например, блок 114-1 предсказания/компенсации движения получает вектор движения от устройства 122-0 памяти вектора V0 движения. Дополнительно, например, блок 114-2 предсказания/компенсации движения получает вектор движения от устройства 122-1 памяти вектора V1 движения.
Вектор движения является сжатым. Другими словами, предсказание и компенсация движения для кодирования текущего уровня выполняются, используя вектор движения, сгенерированный и сжатый при предсказании и компенсации движения для кодирования другого уровня. Другими словами, можно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования.
Блок 114-0 предсказания/компенсации движения подает вектор движения текущего блока (вектор движения для оптимального режима), сгенерированный при процессах предсказания и компенсации движения, на блок 121-0 сжатия вектора V0 движения. Дополнительно, блок 114-1 предсказания/компенсации движения подает сгенерированный вектор движения текущего блока на блок 121-1 сжатия вектора V1 движения. Дополнительно, блок 114-2 предсказания/компенсации движения подает сгенерированный вектор движения текущего блока на блок 121-2 сжатия вектора V2 движения.
Блок 115 выбора изображения предсказания выбирает источник подачи изображения предсказания, которое должно подаваться на операционный блок 103 и на операционный блок 110. Например, в случае внутрикадрового кодирования блок 115 выбора изображения предсказания выбирает блок 113 внутрикадрового предсказания в качестве источника подачи изображения предсказания и подает изображение предсказания, поданное от блока 113 внутрикадрового предсказания, на операционный блок 103 и на операционный блок 110. Например, в случае внутрикадрового кодирования блок 115 выбора изображения предсказания выбирает блок 114 внутрикадрового предсказания в качестве источника подачи изображения предсказания и подает изображение предсказания, поданное от блока 114 внутрикадрового предсказания, на операционный блок 103 и на операционный блок 110.
Блок 116 управления скоростью управляет скоростью операции квантования блока 105 квантования, основываясь на объеме кодирования кодированных данных, накопленных в накопительном буфере 107, так что переполнение или недостаточное наполнение не происходит.
Блок 121-0 сжатия вектора V0 движения выполняет сжатие (которое также упоминается как "сжатие 1/16") для вектора движения с максимальной точностью 4×4 (который также упоминается как "несжатый вектор V0 движения"), полученного от блока 114 предсказания/компенсации движения с точностью 16×16, и подает сжатый вектор движения (который также упоминается как "вектор V0 движения со сжатием 1/16") на устройство 122-0 памяти вектора V0 движения.
Способ сжатия вектора движения является произвольным. Например, блок 121-0 сжатия вектора V0 движения может выбрать вектор движения, служащий в качестве репрезентативного значения, из множества векторов движения, полученных от блока 114-0 предсказания/компенсации движения. Например, один вектор движения, служащий в качестве репрезентативного значения, может быть выбран из 16 векторов движения (векторов движения блоков 4×4) с точностью 4×4. За счет этого сжатия точность вектора движения становится точностью 16×16.
Дополнительно, способ выбора вектора движения является произвольным. Вектор движения блока может быть выбран в положении, определенном определенным способом, и, например, может быть выбран вектор движения блока в определенном положении, таком как верхний левый край, и блок, соответствующий положению в изображении, может быть выбран.
Количество выбранных векторов движения является произвольным и может быть 2 или более.
Дополнительно, например, блок 121-0 сжатия вектора V0 движения вычисляет репрезентативное значение посредством определенной операции, используя каждый вектор движения. Способ сжатия вектора движения является произвольным. Например, в качестве репрезентативного значения может использоваться среднее значение или медианное значение векторов движения соответствующих блоков. Дополнительно, количество вычисленных репрезентативных значений может быть произвольным и может быть 2 или более.
Вектор V0 движения со сжатием 1/16 (репрезентативное значение вектора движения), полученный, как описано выше, подается и сохраняется в устройстве 122-0 памяти вектора V0 движения. Устройство 122-0 памяти вектора V0 движения соответственно подает хранящийся вектор V0 движения со сжатием 1/16 на блок 114-0 предсказания/компенсации движения в качестве вектора движения соседнего по времени блока. Дополнительно, устройство 122-0 памяти вектора V0 движения соответственно подает хранящийся вектор V0 движения со сжатием 1/16 на блок 114-1 предсказания/компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции.
Блок 121-1 сжатия вектора V1 движения выполняет сжатие 1/16 вектора движения с максимальной точностью 4×4 (который также упоминается как "несжатый вектор V1 движения"), полученного от блока 114-1 предсказания/компенсации движения и подает сжатый вектор движения (который также упоминается как "вектор V1 движения со сжатием 1/16"), который должен быть сохранен, на устройство 122-1 памяти вектора V1 движения. Устройство 122-1 памяти вектора V1 движения соответственно подает хранящийся вектор V1 движения со сжатием 1/16 на блок 114-1 предсказания/компенсации движения в качестве вектора движения соседнего по времени блока. Дополнительно, устройство 122-1 памяти вектора V1 движения соответственно подает хранящийся вектор V1 движения со сжатием 1/16 на блок 114-2 предсказания/компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции.
Блок 121-2 сжатия вектора V2 движения выполняет сжатие 1/16 вектора движения с максимальной точностью 4×4 (который также упоминается как "несжатый вектор V2 движения"), полученного от блока 114-2 предсказания/компенсации движения и подает сжатый вектор движения (который также упоминается как "вектор V2 движения со сжатием 1/16"), который должен быть сохранен, на устройство 122-2 памяти вектора V2 движения. Устройство 122-2 памяти вектора V2 движения соответственно подает хранящийся вектор V2 движения со сжатием 1/16 на блок 114-2 предсказания/компенсации движения в качестве вектора движения соседнего по времени блока.
Дополнительно, способ сжатия вектора движения посредством блока 121-1 сжатия вектора V1 движения и блока 121-2 сжатия вектора V2 движения является тем же самым, что и в блоке 121-0 сжатия вектора V0 движения, и поэтому его описание не приводится.
Блок 121-0 сжатия вектора V0 движения, блок 121-1 сжатия вектора V1 движения и блок 121-2 сжатия вектора V2 движения выполняет описанное выше сжатие вектора движения в определенных единицах. Например, блок 121-0 сжатия вектора V0 движения, блок 121-1 сжатия вектора V1 движения и блок 121-2 сжатия вектора V2 движения могут выполнять описанное выше сжатие вектора движения в единицах LCU. Блок 121-0 сжатия вектора V0 движения, блок 121-1 сжатия вектора V1 движения и блок 121-2 сжатия вектора V2 движения могут быть одинаковыми или различаться в блоке обработки. Во время последовательности выполнения блок обработки может изменяться.
Дополнительно, способы сжатия вектора движения, выполняемые блоком 121-0 сжатия вектора V0 движения, блоком 121-1 сжатия вектора V1 движения и блоком 121-2 сжатия вектора V2 движения могут быть одинаковыми или отличаться друг от друга.
Как описано выше, блок 121-0 сжатия вектора V0 движения, блок 121-1 сжатия вектора V1 движения и блок 121-2 сжатия вектора V2 движения могут уменьшать (то есть, сжимать) объем информации векторов движения, уменьшая количество векторов движения. Таким образом, можно уменьшить объемы устройства 122-0 памяти вектора V0 движения, устройства 122-1 памяти вектора V1 движения и устройства 122-2 памяти вектора V2 движения.
Дополнительно, как описано выше, блок 114 предсказания/компенсации движения может обращаться к векторам движения, хранящимся в устройстве 122-0 памяти вектора V0 движения, в устройстве 122-1 памяти вектора V1 движения и в устройстве 122-2 памяти вектора V2 движения, как к вектору движения для IVMP, а также, как к вектору движения для TMVP. Поскольку вектор движения для TMVP и вектор движения для IVMP объединены, как описано выше, можно уменьшить емкость запоминающего устройства, необходимую для кодирования. Дополнительно, можно сдерживать увеличение нагрузки, вызванной сжатием вектора движения. Соответственно, можно реализовать снижение производственных затрат или затрат на разработку, уменьшить размеры устройства, снизить потребляемую мощность и т.п. для устройства 100 кодирования изображения.
Последовательность выполнения операций процесса кодирования
Далее будет описана обработка, выполняемая устройством 100 кодирования изображения. Примерная последовательность операций процесса кодирования, выполняемого устройством 100 кодирования изображения, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 9.
Когда процесс кодирования начат, на этапе S1001 устройство 100-0 кодирования изображения V0 выполняет процесс кодирования V0 для текущей картинки. На этапе S1002 устройство 100-1 кодирования изображения V1 выполняет процесс кодирования V1 для текущей картинки. На этапе S1003 устройство 100-2 кодирования изображения V2 выполняет процесс кодирования V2 для текущей картинки.
На этапе S1004 устройство 100 кодирования изображения определяет, все ли картинки были обработаны, и когда определено, что существует необработанная картинка, процесс возвращается к этапу S1001 и последующий процесс повторяется.
Процесс на этапах S1001-S1004 выполняется повторно для каждой картинки и когда на этапе S1004 определено, что все картинки обработаны, устройство 100 кодирования изображения заканчивает процесс кодирования.
Последовательность выполнения операций процесса кодирования V0
Далее, примерная последовательность выполнения операций процесса кодирования для кодирования проекции 0, которая выполняется на этапе S1001, показанном на фиг. 9, будет описана со ссылкой на последовательность выполнения операций, показанную на фиг. L0.
На этапе S1101 блок 101-0 A/D-преобразования выполняет A/D-преобразование входного изображения. На этапе S1102 буфер 102-0 перегруппировки экрана запоминает изображение, полученное при A/D-преобразовании, и преобразует реорганизует соответствующие картинки, следующие в порядке отображения, в порядок кодирования. На этапе S1103 блок 113-0 внутрикадрового предсказания выполняет процесс внутрикадрового предсказания в режиме внутрикадрового предсказания.
На этапе S1104 блок 114-0 предсказания/компенсации движения выполняет процесс межкадрового предсказания V0, в котором в режиме межкадрового предсказания выполняются предсказание движения и компенсация движения.
На этапе S1105 блок 115-0 выбора изображения предсказания выбирает либо изображение предсказания, сгенерированное блоком 113-0 внутрикадрового предсказания, либо изображение предсказания, сгенерированное блоком 114-0 предсказания/ компенсации движения.
На этапе S1106 блок 121-0 сжатия вектора V0 движения выполняет сжатие (сжатие 1/16) несжатого вектора V0 движения с максимальной точностью 4×4, который является вектором движения текущей картинки проекции 0, сгенерированной в процессе на этапе S1104 с точностью 16×16. Например, сжатие 1/16 выполняется в блоках LCU (например, 16×16 пикселей). Например, блок 121-0 сжатия вектора V0 движения выбирает вектор V0 движения блока 16 Ч 16 пикселей на верхнем левом краю в качестве репрезентативного значения (то есть, вектора V0 движения с точностью 16 Ч 16) для 16 Ч 16 пикселей.
На этапе S1107 устройство 122-0 памяти вектора V0 движения сохраняет вектор V0 движения со сжатием 1/16, сгенерированный процессом на этапе S1106.
На этапе S1108 операционный блок 103-0 вычитает изображение предсказания, выбранное в процессе на этапе S1105, из изображения, перегруппированного в процессе на этапе S1102. Разностные данные (данные разностного изображения между изображением, перегруппированным в процессе на этапе S1102, и изображением предсказания, выбранным на этапе S1105), полученные в результате этой операции, уменьшаются, чтобы быть по объему данных меньше, чем данные первоначального изображения. Таким образом, можно уменьшить объем данных по сравнению со случаем, когда изображение кодируется без изменения.
На этапе S1109 блок 104-0 ортогонального преобразования выполняет процесс ортогонального преобразования для разностных данных, сгенерированных в процессе на этапе S1108.
На этапе S1110 блок 105-0 квантования квантует коэффициенты ортогонального преобразования, полученные в процессе на этапе S1109, используя параметр квантования, вычисленный блоком 116-0 управления скоростью.
На этапе S1111 блок 106-0 кодирования без потерь кодирует коэффициенты, квантованные в процессе на этапе S1110. Другими словами, для данных, соответствующих разностному изображению, выполняется кодирование без потерь, такое как кодирование переменной длины или арифметическое кодирование.
В этом случае, блок 106-0 кодирования без потерь кодирует информацию, связанную с режимом предсказания для изображения предсказания, выбранного в процессе на этапе S1105, и суммирует кодированную информацию с кодированными данными, полученными при кодировании разностного изображения. Другими словами, блок 106-0 кодирования без потерь также кодирует информацию об оптимальном режиме внутрикадрового предсказания, поданную от блока 113-0 внутрикадрового предсказания, информацию, соответствующую оптимальному режиму межкадрового предсказания, поданную от блока 114-0 компенсации/предсказания движения, или т.п., и суммирует кодированную информацию с кодированными данными.
На этапе S1112 накопительный буфер 107-0 накапливает кодированные данные, полученные в процессе на этапе S1111. Кодированные данные, накопленные в накопительном буфере 107-0, должным образом считываются и передаются на сторону декодирования через тракт передачи или через носитель записи.
Разностная информация, квантованная в процессе на этапе S1110, локально декодируется следующим образом. Другими словами, на этапе S1113 блок 108-0 инверсного квантования инверсно квантует коэффициенты ортогонального преобразования (которые также упоминаются как "коэффициенты квантования"), сгенерированные и квантованные в процессе на этапе S1110 соответственно характеристикам, соответствующим характеристикам блока 105-0 квантования. На этапе S1114 блок 109-0 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование коэффициентов ортогонального преобразования, полученных в процессе этапа S109, соответственно характеристикам, соответствующим характеристикам ортогонального преобразователя 104-0. В результате, разностное изображение восстанавливается.
На этапе S1115 операционный блок 110-0 суммирует изображение предсказания, выбранное на этапе S1105, с разностным изображением, восстановленным на этапе S1114, и генерирует локально декодированное изображение (реконструированное изображение).
Устройство 100-0 кодирования изображения V0 выполняет процесс этапов S1103-S1115 на блоках в текущем LCU, служащем целью обработки. На этапе S1116 устройство 100-0 кодирования изображения V0 определяет, все ли LCU были обработаны. Когда определено, что существует необработанный LCU, процесс возвращается к этапу S1103 и последующий процесс повторяется. Процесс этапов S1103-S1115 выполняется для каждого LCU изображения проекции 0 текущей картинки и когда на этапе S1116 определено, что все LCU были обработаны, процесс переходит к этапу S1117.
На этапе S1117 контурный фильтр 111-0 соответствующим образом выполняет процесс контурной фильтрации, такой как процесс фильтрации удаления блочности или процесс адаптивной контурной фильтрации, для реконструированного изображения, полученного в процессе на этапе S1115, и генерирует декодированное изображение.
На этапе S1118 буфер 112-0 декодированной картинки сохраняет декодированное изображение, полученное в процессе этапа S1117.
На этапе S1119 блок 116-0 управления скоростью управляет скоростью операции квантования блока 105-0 квантования, основываясь на объеме кодирования (сгенерированном объеме кодирования) кодированных данных, накопленных в накопительном буфере 107-0 в процессе этапа S1118, так что переполнение или недостаточное наполнение не происходит. Дополнительно, блок 116-0 управления скоростью подает на блок 105-0 квантования информацию, связанную с параметром квантования.
После окончания процесса на этапе S1119 процесс кодирования V0 заканчивается и процесс возвращается к фиг. 9.
Последовательность выполнения операций процесса межкадрового предсказания V0
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 11, будет описана примерная последовательность выполнения операций процесса V0 межкадрового предсказания движения, выполняемого на этапе S1104, показанном на фиг. L0.
Когда процесс V0 межкадрового предсказания начат, на этапе S1131 блок 114-0 предсказания/компенсации движения выполняет процесс поиска движения и генерирует вектор движения текущего блока.
На этапе S1132 блок 114-0 предсказания/компенсации движения определяет возможного кандидата пространственного вектора предсказания движения, используя несжатый вектор V0 движения в картинке. Возможный кандидат пространственного вектора предсказания движения является возможным кандидатом предсказания движения, сгенерированным из вектора движения блока, пространственно соседнего с текущим блоком. Другими словами, 114-0 предсказания/компенсации движения определяет возможного кандидата пространственного вектора предсказания движения, используя вектор V0 движения блока, пространственно соседнего с текущим блоком. Вектор V0 движения является вектором движения в текущей картинке и, таким образом, хранится в несжатом состоянии (максимальная точность 4×4) блоком 114-0 предсказания/компенсации движения. Таким образом, блок 114-0 предсказания/компенсации движения определяет возможного кандидата пространственного вектора предсказания движения, используя несжатый вектор V0 движения.
На этапе S1133 блок 114-0 предсказания/компенсации движения определяет возможного кандидата временного вектора предсказания движения, используя вектор V0 движения со сжатием 1/16 для другой картинки. Возможный кандидат временного вектора предсказания движения является возможным кандидатом предсказания движения, сгенерированным из вектора движения блока, соседнего во времени с текущим блоком. Другими словами, 114-0 предсказания/компенсации движения определяет возможного кандидата временного вектора предсказания движения, используя вектор V0 движения объединенного блока картинки, соседнего по времени с текущим блоком. Вектор V0 движения является вектором движения другой картинки той же самой проекции, что и текущая картинка, и, таким образом, сохраняется в устройстве 122-0 вектора V0 движения в сжатом (с точностью 16×16) состоянии. Таким образом, блок 114-0 предсказания/компенсации движения считывает вектор движения V0 со сжатием 1/16 из устройства 122-0 памяти вектора движения V0 и определяет возможного кандидата вектора предсказания движения во времени, используя вектор движения V0 со сжатием 1/16.
Поскольку проекция 0 является первоначально обработанной проекцией, генерирование возможного кандидата вектора предсказания движения, используя корреляцию между проекциями, на выполняется.
На этапе S1134 блок 114-0 предсказания/компенсации движения вычисляет значения функции стоимости для возможных кандидатов, сгенерированных на этапах S1132 и S1133.
На этапе S1135 блок 114-0 предсказания/компенсации движения определяет оптимальный режим предсказания, основываясь на значениях функции стоимости, вычисленных на этапе S1134. В этом случае, блок 114-0 предсказания/компенсации движения также определяет (режим) вектора предсказания движения.
На этапе S1136 блок 114-0 предсказания/компенсации движения выполняет компенсацию движения в оптимальном режиме, определенном на этапе S1135, и генерирует изображение предсказания. Дополнительно, блок 114-0 предсказания/компенсации движения генерирует информацию о межкадровом предсказании, содержащую оптимальный режим межкадрового предсказания, разностный вектор движения и режим вектора предсказания движения.
На этапе S1137 блок 114-0 предсказания/компенсации движения сохраняет вектор движения для оптимального режима в буфере как вектор движения несжатой V0. После окончания процесса на этапе S1117 процесс предсказания межкадрового движения V0 заканчивается и процесс возвращается к фиг. L0.
Последовательность выполнения операций процесса кодирования V1
Далее, примерная последовательность выполнения операций процесса кодирования V1 для кодирования проекции 1, который выполняется на этапе S1002, показанном на фиг. 9, будет описана со ссылкой на последовательность выполнения операций, показанную на фиг. 12.
Разница между процессом для проекции 0 и процессом для проекции 1 лежит, главным образом, в процессе межкадрового предсказания движения. Таким образом, как показано на фиг. 12, устройство 100-1 кодирования изображения V1 выполняет процесс кодирования V1, главным образом, таким же образом, как процесс кодирования (процесс кодирования V0, показанный на фиг. L0) для проекции 0. Другими словами, процесс на этапах S1201-S1219, показанных на фиг. 12, выполняется, в основном, таким же образом, как процесс на этапах S1101-S1119, показанных на фиг. L0. Таким образом, описание процесса, показанного на фиг. 12, может быть продолжено так, что соответствующие компоненты устройства 100-0 кодирования изображения V0, описанные со ссылкой на фиг. L0, заменяются соответствующими компонентами устройства 100-1 кодирования изображения V1 и процесс для проекции 0, показанной на фиг. L0, заменяется процессом для проекции 1, и поэтому его описание здесь не приводится.
Последовательность выполнения операций процесса межкадрового предсказания движения V1
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 13, будет описана примерная последовательность выполнения операций процесса межкадрового предсказания движения V0, выполняемого на этапе S1204, показанном на фиг. 12.
Когда процесс межкадрового предсказания движения V1 начат, процесс на этапах S1231-S1233 выполняется, в основном, таким же образом, как процесс на этапах S1131-S1133, показанных на фиг. 11. Здесь процесс предсказания движения V1 выполняется блоком 114-1 предсказания/компенсации движения. Процесс, показанный на фиг. 13, выполняется для проекции 1 и, таким образом, на этапе S1232 используется несжатый вектор движения V1, служащий в качестве несжатого вектора движения проекции 1. Дополнительно, на этапе S1233 используется вектор движения V1 со сжатием 1/16, подвергнутый сжатию 1/16.
В процессе межкадрового предсказания движения для проекции 1, в дополнение к генерированию возможного кандидата путем пространственного предсказания и возможного кандидата путем временного предсказания также выполняется генерирование возможного кандидата вектора предсказания движения (кандидата посредством IVMP), используя корреляцию между проекциями.
Другими словами, на этапе S1234 блок 114-1 предсказания/компенсации движения определяет возможного кандидата вектора предсказания движения IVMP, используя вектор движения V0 со сжатием 1/16. Возможный кандидат вектора предсказания движения IVMP является возможным кандидатом вектора предсказания движения, сгенерированным из вектора движения блока, соседнего с текущим блоком с точки зрения проекции. Другими словами, блок 114-1 предсказания/компенсации движения определяет возможного кандидата вектора предсказания движения IVMP, используя вектор движения V0 объединенного блока изображения другой проекции той же самой картинки, что и текущий блок. Вектор движения V0 является вектором движения другой проекции той же самой картинки, что и текущая картинка, и, таким образом, сохраняется в устройстве 122-0 вектора движения V0 в сжатом (с точностью 16×16) состоянии. Таким образом, блок 114-1 предсказания/компенсации движения считывает вектор движения V0 со сжатием 1/16 из устройства 122-0 памяти вектора движения V0 и определяет возможного кандидата вектора межкадрового предсказания движения, используя вектор движения V0 со сжатием 1/16.
Процесс на этапах S1235-S1238 выполняется аналогично процессу на этапах S1134-S1137, показанным на фиг. 11. Когда процесс на этапе S1238 закончен, процесс межкадрового предсказания движения V0 заканчивается и процесс возвращается к фиг. 12.
Последовательность выполнения операций процесса кодирования V2
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 14, показана примерная последовательность выполнения операций процесса кодирования проекции 2, который выполняется на этапе S1003, показанном на фиг. 9.
Процесс для проекции 2 выполняется аналогично процессу для проекции 1. Таким образом, как показано на фиг. 14, устройство 100-2 кодирования изображения V2 выполняет процесс кодирования V2, главным образом, таким же образом, как процесс кодирования (процесс кодирования V1, показанный на фиг. 12) для проекции 1. Другими словами, процесс на этапах S1301-S1319, показанных на фиг. 14, выполняется, в основном, таким же образом, как процесс на этапах S1201-S1219, показанных на фиг. 12. Таким образом, описание процесса, показанного на фиг. 14, может быть продолжено так, что соответствующие компоненты устройства 100-1 кодирования изображения V1, описанные со ссылкой на фиг. 12, заменяются соответствующими компонентами устройства 100-2 кодирования изображения V2 и процесс для проекции 1, показанный на фиг. 12, заменяется процессом для проекции 2, и поэтому его описание здесь не приводится.
Последовательность выполнения операций процесса межкадрового предсказания движения V2
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 15, будет описана примерная последовательность выполнения операций процесса межкадрового предсказания движения V2, выполняемого на этапе S1304, показанном на фиг. 14.
Блок 114-2 предсказания/компенсации движения выполняет процесс межкадрового предсказания движения V2, в основном, таким же образом, как процесс межкадрового предсказания движения (процесс межкадрового предсказания движения V1, показанный на фиг. 13) для проекции 1, показанный на фиг. 15. Другими словами, процесс на этапах S1331-S1338, показанных на фиг. 15, выполняется, в основном, таким же образом, как процесс на этапах S1231-S1238, показанный на фиг. 13.
Здесь, на этапе S1332 используется несжатый вектор движения V2, служащий в качестве несжатого вектора движения проекции 2. Дополнительно, на этапе S1333 используется вектор движения V2 со сжатием 1/16, подвергнутый сжатию 1/16. Дополнительно, на этапе S1334 используется вектор движения V1 со сжатием 1/16, подвергнутый сжатию 1/16.
Когда процесс на этапе S1338 закончен, процесс межкадрового предсказания движения V2 заканчивается и процесс возвращается к фиг. 14.
По мере того, как соответствующие процессы выполняются как описано выше, устройство 100 кодирования изображения может уменьшать емкость устройства памяти, необходимую для вектора движения для IVMP, и сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
Устройство декодирования изображения
Далее будет описано декодирование кодированных данных (кодированного потока), кодированных, как описано выше. На фиг. 16 представлена блок-схема примерной основной конфигурации устройства декодирования изображения V0. На фиг. 17 представлена блок-схема примерной основной конфигурации устройства декодирования изображения V1. На фиг. 18 представлена блок-схема примерной основной конфигурации устройства декодирования изображения V2.
Устройство 200 декодирования изображения (не показано) способом декодирования, соответствующим способу кодирования, декодирует кодированные данные движущегося изображения, содержащего множество уровней, такого как мультипроекционное изображение, показанное на фиг. 2, которое кодируется устройством 100 кодирования изображения. Устройство 200 декодирования изображения содержит устройство 200-0 декодирования изображения V0, показанное на фиг. 16, устройство 200-1 декодирования изображения V1, показанное на фиг. 17, и устройство 200-2 декодирования изображения V2, показанное на фиг. 18, чтобы декодировать кодированные данные соответствующих проекций мультипроекционного изображения. Устройство 200-0 декодирования изображения V0 декодирует кодированные данные изображения проекции 0, кодированного устройством 100-0 кодирования изображения V0. Устройство 200-1 декодирования изображения V1 декодирует кодированные данные изображения проекции 1, кодированного устройством 100-1 кодирования изображения V1. Устройство 200-2 декодирования изображения V2 декодирует кодированные данные изображения проекции 2, кодированного устройством 100-2 кодирования изображения V2.
Как показано на фиг. 16, устройство 200 декодирования изображения V0 содержит накопительный буфер 201-0, блок 202-0 декодирования без потерь, блок 203-0 инверсного квантования, блок 204-0 инверсного ортогонального преобразования, операционный блок 205-0, контурный фильтр 206-0, буфер 207-0 перегруппировки экрана и блок 208-0 цифро-аналогового (D/A) преобразования. Устройство 200-0 декодирования изображения V0 дополнительно содержит буфер 209-0 декодированной картинки, блок 210-0 внутрикадрового предсказания, блок 211-0 компенсации движения и блок 212-0 выбора.
Как показано на фиг. 17, устройство 200-1 декодирования изображения V1 содержит накопительный буфер 201-1, блок 202-1 декодирования без потерь, блок 203-1 инверсного квантования, блок 204-1 инверсного ортогонального преобразования, операционный блок 205-1, контурный фильтр 206-1, буфер 207-1 перегруппировки экрана и блок 208-1 цифро-аналогового (D/A) преобразования. Устройство 200-1 декодирования изображения V1 дополнительно содержит буфер 209-1 декодированной картинки, блок 210-1 внутрикадрового предсказания, блок 211-1 компенсации движения и блок 212-1 выбора.
Как показано на фиг. 18, устройство 200-2 декодирования изображения V2 содержит накопительный буфер 201-2, блок 202-2 декодирования без потерь, блок 203-2 инверсного квантования, блок 204-2 инверсного ортогонального преобразования, операционный блок 205-2, контурный фильтр 206-2, буфер 207-2 перегруппировки экрана и блок 208-2 цифро-аналогового (D/A) преобразования. Устройство 200-2 декодирования изображения V2 дополнительно содержит буфер 209-2 декодированной картинки, блок 210-2 внутрикадрового предсказания, блок 211-2 компенсации движения и блок 212-2 выбора.
Здесь и далее, когда нет необходимости различать накопительные буферы 201-0-201-2 друг от друга, они упоминаются просто как "накопительный буфер 201". Дополнительно, когда нет необходимости различать блоки 202-0-202-2 декодирования без потерь друг от друга, они упоминаются просто как "блок 202 декодирования без потерь". Дополнительно, когда нет необходимости различать блоки 203-0-203-2 инверсного квантования друг от друга, они упоминаются просто как "блок 203 инверсного квантования". Дополнительно, когда нет необходимости различать блоки 204-0-204-2 инверсного ортогонального преобразования друг от друга, они упоминаются просто как "блок 204 инверсного ортогонального преобразования". Дополнительно, когда нет необходимости различать операционные блоки 205-0-205-2 друг от друга, они упоминаются просто как "операционный блок 205".
Дополнительно, когда нет необходимости различать контурные фильтры 206-0-206-2 друг от друга, они упоминаются просто как "контурный фильтр 206". Дополнительно, когда нет необходимости различать буферы 207-0-207-2 перегруппировки экрана друг от друга, они упоминаются просто как "буфер 207 перегруппировки экрана". Дополнительно, когда нет необходимости различать блоки 208-0-208-2 D/A-преобразования друг от друга, они упоминаются просто как "блок 208 D/A-преобразования". Дополнительно, когда нет необходимости различать буферы 209-0-209-2 декодированной картинки друг от друга, они упоминаются просто как "буфер 209 декодированной картинки".
Дополнительно, когда нет необходимости различать блоки 210-0-210-2 внутрикадрового предсказания друг от друга, они упоминаются просто как "блок 210 внутрикадрового предсказания". Дополнительно, когда нет необходимости различать блоки 211-0-211-2 компенсации движения друг от друга, они упоминаются просто как "блок 211 компенсации движения". Дополнительно, когда нет необходимости различать блоки 212-0-212-2 выбора друг от друга, они упоминаются просто как "блок 212 выбора".
Блок 200-0 декодирования изображения V0 дополнительно содержит блок 221-0 сжатия вектора движения V0 и устройство 222-0 памяти вектора движения V0. Блок 200-1 кодирования изображения V1 дополнительно содержит блок 221-1 сжатия вектора движения V1 и устройство 222-1 памяти вектора движения V1. Блок 200-2 кодирования изображения V2 дополнительно содержит блок 221-2 сжатия вектора движения V2 и устройство 222-2 памяти вектора движения V2.
Накопительный буфер 201 также функционирует как приемный блок, который принимает переданные кодированные данные. Накопительный буфер 201 принимает и накапливает переданные кодированные данные и подает кодированные данные на блок 202 декодирования без потерь в заданные моменты времени. Кодированные данные содержат информацию, необходимую для декодирования, такую как информация о режиме предсказания. Блок 202 декодирования без потерь декодирует информацию, кодированную блоком 106 кодирования без потерь (фиг. 6-8), которая подается из накопительного буфера 201 в соответствии со схемой кодирования блока 106 кодирования без потерь. Блок 202 декодирования без потерь подает квантованные данные коэффициентов разностного изображения, полученного декодированием, на блок 203 инверсного квантования.
Дополнительно, блок 202 декодирования без потерь определяет, выбран ли режим внутрикадрового предсказания или режим межкадрового предсказания в качестве оптимального режима предсказания, и подает информацию, относящуюся к оптимальному режиму предсказания, на блок 210 внутрикадрового предсказания или на блок 211 компенсации движения, в зависимости от режима, определенного для выбора. Другими словами, например, в случае, когда в качестве оптимального режима предсказания на стороне кодирования выбирается режим внутрикадрового предсказания, информация, относящаяся к оптимальному режиму предсказания, подается на блок 210 внутрикадрового предсказания. Дополнительно, например, в случае, когда в качестве оптимального режима предсказания на стороне кодирования выбирается режим межкадрового предсказания, информация, относящаяся к оптимальному режиму предсказания, подается на блок 211 компенсации движения.
Дополнительно, блок 202 декодирования без потерь подает на блок 203 инверсного квантования информацию, необходимую для инверсного квантования, такую как матрица квантования и параметр квантования.
Блок 203 инверсного квантования инверсно квантует квантованные данные коэффициента, полученные декодированием, выполненным блоком 202 декодирования без потерь в соответствии со схемой квантования блока 105 квантования. Блок 203 инверсного квантования является блоком обработки, аналогичным блоку 108 инверсного квантования. Другими словами, описание блока 203 инверсного квантования может также применяться к блоку 108 инверсного квантования. Здесь необходимо изменять и считывать, например, входные и выходные места назначения данных в соответствии с устройством.
Блок 203 инверсного квантования подает полученные данные коэффициента на блок 204 инверсного ортогонального преобразования.
Блок 204 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование коэффициентов ортогонального преобразования, подаваемых от блока 203 инверсного квантования, в соответствии со схемой, соответствующей схеме ортогонального преобразования, выполняемой блоком 104 ортогонального преобразования. Блок 204 инверсного ортогонального преобразования является блоком обработки, подобным блоку 109 инверсного ортогонального преобразования. Другими словами, описание блока 204 инверсного ортогонального преобразования может применяться к блоку 109 инверсного ортогонального преобразования. Здесь необходимо изменить и читать, например, входные и выходные места назначения данных в соответствии с устройством.
Блок 204 инверсного ортогонального преобразования, выполняемого посредством процесса инверсного ортогонального преобразования, получает декодированные остаточные данные (разностное изображение), соответствующие остаточным данным (разностному изображению), не подвергнутым ортогональному преобразованию в устройстве 100 кодирования изображения. Разностное изображение, полученное посредством инверсного ортогонального преобразования, подается на операционный блок 205. Дополнительно, через блок 212 выбора на операционный блок 205 подается изображение предсказания от блока 210 внутрикадрового предсказания или от блока 211 компенсации движения.
Операционный блок 205 суммирует разностное изображение с изображением предсказания и получает реконструированное изображение, соответствующее данным изображения, из которых изображение предсказания не вычтено операционным блоком. Операционный блок 205 подает реконструированное изображение на контурный фильтр 206.
Контурный фильтр 206 соответственно выполняет для поданного реконструированного изображения процесс контурной фильтрации, такой как процесс деблокирующей фильтрации или процесс адаптивной контурной фильтрации, и генерирует декодированное изображение. Например, контурный фильтр 206 выполняет для реконструированного изображения процесс деблокирующей фильтрации и удаляет блочное искажение. Дополнительно, например, контурный фильтр 206 улучшает качество изображения, выполняя процесс контурной фильтрации результата процесса деблокирующей фильтрации (реконструированного изображения, из которого удалено блочное искажение), используя фильтр Винера.
Тип процесса фильтрации, выполняемого контурным фильтром 206, является произвольным и может выполняться любой другой процесс фильтрации. Дополнительно, контурный фильтр 206 может выполнять процесс фильтрации, используя коэффициент фильтра, поданный от устройства 100 кодирования изображения.
Контурный фильтр 206 подает декодированное изображение, служащее результатом процесса фильтрации, на буфер 207 перегруппировки экрана и на буфер 209 декодированной картинки. Дополнительно, контурный фильтр 206 подает выходной сигнал (реконструированное изображение) операционного блока 205 на блок 210 внутрикадрового предсказания, не выполняя процесс фильтрации. Например, блок 210 внутрикадрового предсказания использует пиксельные значения пикселей, содержащихся в этом изображении, в качестве пиксельных значений соседних пикселей.
Буфер 207 перегруппировки экрана выполняет перегруппировку поданного декодированного изображения. Другими словами, кадры, перегруппированные в порядок кодирования буфером 102 перегруппировки экрана, перегруппируются в первоначальный порядок отображения. Блок 208 D/A-преобразования осуществляет цифро-аналоговое (D/A) преобразование декодированного изображения, поданного из буфера 207 реорганизации экрана, и выводит преобразованное изображение для отображения на дисплее (не показан).
Буфер 209 декодированной картинки сохраняет поданное декодированное изображение (и идентификатор проекции и РОС изображения). Дополнительно, буфер 209 декодированной картинки подает хранящееся декодированное изображение (и идентификатор проекции и РОС изображения) на блок 211 компенсации движения в определенный момент времени или основываясь на запросе, поданном извне, таком как запрос от блока 211 компенсации движения.
Блок 210 внутрикадрового предсказания выполняет, в основном, тот же самый процесс, что и блок 113 внутрикадрового предсказания. Здесь блок 210 внутрикадрового предсказания выполняет внутрикадровое предсказание только для области, где изображение предсказания генерируется посредством внутрикадрового предсказания во время кодирования. Блок 210 внутрикадрового предсказания подает сгенерированное изображение предсказания на операционный блок 205 через блок 212 выбора для каждой области блока процесса предсказания.
Блок 211 компенсации движения генерирует изображение предсказания, выполняя компенсацию движения для области, в которой межкадровое предсказание было выполнено во время кодирования в режиме межкадрового предсказания, использованном во время кодирования, основываясь на информации о межкадровом предсказании, поданной от блока 202 декодирования без потерь. Блок 211 компенсации движения подает сгенерированное изображение предсказания на операционный блок 205 через блок 212 выбора для каждой области блока процесса предсказания.
Блок 211 компенсации движения выполняет процесс компенсации движения, используя декодированное изображение, полученное от буфера 209 декодированной картинки.
В случае первоначально обрабатываемой проекции, блок 211 компенсации движения выполняет процесс компенсации движения, используя декодированное изображение, полученное от буфера 209 декодированной картинки, в котором хранится изображение соответствующей проекции. Например, блок 211-0 компенсации движения выполняет процесс компенсации движения, используя декодированное изображение, полученное от буфера 209-0 декодированной картинки.
В случае второй или последующей обрабатываемой проекции, блок 211 компенсации движения выполняет процесс компенсации движения, используя декодированные изображения, полученные от буфера 209 декодированной картинки, в котором хранится изображение соответствующей проекции, и от буфера 209 декодированной картинки, в котором хранится изображение непосредственно предшествующей обработанной проекции. Например, блок 211-1 компенсации движения выполняет процесс компенсации движения, используя декодированные изображения, полученные от буфера 209-0 декодированной картинки и от буфера 209-1 декодированной картинки. Дополнительно, например, блок 211-2 компенсации движения выполняет процесс компенсации движения, используя декодированные изображения, полученные от буфера 209-0 декодированной картинки и от буфера 209-2 декодированной картинки.
Блок 211 компенсации движения реконструирует вектор движения текущего блока из разностного вектора движения, переданного со стороны кодирования в качестве информации о межкадровом предсказании. В этом случае, блок 211 компенсации движения предсказывает вектор движения текущего блока тем же самым способом (в том же режиме), что и в блоке 114 предсказания/компенсации движения, основываясь на информации о межкадровом предсказании, поданной от блока 202 декодирования без потерь, и генерирует вектор предсказания движения. Блок 211 компенсации движения суммирует вектор предсказания движения с разностным вектором движения реконструирует вектор движения текущего блока.
Другими словами, блок 211 компенсации движения генерирует вектор предсказания движения текущего блока со ссылкой на вектор движения блока, соседнего с текущим блоком пространственно, во времени или с точки зрения проекции.
Вектор движения пространственно соседнего блока сохраняется блоком 211 компенсации движения. Дополнительно, когда ссылка делается на вектор движения соседнего по времени блока, блок 211 компенсации движения получает вектор движения из устройства памяти вектора движения, соответствующего соответствующей проекции. Например, блок 211-0 компенсации движения получает вектор движения соседнего по времени блока от устройства 222-0 памяти вектора движения V0. Дополнительно, например, блок 211-1 компенсации движения получает вектор движения соседнего по времени блока от устройства 222-1 памяти вектора движения V1. Дополнительно, например, блок 211-2 компенсации движения получает вектор движения соседнего по времени блока от устройства 222-2 памяти вектора движения V2.
Дополнительно, когда ссылка делается на вектор движения соседнего с точки зрения проекции блока, блок 211 компенсации движения получает вектор движения из устройства памяти вектора движения, соответствующего предшествующей обработанной проекции. Например, блок 211-1 компенсации движения получает вектор движения соседнего с точки зрения проекции блока от устройства 222-0 памяти вектора движения V0. Дополнительно, например, блок 211-2 компенсации движения получает вектор движения соседнего с точки зрения проекции блока от устройства 222-1 памяти вектора движения V1.
Векторы движения, полученные от устройств памяти векторов движения, подвергаются сжатию 1/16. Другими словами, компенсация движения для декодирования текущего уровня выполняется, используя вектор движения, реконструированный и сжатый для декодирования другого уровня. Другими словами, можно сдерживать увеличение емкости запоминающего устройства, необходимой для декодирования.
Блок 211 компенсации движения подает вектор движения текущего блока (вектор движения оптимального режима), сгенерированный посредством процессов предсказания и компенсации движения, на блок 221-0 сжатия вектора движения V0. Дополнительно, блок 211-1 компенсации движения подает сгенерированный вектор движения текущего блока на блок 221-1 сжатия вектора движения V1. Дополнительно, блок 211-2 компенсации движения подает сгенерированный вектор движения текущего блока на блок 221-2 сжатия вектора движения V2.
Блок 212 выбора подает изображение предсказания, полученное от блока 210 внутрикадрового предсказания, или изображение предсказания, полученное от блока 211 компенсации движения, на операционный блок 205.
Блок 221-0 сжатия вектора движения V0 выполняет сжатие 1/16 для несжатого вектора движения V0 с максимальной точностью 4×4, полученного от блока 211-0 компенсации движения с точностью 16×16, и подает полученный вектор движения V0 со сжатием 1/16 на устройство 222-0 памяти вектора движения V0.
Способ сжатия вектора движения является произвольным, пока используется тот же самый способ, что и в блоке 121-0 сжатия вектора движения V0. Например, когда вектор движения, служащий в качестве репрезентативного значения, выбирается из числа векторов движения множества блоков и сжимается, способ выбора вектора движения является произвольным, пока он остается таким же, как в блоке 121-0 сжатия вектора движения V0. Дополнительно, количество выбранных векторов движения является произвольным, пока используется тот же самый способ, что и в блоке 121-0 сжатия вектора движения V0, и может равняться 2 или более.
Дополнительно, например, когда репрезентативное значение вычисляется, выполняя определенную операцию, использующую векторы движения множества блоков, и вектор движения сжимается, способ выбора вектора движения является произвольным, пока он остается таким же, как в блоке 121-0 сжатия вектора движения V0.
Вектор движения V0 со сжатием 1/16 (репрезентативное значение вектора движения), полученный, как описано выше, подается и сохраняется в устройстве 222-0 памяти вектора движения V0. Устройство 222-0 памяти вектора движения V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/16 на блок 211-0 компенсации движения в качестве вектора движения соседнего по времени блока. Дополнительно, устройство 222-0 памяти вектора движения V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/16 на блок 211-1 предсказания/компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции.
Блок 221-1 сжатия вектора движения V1 выполняет сжатие 1/16 для несжатого вектора движения V1, полученного от блока 211-1 компенсации движения, и подает полученный вектор движения VI со сжатием 1/16 для хранения в устройстве 222-1 памяти вектора движения V1. Устройство 222-1 памяти вектора движения V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/16 на блок 211-1 компенсации движения в качестве вектора движения соседнего по времени блока. Дополнительно, устройство 222-1 памяти вектора движения V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/16 на блок 211-2 компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции.
Блок 221-2 сжатия вектора движения V2 выполняет сжатие 1/16 для несжатого вектора движения V2, полученного от блока 211-2 компенсации движения, и подает полученный вектор движения V2 со сжатием 1/16 для хранения в устройстве 222-2 памяти вектора движения V2. Устройство 222-2 памяти вектора движения V2 соответственно подает хранящийся вектор движения V2 со сжатием 1/16 на блок 211-2 компенсации движения в качестве вектора движения соседнего по времени блока.
Дополнительно, способ сжатия вектора движения посредством блока 221-1 сжатия вектора движения V1 и блока 221-2 сжатия вектора движения V2 является тем же самым, что и в блоке 221-0 сжатия вектора движения V0, и поэтому его описание не приводится.
Блок 221-0 сжатия вектора движения V0, блок 221-1 сжатия вектора движения V1 и блок 221-2 сжатия вектора движения V2 выполняют описанное выше сжатие вектора движения в определенных единицах кодирования. Например, блок 221-0 сжатия вектора движения V0, блок 221-1 сжатия вектора движения V1 и блок 221-2 сжатия вектора движения V2 могут выполнять описанное выше сжатие вектора движения в единицах кодирования LCU. Дополнительно, в блоке обработки блок 221-0 сжатия вектора движения V0, блок 221-1 сжатия вектора движения V1 и блок 221-2 сжатия вектора движения V2 могут быть одинаковыми или различными. Блок обработки во время выполнения последовательности может изменяться.
Дополнительно, способы сжатия вектора движения, выполняемые блоком 221-0 сжатия вектора движения V0, блоком 221-1 сжатия вектора движения V1 и блоком 221-2 сжатия вектора движения V2 могут быть одинаковыми или отличаться друг от друга.
Как описано выше, блок 221-0 сжатия вектора движения V0, блок 221-1 сжатия вектора движения V1 и блок 221-2 сжатия вектора движения V2 могут уменьшать (то есть, сжимать) объем информации векторов движения, уменьшая количество векторов движения. Таким образом, можно уменьшить объемы памяти устройства 222-0 памяти вектора движения V0, устройства 222-1 памяти вектора движения V1 и устройства 222-2 памяти вектора движения V2.
Дополнительно, как описано выше, блок 211 компенсации движения может обращаться к векторам движения, хранящимся в устройстве 222-0 памяти вектора движения V0, в устройстве 222-1 памяти вектора движения V1 и в устройстве 222-2 памяти вектора движения V2, как к вектору движения для IVMP, а также, как к вектору движения для TMVP. Поскольку вектор движения для TMVP и вектор движения для IVMP объединены, как описано выше, можно уменьшить емкость запоминающего устройства, необходимую для кодирования. Дополнительно, можно сдерживать увеличение нагрузки, вызванной сжатием вектора движения. Соответственно, для устройства 200 декодирования изображения можно реализовать снижение производственных затрат или затрат на разработку, уменьшить размеры устройства, снизить потребляемую мощность и т.п.
Последовательность выполнения операций процесса декодирования
Далее будет описана последовательность выполнения операций обработки, выполняемых устройством 200 декодирования изображения. Примерная последовательность выполнения операций процесса декодирования, выполняемого устройством 200 декодирования изображения, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 19.
После начала процесса декодирования для текущей картинки устройство 200-0 декодирования изображения V0 на этапе S1401 выполняет процесс декодирования V0, устройство 200-1 декодирования изображения V1 на этапе S1402 выполняет процесс декодирования V1 и устройство 200-2 декодирования изображения V2 на этапе S1403 выполняет процесс декодирования V2.
На этапе S1404 устройство 200 декодирования изображения определяет, все ли картинки были обработаны, и когда определено, что существует необработанная картинка, процесс возвращается к этапу S1401 и последующий процесс повторяется.
Процесс на этапах S1401-S1404 выполняется повторно для каждой картинки и когда на этапе S1404 определено, что все картинки обработаны, устройство 200 декодирования изображения заканчивает процесс декодирования.
Последовательность выполнения операций процесса декодирования V0
Далее, со ссылкой на последовательность выполнения операций, показанную на фиг. 20, будет описана выполняемая на этапе S1401, показанном на фиг. 19, примерная последовательность выполнения операций процесса декодирования для декодирования кодированных данных проекции 0.
Когда процесс декодирования начат, на этапе S1501 накопительный буфер 201-0 накапливает переданные битовые потоки проекции 0. На этапе S1502 блок 202-0 декодирования без потерь декодирует битовые потоки (кодированную информацию разностного изображения) проекции 0, поданные из накопительного буфера 201-0. Другими словами, декодируются соответствующие картинки (картинка I, картинка Р и картинка В) проекции 0, кодированные кодером 106-0 без потерь. В этом случае, также декодируются различные фрагменты информации, отличные от информации разностного изображения, содержащиеся в битовых потоках, такие как информация заголовка.
На этапе S1503 блок 203-0 инверсного квантования инверсно квантует квантованные коэффициенты, полученные в процессе на этапе S1503.
На этапе S1504 блок 204-0 инверсного ортогонального преобразования, по мере необходимости, выполняет ортогональное преобразование для коэффициентов, инверсно квантованных в процессе на этапе S1503.
На этапе S1505 блок 202-0 декодирования без потерь определяет, является ли режим предсказания, применяемый во время кодирования, режимом межкадрового предсказания. Когда определяется, что режим предсказания, применяемый во время кодирования, является режимом межкадрового предсказания, процесс переходит к этапу S1506.
На этапе S1506 блок 211-0 компенсации движения выполняет процесс компенсации движения V0 и генерирует изображение предсказания. Когда процесс на этапе S1506 закончен, процесс переходит к этапу S1508. Дополнительно, когда на этапе S1505 определяется, что режим предсказания, применяемый во время кодирования, является режимом внутрикадрового предсказания, процесс переходит к этапу S1507. На этапе S1507 блок 210-0 внутрикадрового предсказания выполняет процесс внутрикадрового предсказания и генерирует изображение предсказания. Когда процесс на этапе S1507 закончен, процесс переходит к этапу S1508.
На этапе S1508 операционный блок 205-0 суммирует изображение предсказания, сгенерированное в процессе на этапе S1506 или в процессе на этапе S1507, с информацией разностного изображения, полученной посредством инверсного ортогонального преобразования, выполненного в процессе на этапе S1504. Таким образом, генерируется реконструированное изображение.
На этапе S1509 блок 221-0 сжатия вектора движения V0 выполняет сжатие 1/16 несжатого вектора движения V0, сгенерированного в процессе на этапе S1506, аналогично блоку 121-0 сжатия вектора движения V0. На этапе S1510 устройство 222-0 памяти вектора движения V0 сохраняет вектор движения V0 со сжатием 1/16, сгенерированный в процессе на этапе S1509, аналогично устройству 122-0 памяти вектора движения V0.
Устройство 200-0 декодирования изображения V0 выполняет процесс этапов S1501-S1110 на каждом блоке в текущем LCU, служащим целью обработки. На этапе S1511 устройство 200-0 декодирования изображения V0 определяет, все ли LCU были обработаны. Когда определено, что существует необработанный LCU, процесс возвращается к этапу S1501 и последующий процесс повторяется. Процесс этапов S1501-S1510 выполняется для каждого LCU изображения проекции 0 текущей картинки и когда на этапе S1511 определено, что все LCU были обработаны, процесс переходит к этапу S1512.
На этапе S1512 контурный фильтр 206-0 соответствующим образом выполняет для реконструированного изображения, полученного на этапе S1508, процесс контурной фильтрации, такой как процесс деблокирующей фильтрации или процесс адаптивной контурной фильтрации.
На этапе S1513 буфер 207-0 перегруппировки экрана сохраняет перегруппировку декодированного изображения, полученную посредством процесса фильтрации, выполненного на этапе S1512. Другими словами, кадры, перегруппированные в порядок для кодирования буфером 102-0 перегруппировки экрана, перегруппируются в первоначальный порядок отображения.
На этапе S1514 блок 208-0 D/A-преобразования выполняет D/A-преобразование декодированного изображения проекции 0, для которого порядок кадров перегруппирован. Это декодированное изображение выводится и отображается на дисплее (не показан).
На этапе S1515 буфер 209-0 декодированной картинки сохраняет декодированное изображение, полученное в процессе фильтрации на этапе S1512. Это декодированное изображение используется в качестве опорного изображения в процессе межкадрового предсказания.
После окончания процесса на этапе S1515, процесс декодирования заканчивается и процесс возвращается к фиг. 19.
Последовательность выполнения операций процесса компенсации движения V0
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 21, будет описана примерная последовательность выполнения операций процесса компенсации движения V0, выполняемого на этапе S1506, показанного на фиг. 20.
После начала процесса компенсации движения V0, на этапе S1531 блок 211-0 компенсации движения получает информацию о разностном движении (вектор разностного движения). На этапе S1532 блок 211-0 компенсации движения определяет, является ли режим предсказания вектора движения режимом пространственного предсказания, основываясь на информации о межкадровом предсказании. Когда определяется, что режим предсказания вектора движения является режимом пространственного предсказания, процесс переходит к этапу S1533.
На этапе S1533 блок 211-0 компенсации движения генерирует вектор предсказания движения, используя несжатый вектор движения V0 блока (вектор движения блока, пространственно соседнего с текущим блоком) в картинке. Когда вектор предсказания движения сгенерирован, процесс переходит к этапу S153 5.
Однако, когда на этапе S1532 определено, что режим предсказания вектора движения не является режимом пространственного предсказания, процесс переходит к этапу S1534.
На этапе S1534 блок 211-0 компенсации движения генерирует вектор предсказания движения, используя вектор движения V0 со сжатием 1/16 (вектор движения блока, пространственно соседнего с текущим блоком) в другой картинке. Когда вектор предсказания движения сгенерирован, процесс переходит к этапу S1535.
На этапе S1535 блок 211-0 компенсации движения реконструирует вектор движения, используя вектор предсказания движения, сгенерированный в процессе на этапе S1533 или в процессе на этапе S1534.
На этапе S1536 блок 211-0 компенсации движения выполняет компенсацию движения и генерирует изображение предсказания. Блок 211-0 компенсации движения сохраняет реконструированный вектор движения. После окончания процесса на этапе S1536 процесс компенсации движения V0 заканчивается и процесс возвращается к фиг. 20.
Последовательность выполнения операций процесса декодирования V1
Далее, со ссылкой на последовательность выполнения операций, показанную на фиг. 22, будет описана выполняемая на этапе S1402, показанном на фиг. 19, примерная последовательность выполнения операций процесса декодирования V1 для декодирования кодированных данных проекции 1.
Разница между процессом для проекции 0 и процессом для проекции 1 лежит, главным образом, в процессе компенсации движения. Таким образом, как показано на фиг. 22, устройство 200-1 декодирования изображения V1 выполняет процесс декодирования V1, главным образом, таким же образом, как процесс декодирования (процесс декодирования V0, показанный на фиг. 20) для проекции 0. Другими словами, процесс на этапах S1601-S1615, показанных на фиг. 22, выполняется, в основном, таким же образом, как процесс на этапах S1501-S1515, показанных на фиг. 20. Таким образом, описание процесса, показанного на фиг. 22, может быть продолжено так, что соответствующие компоненты устройства 200-0 декодирования изображения V0, описанные со ссылкой на фиг. 20, заменяются соответствующими компонентами устройства 200-1 декодирования изображения V1 и процесс для проекции 0, показанный на фиг. 20, заменяется процессом для проекции 1, и поэтому его описание здесь не приводится.
Последовательность выполнения операций процесса компенсации движения V1
Далее, со ссылкой на блок-схему последовательности выполнения операции, у показанную на фиг. 23, будет описана примерная последовательность выполнения операций процесса компенсации движения V1, выполняемого на этапе S1606, показанном на фиг. 22.
После начала процесса компенсации движения V1, на этапе S1631 блок 211-1 компенсации движения получает информацию о разностном движении (вектор разностного движения). На этапе S1632 блок 211-1 компенсации движения, основываясь на информации о межкадровом предсказании, определяет, является ли режим предсказания вектора движения режимом пространственного предсказания. Когда определяется, что режим предсказания вектора движения является режимом пространственного предсказания, процесс переходит к этапу S1633.
На этапе S1633 блок 211-1 компенсации движения генерирует вектор предсказания движения, используя несжатый вектор движения V1 (вектор движения блока, пространственно соседнего с текущим блоком) в картинке. Когда вектор предсказания движения сгенерирован, процесс переходит к этапу S1635.
Однако, когда на этапе S1632 определено, что режим предсказания вектора движения не является режимом пространственного предсказания, процесс переходит к этапу S1634.
Поскольку проекция 1 не является первоначально обработанной проекцией, режим предсказания вектора движения может быть режимом межкадрового предсказания (IVMP).
На этапе S1634 блок 211-1 компенсации движения, основываясь на информации о межкадровом предсказании, определяет, является ли режим предсказания вектора движения режимом временного предсказания. Когда определяется, что режим предсказания вектора движения является режимом временного предсказания, процесс переходит к этапу S1635.
На этапе S1635 блок 211-1 компенсации движения генерирует вектор предсказания движения, используя вектор движения V1 со сжатием 1/16 (вектор движения блока, пространственно соседнего с текущим блоком) в другой картинке. Когда вектор предсказания движения сгенерирован, процесс переходит к этапу S1637.
Однако, когда на этапе S1634 определено, что режим предсказания вектора движения не является режимом временного предсказания, процесс переходит к этапу S1636.
На этапе S1636 блок 211-1 компенсации движения генерирует вектор предсказания движения, используя вектор движения V0 со сжатием 1/16 (вектор движения объединенного блока изображения проекции 0). Когда вектор предсказания движения сгенерирован, процесс переходит к этапу S1637.
На этапе S1637 блок 211-1 компенсации движения реконструирует вектор движения, используя вектор предсказания движения, сгенерированный в процессе на этапе S1633, на этапе S1635 или в процессе на этапе S1636.
На этапе S1638 блок 211-1 компенсации движения выполняет компенсацию движения и генерирует изображение предсказания. Дополнительно, блок 211-1 компенсации движения сохраняет вектор движения, реконструированный на этапе S1637. После окончания процесса на этапе S1638 процесс компенсации движения V1 заканчивается и процесс возвращается к фиг. 22.
Последовательность выполнения операций процесса декодирования V2
Далее, со ссылкой на последовательность выполнения операций, показанную на фиг. 24, будет описана выполняемая на этапе S1403, показанном на фиг. 19, примерная последовательность выполнения операций процесса декодирования V2 для декодирования кодированных данных проекции 2.
Разница между процессом для проекции 1 и процессом для проекции 2 лежит, главным образом, в процессе компенсации движения. Таким образом, как показано на фиг. 24, устройство 200-2 декодирования изображения V2 выполняет процесс декодирования V2, главным образом, таким же образом, как процесс декодирования (процесс декодирования V1, показанный на фиг. 22) для проекции 1. Другими словами, процесс на этапах S1701-S1715, показанный на фиг. 24, выполняется, в основном, таким же образом, как процесс на этапах S1601-S1615, показанных на фиг. 22. Таким образом, описание процесса, показанного на фиг. 24, может быть продолжено так, что соответствующие компоненты устройства 200-1 декодирования изображения V1, описанные со ссылкой на фиг. 22, заменяются соответствующими компонентами устройства 200-2 декодирования изображения V2 и процесс для проекции 1, показанный на фиг. 22, заменяется процессом для проекции 2, и поэтому его описание здесь не приводится.
Последовательность выполнения операций процесса компенсации движения V2
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 25, будет описана примерная последовательность выполнения операций процесса компенсации движения V2, выполняемого на этапе S1706, показанном на фиг. 24.
Как показано на фиг. 25, процесс компенсации движения V2 выполняется, в основном, таким же образом, как процесс компенсации движения V1 (фиг. 23). Другими словами, процесс на этапах S1731-S1738, показанный на фиг. 25, выполняется, в основном, таким же образом, как процесс на этапах S1631-S1638, показанный на фиг. 23. Здесь, процесс компенсации движения V1 выполняется блоком 211-1 компенсации движения, тогда как процесс компенсации движения V2 выполняется блоком 211-2 компенсации движения.
Дополнительно, целью обработки процесса компенсации движения V2 является изображение проекции V2, отличное от изображения проекции 1. Таким образом, на этапе S1733 блок 211-2 компенсации движения генерирует вектор предсказания движения, используя несжатый вектор движения V2 (вектор движения блока, пространственно соседнего с текущим блоком) в картинке.
Дополнительно, на этапе S1735 блок 211-2 компенсации движения генерирует вектор предсказания движения, используя вектор движения V2 со сжатием 1/16 (вектор движения блока, соседнего по времени с текущим блоком) в другой картинке.
Дополнительно, на этапе S1736 блок 211-2 компенсации движения генерирует вектор предсказания движения, используя вектор движения V2 со сжатием 1/16 (вектор движения блока, соседнего с текущим блоком с точки зрения проекции).
Процессы на этапе S1731, этапе S1732, этапе S1734, этапе S1737 и этапе S1738 выполняются таким же образом, как процессы на этапе S1631, этапе S1632, этапе S1634, этапе S1637 и этапе S1638, показанные на фиг. 23.
После окончания процесса на этапе S1738, процесс компенсации движения V2 заканчивается и процесс возвращается к фиг. 24.
По мере того, как процесс выполняется как описано выше, устройство 200 декодирования изображения может уменьшать объем устройства памяти, необходимый для векторов движения для IVMP, и сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
Приведенное выше описание было сделано в сочетании с примером, в котором точность вектора движения составляет максимальную точность 4×4 в несжатом состоянии и точность 16×16 после сжатия, но это является примером и точность вектора движения является произвольной. Коэффициент сжатия вектора движения также является произвольным. Другими словами, точность возможного кандидата вектора движения при пространственном предсказании, возможного кандидата вектора предсказания при временном предсказании, возможного кандидата вектора предсказания при предсказании IVMP и вектора предсказания движения каждой проекции также является произвольной. Все проекции могут быть одинаковы или различаться друг от друга по точности или коэффициенту сжатия.
2. Второй вариант осуществления
Сжатие вектора движения для IVMP
При сжатии вектора движения могут сжиматься вектор движения для IVMP и вектор движения для TMVP (например, прореживаться), как показано на фиг. 26. Другими словами, точность вектора движения для IVMP может отличаться от точности вектора движения для TMVP.
Более конкретно, например, вектор движения с точностью 4×4 сжимается (например, прореживается) с точностью 8×8 для IVMP, пока не начнется процесс для следующей проекции (кодирование и декодирование), и сжимается (например, прореживается) с точностью 16×16 для TMVP, пока не начнется процесс для следующей картинки (кодирование и декодирование). Другими словами, к вектору движения с точностью 8×8 обращаются для IVMP, а к вектору движения с точностью 16×16 обращаются для TMVP. Таким образом, можно сдерживать увеличение объема необходимой памяти по сравнению со способом, соответствующим предшествующему уровню изобретения. Дополнительно, можно увеличить точность вектора движения для IVMP, которая должна быть больше, чем в способе, описанном в первом варианте осуществления.
Например, как показано на фиг. 26, вектор движения для IVMP сжимается (например, прореживается) с точностью 8×8 посредством блока сжатия вектора движения ((V0-V2) MV-устройства сжатия А) и сохраняется в устройстве памяти временного вектора движения ((V0-V2) временные MV-устройства памяти). В случае IVMP ссылка делается на вектор движения устройства памяти временного вектора движения. Посредством этого сжатия (например, прореживания) можно сдерживать увеличение объема устройства памяти временного вектора движения.
Дополнительно, в качестве вектора движения для TMVP, вектор движения устройства памяти временного вектора движения дополнительно сжимается (например, прореживается) с точностью 16×16 посредством блока сжатия вектора движения ((V0-V2) MV-устройства сжатия В) и сохраняется в устройстве памяти вектора движения ((V0-V2) MV-устройства памяти). В случае TMVP ссылка делается на вектор движения устройства памяти вектора движения. Таким образом, можно уменьшить коэффициент сжатия (например, коэффициент прореживания в процессе прореживания) процессов сжатия до 1/4 в обоих случаях. Другими словами, один и тот же процесс сжатия (например, процесс прореживания) может выполняться только дважды и это легко реализуется.
Способ сжатия будет ниже описан более конкретно. В дальнейшем, точность вектора движения считается равной максимальной точности 4×4 в несжатом состоянии. Дополнительно, для IVMP несжатый вектор движения считается сжатым (со сжатием 1/4) с точностью 8×8. Дополнительно, вектор движения со сжатием 1/4 (вектор движения с точностью 8×8) для TMVP считается сжатым (со сжатием 1/4) с точностью 16×16.
Устройство кодирования изображения
На фиг. 27 представлена блок-схема примерной основной конфигурации устройства кодирования изображения V0. На фиг. 28 представлена блок-схема примерной основной конфигурации устройства V1 кодирования изображения. На фиг. 29 представлена блок-схема примерной основной конфигурации устройства кодирования изображения V2.
Устройство 300 кодирования изображения (не показано) кодирует движущееся изображение, содержащее множество уровней, такое как мультипроекционное изображение, показанное на фиг. 2. Устройство 300 кодирования изображения содержит устройство 300-0 кодирования изображения V0, показанное на фиг. 27, устройство 300-1 кодирования изображения V1, показанное на фиг. 28, и устройство 300-2 кодирования изображения V2, показанное на фиг. 29, чтобы кодировать проекции мультипроекционного изображения. Устройство 300-0 кодирования изображения V0 кодирует изображение проекции 0. Устройство 300-1 кодирования изображения V1 кодирует изображение проекции 1. Устройство 300-2 кодирования изображения V2 кодирует изображение проекции 2.
Как показано на фиг. 27, устройство 300-0 кодирования изображения V0 содержит блок 301-0 аналогово-цифрового (A/D) преобразования, буфер 302-0 перегруппировки экрана, операционный блок 303-0, блок 304-0 ортогонального преобразования, блок 305-0 квантования, блок 306-0 кодирования без потерь, накопительный буфер 307-0, блок 308-0 инверсного квантования и блок 309-0 инверсного ортогонального преобразования. Блок 300-0 кодирования изображения V0 дополнительно содержит операционный блок 310-0, контурный фильтр 311-0, буфер 312-0 декодированной картинки, блок 313-0 внутрикадрового предсказания, блок 314-0 предсказания/компенсации движения, блок 315-0 выбора изображения предсказания и блок 316-0 управления скоростью.
В примере, показанном на фиг. 28, устройство 300-1 кодирования изображения V1 содержит блок 300-1 аналогово-цифрового (A/D) преобразования, буфер 302-1 перегруппировки экрана, операционный блок 303-1, блок 304-1 ортогонального преобразования, блок 305-1 квантования, блок 306-1 кодирования без потерь, накопительный буфер 307-1, блок 308-1 инверсного квантования и блок 309-1 инверсного ортогонального преобразования. Устройство 300-1 кодирования изображения V1 дополнительно содержит операционный блок 310-1, контурный фильтр 311-1, буфер 312-1 декодированной картинки, блок 313-1 внутрикадрового предсказания, блок 314-1 предсказания/компенсации движения, блок 315-1 выбора изображения предсказания и блок 316-1 управления скоростью.
В примере, показанном на фиг. 29, устройство 300-2 кодирования изображения V2 содержит блок 301-2 аналогово-цифрового (A/D) преобразования, буфер 302-2 перегруппировки экрана, операционный блок 303-2, блок 304-2 ортогонального преобразования, блок 305-2 квантования, блок 306-2 кодирования без потерь, накопительный буфер 307-2, блок 308-2 инверсного квантования и блок 309-2 инверсного ортогонального преобразования. Устройство 300-2 кодирования изображения V2 дополнительно содержит операционный блок 310-2, контурный фильтр 311-2, буфер 312-2 декодированной картинки, блок 313-2 внутрикадрового предсказания, блок 314-2 предсказания/компенсации движения, блок 315-2 выбора изображения предсказания и блок 316-2 управления скоростью.
Здесь и далее, когда нет необходимости различать блоки 301-0-301-2 A/D-преобразования друг от друга, они упоминаются просто как "блок 301 A/D-преобразования". Дополнительно, когда нет необходимости различать буферы 302-0-302-2 перегруппировки экрана друг от друга, они упоминаются просто как "буфер 302 перегруппировки экрана". Дополнительно, когда нет необходимости различать операционные блоки 303-0-303-2 друг от друга, они упоминаются просто как "операционный блок 303". Дополнительно, когда нет необходимости различать буферы 304-0-304-2 ортогонального преобразования друг от друга, они упоминаются просто как "блок 304 ортогонального преобразования". Дополнительно, когда нет необходимости различать блоки 305-0-305-2 квантования друг от друга, они упоминаются просто как "блок 305 квантования". Дополнительно, когда нет необходимости различать блоки 306-0-306-2 кодирования без потерь друг от друга, они упоминаются просто как "блок 306 кодирования без потерь". Дополнительно, когда нет необходимости различать накопительные буферы 307-0-307-2 друг от друга, они упоминаются просто как "накопительный буфер 307". Дополнительно, когда нет необходимости различать блоки 308-0-308-2 инверсного квантования друг от друга, они упоминаются просто как "блок 308 инверсного квантования". Дополнительно, когда нет необходимости различать блоки 309-0-309-2 инверсного ортогонального преобразования друг от друга, они упоминаются просто как "блок 309 инверсного ортогонального преобразования".
Дополнительно, когда нет необходимости различать операционные блоки 310-0-310-2 друг от друга, они упоминаются просто как "операционный блок 310". Дополнительно, когда нет необходимости различать контурные фильтры 311-0-311-2 друг от друга, они упоминаются просто как "контурный фильтр 311". Дополнительно, когда нет необходимости различать буферы 312-0-312-2 декодированной картинки друг от друга, они упоминаются просто как "буфер 312 декодированной картинки". Дополнительно, когда нет необходимости различать блоки 313-0-313-2 внутрикадрового предсказания друг от друга, они упоминаются просто как "блок 313 внутрикадрового предсказания". Дополнительно, когда нет необходимости различать блоки 314-0-314-2 предсказания/компенсации движения друг от друга, они упоминаются просто как "блок 314 предсказания/компенсации движения". Дополнительно, когда нет необходимости различать блоки 315-0-315-2 выбора изображения предсказания друг от друга, они упоминаются просто как "блок 315 выбора изображения предсказания". Дополнительно, когда нет необходимости различать блоки 316-0-316-2 управления скоростью друг от друга, они упоминаются просто как "блок 316 управления скоростью".
Блок 301 A/D-преобразования соответствует блоку 101 A/D-преобразования и выполняет, в основном, тот же самый процесс, что и блок 101 A/D-преобразования. Буфер 302 перегруппировки экрана соответствует буферу 102 перегруппировки экрана и выполняет, в основном, тот же самый процесс, что и буфер 102 перегруппировки экрана. Операционный блок 303 соответствует операционному блоку 103 и выполняет, в основном, тот же самый процесс, что и операционный блок 103. Блок 304 ортогонального преобразования соответствует блоку 104 ортогонального преобразования и выполняет, в основном, тот же самый процесс, что и блок 104 ортогонального преобразования. Блок 305 квантования соответствует блоку 105 квантования и выполняет, в основном, тот же самый процесс, что и блок 105 квантования. Блок 306 кодирования без потерь соответствует блоку 106 кодирования без потерь и выполняет, в основном, тот же самый процесс, что и блок 106 кодирования без потерь. Накопительный буфер 307 соответствует накопительному буферу 401 и выполняет, в основном, тот же самый процесс, что и накопительный буфер 107.
Блок 308 инверсного квантования соответствует блоку 108 инверсного квантования и выполняет, в основном, тот же самый процесс, что и блок 108 инверсного квантования. Блок 309 инверсного ортогонального преобразования соответствует блоку 109 инверсного ортогонального преобразования и выполняет, в основном, тот же самый процесс, что и блок 109 инверсного ортогонального преобразования. Операционный блок 310 соответствует операционному блоку 110 и выполняет, в основном, тот же самый процесс, что и операционный блок 110. Контурный фильтр 311 соответствует контурному фильтру 111 и выполняет, в основном, тот же самый процесс, что и контурный фильтр 111. Буфер 312 декодированной картинки соответствует буферу 112 декодированной картинки и выполняет, в основном, тот же самый процесс, что и буфер 112 декодированной картинки.
Блок 313 внутрикадрового предсказания соответствует блоку 113 внутрикадрового предсказания и выполняет, в основном, тот же самый процесс, что и блок 113 внутрикадрового предсказания. Блок 314 предсказания/компенсации движения соответствует блоку 114 предсказания/компенсации движения и выполняет, в основном, тот же самый процесс, что и блок 114 предсказания/компенсации движения. Блок 315 выбора изображения предсказания соответствует блоку 115 выбора изображения предсказания и выполняет, в основном, тот же самый процесс, что и блок 115 выбора изображения предсказания.
Устройство 300-0 кодирования изображения V0 дополнительно содержит блок 321-0 сжатия вектора движения V0, устройство 322-0 временной памяти V0 и устройство 324-0 памяти вектора движения V0.
Устройство 300-1 кодирования изображения V1 дополнительно содержит блок 321-1 сжатия вектора движения V1, устройство 322-1 временной памяти V1 и устройство 324-1 памяти вектора движения V1.
Устройство 300-2 кодирования изображения V2 дополнительно содержит блок 321-2 сжатия вектора движения V2, устройство 322-2 временной памяти V2 и устройство 324-2 памяти вектора движения V2.
Блок 314-0 предсказания/компенсации движения подает несжатый вектор движения V0 (с максимальной точностью 4×4) текущего блока, сгенерированный при предксказании движения, на блок 321-0 сжатия вектора движения V0. Дополнительно, блок 314-0 предсказания/компенсации движения получает вектор движения V0 со сжатием 1/16, хранящийся в устройстве 324-0 памяти вектора движения V0 в качестве вектора движения соседнего по времени текущего блока.
Блок 314-1 предсказания/компенсации движения подает несжатый вектор движения V1 (с максимальной точностью 4×4) текущего блока, сгенерированный при предсказании движения, на блок 321-1 сжатия вектора движения V1. Дополнительно, блок 314-1 предсказания/компенсации движения получает вектор движения V0 со сжатием 1/16, хранящийся в устройстве 324-1 памяти вектора движения V1 в качестве вектора движения соседнего по времени текущего блока. Дополнительно, блок 314-1 предсказания/компенсации движения получает вектор движения V0 со сжатием 1/16, хранящийся в устройстве 324-0 памяти вектора движения V0 в качестве вектора движения, соседнего с текущим блоком с точки зрения проекций.
Блок 314-2 предсказания/компенсации движения подает несжатый вектор движения V2 (с максимальной точностью 4×4) текущего блока, сгенерированный при предсказании движения, на блок 321-2 сжатия вектора движения V2.
Дополнительно, блок 314-2 предсказания/компенсации движения получает вектор движения V2 со сжатием 1/16, хранящийся в устройстве 324-2 памяти вектора движения V2 в качестве вектора движения соседнего по времени текущего блока. Дополнительно, блок 314-2 предсказания/компенсации движения получает вектор движения V1 со сжатием 1/16, хранящийся в устройстве 324-1 памяти вектора движения V1 в качестве вектора движения, соседнего с текущим блоком с точки зрения проекций.
Блок 321-0 сжатия вектора движения V0 выполняет сжатие (которое также упоминается как "сжатие 1/4") для несжатого вектора движения V0, поданного от блока 314-0 предсказания/компенсации движения с точностью 8 Ч 8, и подает сжатый вектор движения (который также упоминается как "сжатый вектор движения V0 со сжатием 1/4"), на устройство 322-0 временной памяти V0. Другими словами, блок 321-0 сжатия вектора движения V0 отличается по коэффициенту сжатия, но выполняет такое же сжатие, как блок 121-0 сжатия вектора движения V0. Таким образом, способ сжатия вектора движения является произвольным, аналогично блоку 121-0 сжатия вектора движения V0.
Устройство 322-0 временной памяти V0 сохраняет поданный вектор движения V0 со сжатием 1/4. Устройство 322-0 временной памяти V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/4 на блок 314-1 предсказания/компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции. Дополнительно, устройство 322-0 временной памяти V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/4 на блок 323-0 сжатия вектора движения V0.
Блок 323-0 сжатия вектора движения V0 считывает вектор движения V0 со сжатием 1/4 из устройства 322-0 временной памяти V0, выполняет сжатие (которое также упоминается как "сжатие 1/4") с точностью 16×16 и подает сжатый вектор движения (то есть, вектор движения V0 со сжатием 1/16), на устройство 324-0 памяти вектора движения V0. Блок 323-0 сжатия вектора движения V0 выполняет тот же самый процесс, что и блок 321-0 сжатия вектора движения V0. Другими словами, сжатие 1/4 выполняется дважды. Таким образом, генерируется такой же вектор движения V0 со сжатием 1/16, как и вектор движения, генерируемый блоком 121-0 сжатия вектора движения.
Блок 321-0 сжатия вектора движения V0 и блок 323-0 сжатия вектора движения V0 могут отличаться друг от друга по способу сжатия. Дополнительно, блок 323-0 сжатия вектора движения V0 может выполнять сжатие 1/16 несжатого вектора движения V0, сгенерированного блоком 314-0 предсказания/компенсации движения, аналогично блоку 121-0 сжатия вектора движения V0.
Устройство 324-0 памяти вектора движения V0 сохраняет поданный вектор движения V0 со сжатием 1/16. Устройство 324-0 памяти вектора движения V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/16 на блок 314-0 предсказания/компенсации движения в качестве вектора движения соседнего по времени блока.
Блок 321-1 сжатия вектора движения V1 является блоком обработки, подобным блоку 321-0 сжатия вектора движения V0. Блок 321-1 сжатия вектора движения V1 выполняет сжатие 1/4 для несжатого вектора движения V1, поданного от блока 314-1 предсказания/компенсации движения и подает сжатый вектор движения (который также упоминается как "вектор движения V0 со сжатием 1/4"), на устройство 322-1 временной памяти V1.
Устройство 322-1 временной памяти V1 является блоком обработки, подобным устройству 322-0 временной памяти V0. Устройство 322-1 временной памяти V1 сохраняет поданный вектор движения V1 со сжатием 1/4. Устройство 322-1 временной памяти V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/4 на блок 314-2 предсказания/компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции. Дополнительно, устройство 322-1 временной памяти V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/4 на блок 323-1 сжатия вектора движения V0.
Блок 323-1 сжатия вектора движения V1 является блоком обработки, подобным блоку 323-0 сжатия вектора движения V0. Блок 323-1 сжатия вектора движения V1 считывает вектор движения V1 со сжатием 1/4 из устройства 322-1 временной памяти V1, выполняет сжатие 1/4 и подает сжатый вектор движения (то есть, вектор движения V1 со сжатием 1/16) на устройство 324-1 памяти вектора движения V1.
Устройство 324-1 памяти вектора движения V1 сохраняет поданный вектор движения V1 со сжатием 1/16. Устройство 324-1 памяти вектора движения V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/16 на блок 314-1 предсказания/компенсации движения в качестве вектора движения соседнего по времени блока.
Блок 321-2 сжатия вектора движения V2 является блоком обработки, подобным блоку 321-0 сжатия вектора движения V0. Блок 321-2 сжатия вектора движения V2 выполняет сжатие 1/4 для несжатого вектора движения V2, поданного от блока 314-2 предсказания/компенсации движения и подает сжатый вектор движения (который также упоминается как "вектор движения V2 со сжатием 1/4"), на устройство 322-2 временной памяти V2.
Устройство 322-2 временной памяти V2 является блоком обработки, подобным устройству 322-0 временной памяти V0. Устройство 322-2 временной памяти V2 сохраняет поданный вектор движения V2 со сжатием 1/4. Устройство 322-2 временной памяти V2 соответственно подает хранящийся вектор движения V2 со сжатием 1/4 на блок 323-2 сжатия вектора движения V2.
Блок 323-2 сжатия вектора движения V2 является блоком обработки, подобным блоку 323-0 сжатия вектора движения V0. Блок 323-2 сжатия вектора движения V2 считывает вектор движения V2 со сжатием 1/4 из устройства 322-2 временной памяти V2, выполняет сжатие 1/4 и подает сжатый вектор движения (то есть, вектор движения V2 со сжатием 1/16) на устройство 324-2 памяти вектора движения V2.
Устройство 324-2 памяти вектора движения V2 сохраняет поданный вектор движения V2 со сжатием 1/16. Устройство 324-2 памяти вектора движения V2 соответственно подает хранящийся вектор движения V2 со сжатием 1/16 на блок 314-2 предсказания/компенсации движения в качестве вектора движения соседнего по времени блока.
Поскольку устройство 300-2 кодирования изображения V2 кодирует изображение проекции 2, которая окончательно обработана, вектор движения, полученный в блоке 314-2 предсказания/компенсации движения не используется ни для какой другой проекции. Таким образом, вместо блока 321-2 сжатия вектора движения V2 в устройстве 324-2 памяти вектора движения V2 в качестве устройства 100-2 кодирования изображения V2 могут применяться блок 121-2 сжатия вектора движения V2 и устройство 122-2 памяти вектора движения V2.
Как описано выше, блок 321-0 сжатия вектора движения V0, блок 321-1 сжатия вектора движения V1 и блок 321-2 сжатия вектора движения V2 могут уменьшать (то есть, сжимать) объем информации векторов движения, уменьшая количество векторов движения. Таким образом, можно уменьшить объемы памяти устройства 322-0 временной памяти V0, устройства 322-1 временной памяти V1 и устройства 322-2 временной памяти V2.
Дополнительно, в этом случае, путем ограничения коэффициента сжатия таким образом, что точность вектора движения для IVMP является выше, чем точность вектора движения для TMVP, можно повысить точность предсказания IVMP, которая должна быть выше, чем когда точность вектора движения для IVMP равна точности вектора движения для TMVP.
Соответственно, можно реализовать снижение производственных затрат или затрат на разработку, уменьшить размеры устройства, снизить потребляемую мощность и т.п. для устройства 300 кодирования изображения.
Последовательность выполнения операций процесса кодирования V0
Далее будет описана обработка, выполняемая устройством 100 кодирования изображения. Последовательность выполнения операций процесса кодирования, выполняемого устройством 300 кодирования изображения, является такой же, как в первом варианте осуществления (фиг. 9), и поэтому ее описание не приводится.
Далее, примерная последовательность выполнения операций процесса кодирования для кодирования проекции 0, который выполняется на этапе S1001, показанном на фиг. 9, будет описана со ссылкой на последовательность выполнения операций, показанную на фиг. 30.
Процесс на этапах S2101-S2105 выполняется таким же образом, как процесс на этапах S1101-S1105, показанный на фиг. L0, через соответствующие блоки обработки устройства 300-0 кодирования изображения V0.
На этапе S2106 блок 321-0 сжатия вектора движения V0 выполняет сжатие (сжатие 1/4) несжатого вектора движения V0 с максимальной точностью 4×4, который является вектором движения текущей картинки проекции 0, сгенерированным в процессе на этапе S2104 с точностью 8×8. Например, сжатие 1/4 выполняется в блоках кодирования LCU (например, 16×16 пикселей).
На этапе S2107 устройство 322-0 временной памяти V0 сохраняет вектор движения V0 со сжатием 1/4, сгенерированный в процессе на этапе S2106.
Процесс на этапах S2108-S2119 выполняется таким же образом, как процесс на этапах S1108-S1119, показанный на фиг. L0, через соответствующие блоки обработки устройства 300-0 кодирования изображения V0.
На этапе S2120 блок 323-0 сжатия вектора движения V0 считывает вектор движения V0 со сжатием 1/4, сохраненный посредством процесса, выполняемого на этапе S2107, из устройства 322-0 временной памяти V0 и дополнительно выполняет сжатие 1/4.
На этапе S2121 устройство 324-0 памяти вектора движения V0 сохраняет вектор движения V0 со сжатием 1/16, сгенерированный в процессе на этапе S2106.
После окончания процесса на этапе S2121 процесс кодирования V0 заканчивается и процесс возвращается к фиг. 9. Процесс межкадрового предсказания движения V0, выполняемый на этапе S2104, показанном на фиг. 30, выполняется таким же образом, как в первом варианте осуществления (фиг. 11), посредством блока 314-0 предсказания/компенсации, и поэтому его описание пропускается.
Последовательность выполнения операций процесса кодирования V1
Далее, примерная последовательность выполнения операций процесса кодирования V1 для кодирования проекции 1, который выполняется на этапе S1002, показанном на фиг. 9, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 31.
Разница между процессом для проекции 0 и процессом для проекции 1 лежит, главным образом, в процессе межкадрового предсказания движения. Таким образом, как показано на фиг. 31, устройство 300-1 кодирования изображения V1 выполняет процесс кодирования V1 для проекции 1, в основном, таким же образом, как процесс кодирования V0 для проекции 0 (фиг. 30). Другими словами, процесс на этапах S2201-S2221, показанный на фиг. 31, выполняется, в основном, таким же образом, как процесс на этапах S2101-S2121, показанный на фиг. 30. Таким образом, описание процесса, показанного на фиг. 31, может быть продолжено так, что соответствующие компоненты устройства 300-0 кодирования изображения V0, описанные со ссылкой на фиг. 30, заменяются соответствующими компонентами устройства 300-1 кодирования изображения V1 и процесс для проекции 0, показанной на фиг. 30, заменяется процессом для проекции 1, и поэтому его описание здесь не приводится.
Последовательность выполнения операций процесса межкадрового предсказания движения V1
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 32, будет описана примерная последовательность выполнения операций процесса межкадрового предсказания движения V1, выполняемого на этапе S2204, показанного на фиг. 31.
Блок 314-1 предсказания/компенсации движения выполняет процесс на этапах S2241-S2243 таким же образом, как процесс на этапах S1231-S1233, показанный на фиг. 13.
На этапе S2244 блок 114-1 предсказания/компенсации движения получает вектор движения V0 со сжатием 1/4 из устройства 322-0 временной памяти V0 и определяет возможного кандидата вектора предсказания движения IVMP, используя вектор движения V0 со сжатием 1/4.
Блок 314-1 предсказания/компенсации движения выполняет процесс на этапах S2245-S2248 таким же образом, как процесс на этапах S1235-S1238, показанный на фиг. 13. Когда процесс на этапе S2248 закончен, процесс межкадрового предсказания движения V1 заканчивается и процесс возвращается к фиг. 31.
Последовательность выполнения операций процесса кодирования V2
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 33, показана примерная последовательность выполнения операций процесса кодирования проекции 2, который выполняется на этапе S1003, показанном на фиг. 9.
Процесс для проекции 2 выполняется аналогично процессу для проекции 1. Таким образом, как показано на фиг. 33, устройство 300-2 кодирования изображения V2 выполняет процесс кодирования V2, в основном, таким же образом, как процесс кодирования V1 для проекции 1 (фиг. 31). Другими словами, процесс на этапах S2301-S2321, показанный на фиг. 33, выполняется, в основном, таким же образом, как процесс на этапах S2201-S2221, показанном на фиг. 31. Таким образом, описание процесса, показанного на фиг. 33, может быть продолжено так, что соответствующие компоненты устройства 300-1 кодирования изображения V1, описанные со ссылкой на фиг. 31, заменяются соответствующими компонентами устройства 300-2 кодирования изображения V2 и процесс для проекции 1, показанный на фиг. 31, заменяется процессом для проекции 2, и поэтому его описание здесь не приводится.
На этапе S2306 сжатие 1/16 может выполняться для несжатого вектора движения V2, полученный вектор движения V2 со сжатием 1/16 на этапе S2307 может быть сохранен и процесс на этапе S2320 и на этапе S2321 могут не выполняться. В этом случае, поскольку количество процессов сжатия уменьшается, можно сдерживать увеличение нагрузки, вызванное сжатием. Здесь, как показано на фиг. 33, поскольку сжатие 1/4 выполняется дважды, можно выполнять сжатие подобным образом для другой проекции и этим легко управлять.
Последовательность выполнения операций процесса межкадрового предсказания движения V2
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 34, будет описана примерная последовательность выполнения операций процесса межкадрового предсказания движения V2, выполняемого на этапе S2304, показанного на фиг. 33.
Как показано на фиг. 34, блок 314-2 предсказания/компенсации движения выполняет процесс межкадрового предсказания движения V2, в основном, таким же образом, как процесс межкадрового предсказания движения V1 (фиг. 32). Другими словами, процесс на этапах S2341-S2348, показанный на фиг. 34, выполняется, в основном, таким же образом, как процесс на этапах S3241-S2248, показанный на фиг. 32.
Здесь, на этапе S2342 используется несжатый вектор движения V2, служащий в качестве несжатого вектора движения проекции 2. На этапе S2343 используется вектор движения V2 со сжатием 1/16, подвергнутый сжатию 1/16. На этапе S2344 используется вектор движения V1 со сжатием 1/4, подвергнутый сжатию 1/4.
Когда процесс на этапе S2348 закончен, процесс межкадрового предсказания движения V2 заканчивается и процесс возвращается к фиг. 33.
По мере того, как процесс выполняется, как описано выше, устройство 300 кодирования изображения может уменьшать объем устройства памяти, необходимый для векторов движения для IVMP, и сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
Устройство декодирования изображения
Далее будет описано декодирование кодированных данных (кодированных потоков), кодированных, как описано выше. На фиг. 35 представлена блок-схема примерной основной конфигурации устройства декодирования изображения V0. На фиг. 36 представлена блок-схема примерной основной конфигурации устройства декодирования изображения V1. На фиг. 37 представлена блок-схема примерной основной конфигурации устройства декодирования изображения V2.
Устройство 400 декодирования изображения (не показано) декодирует кодированные данные движущегося изображения, содержащего множество уровней, такого как мультипроекционное изображение, показанное на фиг. 2, которое кодируется устройством 300 кодирования изображения способом декодирования, соответствующим способу кодирования. Устройство 400 декодирования изображения содержит устройство 400-0 декодирования изображения V0, показанное на фиг. 35, устройство 400-1 декодирования изображения V1, показанное на фиг. 36, и устройство 400-2 декодирования изображения V2, показанное на фиг. 37, чтобы декодировать кодированные данные соответствующих проекций мультипроекционного изображения. Устройство 400-0 декодирования изображения V0 декодирует кодированные данные изображения проекции 0, кодированного устройством 300-0 кодирования изображения V0. Устройство 400-1 декодирования изображения V1 декодирует кодированные данные изображения проекции 1, кодированного устройством 300-1 кодирования изображения V1. Устройство 400-2 декодирования изображения V2 декодирует кодированные данные изображения проекции 2, кодированного устройством 300-2 кодирования изображения V2.
Как показано на фиг. 35, устройство 400-0 декодирования изображения V0 содержит накопительный буфер 401-0, блок 402-0 декодирования без потерь, блок 403-0 инверсного квантования, блок 404-0 инверсного ортогонального преобразования, операционный блок 405-0, контурный фильтр 406-0, буфер 407-0 перегруппировки экрана и блок 408-0 цифро-аналогового (D/A) преобразования. Устройство 400-0 декодирования изображения V0 дополнительно содержит буфер 409-0 декодированной картинки, блок 410-0 внутрикадрового предсказания, блок 411-0 компенсации движения и блок 412-0 выбора.
Как показано на фиг. 36, устройство 400-1 декодирования изображения V1 содержит накопительный буфер 401-1, блок 402-1 декодирования без потерь, блок 403-1 инверсного квантования, блок 404-1 инверсного ортогонального преобразования, операционный блок 405-1, контурный фильтр 406-1, буфер 407-1 перегруппировки экрана и блок 408-1 цифро-аналогового (D/A) преобразования. Устройство 400-1 декодирования изображения V1 дополнительно содержит буфер 409-1 декодированной картинки, блок 410-1 внутрикадрового предсказания, блок 411-1 компенсации движения и блок 412-1 выбора.
Как показано на фиг. 37, устройство 400-2 декодирования изображения V2 содержит накопительный буфер 401-2, блок 402-2 декодирования без потерь, блок 403-2 инверсного квантования, блок 404-2 инверсного ортогонального преобразования, операционный блок 405-2, контурный фильтр 406-2, буфер 407-2 перегруппировки экрана и блок 408-2 цифро-аналогового (D/A) преобразования. Устройство 400-2 декодирования изображения V2 дополнительно содержит буфер 409-2 декодированной картинки, блок 410-2 внутрикадрового предсказания, блок 411-2 компенсации движения и блок 412-2 выбора.
Здесь и далее, когда нет необходимости различать накопительные буферы 401-0-401-2 друг от друга, они упоминаются просто как "накопительный буфер 401". Дополнительно, когда нет необходимости различать блоки 402-0-402-2 декодирования без потерь друг от друга, они упоминаются просто как "блок 402 декодирования без потерь". Дополнительно, когда нет необходимости различать блоки 403-0-403-2 инверсного квантования друг от друга, они упоминаются просто как "блок 403 инверсного квантования". Дополнительно, когда нет необходимости различать блоки 404-0-404-2 инверсного ортогонального преобразования друг от друга, они упоминаются просто как "блок 404 инверсного ортогонального преобразования". Дополнительно, когда нет необходимости различать операционные блоки 405-0-405-2 друг от друга, они упоминаются просто как "операционный блок 405".
Дополнительно, когда нет необходимости различать контурные фильтры 406-0-406-2 друг от друга, они упоминаются просто как "контурный фильтр 406". Дополнительно, когда нет необходимости различать буферы 407-0-407-2 перегруппировки экрана друг от друга, они упоминаются просто как "буфер 407 перегруппировки экрана". Дополнительно, когда нет необходимости различать блоки 408-0-408-2 D/A-преобразования друг от друга, они упоминаются просто как "блок 408 D/A-преобразования". Дополнительно, когда нет необходимости различать буферы 409-0-409-2 декодированной картинки друг от друга, они упоминаются просто как "буфер 409 декодированной картинки".
Дополнительно, когда нет необходимости различать блоки 410-0-410-2 внутрикадрового предсказания друг от друга, они упоминаются просто как "блок 410 внутрикадрового предсказания". Дополнительно, когда нет необходимости различать блоки 411-0-411-2 компенсации движения друг от друга, они упоминаются просто как "блок 411 компенсации движения". Дополнительно, когда нет необходимости различать блоки 412-0-412-2 выбора друг от друга, они упоминаются просто как "блок 412 выбора".
Накопительный буфер 401 соответствует накопительному буферу 201 и выполняет, в основном, тот же самый процесс, что и накопительный буфер 401. Блок 402 декодирования без потерь соответствует блоку 202 декодирования без потерь и выполняет, в основном, тот же самый процесс, что и блок 202 декодирования без потерь. Блок 403 инверсного квантования соответствует блоку 203 инверсного квантования и выполняет, в основном, тот же самый процесс, что и блок 203 инверсного квантования. Блок 404 инверсного ортогонального преобразования соответствует блоку 204 инверсного ортогонального преобразования и выполняет, в основном, тот же самый процесс, что и блок 204 инверсного ортогонального преобразования. Операционный блок 405 соответствует операционному блоку 205 и выполняет, в основном, тот же самый процесс, что и операционный блок 205.
Контурный фильтр 406 соответствует контурному фильтру 206 и выполняет, в основном, тот же самый процесс, что и контурный фильтр 206. Буфер 407 перегруппировки экрана соответствует буферу 207 перегруппировки экрана и выполняет, в основном, тот же самый процесс, что и буфер 207 перегруппировки экрана. Блок 408 D/A-преобразования соответствует блоку 208 D/A-преобразования и выполняет, в основном, тот же самый процесс, что и блок 208 D/A-преобразования. Буфер 409 декодированной картинки соответствует буферу 209 декодированной картинки и выполняет, в основном, тот же самый процесс, что и буфер 209 декодированной картинки.
Блок 410 внутрикадрового предсказания соответствует блоку 210 внутрикадрового предсказания и выполняет, в основном, тот же самый процесс, что и блок 210 внутрикадрового предсказания. Блок 411 компенсации движения соответствует блоку 211 компенсации движения и выполняет, в основном, тот же самый процесс, что и блок 211 компенсации движения. Блок 412 выбора соответствует блоку 212 выбора и выполняет, в основном, тот же самый процесс, что и блок 212 выбора.
Устройство 400-0 декодирования изображения V0 дополнительно содержит блок 421-0 сжатия вектора движения V0, устройство 422-0 временной памяти V0, блок 423-0 сжатия вектора движения V0 и устройство 424-0 памяти вектора движения V0.
Устройство 400-1 декодирования изображения V1 дополнительно содержит блок 421-1 сжатия вектора движения V1, устройство 422-1 временной памяти V1, блок 423-1 сжатия вектора движения V1, и устройство 424-1 памяти вектора движения V1.
Устройство 400-2 декодирования изображения V2 дополнительно содержит блок 421-2 сжатия вектора движения V2, устройство 422-2 временной памяти V2, блок 423-2 сжатия вектора движения V2, и устройство 424-2 памяти вектора движения V2.
Блок 411-0 компенсации движения подает несжатый вектор движения V0 (с максимальной точностью 4×4) текущего блока, сгенерированный при предсказании движения, на блок 421-0 сжатия вектора движения V0. Дополнительно, блок 411-0 компенсации движения получает вектор движения V0 со сжатием 1/16, хранящийся в устройстве 424-0 памяти вектора движения V0, в качестве вектора движения соседнего по времени текущего блока.
Блок 411-1 компенсации движения подает несжатый вектор движения V1 (с максимальной точностью 4×4) текущего блока, сгенерированный при предсказании движения, на блок 421-1 сжатия вектора движения V1. Дополнительно, блок 411-1 компенсации движения получает вектор движения V1 со сжатием 1/16, хранящийся в устройстве 424-1 памяти вектора движения V1, в качестве вектора движения блока, соседнего по времени с текущим блоком. Дополнительно, блок 411-1 компенсации движения получает вектор движения V0 со сжатием 1/4, хранящийся в устройстве 422-0 временной памяти V0 в качестве вектора движения блока, соседнего с текущим блоком с точки зрения проекции.
Блок 411-2 компенсации движения подает несжатый вектор движения V2 (с максимальной точностью 4×4) текущего блока, сгенерированный при предсказании движения, на блок 421-2 сжатия вектора движения V2. Дополнительно, блок 411-2 компенсации движения получает вектор движения V2 со сжатием 1/16, хранящийся в устройстве 424-2 памяти вектора движения V2, в качестве вектора движения блока, соседнего по времени с текущим блоком. Дополнительно, блок 411-2 компенсации движения получает вектор движения V1 со сжатием 1/4, хранящийся в устройстве 422-1 временной памяти V1 в качестве вектора движения блока, соседнего с текущим блоком с точки зрения проекции.
Блок 421-0 сжатия вектора движения V0 выполняет сжатие 1/4 для несжатого вектора движения V0, полученного от блока 411-0 компенсации движения, и подает полученный вектор движения V0 со сжатием 1/4 в устройстве 422-0 временной памяти V0. Способ сжатия вектора движения является произвольным, пока используется тот же самый способ, что и в блоке 321-0 сжатия вектора движения V0.
Устройство 422-0 временной памяти V0 сохраняет поданный вектор движения V0 со сжатием 1/4. Устройство 422-0 временной памяти V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/4 на блок 411-1 компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции. Дополнительно, устройство 422-0 временной памяти V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/4 на блок 423-0 сжатия вектора движения V0.
Блок 423-0 сжатия вектора движения V0 считывает вектор движения V0 со сжатием 1/4 из устройства 422-0 временной памяти V2, выполняет сжатие 1/4 и подает полученный вектор движения V0 со сжатием 1/16 на устройство 424-0 памяти вектора движения V0. Способ сжатия вектора движения является произвольным, пока используется тот же самый способ, что и в блоке 323-0 сжатия вектора движения V0.
Например, блок 421-0 сжатия вектора движения V0 и блок 423-0 сжатия вектора движения V0 могут отличаться друг от друга по способу сжатия. Дополнительно, блок 423-0 сжатия вектора движения V0 может выполнять сжатие 1/16 несжатого вектора движения V0, сгенерированного блоком 411-0 компенсации движения, аналогично блоку 221-0 сжатия вектора движения V0.
Устройство 424-0 памяти вектора движения V0 сохраняет поданный вектор движения V0 со сжатием 1/16. Устройство 424-0 памяти вектора движения V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/16 на блок 411-0 компенсации движения в качестве вектора движения соседнего по времени блока.
Блок 421-1 сжатия вектора движения V1 является блоком обработки, подобным блоку 421-0 сжатия вектора движения V0. Блок 421-1 сжатия вектора движения V1 выполняет сжатие 1/4 для несжатого вектора движения V1, полученного от блока 411-1 компенсации движения, и подает полученный вектор движения V1 со сжатием 1/4 в устройство 422-1 временной памяти V1.
Устройство 422-1 временной памяти V1 является блоком обработки, подобным устройству 422-0 временной памяти V0. Устройство 422-1 временной памяти V1 сохраняет поданный вектор движения V1 со сжатием 1/4. Устройство 422-1 временной памяти V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/4 на блок 411-2 компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции. Дополнительно, устройство 422-1 временной памяти V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/4 на блок 423-1 сжатия вектора движения V1.
Блок 423-1 сжатия вектора движения V1 является блоком обработки, подобным блоку 423-0 сжатия вектора движения V0. Блок 423-1 сжатия вектора движения V1 считывает вектор движения V1 со сжатием 1/4 из устройства 422-1 временной памяти V1, выполняет сжатие 1/4 и подает полученный вектор движения V1 со сжатием 1/16 на устройство 424-1 памяти вектора движения V1.
Устройство 424-1 памяти вектора движения V1 сохраняет поданный вектор движения V1 со сжатием 1/16. Устройство 424-1 памяти вектора движения V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/16 на блок 411-1 компенсации движения в качестве вектора движения соседнего по времени блока.
Блок 421-2 сжатия вектора движения V2 является блоком обработки, подобным блоку 421-0 сжатия вектора движения V0. Блок 421-2 сжатия вектора движения V2 выполняет сжатие 1/4 для несжатого вектора движения V2, полученного от блока 411-2 компенсации движения, и подает полученный вектор движения V2 со сжатием 1/4 в устройство 422-2 временной памяти V2.
Устройство 422-2 временной памяти V2 является блоком обработки, подобным устройству 422-0 временной памяти V0. Устройство 422-2 временной памяти V2 сохраняет поданный вектор движения V2 со сжатием 1/4. Устройство 422-2 временной памяти V2 соответственно подает хранящийся вектор движения V2 со сжатием 1/4 на блок 423-2 сжатия вектора движения V2.
Блок 423-2 сжатия вектора движения V2 является блоком обработки, подобным блоку 423-0 сжатия вектора движения V0. Блок 423-2 сжатия вектора движения V2 считывает вектор движения V2 со сжатием 1/4 из устройства 422-2 временной памяти V2, выполняет сжатие 1/4 и подает полученный вектор движения V2 со сжатием 1/16 на устройство 424-2 памяти вектора движения V2.
Устройство 424-2 памяти вектора движения V2 сохраняет поданный вектор движения V2 со сжатием 1/16. Устройство 424-2 памяти вектора движения V2 соответственно подает хранящийся вектор движения V2 со сжатием 1/16 на блок 411-2 компенсации движения в качестве вектора движения соседнего по времени блока.
Поскольку устройство 400-2 декодирования изображения V2 декодирует кодированные данные изображения проекции 2, которая окончательно обработана, вектор движения, полученный в блоке 411-2 компенсации движения, не используется ни для какой другой проекции. Таким образом, вместо блока 421-2 сжатия вектора движения V2 в устройстве 424-2 памяти вектора движения V2 в качестве устройства 200-2 декодирования изображения V2 могут применяться блок 221-2 сжатия вектора движения V2 и устройство 222-2 памяти вектора движения V2.
Как описано выше, блок 421-0 сжатия вектора движения V0, блок 421-1 сжатия вектора движения V1 и блок 421-2 сжатия вектора движения V2 могут уменьшать (то есть, сжимать) объем информации векторов движения, уменьшая количество векторов движения. Таким образом, можно уменьшить объемы памяти устройства 422-0 временной памяти V0, устройства 422-1 временной памяти V1 и устройства 422-2 временной памяти V2.
Дополнительно, в этом случае, путем ограничения коэффициента сжатия таким образом, что точность вектора движения для IVMP является выше, чем точность вектора движения для TMVP, можно повысить точность предсказания IVMP, которая должна быть выше, чем когда точность вектора движения для IVMP равна точности вектора движения для TMVP.
Соответственно, для устройства 400 декодирования изображения можно реализовать снижение производственных затрат или затрат на разработку, уменьшить размеры устройства, снизить потребляемую мощность и т.п..
Последовательность выполнения операций процесса декодирования V0
Далее будет описана последовательность выполнения операций обработки, выполняемой устройством 400 декодирования изображения. Последовательность выполнения операций процесса декодирования, выполняемого устройством 400 декодирования изображения, является такой же, как в первом варианте осуществления (фиг. 19), и поэтому ее описание не приводится.
Далее, примерная последовательность выполнения операций процесса декодирования проекции V0, который выполняется на этапе S1401, показанном на фиг. 19, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 38.
Процесс на этапах S2501-S2508 выполняется таким же образом, как процесс на этапах S1501-S1508, показанный на фиг. 20, через соответствующие блоки обработки устройства 400-0 декодирования изображения V0.
На этапе S2509 блок 421-0 сжатия вектора движения V0 выполняет сжатие (сжатие 1/4) несжатого вектора движения V0 с максимальной точностью 4×4, который является вектором движения текущей картинки проекции 0, сгенерированным в процессе на этапе S2506 с точностью 8×8. Например, сжатие 1/4 выполняется в блоках кодирования LCU (например, 16×16 пикселей).
На этапе S2510 устройство 422-0 временной памяти V0 сохраняет вектор движения V0 со сжатием 1/4, сгенерированный в процессе на этапе S2509.
Процесс на этапах S2501-S2508 выполняется таким же образом, как процесс на этапах S1501-S1508, показанный на фиг. 20, через соответствующие блоки обработки устройства 400-0 декодирования изображения V0.
На этапе S2516 блок 423-0 сжатия вектора движения V0 считывает вектор движения V0 со сжатием 1/4, сохраненный посредством процесса, выполняемого на этапе S2510, из устройства 422-0 временной памяти V0 и дополнительно выполняет сжатие 1/4.
На этапе S2517 устройство 424-0 памяти вектора движения V0 сохраняет вектор движения V0 со сжатием 1/16, сгенерированный в процессе на этапе S2516.
После окончания процесса на этапе S2517 процесс кодирования V0 заканчивается и процесс возвращается к фиг. 19. Дополнительно, процесс компенсации движения V0, выполняемый на этапе S2506, показанном на фиг. 38, выполняется посредством блока 411-0 компенсации движения таким же образом, как в первом варианте осуществления (фиг. 21), и поэтому его описание пропускается.
Последовательность выполнения операций процесса декодирования V1
Далее, со ссылкой на последовательность выполнения операций, показанную на фиг. 39, будет описана выполняемая на этапе S1402, показанном на фиг. 19, примерная последовательность выполнения операций процесса декодирования V1 для декодирования кодированных данных проекции 1.
Разница между процессом для проекции 0 и процессом для проекции 1 лежит, главным образом, в процессе компенсации движения. Таким образом, как показано на фиг. 39, устройство 400-1 декодирования изображения V1 выполняет процесс декодирования V1 для проекции 1, в основном, таким же образом, как процесс декодирования V0 для проекции 0 (фиг. 38). Другими словами, процесс на этапах S2601-S2617, показанный на фиг. 39, выполняется, в основном, таким же образом, как процесс на этапах S2501-S2517, показанный на фиг. 38. Таким образом, описание процесса, показанного на фиг. 39, может быть продолжено так, что соответствующие компоненты устройства 400-0 декодирования изображения V0, описанные со ссылкой на фиг. 38, заменяются соответствующими компонентами устройства 400-1 декодирования изображения V1 и процесс для проекции 0, показанный на фиг. 38, заменяется процессом для проекции 1, и поэтому его описание здесь не приводится.
Последовательность выполнения операций процесса компенсации движения V1
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 40, будет описана примерная последовательность выполнения операций процесса компенсации движения V1, выполняемого на этапе S2606, показанном на фиг. 39.
Процесс на этапах S2631-S2635 выполняется блоком 411-1 компенсации движения таким же образом, как процесс на этапах S1631-S1635, показанный на фиг. 23.
На этапе S2636 блок 411-1 компенсации движения генерирует вектор предсказания движения, используя вектор движения V0 со сжатием 1/4 (вектор движения объединенного блока изображения проекции 0). Когда вектор предсказания движения сгенерирован, процесс переходит к этапу S2637.
Процесс на этапе S2637 и этапе S2638 выполняется блоком 411-1 компенсации движения таким же образом, как процесс на этапе S1637 и этапе S1638, показанных на фиг. 23. После окончания процесса на этапе S2638 процесс компенсации движения V1 заканчивается и процесс возвращается к фиг. 22.
Последовательность выполнения операций процесса декодирования V2
Далее, со ссылкой на последовательность выполнения операций, показанную на фиг. 41, будет описана примерная последовательность выполнения операций процесса декодирования V2 для декодирования кодированных данных проекции 2, выполняемая на этапе S1403, показанном на фиг. 19.
Разница между процессом для проекции 1 и процессом для проекции 2 лежит, главным образом, в процессе компенсации движения. Таким образом, как показано на фиг. 41, устройство 400-2 декодирования изображения V2 выполняет процесс декодирования V2, в основном, таким же образом, как процесс декодирования V1 для проекции 1 (фиг. 39). Другими словами, процесс на этапах S2701-S2717, показанный на фиг. 41, выполняется, в основном, таким же образом, как процесс на этапах S2601-S2617, показанных на фиг. 39. Таким образом, описание процесса, показанного на фиг. 41, может быть продолжено так, что соответствующие компоненты устройства 400-1 декодирования изображения V1, описанные со ссылкой на фиг. 39, заменяются соответствующими компонентами устройства 400-2 декодирования изображения V2 и процесс для проекции 1, показанный на фиг. 39, заменяется процессом для проекции 2, и поэтому его описание здесь не приводится.
Последовательность выполнения операций процесса компенсации движения V2
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 42, будет описана примерная последовательность выполнения операций процесса компенсации движения V2, выполняемого на этапе S2706, показанном на фиг. 41.
Процесс на этапах S2731-S2735 выполняется блоком 411-2 компенсации движения таким же образом, как процесс на этапах S1731-S1735, показанный на фиг. 25.
На этапе S2736 блок 411-2 компенсации движения генерирует вектор предсказания движения, используя вектор движения V1 со сжатием 1/4 (вектор движения объединенного блока изображения проекции 1). Когда вектор предсказания движения сгенерирован, процесс переходит к этапу S2737.
Процесс на этапе S2737 и этапе S2738 выполняется блоком 411-2 компенсации движения таким же образом, как процесс на этапе S1737 и этапе S1738, показанный на фиг. 25. После окончания процесса на этапе S2738 процесс компенсации движения V1 заканчивается и процесс возвращается к фиг. 41.
По мере того, как процесс выполняется, как описано выше, устройство 400 декодирования изображения может уменьшать объем устройства памяти, необходимый для векторов движения для IVMP, и сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
Приведенное выше описание было сделано в связи с примером, в котором точность вектора движения составляет максимальную точность 4×4 в несжатом состоянии и сжатие выполняется с точностью 8×8 для IVMP и с точностью 16×16 для TMVP, но это является примером и точность вектора движения является произвольной. Коэффициент сжатия при каждом сжатии также является произвольным. Другими словами, точность возможного кандидата вектора движения при пространственном предсказании, возможного кандидата вектора предсказания при временном предсказании, возможного кандидата вектора предсказания при предсказании IVMP и вектора предсказания движения каждой проекции также является произвольной. Все проекции могут быть одинаковы или различаться друг от друга по точности или коэффициенту сжатия.
3. Третий вариант осуществления
Сжатие вектора движения для IVMP
При сжатии вектора движения (например, при прореживании), может быть возможным управлять тем, сжимать или не сжимать вектор движения для IVMP (например, прореживанием), как показано на фиг. 43. Другими словами, можно выбрать один из способов предшествующего уровня техники, описанных со ссылкой на фиг. 4, и способов (описанных в первом варианте осуществления), описанных со ссылкой на фиг. 5.
Более конкретно, например, декодер (декодер V1 (Зависимый) и декодер V2 (Зависимый)) с помощью переключателя (V0SW и V1SW) должен выбрать, получать или не получать несжатый вектор движения (несжатый MV) из временной памяти вектора движения (временная память MV V0 и временная память MV V1) и затем выполнять IVMP, используя полученный несжатый вектор движения, или получать или не получать вектор движения со сжатием 1/16 (например, прореженный) (сжатый MV) из памяти вектора движения (память MV V0 и память MV V1), и затем выполнять IVMP, используя полученный вектор движения со сжатием 1/16.
Таким образом, можно выполнять кодирование или декодирование, в то же время более адаптивно управляя объемом обработки, используемым объемом памяти и т.п. в соответствии с произвольным условием, таким как емкость памяти, возможности CPU по обработке, ситуация с текущей нагрузкой или т.п.
Способ сжатия будет ниже описан более конкретно. В дальнейшем, точность вектора движения считается равной максимальной точности 4×4 в несжатом состоянии. Дополнительно, для TMVP (или для TMVP и IVMP) несжатый вектор движения считается сжатым (со сжатием 1/4) с точностью 16×16.
Синтаксис
Когда, как описано выше, выбран любой из множества способов, сторона кодирования и сторона декодирования должны выбрать один и тот же способ. В этом отношении, чтобы заставить сторону кодирования и сторону декодирования совместно использовать выбранный способ, информация (например, флаг), указывающая выбранный способ, может быть передана со стороны кодирования на сторону декодирования. Например, на стороне кодирования может быть сгенерирован 1-битный флаг, указывающий, какой из способов выбран, а именно, способ, показанный на фиг. 4, или способ, показанный на фиг. 5, и затем этот флаг передается на сторону декодирования. Сторона декодирования может выполнять декодирование, основываясь на значении флага, выбрать тот же самый способ, что и способ, используемый на стороне кодирования, и затем соответственно выполнять декодирование.
В этом случае, флаг может передаваться произвольным способом. Например, флаг может передаваться в наборе параметров последовательности (Sep_parameter_set) в виде синтаксиса, показанного на фиг. 14.
В случае примера, показанного на фиг. 44, устройство кодирования изображения генерирует флаг, сохраняет "sps_mv_compression_flag" в наборе параметров последовательности в качестве флага и передает флаг. Устройство декодирования изображения извлекает флаг "sps_mv_compression_flag" из потоков и со ссылкой на значение выбирает тот же самый способ, что и способ, используемый устройством кодирования изображения.
Устройство кодирования изображения
На фиг. 45 представлена блок-схема примерной основной конфигурации устройства кодирования изображения V0. На фиг. 46 представлена блок-схема примерной основной конфигурации устройства V1 кодирования изображения. На фиг. 47 представлена блок-схема примерной основной конфигурации устройства кодирования изображения V2.
Устройство 500 кодирования изображения (не показано) кодирует движущееся изображение, содержащее множество уровней, такое как мультипроекционное изображение, показанное на фиг. 2. Устройство 500 кодирования изображения содержит устройство 500-0 кодирования изображения V0, показанное на фиг. 45, устройство 500-1 кодирования изображения V1, показанное на фиг. 46, и устройство 500-2 кодирования изображения V2, показанное на фиг. 47, чтобы кодировать проекции мультипроекционного изображения. Устройство 500-0 кодирования изображения V0 кодирует изображение проекции 0. Устройство 500-1 кодирования изображения V1 кодирует изображение проекции 1. Устройство 500-2 кодирования изображения V2 кодирует изображение проекции 2.
Как показано на фиг. 45, устройство 500-0 кодирования изображения V0 содержит блок 501-0 аналогово-цифрового (А/D) преобразования, буфер 502-0 перегруппировки экрана, операционный блок 503-0, блок 504-0 ортогонального преобразования, блок 505-0 квантования, блок 506-0 кодирования без потерь, накопительный буфер 507-0, блок 508-0 инверсного квантования и блок 509-0 инверсного ортогонального преобразования. Блок 500-0 кодирования изображения V0 дополнительно содержит операционный блок 510-0, контурный фильтр 511-0, буфер 512-0 декодированной картинки, блок 513-0 внутрикадрового предсказания, блок 514-0 предсказания/компенсации движения, блок 515-0 выбора изображения предсказания и блок 516-0 управления скоростью.
Как показано на фиг. 46, устройство 500-1 кодирования изображения V1 содержит блок 501-1 аналогово-цифрового (A/D) преобразования, буфер 502-1 перегруппировки экрана, операционный блок 503-1, блок 504-1 ортогонального преобразования, блок 505-1 квантования, блок 506-1 кодирования без потерь, накопительный буфер 507-1, блок 508-1 инверсного квантования и блок 509-1 инверсного ортогонального преобразования. Устройство 500-1 кодирования изображения V1 дополнительно содержит операционный блок 510-1, контурный фильтр 511-1, буфер 512-1 декодированной картинки, блок 513-1 внутрикадрового предсказания, блок 514-1 предсказания/компенсации движения, блок 515-1 выбора изображения предсказания и блок 516-1 управления скоростью.
Как показано на фиг. 47, устройство 500-2 кодирования изображения V2 содержит блок 501-2 аналогово-цифрового (A/D) преобразования, буфер 502-2 перегруппировки экрана, операционный блок 503-2, блок 504-2 ортогонального преобразования, блок 505-2 квантования, блок 506-2 кодирования без потерь, накопительный буфер 507-2, блок 508-2 инверсного квантования и блок 509-2 инверсного ортогонального преобразования. Устройство 500-2 кодирования изображения V2 дополнительно содержит операционный блок 510-2, контурный фильтр 511-2, буфер 512-2 декодированной картинки, блок 513-2 внутрикадрового предсказания, блок 514-2 предсказания/компенсации движения, блок 515-2 выбора изображения предсказания и блок 516-2 управления скоростью.
Здесь и далее, когда нет необходимости различать блоки 501-0-501-2 A/D-преобразования друг от друга, они упоминаются просто как "блок 501 A/D-преобразования". Дополнительно, когда нет необходимости различать буферы 502-0-502-2 перегруппировки экрана друг от друга, они упоминаются просто как "буфер 502 перегруппировки экрана". Дополнительно, когда нет необходимости различать операционные блоки 503-0-503-2 друг от друга, они упоминаются просто как "операционный блок 503". Дополнительно, когда нет необходимости различать буферы 504-0-504-2 ортогонального преобразования друг от друга, они упоминаются просто как "блок 504 ортогонального преобразования". Дополнительно, когда нет необходимости различать блоки 505-0-505-2 квантования друг от друга, они упоминаются просто как "блок 505 квантования". Дополнительно, когда нет необходимости различать блоки 506-0-506-2 кодирования без потерь друг от друга, они упоминаются просто как "блок 506 кодирования без потерь". Дополнительно, когда нет необходимости различать накопительные буферы 507-0-507-2 друг от друга, они упоминаются просто как "накопительный буфер 507". Дополнительно, когда нет необходимости различать блоки 508-0-508-2 инверсного квантования друг от друга, они упоминаются просто как "блок 508 инверсного квантования". Дополнительно, когда нет необходимости различать блоки 509-0-509-2 инверсного ортогонального преобразования друг от друга, они упоминаются просто как "блок 509 инверсного ортогонального преобразования".
Дополнительно, когда нет необходимости различать операционные блоки 510-0-510-2 друг от друга, они упоминаются просто как "операционный блок 510". Дополнительно, когда нет необходимости различать контурные фильтры 511-0-511-2 друг от друга, они упоминаются просто как "контурный фильтр 511". Дополнительно, когда нет необходимости различать буферы 512-0-512-2 декодированной картинки друг от друга, они упоминаются просто как "буфер 512 декодированной картинки". Дополнительно, когда нет необходимости различать блоки 513-0-513-2 внутрикадрового предсказания друг от друга, они упоминаются просто как "блок 513 внутрикадрового предсказания". Дополнительно, когда нет необходимости различать блоки 514-0-514-2 предсказания/компенсации движения друг от друга, они упоминаются просто как "блок" 514 предсказания/компенсации движения". Дополнительно, когда нет необходимости различать блоки 515-0-515-2 выбора изображения предсказания друг от друга, они упоминаются просто как "блок 515 выбора изображения предсказания". Дополнительно, когда нет необходимости различать блоки 516-0-516-2 управления скоростью друг от друга, они упоминаются просто как "блок 516 управления скоростью".
Блок 501 A/D-преобразования соответствует блоку 101 A/D-преобразования и выполняет, в основном, тот же самый процесс, что и блок 101 A/D-преобразования. Буфер 502 перегруппировки экрана соответствует буферу 102 перегруппировки экрана и выполняет, в основном, тот же самый процесс, что и буфер 102 перегруппировки экрана. Операционный блок 503 соответствует операционному блоку 103 и выполняет, в основном, тот же самый процесс, что и операционный блок 103. Блок 504 ортогонального преобразования соответствует блоку 104 ортогонального преобразования и выполняет, в основном, тот же самый процесс, что и блок 104 ортогонального преобразования. Блок 505 квантования соответствует блоку 105 квантования и выполняет, в основном, тот же самый процесс, что и блок 105 квантования. Блок 506 кодирования без потерь соответствует блоку 106 кодирования без потерь и выполняет, в основном, тот же самый процесс, что и блок 106 кодирования без потерь. Накопительный буфер 507 соответствует накопительному буферу 401 и выполняет, в основном, тот же самый процесс, что и накопительный буфер 107.
Блок 508 инверсного квантования соответствует блоку 108 инверсного квантования и выполняет, в основном, тот же самый процесс, что и блок 108 инверсного квантования. Блок 509 инверсного ортогонального преобразования соответствует блоку 109 инверсного ортогонального преобразования и выполняет, в основном, тот же самый процесс, что и блок 109 инверсного ортогонального преобразования. Операционный блок 510 соответствует операционному блоку 110 и выполняет, в основном, тот же самый процесс, что и операционный блок 110. Контурный фильтр 511 соответствует контурному фильтру 111 и выполняет, в основном, тот же самый процесс, что и контурный фильтр 111. Буфер 512 декодированной картинки соответствует буферу 112 декодированной картинки и выполняет, в основном, тот же самый процесс, что и буфер 112 декодированной картинки.
Блок 513 внутрикадрового предсказания соответствует блоку 113 внутрикадрового предсказания и выполняет, в основном, тот же самый процесс, что и блок 113 внутрикадрового предсказания. Блок 514 предсказания/компенсации движения соответствует блоку 114 предсказания/компенсации движения и выполняет, в основном, тот же самый процесс, что и блок 114 предсказания/компенсации движения. Блок 515 выбора изображения предсказания соответствует блоку 115 выбора изображения предсказания и выполняет, в основном, тот же самый процесс, что и блок 115 выбора изображения предсказания.
Блок 500-0 кодирования изображения V0 дополнительно содержит блок 521 управления, блок 522 генерирования флага, блок 531-0 выбора V0, устройство 532-0 временной памяти V0, блок 533-0 сжатия вектора движения V0, устройство 534-0 памяти вектора движения V0 и блок 535-0 выбора V0.
Устройство 500-1 кодирования изображения V1 дополнительно содержит блок 531-1 выбора V1, устройство 532-1 временной памяти V1, блок 533-1 сжатия вектора движения V1, устройство 534-1 памяти вектора движения V1 и блок 535-1 выбора V1.
Устройство 500-2 кодирования изображения V2 дополнительно содержит блок 531-2 выбора V2, устройство 532-2 временной памяти V2, блок 533-2 сжатия вектора движения V2 и устройство 534-2 памяти вектора движения V2.
Блок 521 управления определяет, является ли вектор движения для IVMP сжатым, основываясь на команде, поданной извне, например, от пользователя или другого устройства, результате определения определенного состояния или т.п. Другими словами, блок 521 управления определяет, выбран ли способ, показанный на фиг. 4, или способ, показанный на фиг. 5. Когда определяется, является ли вектор движения сжатым или нет, блок 521 управления подает информацию, указывающую, является ли вектор движения сжатым или нет, на блок 522 генерирования флага.
Блок 522 генерирования флага генерирует флаг, указывающий способ, сообщаемый от блока 521 управления. Блок 522 генерирования флага подает сгенерированный флаг на блок 506-0 кодирования без потерь. Блок 506-0 кодирования без потерь вводит полученный флаг в набор параметров последовательности и передает результирующий набор параметров последовательности на сторону декодирования.
Блок 521 управления управляет выбором (переключением) блока 531-0 выбора V0, блока 535-0 выбора V0, блока 531-1 выбора V1, блока 535-1 выбора V1 и блока 531-2 выбора V2 в соответствии с принятым способом.
Когда блок 521 управления выбрал способ, которым сжимается вектор движения для IVMP, блок 531-0 выбора V0 выбирает блок 533-0 сжатия вектора движения V0 в соответствии с управлением от блока 521 управления и блок 535-0 выбора V0 выбирает устройство 534-0 памяти вектора движения V0 в соответствии с управлением от блока 521 управления. Блок 531-1 выбора V1 выбирает блок 533-1 сжатия вектора движения V1 в соответствии с управлением от блока 521 управления и блок 535-1 выбора V1 выбирает устройство 534-1 памяти вектора движения V1 в соответствии с управлением от блока 521 управления. Блок 531-2 выбора V2 выбирает блок 533-2 сжатия вектора движения V2 в соответствии с управлением от блока 521 управления.
В этом случае, блок 514-0 предсказания/компенсации движения подает несжатый вектор движения V0 (с максимальной точностью 4×4) текущего блока, сгенерированный при предсказании движения, на блок 533-0 сжатия вектора движения V0 через блок 531-0 выбора V0. Блок 533-0 сжатия вектора движения V0 выполняет сжатие 1/16 для несжатого вектора движения V0, полученного от блока 514-0 предсказания/компенсации движения, и подает полученный вектор движения V0 со сжатием 1/16 в устройство 534-0 памяти вектора движения V0. Устройство 534-0 памяти вектора движения V0 сохраняет поданный вектор движения V0 со сжатием 1/16. Устройство 534-0 памяти вектора движения V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/16 на блок 514-0 предсказания/компенсации движения в качестве вектора движения соседнего по времени блока. Дополнительно, устройство 534-0 памяти вектора движения V0 через блок 535-0 выбора V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/16 на блок 514-1 предсказания/компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции.
Блок 514-1 предсказания/компенсации движения через блок 531-1 выбора V1 подает несжатый вектор движения V1 (с максимальной точностью 4×4) текущего блока, сгенерированный при предсказании движения, на блок 533-1 сжатия вектора движения V1. Блок 533-1 сжатия вектора движения V1 выполняет сжатие 1/16 для несжатого вектора движения V0, полученного от блока 514-1 предсказания/компенсации движения, и подает полученный вектор движения V1 со сжатием 1/16 в устройство 534-1 памяти вектора движения V1. Устройство 534-1 памяти вектора движения V1 сохраняет поданный вектор движения V1 со сжатием 1/16. Устройство 534-1 памяти вектора движения V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/16 на блок 514-1 предсказания/компенсации движения в качестве вектора движения соседнего по времени блока. Дополнительно, устройство 534-1 памяти вектора движения V1 через блок 535-1 выбора V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/16 на блок 514-2 предсказания/компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции.
Блок 514-2 предсказания/компенсации движения через блок 531-2 выбора V2 подает несжатый вектор движения V2 (с максимальной точностью 4×4) текущего блока, сгенерированный при предсказании движения, на блок 533-2 сжатия вектора движения V2. Блок 533-2 сжатия вектора движения V2 выполняет сжатие 1/16 для несжатого вектора движения V2, полученного от блока 514-2 предсказания/компенсации движения, и подает полученный вектор движения V2 со сжатием 1/16 в устройство 534-2 памяти вектора движения V2. Устройство 534-2 памяти вектора движения V2 сохраняет поданный вектор движения V2 со сжатием 1/16. Устройство 534-2 памяти вектора движения V2 соответственно подает хранящийся вектор движения V2 со сжатием 1/16 на блок 514-2 предсказания/компенсации движения в качестве вектора движения соседнего по времени блока.
Другими словами, в этом случае устройство 500 кодирования изображения выполнено с возможностью осуществления того же самого способа (например, показанного на фиг. 5), который описан в первом варианте осуществления.
Когда блок 521 управления выбирает способ, в котором вектор движения для IVMP является несжатым, блок 531 выбора V0 и блок 535-0 выбора V0 выбирают устройство 532-0 временной памяти V0 в соответствии с управлением от блока 521 управления. Блок 531-1 выбора V1 и блок 535-1 выбора V1 выбирает устройство 532-0 временной памяти V1 в соответствии с управлением от блока 521 управления. Блок 531-2 выбора V2 выбирает устройство 532-2 временной памяти V2 в соответствии с управлением от блока 521 управления.
В этом случае, блок 514-0 предсказания/компенсации движения через блок 531-0 выбора V0 подает несжатый вектор движения V0 (с максимальной точностью 4×4) текущего блока, сгенерированный при предсказании движения, на устройство 532-0 временной памяти V0. Устройство 532-0 временной памяти V0 соответственно через блок 535-0 выбора V0 подает хранящийся несжатый вектор движения V0 на блок 514-1 предсказания/компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции. Дополнительно, устройство 532-0 временной памяти V0 соответственно подает хранящийся несжатый вектор движения V0 на блок 533-0 сжатия вектора движения V0. Блок 533-0 сжатия вектора движения V0 считывает несжатый вектор движения V0 из устройства 532-0 временной памяти V0, выполняет сжатие 1/16 и подает полученный вектор движения V0 со сжатием 1/16 на устройство 534-0 памяти вектора движения V0. Устройство 534-0 памяти вектора движения V0 сохраняет поданный вектор движения V0 со сжатием 1/16. Устройство 534-0 памяти вектора движения V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/16 на блок 514-0 предсказания/компенсации движения в качестве вектора движения соседнего по времени блока.
Блок 514-1 предсказания/компенсации движения через блок 531-1 выбора V1 подает несжатый вектор движения V1 (с максимальной точностью 4×4) текущего блока, сгенерированный при предсказании движения, на блок 532-1 временной памяти V1. Устройство 532-1 временной памяти V1 соответственно через блок 535-1 выбора V1 подает хранящийся несжатый вектор движения V1 на блок 514-2 предсказания/компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции. Дополнительно, устройство 532-1 временной памяти V1 соответственно подает хранящийся несжатый вектор движения V1 на блок 533-1 сжатия вектора движения V1. Блок 533-1 сжатия вектора движения V1 выполняет сжатие 1/16 несжатого вектора движения V1, полученного от устройства 532-1 временной памяти V1, и подает полученный вектор движения V1 со сжатием 1/16 в устройство 534-1 памяти вектора движения V1. Устройство 534-1 памяти вектора движения V1 сохраняет поданный вектор движения V1 со сжатием 1/16. Устройство 534-1 памяти вектора движения V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/16 на блок 514-1 предсказания/компенсации движения в качестве вектора движения соседнего по времени блока.
Блок 514-2 предсказания/компенсации движения через блок 531-2 выбора V2 подает несжатый вектор движения V2 (с максимальной точностью 4×4) текущего блока, сгенерированный при предсказании движения, на устройство 532-2 временной памяти V2. Устройство 532-2 временной памяти V2 соответственно подает хранящийся вектор движения V2 со сжатием 1/4 на блок 533-2 сжатия вектора движения V2. Блок 533-2 сжатия вектора движения V2 выполняет сжатие 1/16 для несжатого вектора движения V2, полученного от устройства 532-2 временной памяти V2, и подает полученный вектор движения V2 со сжатием 1/16 в устройство 534-2 памяти вектора движения V2. Устройство 534-2 памяти вектора движения V2 сохраняет поданный вектор движения V2 со сжатием 1/16. Устройство 534-2 памяти вектора движения V2 соответственно подает хранящийся вектор движения V2 со сжатием 1/16 на блок 514-2 предсказания/компенсации движения в качестве вектора движения соседнего по времени блока.
Другими словами, в этом случае устройство 500 кодирования изображения выполнено с возможностью осуществления того же самого способа, что и способ (например, показанный на фиг. 4) на предшествующей уровне техники.
Как описано выше, поскольку существует возможность управления способом сжатия вектора движения, можно адаптивно сдерживать увеличение емкости хранения, необходимой для кодирования и декодирования.
Последовательность выполнения операций процесса кодирования
Далее будет описана обработка, выполняемая устройством 500 кодирования изображения. Примерная последовательность операций процесса кодирования, выполняемого устройством 500 кодирования изображения, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 48.
Когда на этапе S3001 начат процесс кодирования, блок 521 управления устройства 500-0 кодирования изображения V0 выполняет установку (установку в в отношении того, сжимается или не сжимается вектор движения для IVMP) для сжатия вектора движения для IVMP.
На этапе S3002 блок 522 генерирования флага генерирует флаг сжатия вектора движения, указывающий, сжимается ли вектор движения для IVMP в соответствии с установкой, сделанной на этапе S3001. Флаг сжатия вектора движения кодируется блоком 506-0 кодирования без потерь. На этапе S3003 кодированные данные флага сжатия вектора движения подаются и сохраняются в накопительном буфере 507-0 и передаются на сторону декодирования в определенные моменты времени.
Для текущей картинки устройство 500-0 декодирования изображения V0 на этапе S3004 выполняет процесс кодирования V0, устройство 500-1 кодирования изображения V1 на этапе S3005 выполняет процесс кодирования V1 и устройство 500-2 кодирования изображения V2 на этапе S3006 выполняет процесс кодирования V2.
На этапе S3007 устройство 500-0 кодирования изображения определяет, все ли картинки были обработаны. Когда определено, что существует необработанная картинка, процесс возвращается к этапу S3004 и последующий процесс повторяется.
Процесс на этапах S3004-S3007 выполняется повторно для каждой картинки и когда на этапе S3007 определено, что все картинки обработаны, процесс кодирования заканчивается.
Последовательность выполнения операций процесса кодирования V0
Далее, примерная последовательность выполнения операций процесса кодирования V0 для кодирования проекции 0, который выполняется на этапе SS3004, показанном на фиг. 48, будет описана со ссылкой на последовательность выполнения операций, показанную на фиг. 49 и 50.
Процесс на этапах S3101-S3105 выполняется таким же образом, как процесс на этапах S1101-S1105, показанный на фиг. 10, используя соответствующие блоки обработки устройства 500-0 кодирования изображения V0.
На этапе S3106 блок 531-0 выбора V0 определяет, сжимается ли несжатый вектор движения V0 в соответствии с управлением от блока 521 управления. Когда определяется, что несжатый вектор движения V0 должен быть сжат, процесс переходит к этапу S3107.
На этапе S3107 блок 533-0 компенсации вектора движения V0 выполняет сжатие 1/16 для несжатого вектора движения V0. На этапе S3108 устройство 534-0 памяти вектора движения V0 сохраняет вектор движения V0 со сжатием 1/16, сгенерированной процессом на этапе S3107. Когда процесс на этапе S3108 закончен, процесс переходит к этапу S3110.
Однако, когда несжатый вектор движения V0 на этапе S3106 определяется как не подлежащий сжатию, процесс переходит к этапу S3109. На этапе S3109 устройство 532-0 временной памяти V0 сохраняет несжатый вектор движения V0. Когда процесс на этапе S3109 закончен, процесс переходит к этапу S3110.
Процесс на этапах S3110-S3112, показанный на фиг. 49, и процесс на этапах S3121-S3129, показанный на фиг. 50, выполняются таким же образом, как процесс на этапах S1108-S1119, показанный на фиг. L0, используя соответствующие блоки обработки устройства 500-0 кодирования изображения.
Далее, на этапе S3130, показанном на фиг. 50, в соответствии с управлением от блока 521 блок 535-0 выбора V0 определяет, является ли вектор движения для IVMP сжатым. Это определение выполняется таким же образом, как и на этапе S3106, показанном на фиг. 49. Когда вектор движения для IVMP определяется как не подлежащий сжатию, то есть, когда вектор движения определяется как не подлежащий сжатию даже на этапе S3106, показанном на фиг. 49, процесс переходит к этапу S3131.
В этом случае несжатый вектор движения V0 сохраняется в устройстве 532-0 временной памяти V0 с помощью процесса, показанного на этапе S3109 на фиг. 49. В этом случае, на этапе S3131 блок 533-0 сжатия вектора движения V0 считывает несжатый вектор движения V0 из устройства 532-0 временной памяти V0 и выполняет сжатие 1/16. На этапе S3132 устройство 534-0 памяти вектора движения V0 сохраняет вектор движения V0 со сжатием 1/16, сгенерированный на этапе S3131.
В этом случае несжатый вектор движения V0, хранящийся в устройстве 532-0 временной памяти V0, используется для IVMP блоком 514-1 предсказания/компенсации движения. Дополнительно, вектор движения V0 со сжатием 1/16, хранящийся в устройстве 534-0 памяти вектора движения V0, используется для TMVP блоком 514-0 предсказания/компенсации движения.
После окончания процесса на этапе S3132 процесс кодирования V0 заканчивается и процесс возвращается к фиг. 48.
Однако, когда вектор движения на этапе S3130, показанном на фиг. 50, определяется как подлежащий сжатию, то есть, когда вектор движения определяется как подлежащий сжатию даже на этапе S3106, показанном на фиг. 49, процесс кодирования V0 заканчивается и процесс возвращается к фиг. 48.
В этом случае, вектор движения V0 со сжатием 1/16, хранящийся в устройстве 534-0 памяти вектора движения V0, используется для TMVP блоком 514-0 предсказания/компенсации движения, а также используется для IVMP блоком 514-1 предсказания/компенсации движения.
Процесс межкадрового предсказания движения V0, выполняемый на этапе S3104, показанном на фиг. 49, выполняется блоком 514-0 предсказания/компенсации движения таким же образом, как в первом варианте осуществления (фиг. 11), и поэтому его описание не приводится.
Последовательность выполнения операций процесса кодирования V1
Далее примерная последовательность выполнения операций процесса кодирования V1 для кодирования проекции 1, который выполняется на этапе S3005, показанном на фиг. 48, будет описана со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 51 и 52.
Разница между процессом для проекции 0 и процессом для проекции 1 лежит, главным образом, в процессе межкадрового предсказания движения. Таким образом, как показано на фиг. 51, устройство 500-1 кодирования изображения V1 выполняет процесс кодирования V1 для проекции 1, в основном, таким же образом, как процесс кодирования V0 для проекции 0 (фиг. 49 и 50). Другими словами, процесс на этапах S3201-S3212, показанный на фиг. 51, и процесс на этапах S3121-S3232, показанный на фиг. 52, выполняются, в основном, таким же образом, как процесс на этапах S3101-S3112, показанный на фиг. 49, и процесс на этапах S3121-S3132, показанный на фиг. 50. Таким образом, описание, приведенное на фиг. 51 и 52, может быть продолжено таким образом, что соответствующие компоненты устройства 500-0 кодирования изображения V0, описанные со ссылкой на фиг. 49 и 50, заменяются соответствующими компонентами устройства 500-1 кодирования изображения V1, и процесс для проекции 0, показанный на фиг. 49 и 50, заменяется процессом для проекции 1 с помощью процесса для проекции 1 и поэтому его описание не приводится.
Последовательность выполнения операций процесса межкадрового предсказания движения V1
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 53, будет описана примерная последовательность выполнения операций процесса межкадрового предсказания движения V1, выполняемого на этапе S3204, показанного на фиг. 51.
Когда процесс межкадрового предсказания движения V1 начат, процесс на этапах S3251-S3253 выполняется, в основном, таким же образом, как процесс на этапах S1231-S1233, показанных на фиг. 13. Здесь, в этом случае процесс межкадрового предсказания движения V1 выполняется блоком 514-1 предсказания/компенсации движения.
Дополнительно, в этом случае выбирается, сжимается ли вектор движения для IVMP. Другими словами, на этапе S3254, показанном на фиг. 53, блок 514-1 предсказания/компенсации движения определяет, сжимается ли вектор движения в соответствии с управлением от блока 521 управления (то есть, выбирается блок 535-0 выбора V0, управляемый блоком 521 управления). Когда определяется, что вектор движения должен быть сжат, процесс переходит к этапу S3255.
На этапе S3255 блок 514-1 предсказания/компенсации движения определяет возможного кандидата вектора предсказания движения IVMP, используя вектор движения V0 со сжатием 1/16, полученный от устройства 534-0 вектора движения V0. Если возможный кандидат определен, процесс переходит к этапу S3257.
Однако, когда на этапе S3254 вектор движения определяется как не подлежащий сжатию, процесс переходит к этапу S3256.
На этапе S3255 блок 514-1 предсказания/компенсации движения определяет возможного кандидата вектора предсказания движения IVMP, используя несжатый вектор движения V0, полученный от устройства 532-0 временной памяти V0. Когда возможный кандидат определен, процесс переходит к этапу S3257.
Процесс на этапах S3257-S3260, показанных на фиг. 53, выполняется, в основном, таким же образом, как процесс на этапах S1235-S1238, показанный на фиг. 13. Когда процесс на этапе S3260 закончен, процесс межкадрового предсказания движения V1 заканчивается и процесс возвращается к фиг. 51.
Последовательность выполнения операций процесса кодирования V2
Далее примерная последовательность выполнения операций процесса кодирования V2 для кодирования проекции 2, который выполняется на этапе S3006, показанном на фиг. 48, будет описана со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 54 и 55.
Процесс для проекции 2 выполняется аналогично процессу для проекции 1. Таким образом, как показано на фиг. 54 и 55, устройство 500-2 кодирования изображения V2 выполняет процесс кодирования V2, в основном, таким же образом, как процесс кодирования V1 для проекции 1 (фиг. 51 и 52). Другими словами, процесс на этапах S3301-S3312, показанный на фиг. 54, и процесс на этапах S3321-S3332, показанный на фиг. 55, выполняются, в основном, таким же образом, как процесс на этапах S3201-S3212, показанный на фиг. 51, и процесс на этапах S3221-S3232, показанный на фиг. 52. Таким образом, описание процесса, показанного на фиг. 54 и 55, может быть продолжено так, что соответствующие компоненты устройства 500-1 кодирования изображения V1, описанные со ссылкой на фиг. 51 и 52, заменяются соответствующими компонентами устройства 500-2 кодирования изображения V2 и процесс для проекции 1, показанный на фиг. 51 и 52, заменяется процессом для проекции 2 и поэтому его описание не приводится.
Поскольку проекция 2 является проекцией, которая, в конечном счете, обрабатывается среди проекций 0-2, сгенерированный вектор движения V2 не используется для IVMP. Таким образом, предпочтительно выполняется один из процессов, процесс на этапе S3307 и этапе S3308, показанный на фиг. 54, или процесс на этапе S3331 и на этапе S3338, показанный на фиг. 55. Таким образом, другие процессы и процессы определения на этапах S3306 и S3330, показанных на фиг. 54, могут не выполняться.
Последовательность выполнения операций процесса межкадрового предсказания движения V2
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 56, будет описана примерная последовательность выполнения операций процесса межкадрового предсказания движения V2, выполняемого на этапе S3304, показанного на фиг. 54.
Когда процесс межкадрового предсказания движения V2 начат, процесс на этапах S33251-S3353 выполняется, в основном, таким же образом, как процесс на этапах S1331-S1333, показанный на фиг. 15. Здесь, в этом случае процесс межкадрового предсказания движения V2 выполняется блоком 514-2 предсказания/компенсации движения.
Дополнительно, в этом случае выбирается, сжимается ли вектор движения для IVMP. Другими словами, на этапе S3354, показанном на фиг. 56, блок 514-2 предсказания/компенсации движения определяет, сжимается ли вектор движения в соответствии с управлением от блока 521 управления (то есть, выбирается блок 535-1 выбора V1, управляемый блоком 521 управления). Когда определяется, что вектор движения должен сжиматься, процесс переходит к этапу S3355.
На этапе S3355 блок 514-2 предсказания/компенсации движения определяет возможного кандидата вектора предсказания движения IVMP, используя вектор движения V1 со сжатием 1/16, полученный от устройства 534-1 вектора движения V1. Когда возможный кандидат определен, процесс переходит к этапу S3357.
Однако, когда на этапе S3354 вектор движения определяется как не подлежащий сжатию, процесс переходит к этапу S3356.
На этапе S3356 блок 514-2 предсказания/компенсации движения определяет возможного кандидата вектора предсказания движения IVMP, используя несжатый вектор движения V1, полученный от устройства 532-1 временной памяти V1. Когда возможный кандидат определен, процесс переходит к этапу S3357.
Процесс на этапах S3357-S3360, показанный на фиг. 56, выполняется, в основном, таким же образом, как процесс на этапах S1335-S1338, показанный на фиг. 15. Когда процесс на этапе S3360 закончен, процесс межкадрового предсказания движения V2 заканчивается и процесс возвращается к фиг. 54.
По мере того, как процесс выполняется, как описано выше, устройство 500 кодирования изображения может адаптивно уменьшать объем устройства памяти, необходимый для векторов движения для IVMP, и более адаптивно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
Устройство декодирования изображения
Далее будет описано декодирование кодированных данных (кодированного потока), кодированных, как описано выше. На фиг. 57 представлена блок-схема примерной основной конфигурации устройства декодирования изображения V0. На фиг. 58 представлена блок-схема примерной основной конфигурации устройства декодирования изображения V1. На фиг. 59 представлена блок-схема примерной основной конфигурации устройства декодирования изображения V2.
Устройство 600 декодирования изображения (не показано) декодирует кодированные данные движущегося изображения, содержащего множество уровней, такого как мультипроекционное изображение, показанное на фиг. 2, которое кодируется устройством 500 кодирования изображения способом декодирования, соответствующим способу кодирования. Устройство 600 декодирования изображения содержит устройство 600-0 декодирования изображения V0, показанное на фиг. 57, устройство 600-1 декодирования изображения V1, показанное на фиг. 58, и устройство 600-2 декодирования изображения V2, показанное на фиг. 59, чтобы декодировать кодированные данные соответствующих проекций мультипроекционного изображения. Устройство 600-0 декодирования изображения V0 декодирует кодированные данные изображения проекции 0, кодированного устройством 500-0 кодирования изображения V0. Устройство 600-1 декодирования изображения V1 декодирует кодированные данные изображения проекции 1, кодированного устройством 500-1 кодирования изображения V1. Устройство 600-2 декодирования изображения V2 декодирует кодированные данные изображения проекции 2, кодированного устройством 500-2 кодирования изображения V2.
Как показано на фиг. 57, устройство 600-0 декодирования изображения V0 содержит накопительный буфер 601-0, блок 602-0 декодирования без потерь, блок 603-0 инверсного квантования, блок 604-0 инверсного ортогонального преобразования, операционный блок 605-0, контурный фильтр 606-0, буфер 607-0 перегруппировки экрана и блок 608-0 цифро-аналогового (D/A) преобразования. Устройство 600-0 декодирования изображения V0 дополнительно содержит буфер 609-0 декодированной картинки, блок 610-0 внутрикадрового предсказания, блок 611-0 компенсации движения и блок 612-0 выбора.
Как показано на фиг. 58, устройство 600-1 декодирования изображения V1 содержит накопительный буфер 601-1, блок 602-1 декодирования без потерь, блок 603-1 инверсного квантования, блок 604-1 инверсного ортогонального преобразования, операционный блок 605-1, контурный фильтр 606-1, буфер 607-1 перегруппировки экрана и блок 608-1 цифро-аналогового (D/A) преобразования.
Как показано на фиг. 59, устройство 600-2 декодирования изображения V2 содержит накопительный буфер 601-2, блок 602-2 декодирования без потерь, блок 603-2 инверсного квантования, блок 604-2 инверсного ортогонального преобразования, операционный блок 605-2, контурный фильтр 606-2, буфер 607-2 перегруппировки экрана и блок 608-2 цифро-аналогового (D/A) преобразования. Устройство 600-2 декодирования изображения V2 дополнительно содержит буфер 609-2 декодированного кадра, блок 610-2 внутрикадрового предсказания, блок 611-2 компенсации движения и блок 612-2 выбора.
Здесь далее, когда нет необходимости различать накопительные буферы 601-0-601-2 друг от друга, они упоминаются просто как "накопительный буфер 601". Дополнительно, когда нет необходимости различать блоки 602-0-602-2 декодирования без потерь друг от друга, они упоминаются просто как "блок 602 декодирования без потерь". Дополнительно, когда нет необходимости различать блоки 603-0-603-2 инверсного квантования друг от друга, они упоминаются просто как "блок 603 инверсного квантования". Дополнительно, когда нет необходимости различать блоки 604-0-604-2 инверсного ортогонального преобразования друг от друга, они упоминаются просто как "блок 604 инверсного ортогонального преобразования". Дополнительно, когда нет необходимости различать операционные блоки 605-0-605-2 друг от друга, они упоминаются просто как "операционный блок 605".
Дополнительно, когда нет необходимости различать контурные фильтры 606-0-606-2 друг от друга, они упоминаются просто как "контурный фильтр 606". Дополнительно, когда нет необходимости различать буферы 607-0-607-2 перегруппировки экрана друг от друга, они упоминаются просто как "буфер 607 перегруппировки экрана". Дополнительно, когда нет необходимости различать блоки 608-0-608-2 D/A-преобразования друг от друга, они упоминаются просто как "блок 608 D/A-преобразования". Дополнительно, когда нет необходимости различать буферы 609-0-609-2 декодированной картинки друг от друга, они упоминаются просто как "буфер 609 декодированной картинки".
Дополнительно, когда нет необходимости различать блоки 610-0-610-2 внутрикадрового предсказания друг от друга, они упоминаются просто как "блок 610 внутрикадрового предсказания". Дополнительно, когда нет необходимости различать блоки 611-0-611-2 компенсации движения друг от друга, они упоминаются просто как "блок 611 компенсации движения". Дополнительно, когда нет необходимости различать блоки 612-0-612-2 выбора друг от друга, они упоминаются просто как "блок 612 выбора".
Накопительный буфер 601 соответствует накопительному буферу 201 и выполняет, в основном, тот же самый процесс, что и накопительный буфер 201. Блок 602 декодирования без потерь соответствует блоку 202 декодирования без потерь и выполняет, в основном, тот же самый процесс, что и блок 202 декодирования без потерь. Блок 603 инверсного квантования соответствует блоку 203 инверсного квантования и выполняет, в основном, тот же самый процесс, что и блок 203 инверсного квантования. Блок 604 инверсного ортогонального преобразования соответствует блоку 204 инверсного ортогонального преобразования и выполняет, в основном, тот же самый процесс, что и блок 204 инверсного ортогонального преобразования. Операционный блок 605 соответствует операционному блоку 205 и выполняет, в основном, тот же самый процесс, что и операционный блок 205.
Контурный фильтр 606 соответствует контурному фильтру 206 и выполняет, в основном, тот же самый процесс, что и контурный фильтр 206. Буфер 607 перегруппировки экрана соответствует буферу 207 перегруппировки экрана и выполняет, в основном, тот же самый процесс, что и буфер 207 перегруппировки экрана. Блок 608 D/A-преобразования соответствует блоку 208 D/A-преобразования и выполняет, в основном, тот же самый процесс, что и блок 208 D/A-преобразования. Буфер 609 декодированной картинки соответствует буферу 209 декодированной картинки и выполняет, в основном, тот же самый процесс, что и буфер 209 декодированной картинки.
Блок 610 внутрикадрового предсказания соответствует блоку 210 внутрикадрового предсказания и выполняет, в основном, тот же самый процесс, что и блок 210 внутрикадрового предсказания. Блок 611 компенсации движения соответствует блоку 211 компенсации движения и выполняет, в основном, тот же самый процесс, что и блок 211 компенсации движения. Блок 612 выбора соответствует блоку 212 выбора и выполняет, в основном, тот же самый процесс, что и блок 212 выбора.
Блок 600-0 декодирования изображения V0 дополнительно содержит блок 621 управления, блок 631-0 выбора V0, устройство 632-0 временной памяти V0, блок 633-0 сжатия вектора движения V0, устройство 634-0 памяти вектора движения V0 и блок 635-0 выбора V0.
Устройство 600-1 декодирования изображения V1 дополнительно содержит блок 631-1 выбора V1, устройство 632-1 временной памяти V1, блок 633-1 сжатия вектора движения V1, устройство 634-1 памяти вектора движения V1 и блок 635-1 выбора V1.
Устройство 600-2 декодирования изображения V2 дополнительно содержит блок 631-2 выбора V2, устройство 632-2 временной памяти V2, блок 633-2 сжатия вектора движения V2 и устройство 634-2 памяти вектора движения V2.
Блок 602-0 декодирования без потерь извлекает флаг, указывающий, сжимается ли вектор движения для IVMP и подается ли он со стороны кодирования, например, из набора параметров последовательности, и подает флаг на блок 621 управления.
Блок 621 управления управляет выбором (переключением) блока 631-0 выбора V0, блока 635-0 выбора V0, блока 631-1 выбора V1, блока 635-1 выбора V1 и блока 631-2 выбора V2, основываясь на значении флага, полученном от блока 602 декодирования без потерь, то есть, в соответствии со способом (способом, определенным блоком 521 управления), используемым на стороне кодирования.
Когда вектор движения для IVMP сжимается, блок 631-0 выбора V0 выбирает блок 633-0 сжатия вектора движения V0 в соответствии с управлением от блока 621 управления, а блок 635-0 выбора V0 выбирает устройство 634-0 памяти вектора движения V0 в соответствии с управлением от блока 621 управления. Дополнительно, блок 631-1 выбора V1 выбирает блок 633-1 сжатия вектора движения V1 в соответствии с управлением от блока 621 управления, а блок 635-1 выбора V1 выбирает устройство 634-1 памяти вектора движения V1 в соответствии с управлением от блока 621 управления. Дополнительно, блок 631-2 выбора V2 выбирает блок 633-2 сжатия вектора движения V2 в соответствии с управлением от блока 621 управления.
В этом случае, блок 611-0 компенсации движения через блок 631-0 выбора V0 подает несжатый вектор движения V0 (с максимальной точностью 4×4) реконструированного текущего блока на блок 633-0 сжатия вектора движения V0. Блок 633-0 сжатия вектора движения V0 выполняет сжатие 1/16 для несжатого вектора движения V0, полученного от блока 611-0 компенсации движения, и подает полученный вектор движения V0 со сжатием 1/16 в устройство 634-0 памяти вектора движения V0. Устройство 634-0 памяти вектора движения V0 сохраняет поданный вектор движения V0 со сжатием 1/16. Устройство 634-0 памяти вектора движения V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/16 на блок 611-0 компенсации движения в качестве вектора движения соседнего по времени блока. Дополнительно, устройство 634-0 памяти вектора движения V0 через блок 635-0 выбора V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/16 на блок 611-1 компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции.
Блок 611-1 компенсации движения через блок 631-1 выбора V1 подает несжатый вектор движения V1 (с максимальной точностью 4×4) реконструированного текущего блока на блок 633-1 сжатия вектора движения V1. Блок 633-1 сжатия вектора движения V1 выполняет сжатие 1/16 для несжатого вектора движения V1, полученного от блока 611-1 компенсации движения, и подает полученный вектор движения V1 со сжатием 1/16 в устройство 634-1 памяти вектора движения V1. Устройство 634-1 памяти вектора движения V1 сохраняет поданный вектор движения V1 со сжатием 1/16. Устройство 634-1 памяти вектора движения V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/16 на блок 611-1 компенсации движения в качестве вектора движения соседнего по времени блока. Дополнительно, устройство 634-1 памяти вектора движения V1 через блок 635-1 выбора V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/16 на блок 611-2 компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции.
Блок 611-2 компенсации движения через блок 631-2 выбора V2 подает несжатый вектор движения V2 (с максимальной точностью 4×4) текущего блока, сгенерированный при предсказании движения, на блок 633-2 сжатия вектора движения V2. Блок 633-2 сжатия вектора движения V2 выполняет сжатие 1/16 для несжатого вектора движения V2, полученного от блока 611-2 компенсации движения, и подает полученный вектор движения V2 со сжатием 1/16 в устройство 634-2 памяти вектора движения V2. Устройство 634-2 памяти вектора движения V2 сохраняет поданный вектор движения V2 со сжатием 1/16. Устройство 634-2 памяти вектора движения V2 соответственно подает хранящийся вектор движения V2 со сжатием 1/16 на блок 611-2 компенсации движения в качестве вектора движения соседнего по времени блока.
Другими словами, в этом случае устройство 600 декодирования изображения выполняется с возможностью осуществления того же самого способа, что и способ (например, показанный на фиг. 5), который описан в первом варианте осуществления.
Когда вектор движения для IVMP не сжимается, блок 631-0 выбора V0 и блок 635-0 выбора V0 выбирают устройство 632-0 временной памяти V0 в соответствии с управлением от блока 621 управления. Дополнительно, блок 631-1 выбора V1 и блок 635-1 выбора V1 выбирают устройство 632-0 временной памяти V1 в соответствии с управлением от блока 621 управления. Дополнительно, блок 631-2 выбора V2 выбирает устройство 632-2 временной памяти V2 в соответствии с управлением от блока 621 управления.
В этом случае, блок 611-0 компенсации движения через блок 631-0 выбора V0 подает несжатый вектор движения V0 (с максимальной точностью 4×4) текущего блока, сгенерированного посредством предсказания движения, на устройство 632-0 временной памяти V0. Устройство 632-0 временной памяти V0 соответственно через блок 635-0 выбора V0 подает хранящийся несжатый вектор движения V0 на блок 611-1 компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции. Дополнительно, устройство 632-0 временной памяти V0 соответственно подает хранящийся несжатый вектор движения V0 на блок 633-0 сжатия вектора движения V0. Блок 633-0 сжатия вектора движения V0 считывает несжатый вектор движения V0 из устройства 632-0 временной памяти V0, выполняет сжатие 1/16 и подает полученный вектор движения V0 со сжатием 1/16 на устройство 634-0 памяти вектора движения V0. Устройство 634-0 памяти вектора движения V0 сохраняет поданный вектор движения V0 со сжатием 1/16. Устройство 634-0 памяти вектора движения V0 соответственно подает хранящийся вектор движения V0 со сжатием 1/16 на блок 611-0 компенсации движения в качестве вектора движения соседнего по времени блока.
Дополнительно, блок 611-1 компенсации движения через блок 631-1 выбора V1 подает несжатый вектор движения V1 (с максимальной точностью 4×4) текущего блока, сгенерированного посредством предсказания движения, на устройство 632-1 временной памяти V1. Устройство 632-1 временной памяти V1 соответственно через блок 635-1 выбора V1 подает хранящийся несжатый вектор движения V1 на блок 611-2 компенсации движения в качестве вектора движения блока, соседнего с точки зрения проекции. Дополнительно, устройство 632-1 временной памяти V1 соответственно подает хранящийся несжатый вектор движения V1 на блок 633-1 сжатия вектора движения V1. Блок 633-1 сжатия вектора движения V1 выполняет сжатие 1/16 для несжатого вектора движения V1, полученного от устройства 632-1 временной памяти, и подает полученный вектор движения V1 со сжатием 1/16 в устройство 634-1 памяти вектора движения V1. Устройство 634-1 памяти вектора движения V1 сохраняет поданный вектор движения V1 со сжатием 1/16. Устройство 634-1 памяти вектора движения V1 соответственно подает хранящийся вектор движения V1 со сжатием 1/16 на блок 611-1 компенсации движения в качестве вектора движения соседнего по времени блока.
Дополнительно, блок 611-2 компенсации движения через блок 631-2 выбора V2 подает несжатый вектор движения V2 (с максимальной точностью 4×4) текущего блока, сгенерированного посредством предсказания движения, на устройство 632-2 временной памяти V2. Устройство 632-2 временной памяти V2 соответственно подает хранящийся несжатый вектор движения V2 на блок 633-2 сжатия вектора движения V2. Блок 633-2 сжатия вектора движения V2 выполняет сжатие 1/16 для несжатого вектора движения V2, полученного от устройства 632-2 временной памяти V2, и подает полученный вектор движения V2 со сжатием 1/16 в устройство 634-2 памяти вектора движения V2. Устройство 634-2 памяти вектора движения V2 сохраняет поданный вектор движения V2 со сжатием 1/16. Устройство 634-2 памяти вектора движения V2 соответственно подает хранящийся вектор движения V2 со сжатием 1/16 на блок 611-2 компенсации движения в качестве вектора движения соседнего по времени блока.
Другими словами, в этом случае устройство 600 декодирования изображения выполняется с возможностью осуществления того же самого способа, что и способ (например, показанный на фиг. 4), который описан для предшествующего уровня изобретения.
Как описано выше, поскольку можно управлять способом сжатия вектора движения, можно адаптивно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
Последовательность выполнения операций процесса декодирования
Далее будет описана последовательность выполнения операций обработки, выполняемой устройством 600 декодирования изображения. Примерная последовательность выполнения операций процесса декодирования, выполняемого устройством 600 декодирования изображения, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 60.
Когда процесс декодирования начат на этапе S3401, блок 621 управления принимает флаг сжатия вектора движения, указывающий, сжимается ли вектор движения для IVMP, и который передается со стороны кодирования.
Для текущей картинки устройство 600-0 декодирования изображения V0 на этапе S3402 выполняет процесс декодирования V0, устройство 600-1 декодирования изображения V1 на этапе S3403 выполняет процесс декодирования V1 и устройство 600-2 декодирования изображения V2 на этапе S3404 выполняет процесс декодирования V2.
На этапе S3405 устройство 600 декодирования изображения определяет, все ли картинки были обработаны, и когда определено, что существует необработанная картинка, процесс возвращается к этапу S3402 и последующий процесс повторяется.
Процесс на этапах S3402-S3405 выполняется повторно для каждого кадра и когда на этапе S3405 определено, что все кадры обработаны, устройство 600 декодирования изображения заканчивает процесс декодирования.
Последовательность выполнения операций процесса декодирования V0
Далее примерная последовательность выполнения операций процесса декодирования V0 для декодирования проекции 0, который выполняется на этапе S3402, показанном на фиг. 60, будет описана со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 61 и 62.
Процесс на этапах S3501-S3508 выполняется таким же образом, как процесс на этапах S1501-S1508, показанный на фиг. 20, используя соответствующие блоки обработки устройства 600-0 декодирования изображения V0.
На этапе S3509 блок 631-0 выбора V0 определяет, сжимается ли несжатый вектор движения V0, в соответствии с управлением от блока 621 управления. Когда определяется, что несжатый вектор движения V0 должен быть сжат, процесс переходит к этапу S3510.
На этапе S3510 блок 633-0 сжатия вектора движения V0 выполняет сжатие 1/16 для несжатого вектора движения V0. На этапе S3511 устройство 634-0 памяти вектора движения V0 сохраняет вектор движения V0 со сжатием 1/16, сгенерированный в процессе на этапе S3510. Когда процесс на этапе S3511 закончен, процесс переходит к этапу S3521, показанному на фиг. 62.
Дополнительно, когда на этапе S3509, показанном на фиг. 61, несжатый вектор движения V0 определяется как не подлежащий сжатию, процесс переходит к этапу S3512. На этапе S3512 устройство 632-0 временной памяти V0 сохраняет несжатый вектор движения V0. Когда процесс на этапе S3512 закончен, процесс переходит к этапу S3521, показанному на фиг. 62.
Процесс на этапах S3521-S3525, показанный на фиг. 62, выполняется таким же образом, как процесс на этапах S1511-S1515, показанный на фиг. 20, используя соответствующие блоки обработки устройства 600-0 декодирования изображения.
На этапе S3509, показанном на фиг. 62, в соответствии с управлением от блока 621 блок 635-0 выбора V0 определяет, является ли вектор движения для IVMP сжатым. Это определение выполняется таким же образом, как и на этапе S3509, показанном на фиг. 61. Когда вектор движения для IVMP определяется как не подлежащий сжатию, то есть, когда вектор движения определяется как не подлежащий сжатию даже на этапе S3509, показанном на фиг. 61, процесс переходит к этапу S3527, показанному на фиг. 62.
В этом случае несжатый вектор движения V0 сохраняется в устройстве 632-0 временной памяти V0 с помощью процесса, показанного на этапе S3512 на фиг. 61. В этом отношении, на этапе S3527 блок 633-0 сжатия вектора движения V0 считывает несжатый вектор движения V0 из устройства 632-0 временной памяти V0 и выполняет сжатие 1/16. На этапе S3528 устройство 634-0 памяти вектора движения V0 сохраняет вектор движения V0 со сжатием 1/16, вычисленный на этапе S3527.
В этом случае несжатый вектор движения V0, хранящийся в устройстве 632-0 временной памяти V0, используется для IVMP блоком 611-1 компенсации движения. Дополнительно, вектор движения V0 со сжатием 1/16, хранящийся в устройстве 634-0 памяти вектора движения V0, используется для TMVP блоком 611-0 компенсации движения.
После окончания процесса на этапе S3528 процесс декодирования V0 заканчивается и процесс возвращается к фиг. 60.
Дополнительно, когда вектор движения на этапе S3526, показанном на фиг. 62, определяется как подлежащий сжатию, то есть, когда вектор движения определяется как подлежащий сжатию даже на этапе S3509, показанном на фиг. 61, процесс кодирования V0 заканчивается и процесс возвращается к фиг. 60.
В этом случае, вектор движения V0 со сжатием 1/16, хранящийся в устройстве 634-0 памяти вектора движения V0, используется для TMVP блоком 611-0 компенсации движения, а также используется для IVMP блоком 611-1 компенсации движения.
Процесс компенсации движения V0, выполняемый на этапе S3506, показанном на фиг. 61, выполняется блоком 611-0 компенсации движения таким же образом, как в первом варианте осуществления (фиг. 21), и поэтому его описание не приводится.
Последовательность выполнения операций процесса декодирования V1
Далее примерная последовательность выполнения операций процесса декодирования V1 декодирования кодированных данных проекции 1, который выполняется на этапе S3403, показанном на фиг. 60, будет описана со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 63 и 64.
Разница между процессом для проекции 0 и процессом для проекции 1 лежит, главным образом, в процессе компенсации движения. Таким образом, как показано на фиг. 63 и 64, устройство 600-1 декодирования изображения V1 выполняет процесс декодирования V1 для проекции 1, в основном, таким же образом, как процесс декодирования V0 для проекции 0 (фиг. 61 и 62). Другими словами, процесс на этапах S3601-S3612, показанный на фиг. 63, и процесс на этапах S3621-S3628, показанный на фиг. 64, выполняются, в основном, таким же образом, как процесс на этапах S3501-S3512, показанных на фиг. 61, и процесс на этапах S3521-S3528, показанных на фиг. 62. Таким образом, описание, представленное на фиг. 63 и 64, может быть продолжено так, что соответствующие компоненты устройства 600-0 декодирования изображения V0, описанные со ссылкой на фиг. 61 и 62, заменяются соответствующими компонентами устройства 600-1 декодирования изображения V1 и процесс для проекции 0, показанный на фиг. 61 и 62, заменяется процессом для проекции 1 и поэтому его описание не приводится.
Последовательность выполнения операций процесса компенсации движения V1
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 65, будет описана примерная последовательность выполнения операций процесса компенсации движения V1, выполняемого на этапе S3606, показанном на фиг. 63.
После начала процесса компенсации движения V1, на этапе S3641 блок 611-1 компенсации движения получает информацию о разностном движении (вектор разностного движения). На этапе S3642 блок 611-1 компенсации движения, основываясь на информации о межкадровом предсказании, определяет, является ли режим предсказания вектора движения режимом пространственного предсказания. Когда определяется, что режим предсказания вектора движения должен быть режимом пространственного предсказания, процесс переходит к этапу S3643.
На этапе S3643 блок 611-1 компенсации движения генерирует вектор предсказания движения, используя несжатый вектор движения V1 (вектор движения блока, пространственно соседнего с текущим блоком) в картинке. Когда вектор предсказания движения сгенерирован, процесс переходит к этапу S3649.
Однако, когда на этапе S3642 определено, что режим предсказания вектора движения не является режимом пространственного предсказания, процесс переходит к этапу S3644.
Поскольку проекция 1 не является первоначально обработанной проекцией, режим предсказания вектора движения может быть режимом межкадрового предсказания (IVMP).
На этапе S3644 блок 611-1 компенсации движения, основываясь на информации о межкадровом предсказании, определяет, является ли режим предсказания вектора движения режимом временного предсказания. Когда определяется, что режим предсказания вектора движения является режимом временного предсказания, процесс переходит к этапу S3645.
На этапе S3645 блок 611-1 компенсации движения генерирует вектор предсказания движения, используя вектор движения V1 со сжатием 1/16 (вектор движения блока, пространственно соседнего с текущим блоком) в другой картинке. Когда вектор предсказания движения сгенерирован, процесс переходит к этапу S3649.
Однако, когда на этапе S3644 определено, что режим предсказания вектора движения не является режимом временного предсказания, процесс переходит к этапу S3646.
В настоящем вариант осуществления существуют случаи, когда сторона кодирования сжимает и не сжимает вектор движения для IVMP.
На этапе S3646 блок 611-1 компенсации движения, основываясь на управлении от блока 621 управления, определяет, сжимается ли вектор движения. Когда определяется, что вектор движения не должен сжиматься, процесс переходит к этапу S3647.
На этапе S3647 блок 611-1 компенсации движения генерирует вектор предсказания движения, используя несжатый вектор движения V0. Когда вектор предсказания движения сгенерирован, процесс переходит к этапу S3649.
Однако, когда на этапе S3646 вектор движения определяется как подлежащий сжатию, процесс переходит к этапу S3648.
На этапе S3648 блок 611-1 компенсации движения генерирует вектор предсказания движения, используя вектор движения V0 со сжатием 1/16. Когда вектор предсказания движения сгенерирован, процесс переходит к этапу S3649.
На этапе S3649 блок 611-1 компенсации движения реконструирует вектор движения, используя вектор предсказания движения, сгенерированный в процессе на этапе S3643, на этапе S3645 или в процессе на этапе S3648.
На этапе S3650 блок 611-1 компенсации движения выполняет компенсацию движения и генерирует изображение предсказания. Дополнительно, блок 611-1 компенсации движения сохраняет вектор движения, реконструированный на этапе S3649. После окончания процесса на этапе S3650 процесс компенсации движения V1 заканчивается и процесс возвращается к фиг. 63.
Последовательность выполнения операций процесса декодирования V2
Далее примерная последовательность выполнения операций процесса декодирования V2 декодирования кодированных данных проекции 2, который выполняется на этапе S3404, показанном на фиг. 60, будет описана со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 66 и 67.
Разница между процессом для проекции 0 и процессом для проекции 2 лежит, главным образом, в процессе компенсации движения. Таким образом, как показано на фиг. 66 и 67, устройство 600-2 декодирования изображения V2 выполняет процесс декодирования V2 для проекции 2, в основном, таким же образом, как процесс декодирования V0 для проекции 0 (фиг. 61 и 62). Другими словами, процесс на этапах S3701-S3712, показанный на фиг. 66, и процесс на этапах S3721-S3728, показанный на фиг. 67, выполняются, в основном, таким же образом, как процесс на этапах S3501-S3512, показанный на фиг. 61, и процесс на этапах S3521-S3528, показанный на фиг. 62.
Таким образом, описание процесса, представленного на фиг. 66 и 67 может быть продолжено таким образом, что соответствующие компоненты устройства 600-0 декодирования изображения V0, описанные со ссылкой на фиг. 61 и 62, заменяются соответствующими компонентами устройства 600-2 декодирования изображения V2, и процесс для проекции 0, показанный на фиг. 61 и 62, заменяется процессом для проекции 2 и поэтому его описание не приводится.
Последовательность выполнения операций процесса компенсации движения V2
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 68, будет описана примерная последовательность выполнения операций процесса компенсации движения V2, выполняемого на этапе S3706, показанном на фиг. 66.
Как показано на фиг. 68, процесс компенсации движения V2 выполняется, в основном, таким же образом, как процесс компенсации движения V1 (фиг. 65). Другими словами, процесс на этапах S3741-S3750, показанный на фиг. 68, выполняется, в основном, таким же образом, как процесс на этапах S3631-S3650, показанный на фиг. 65. Здесь процесс компенсации движения V1 выполняется блоком 611-1 компенсации движения, тогда как процесс компенсации движения V2 выполняется блоком 611-2 компенсации движения.
Дополнительно, целью обработки процесса компенсации движения V2 является изображение проекции 2, отличное от изображения проекции 1. Таким образом, на этапе S3743 блок 611-2 компенсации движения генерирует вектор предсказания движения, используя несжатый вектор движения V2 (вектор движения блока, пространственно соседнего с текущим блоком) в картинке.
На этапе S3745 блок 611-2 компенсации движения генерирует вектор предсказания движения, используя вектор движения V2 со сжатием 1/16 (вектор движения блока, соседнего по времени с текущим блоком) в другой картинке.
На этапе S3747 блок 611-2 компенсации движения генерирует вектор предсказания движения, используя несжатый вектор движения V1 (вектор движения блока, соседнего с текущим блоком с точки зрения проекции).
На этапе S3748 блок 611-2 компенсации движения генерирует вектор предсказания движения, используя вектор движения V1 со сжатием 1/16 (вектор движения блока, соседнего с текущим блоком с точки зрения проекции).
После окончания процесса на этапе S3750, процесс компенсации движения V2 заканчивается и процесс возвращается к фиг. 66.
По мере того, как процесс выполняется, как описано выше, устройство 600 декодирования изображения может адаптивно уменьшать объем устройства памяти, необходимый для векторов движения для IVMP, и адаптивно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
4. Четвертый вариант осуществления
Применения масштабируемого кодирования изображения и масштабируемого декодирования изображения
Приведенное выше описание продолжается для мультипроекционного кодирования и декодирования изображения, но уровень не ограничивается проекцией. Например, иерархия при масштабируемом кодировании и декодировании, например, в отношении разрешающей способности, компонента и битовой глубины, также содержится в уровне. Настоящая технология может применяться к любому кодированию и декодированию множества уровней. Например, описанная выше последовательность процессов может применяться к масштабируемому кодированию изображения и масштабируемому декодированию изображения. На фиг. 69 приведен пример схемы масштабируемого кодирования изображения.
При масштабируемом кодировании (scalable coding) изображения данные изображения делятся (располагаются в иерархическом порядке) на множество уровней, так что определенный параметр имеет функцию масштабируемости и кодирование выполняется для каждого уровня. Масштабируемое декодирование (scalable decoding) изображения является декодированием, соответствующим масштабируемому кодированию изображения.
Как показано на фиг. 69, для создания иерархии изображений одно изображение делится на множество изображений (уровней), основываясь на заданном параметре, имеющем функцию масштабируемости. Другими словами, иерархическое изображение (масштабируемое изображение) содержит изображение множества уровней, которые по значению определенного параметра отличаются друг от друга. Множество уровней масштабируемого изображения содержат базовый уровень, на котором кодирование и декодирование выполняются, используя только изображение своего собственного уровня без использования изображений других уровней, и небазовые уровни (которые также упоминаются как "улучшенные" уровни"), на которых кодирование и декодирование выполняются, используя изображения других уровней. В качестве небазового уровня может использоваться изображение базового уровня и может использоваться изображение любого другого небазового уровня.
Обычно, небазовый уровень конфигурируется с помощью данных (разностных данных) разностного изображения между своим собственным изображением и изображением другого уровня, так чтобы избыточность снижалась. Например, когда одно изображение разделяется на два уровня, то есть, базовый уровень и небазовый уровень (который также упоминается как улучшенный уровень), изображение с качеством ниже первоначального изображения получается, когда используются только данные базового уровня, и первоначальное изображение (то есть, изображение высокого качества) получается, когда объединяются данные базового уровня и данные небазового уровня.
По мере того, как изображение делится на уровни, как описано выше, в зависимости от ситуации легко могут быть получены изображения с различными качествами. Например, для терминала, обладающего низкой способностью обработки, такого как мобильный телефон, передается информация о сжатии изображения только базового уровня и воспроизводится подвижное изображение с низкими пространственной и временной разрешающими способностями или изображение низкого качества, а для терминала с высокой способностью обработки, такого как телевизионный приемник или персональный компьютер, передается информация о сжатии изображения улучшенного уровня, а также базового уровня и воспроизводится движущееся изображение с высокими пространственной и временной разрешающими способностями или изображение высокого качества. Другими словами, информация о сжатии изображения, соответствующая возможностям терминала или сети, может передаваться без выполнения процесса транскодирования от сервера.
Поскольку параметр, например, обладает масштабируемостью, существует пространственная разрешающая способность (пространственная масштабируемость), как показано на фиг. 70. В случае пространственной масштабируемости, соответствующие уровни имеют различные разрешающие способности. Другими словами, каждая картинка разделяется иерархически на два уровня, то есть, базовый уровень с разрешающей способностью, пространственно более низкой, чем разрешающая способность исходного изображения, и улучшенный уровень, который объединяется с изображением базового уровня, чтобы получить исходное изображение (исходную пространственную разрешающую способность), как показано на фиг. 70. Конечно, количество уровней является примерным и каждая картинка может иерархически разделяться на произвольное количество уровней.
В качестве другого параметра, обладающего такой масштабируемостью, существует временная разрешающая способность (temporal scalability), как показано на фиг. 71. В случае временной масштабируемости, соответствующие уровни имеют разные частоты кадров. Другими словами, в этом случае каждая картинка иерархически разделяется на уровни, имеющие разные частоты кадров, движущееся изображение с высокой частотой кадров может быть получено, объединяя уровень с высокой частотой кадров с уровнем с низкой частотой кадров и исходное движущееся изображение может быть получено, объединяя все уровни, как показано на фиг. 3. Количество уровней является примерным и каждая картинка может иерархически разделяться на произвольное количество уровней.
Дополнительно, в качестве другого параметра, обладающего такой масштабируемостью, существует, например, отношение сигнал-шум (SNR) (масштабируемость SNR). В случае масштабируемости SNR, соответствующие уровни имеют разные отношения сигнал-шум (SN). Другими словами, в этом случае каждая картинка разделяется иерархически на два уровня, то есть, базовый уровень с SNR, более низким, чем у исходного изображения, и улучшенный уровень, который объединяется с изображением базового уровня, чтобы получить исходное изображение (исходный SNR), как показано на фиг. 72. Другими словами, для информации о сжатии изображения базового уровня передается информация, связанная с изображением с низким PSNR, а информация изображения с высоким PSNR может быть реконструирована, объединяя эту информацию с информацией о сжатии изображения с улучшенным уровнем. Конечно, количество уровней является примерным и каждая картинка может иерархически разделяться на произвольное количество уровней.
Любой параметр, отличный от описанных выше примеров, может применяться в качестве параметра, обладающего масштабируемостью. Например, существует масштабируемость по битовой глубине, в которой базовый уровень содержит 8-битовое изображение, а 10-тибитовое изображение может быть получено, добавляя к базовому изображению улучшенный уровень.
Дополнительно, существует масштабируемость по цветности, в которой базовый уровень содержит компонентное изображение формата 4:2:0 и, добавляя к базовому уровню улучшенный уровень, может быть получено компонентное изображение формата 4:2:2.
При таком масштабируемом кодировании изображения, когда изображение каждого уровня кодируется или декодируется, степень корреляции между уровнями может использоваться для предсказания вектора движения, подобно случаю описанных выше мультипроекционных кодирования и декодирования. Другими словами, вектор предсказания движения может генерироваться или реконструироваться, используя обработанный (кодированный или декодированный) вектор движения другого уровня.
В этом случае, необходимо сохранять вектор движения, полученный при кодировании или декодировании определенного уровня, так чтобы он мог использоваться при кодировании или декодировании в дальнейшем обработанного уровня.
В этом отношении, чтобы сдерживать увеличение объема памяти, вектор движения текущего уровня, используемый при кодировании или декодировании другого уровня, может сжиматься. Конкретный способ сжатия является тем же самым, что и способ, описанный выше при описании мультипроекционного кодирования и декодирования.
Например, для сжатия (прореживания) и для ссылки на вектор движения, как показано на фиг. 5, предпочтительно, устройство кодирования изображения имеет конфигурацию, показанную на фиг. 6-8, и выполняет процессы согласно блок-схемам последовательности выполнения операций, показанным на фиг. 9-15. Дополнительно, предпочтительно, устройство декодирования изображения имеет конфигурацию, показанную на фиг. 16-18, и выполняет процессы согласно блок-схемам последовательности выполнения операций, показанным на фиг. 19-15.
Дополнительно, чтобы сжать (проредить) и для ссылки на вектор движения, как показано на фиг. 26, предпочтительно, устройство кодирования изображения имеет конфигурацию, показанную на фиг. 27-29, и выполняет процессы согласно блок-схемам последовательности выполнения операций, показанным на фиг. 30-34. Дополнительно, предпочтительно, устройство декодирования изображения имеет конфигурацию, показанную на фиг. 35-37, и выполняет процессы согласно блок-схемам последовательности выполнения операций, показанным на фиг. 38-42.
Дополнительно, чтобы сжать (проредить) и для ссылки на вектор движения, как показано на фиг. 43, предпочтительно, устройство кодирования изображения имеет конфигурацию, показанную на фиг. 45-18, и выполняет процессы согласно блок-схемам последовательности выполнения операций, показанным на фиг. 48-56. Дополнительно, предпочтительно, устройство декодирования изображения имеет конфигурацию, показанную на фиг. 57-59, и выполняет процессы согласно блок-схемам последовательности выполнения операций, показанным на фиг. 60-68.
Дополнительно, при таком масштабируемом кодировании и декодировании изображения, например, при кодировании и декодировании уровня 1 (layer_id=1) используется вектор движения уровня 0 (layer_id=0). В этом случае, точность вектора движения уровня 0 ниже, чем точность вектора движения уровня 1, даже без сжатия. Однако, поскольку вектор движения уровня 0 дополнительно сжимается, емкость запоминающего устройства, необходимая для сохранения вектора движения, может быть дополнительно снижена.
Дополнительно, коэффициент сжатия может быть определен с точки зрения отношения точностей вектора движения между уровнями. Например, определенный коэффициент сжатия может быть определен как опорный коэффициент сжатия и реальный коэффициент сжатия может быть определен в соответствии с отношением точностей вектора движения между уровнями (отношение разрешающих способностей между уровнями). Например, опорный коэффициент сжатия вектора движения уровня 0, используемый для IVMP уровня 1, принимается равным 1/16. В этом случае, когда разрешающая способность уровня 0 равна 1/4 от уровня 1, реальный коэффициент сжатия может быть установлен равным 1/4 и когда разрешающая способность уровня 0 равна 1/8 от уровня 1, реальный коэффициент сжатия может быть установлен равным 1/2. В результате, можно реализовать желаемый коэффициент сжатия вектора движения (опорный коэффициент сжатия) и можно в достаточной степени сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
Дополнительно, например, если вектор движения базового уровня (BL) прореживается до 1/4, как показано в позиции А на фиг. 73, снижение точности предсказания вектора движения является очень большим и, таким образом, эффективность кодирования в улучшенном уровне (EL), вероятно, должна снижаться. Однако, если вектор движения базового уровня (BL) предоставляется на улучшенный уровень без прореживания, как показано в позиции В на фиг. 73, емкость запоминающего устройства, необходимая для кодирования и декодирования, вероятно, должна увеличиваться.
В этом отношении, например, как показано на фиг. 74, прореживание 1/2 (сжатие) может выполняться, когда вектор движения подается с базового уровня на улучшенный уровень, и прореживание 1/2 (сжатие) может выполняться дополнительно при возвращении с улучшенного уровня на базовый уровень. Другими словами, даже в случае масштабируемого кодирования и декодирования изображения вектор движения может прореживаться (сжиматься) тем же самым способом, что и способ для мультипроекционного кодирования и декодирования изображения, описанный выше со ссылкой на фиг. 26 и т.п.
Как описано выше, деление изображения на множество уровней может выполняться, основываясь на произвольном параметре, и настоящая технология может применяться к кодированию и декодированию изображения множества уровней вне зависимости от параметра. Другими словами, даже когда настоящая технология применяется к масштабируемому кодированию изображения и масштабируемому декодированию изображения, можно сдерживать увеличение необходимой емкости запоминающего устройства.
Прочее
Приведенное выше описание было представлено на примере, в котором количество уровней равно 3 (0-2), но количество уровней является произвольным и может быть 2 или 4 или больше.
Дополнительно, приведенное выше описание было представлено на примере, в котором при предсказании движения и компенсации движения для кодирования или компенсации движения для декодирования используется вектор движения непосредственно предшествующего обработанного уровня, но настоящая технология не ограничивается этим примером и может использоваться вектор движения любого другого произвольного уровня.
Например, для кодирования и декодирования всех небазовых уровней может использоваться вектор движения базового уровня. Дополнительно, вектор движения одного небазового уровня может использоваться для множества небазовых уровней.
Общий обзор 2
Внутрикадровое предсказание
В то же время, в HEVC, подобно AVC и т.п., описывается внутрикадровое предсказание генерирования изображения предсказания, используя пиксель, соседний с текущим блоком.
В AVC существуют внутрикадровое предсказание 4×4, внутрикадровое предсказание 8×8 и внутрикадровое предсказание 16×16, тогда как в HEVC угловое предсказание, показанное на фиг. 75, применяется к пиксельным блокам от 4×4 до 64×64.
Другими словами, согласно стандарту AVC, процесс внутрикадрового предсказания выполняется посредством 8-направленного + DC предсказания, как показано в позиции А на фиг. 75, тогда как в стандарте HEVC внутрикадровое предсказание выполняется посредством 32-направленного + DC предсказания, как показано в позиции В на фиг. 75. В результате, точность предсказания может быть повышена.
Дополнительно, в стандарте HEVC описывается планарное предсказание, показанное на фиг. 76.
В процессе планарного предсказания пиксель предсказания, содержащийся в текущем блоке, генерируется посредством билинейной интерполяции, основываясь на пикселе (уже кодированном пикселе), соседним с текущим блоком, служащим в качестве цели обработки. Процесс планарного предсказания может улучшить эффективность кодирования области, обладающей градацией.
Согласно HEVC, процесс кодирования в режиме внутрикадрового предсказания, используются 3 наиболее вероятных режима, выполняется, как показано на фиг. 77. Другими словами, режим внутрикадрового предсказания (Above) блока, соседнего сверху с текущим блоком, режим внутрикадрового предсказания (Left) блока, соседнего слева с текущим блоком, и режим, определяемый комбинацией режимов внутрикадрового предсказания в соседних блоках (Above и Left), устанавливаются как возможные кандидаты режимов внутрикадрового предсказания (которые также упоминаются, как "кандидатные режимы") и из числа 3 кандидатных режимов в качестве режима внутрикадрового предсказания текущего блока используется оптимальный режим.
Когда режим предсказания текущего блока идентичен одному из наиболее вероятных режимов, передается его индексный номер. В противном случае, информация о режиме блока предсказания передается с использованием фиксированной длины 5 битов.
Процесс фильтрации при внутрикадровом предсказании
На фиг. 78 показана диаграмма для описания внутрикадрового сглаживания, зависимого от режима (MDIS), представленного в HEVC.
В случае AVC, в режиме внутрикадрового предсказания 8×8, процесс фильтрации [1 2 1]/4 выполняется на пикселе, соседнем с текущим блоком, как показано на фиг. 78. С другой стороны, в HEVC определяется, включен или выключен процесс фильтрации (то есть, применяется или не применяется процесс фильтрации) в соответствии с размером блока и режимом предсказания.
Более конкретно, когда размер блока для текущего блока равен 4×4, процесс фильтрации не применяется. Когда размер блока для текущего блока равен 8×8, процесс фильтрации применяется к режиму предсказания в направлении 45°. Когда размер блока для текущего блока равен 16×16, процесс фильтрации применяется к режимам предсказания в направлениях, отличных от 3 направлений, близких к горизонтальному направлению, и 3 направлений, близких к вертикальному направлению. Когда размер блока для текущего блока равен 32×32, процесс фильтрации применяется к режимам предсказания в направлениях, отличных от горизонтального и вертикального направления.
Дополнительно, согласно HEVC, с целью уменьшения блочного искажения, когда режимом предсказания является режим DC, горизонтальный режим или вертикальный режим, описывается процесс сглаживания граничных значений, показанный на фиг. 79.
Например, в случае предсказания (DC-предсказания), в котором режимом предсказания является режим DC, процесс фильтрации (процесс сглаживания), показанный на фиг. 79, выполняется как на соседнем пикселе, соседствующем с верхней стороной (Тор) текущего блока, служащего в качестве цели обработки, так и на соседнем пикселе, соседствующем с левой стороной (Left) текущего блока. Дополнительно, в случае предсказания (горизонтального предсказания), в котором режимом предсказания является горизонтальный режим, процесс фильтрации (процесс сглаживания), показанный на фиг. 79, выполняется на соседнем пикселе, соседствующем с верхней стороной (Тор) текущего блока. В случае предсказания (вертикального предсказания), в котором режимом предсказания является вертикальный режим, процесс фильтрации (процесс сглаживания), показанный на фиг. 79, выполняется на соседнем пикселе, соседствующем с левой стороной (Left) текущего блока.
При этом, в работах Vadim Seregin, Patrice Onno, Shan Liu, Tammy Lee, Chulkeun Kim, Haitao Yang, Haricharan Laksman, "Description of Tool Experiment C5: Inter-layer syntax prediction using HEVC base layer", JCTVC-K1105, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 1111th Meeting: Shanghai, CN, 1019 Oct. 2012 предлагается способ кодирования информации о режиме внутрикадрового предсказания на улучшенном уровне, используя информацию, связанную с режимом внутрикадрового предсказания базового уровня. Однако, в случае HEVC, поскольку в наихудшем случае необходимо сохранять информацию о режиме внутрикадрового предсказания для 4×4 блоков, емкость запоминающего устройства, необходимая для кодирования и декодирования, вероятно, должна увеличиваться.
Дополнительно, в работе Jill Boyce, Kawamura Kei, Haricharan Lakshman, "TE6: Inter-layer syntax prediction using HEVC base layer", JCTVC-K1105, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 1111th Meeting: Shanghai, CN, 1019 Oct. 2012 предлагается способ кодирования информации о движении на улучшенном уровне, используя информацию о движении базового уровня, когда выполняется масштабируемое кодирование, при котором выполняется AVC-кодирование базового уровня (базового уровня AVC) и HEVC-кодирование улучшенного уровня (улучшенного уровень HEVC). В этом случае, информация о режиме внутрикадрового предсказания улучшенного уровня рассматривается как подлежащая кодированию, используя информацию о режиме внутрикадрового предсказания базового уровня, аналогично описанному выше случаю. В этом случае, емкость запоминающего устройства, необходимая для кодирования и декодирования, вероятно, должна увеличиваться аналогично описанному выше случаю.
В этом отношении, в настоящей технологии, когда режим внутрикадрового предсказания (информация, указывающая режим) на базовом уровне сохраняется в устройстве памяти, выполняется процесс прореживания (информация, указывающая процесс) режима внутрикадрового предсказания. В результате, можно сдерживать увеличение объема запоминающего устройства, необходимого для хранения (информации, указывающей) режим внутрикадрового предсказания. Другими словами, можно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования. В последующем описании для удобства описания информация, указывающая режим внутрикадрового предсказания, будет также упоминаться как "режим внутрикадрового предсказания".
На фиг. 80 представлена диаграмма, описывающая настоящую технологию.
Например, процесс прореживания режима внутрикадрового предсказания может выполняться для каждой определенной области. Процесс прореживания является процессом оставления некоторых режимов внутрикадрового предсказания из множества режимов внутрикадрового предсказания и исключения других режимов внутрикадрового предсказания. Другими словами, в этом случае область, служащая в качестве блока обработки при процессе прореживания, имеет диапазон, соответствующий множеству блоков, служащих в качестве блоков обработки внутрикадрового предсказания. Например, как показано слева на фиг. 80, 16 блоков из числа 0-15 блоков, служащих в качестве блоков обработки для внутрикадрового предсказания, устанавливаются в качестве блоков (области) обработки процесса прореживания. В этом случае, режим внутрикадрового предсказания устанавливается в каждый из блоков 0-15. Другими словами, существуют 16 режимов внутрикадрового предсказания, 0-15, в текущей области, служащей в качестве цели обработки процесса прореживания.
В процессе прореживания, среди режимов внутрикадрового предсказания блоков текущей области, некоторые режимы внутрикадрового предсказания остаются (выбираются) в качестве типичных образцов области в устройстве буферной памяти, а другие режимы внутрикадрового предсказания исключаются. Например, когда коэффициент прореживания равен 4:1, среди 16 режимов внутрикадрового предсказания любой один режим внутрикадрового предсказания выбирается и сохраняется в буфере (другие 15 режимов внутрикадрового предсказания исключаются).
Режим внутрикадрового предсказания может быть выбран в качестве типичного образца области. Например, режим внутрикадрового предсказания (например, 10) блока (например, блока 0), в котором внутрикадровое предсказание первоначально выполняется среди блоков текущей области, может выбираться в качестве типичного образца текущей области. Дополнительно, например, режим внутрикадрового предсказания (например, любой один из 15, 16, 19 и 110) блока (например, любой один из блоков 5, 6, 9 и 10), расположенного вблизи центра текущей области, может быть выбран в качестве типичного образца текущей области.
На улучшенном уровне режим внутрикадрового предсказания (репрезентативное значение) базового уровня, хранящийся в буфере, используется для процесса кодирования блоков (PU), в которых блоки 0-15 устанавливаются как объединенные блоки. Другими словами, режим внутрикадрового предсказания (репрезентативное значение) области базового уровня, соответствующей текущему блоку, используется для внутрикадрового предсказания улучшенного уровня.
В результате, возможно сдерживать увеличение объема буфера, в котором хранится режим внутрикадрового предсказания.
Значение коэффициента прореживания является произвольным и не ограничивается приведенным выше примером (4:1). Например, значение коэффициента прореживания может быть любым другим значением, таким как 2:1, 8:1 или 16:1. Размер области, служащей в качестве блока обработки в процессе прореживания, может определяться в соответствии с коэффициентом прореживания. Дополнительно, режимы внутрикадрового предсказания, по количеству соответствующие коэффициенту прореживания, могут выбираться из одной области как типичные представители области (то есть, множество режимов внутрикадрового предсказания могут выбираться из одной области в качестве типичных представителей). Способ установки коэффициента прореживания является произвольным. Например, заданное значение может быть установлено в качестве коэффициента прореживания или коэффициент прореживания может быть установлен в соответствии с командой, поданной извне, например, от пользователя, может быть установлено, например, на основе состояния аппаратурного обеспечения, например, емкости запоминающего устройства, используемого в качестве устройства буферной памяти, в которой хранятся режимы внутрикадрового предсказания, или ширины полосы пропускания шины или может быть установлен на основе, например, состояния программного обеспечения, такого как отношение разрешающих способностей базового уровня и улучшенного уровня данных изображения. Дополнительно, коэффициент прореживания может быть установлен с учетом множества типов состояния в совокупности. Коэффициент прореживания может вводиться в произвольное место в информации о сжатии изображения (битовом потоке), которая должна выводиться и передаваться. Например, коэффициент прореживания может быть введен в набор видеопараметров (VPS) и передаваться. Дополнительно, например, коэффициент прореживания может вводиться в набор параметров последовательности (SPS), набор параметров картинки (PPS) ли в заголовок среза улучшенного уровня и передаваться.
Дополнительно, в случае пространственной масштабируемости, поскольку соответствующие уровни обладают разными разрешающими способностями, желательно определить уровень назначения коэффициента прореживания заранее. Например, коэффициент прореживания может быть установлен в отношении на базовом уровне.
Например, когда отношение пространственных масштабируемостей равно 1:2, 4×4 блоков базового уровня соответствуют 8×8 блокам на улучшенном уровне. Например, когда коэффициент прореживания равен 2:1, режим внутрикадрового предсказания базового уровня сохраняется в блоках кодирования из 8×8 блоков на базовом уровне при разрешающей способности базового уровня и в блоках кодирования из 16×16 блоков при разрешающей способности улучшенного уровня.
По мере того, как выполняется описанный выше процесс, можно сдерживать увеличение емкости запоминающего устройства, необходимой для хранения информации о режиме внутрикадрового предсказания базового уровня, чтобы кодировать режим внутрикадрового предсказания на улучшенном уровне.
Дополнительно, в настоящей технологии информация о сжатии изображения базового уровня может основываться на AVC.
Далее будут описаны примеры применения настоящей технологии в конкретных устройствах.
6. Пятый вариант осуществления
Устройство масштабируемого кодирования
На фиг. 81 представлена блок-схема примерной основной конфигурации устройства масштабируемого кодирования.
Устройство 1100 масштабируемого кодирования, показанное на фиг. 81, является устройством обработки информации изображения, которое выполняет масштабируемое кодирование данных изображения и кодирует каждый уровень данных изображения, иерархически поделенных на базовый уровень и улучшенный уровень. Параметр (параметр, обладающий масштабируемостью), используемый в качестве иерархической ссылки, является произвольным. Устройство 1100 масштабируемого кодирования содержит блок 1101 генерирования общей информации, блок 1102 управления кодированием, блок 1103 кодирования изображения базового уровня, блок 1104 обеспечения режима внутрикадрового предсказания и блок 1105 кодирования изображения улучшенного уровня.
Например, блок 1101 генерирования общей информации собирает информацию, относящуюся к кодированию данных изображения, которая должна храниться в блоке NAL. Дополнительно, блок 1101 генерирования общей информации, при необходимости, собирает необходимую информацию от блока 1103 кодирования изображения базового уровня, блока 1104 обеспечения режима внутрикадрового предсказаниям, блока 1105 кодирования изображения улучшенного уровня и т.п. Блок 1101 генерирования общей информации генерирует общую информацию, служащую информацией, относящейся ко всем уровням, основанным на информации. Например, общая информация содержит набор видеопараметров и т.п. Блок 1101 генерирования общей информации выводит сгенерированную общую информацию из устройства 1100 масштабируемого кодирования наружу, например, как блок NAL. Дополнительно, блок 1101 генерирования общей информации подает сгенерированную общую информацию также на блок 1102 управления кодированием. Дополнительно, блок 1101 генерирования общей информации, при необходимости, подает некоторую или всю сгенерированную общую информацию на блок 1103 кодирования изображения базового уровня, блок 1104 обеспечения режима внутрикадрового предсказания и блок 1105 кодирования изображения улучшенного уровня.
Блок 1102 управления кодированием управляет блоком 1103 кодирования изображения базового уровня, блоком 1104 обеспечения режима внутрикадрового предсказания, блоком 1105 кодирования изображения улучшенного уровня, основываясь на общей информации, поданной от блока 1101 генерирования общей информации, и управляет кодированием каждого уровня.
Блок 1103 кодирования изображения базового уровня собирает информацию об изображении базового уровня (информацию изображения базового уровня). Блок 1103 кодирования изображения базового уровня кодирует информацию изображения базового уровня без использования информации другого уровня и генерирует и выводит кодированные данные базового уровня (кодированные данные базового уровня). Дополнительно, блок 1103 кодирования изображения базового уровня подает режим внутрикадрового предсказания для внутрикадрового предсказания, выполняемого во время кодирования, на блок 1104 обеспечения режима внутрикадрового предсказания в качестве режима внутрикадрового предсказания базового уровня.
Блок 1104 обеспечения режима внутрикадрового предсказания выполняет процесс подачи режима внутрикадрового предсказания, полученного при внутрикадровом предсказании в блоке 1103 кодирования изображения базового уровня, для внутрикадрового предсказания в блоке 1105 кодирования изображения улучшенного уровня. В этом случае, блок 1104 обеспечения режима внутрикадрового предсказания прореживает режим внутрикадрового предсказания базового уровня, полученного от блока 1103 кодирования изображения базового уровня, с определенным коэффициентом прореживания и сохраняет результирующий режим внутрикадрового предсказания. Дополнительно, когда выполняется кодирование улучшенного уровня, блок 1104 обеспечения режима внутрикадрового предсказания подает запомненный режим внутрикадрового предсказания базового уровня на блок 1105 кодирования изображения улучшенного уровня. Дополнительно, блок 1104 обеспечения режима внутрикадрового предсказания может быть способен установить коэффициент прореживания режима внутрикадрового предсказания.
Блок 1105 кодирования изображения улучшенного уровня собирает информацию об изображении для улучшенного уровня (информацию изображения улучшенного уровня). Блок 1105 кодирования изображения улучшенного уровня кодирует информацию изображения улучшенного уровня. Дополнительно, блок 1105 кодирования изображения улучшенного уровня получает режим внутрикадрового предсказания базового уровня от блока 1104 обеспечения режима внутрикадрового предсказания, выполняет внутрикадровое предсказание улучшенного уровня, используя режим внутрикадрового предсказания базового уровня, и кодирует изображение улучшенного уровня. Затем блок 1105 кодирования изображения улучшенного уровня выводит полученные кодированные данные (кодированные данные улучшенного уровня). По мере того, как выполняется внутрикадровое предсказание улучшенного уровня, используя режим внутрикадрового предсказания базового уровня, как описано выше, сторона декодирования может подобным образом выполнять внутрикадровое предсказание, используя режим внутрикадрового предсказания базового уровня. Другими словами, в качестве информации, относящейся к режиму внутрикадрового предсказания, предпочтительно, передается информация базового уровня и нет необходимости передавать информацию улучшенного уровня. Соответственно, можно сдерживать увеличение эффективности кодирования. Затем, когда режим внутрикадрового предсказания базового уровня сохраняется, чтобы быть использованным при внутрикадровом предсказании улучшенного уровня, процесс прореживания выполняется, как описано выше, и, таким образом, можно уменьшить необходимую емкость запоминающего устройства и снизить нагрузку при кодировании и декодировании.
Блок кодирования изображения базового уровня
На фиг. 82 представлена блок-схема примерной основной конфигурации блока 1103 кодирования изображения базового уровня, показанного на фиг. 81. Как показано на фиг. 82, блок 1103 кодирования изображения базового уровня содержит аналогово-цифровой (A/D) преобразователь 1111, буфер 1112 перегруппировки экрана, операционный блок 1113, блок 1114 ортогонального преобразования, блок 1115 квантования, блок 1116 кодирования без потерь, накопительный буфер 1117, блок 1118 инверсного квантования и блок 1119 инверсного ортогонального преобразования. Блок 1103 кодирования изображения базового уровня дополнительно содержит операционный блок 1120, контурный фильтр 1121, кадровую память 1122, блок 1123 выбора, блок 1124 внутрикадрового предсказания, блок 1125 предсказания/компенсации движения, блок 1126 выбора изображения предсказания и блок 1127 управления скоростью.
Блок 1111 A/D-преобразования выполняет аналогово-цифровое преобразование входных данных изображения (информация изображения базового уровня) и подает преобразованные данные изображения (цифровые данные), которые должны сохраняться, в буфер 1112 перегруппировки экрана. Буфер 1112 перегруппировки экрана выполняет перегруппировку изображения кадров, хранящихся в порядке отображения, в порядок кадров для кодирования в соответствии с группой картинки (GOP) и подает изображение, перегруппированное в порядок кадров, на операционный блок 1113. Дополнительно, буфер 1112 реорганизации экрана подает изображение, перегруппированное в порядок кадров, на блок 1124 внутрикадрового предсказания и на блок 1125 предсказания/компенсации движения.
Операционный блок 1113 вычитает изображение предсказания, полученное от блока 1124 внутрикадрового предсказания или от блока 1125 предсказания/компенсации движения через блок 1126 выбора изображения предсказания, из изображения, считанного из буфера 1112 перегруппировки экрана, и выводит разностную информацию на блок 1114 ортогонального преобразования. Например, в случае изображения, для которого выполняется внутрикадровое кодирование, операционный блок 1113 вычитает изображение предсказания, поданное от блока 1124 внутрикадрового предсказания, из изображения, считанного из буфера 1112 перегруппировки экрана. Дополнительно, например, в случае изображения, для которого выполняется межкадровое кодирование, операционный блок 1113 вычитает изображение предсказания, поданное от блока 1125 предсказания/компенсации движения, из изображения, считанного из буфера 1112 перегруппировки экрана.
Блок 1114 ортогонального преобразования выполняет ортогональное преобразование, такое как дискретное косинусное преобразование или преобразование Карунена-Лоэва для разностной информации, поданной от операционного блока 1113. Блок 1114 ортогонального преобразования подает коэффициенты преобразования на блок 1115 квантования.
Блок 1115 квантования квантует коэффициенты преобразования, поданные от блока 1114 ортогонального преобразования. Блок 1115 квантования устанавливает параметр квантования, основываясь на информации, касающейся целевого значения объема кодирования, поданной от блока 1127 управления скоростью, и выполняет квантование. Блок 1115 квантования подает квантованные коэффициенты преобразования на блок 1116 кодирования без потерь.
Блок 1116 кодирования без потерь кодирует коэффициенты преобразования, квантованные блоком 1115 квантования в соответствии с произвольной схемой кодирования. Поскольку данные коэффициента квантуются под управлением блока 1127 управления скоростью, объем кодирования становится целевым значением (или аппроксимированным целевым значением), установленным блоком 1127 управления скоростью.
Блок 1116 кодирования без потерь получает, например, информацию, указывающую режим внутрикадрового предсказания, от блока 1124 внутрикадрового предсказания и получает, например, информацию, указывающую режим межкадрового предсказания, или информацию разностного вектора движения от блока 1125 предсказания/компенсации движения. Дополнительно, блок 1116 кодирования без потерь соответственно генерирует блок NAL базового уровня, содержащий набор параметров последовательности (SPS), набор параметров картинки (PPS) и т.п.
Блок 1116 кодирования без потерь кодирует различные виды информации в соответствии с произвольной схемой кодирования и устанавливает (мультиплексирует) их как часть кодированных данных (упоминаемых также как "кодированный поток"). Блок 1116 кодирования без потерь подает кодированные данные, полученные кодированием, в накопительный буфер 1117, где они должны накапливаться.
Примерами схемы кодирования, используемой блоком 1116 кодирования без потерь, являются кодирование переменной длины и арифметическое кодирование. В качестве кодирования переменной длины, определенного в схеме H.264/AVC, используется контекстно адаптированное кодирование переменной длины (Context-Adaptive Variable Length Coding, CAVLC). Примером арифметического кодирования является, например, контекстно адаптированное двоичное арифметическое кодирование (Context-Adaptive Binary Arithmetic Coding, CABAC).
Накопительный буфер 1117 временно хранит кодированные данные (кодированные данные базового уровня), поданные от блока 1116 кодирования без потерь. Накопительный буфер 1117 выводит хранящиеся кодированные данные базового уровня, например, на устройство записи (не показано) (носитель записи) на последующий этап или на тракт передачи с заданной синхронизацией. Другими словами, накопительный буфер 1117 служит также в качестве блока передачи, который передает кодированные данные.
Коэффициенты преобразования, квантованные блоком 1115 квантования, также подаются на блок 1118 инверсного квантования. Блок 1118 инверсного квантования инверсно квантует квантованные коэффициенты преобразования способом, соответствующим квантованию, выполняемому блоком 1115 квантования. Блок 1118 инверсного квантования подает полученные коэффициенты преобразования на блок 1119 инверсного ортогонального преобразования.
Блок 1119 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование коэффициентов преобразования, подаваемых от блока 1118 инверсного квантования, способом, соответствующим процессу ортогонального преобразования, выполняемому блоком 1114 ортогонального преобразования. Выходной результат (восстановленная разностная информация), подвергнутый инверсному ортогональному преобразованию, подается на операционный блок 1120.
Операционный блок 1120 получает локально декодированное изображение (декодированное изображение), суммирует изображение предсказания, принятое от блока 1124 внутрикадрового предсказания или от блока 1125 предсказания/компенсации движения через блок 1126 выбора изображения предсказания, с восстановленной разностной информацией, являющейся результатом инверсного ортогонального преобразования, поданным от блока 1119 инверсного ортогонального преобразования. Декодированное изображение подается на контурный фильтр 1121 или в кадровую память 1122.
Контурный буфер 1121 содержит фильтр удаления блочности, адаптивный контурный фильтр или т.п. и выполняет соответствующий процесс фильтрации реконструированного изображения, поданного от операционного блока 1120. Например, контурный фильтр 1121 выполняет процесс фильтрации удаления блочности реконструированного изображения и удаляет блочное искажение реконструированного изображения. Дополнительно, например, контурный фильтр 1121 улучшает качество изображения, выполняя процесс контурной фильтрации результата процесса фильтрации удаления блочности (реконструированного изображения, из которого удалено блочное искажение), используя фильтр Винера. Контурный фильтр 1121 подает результат процесса фильтрации (здесь далее упоминается как "декодированное изображение") в кадровую память 1122.
Контурный фильтр 1121 может выполнять любой другой произвольный процесс фильтрации реконструированного изображения. Контурный фильтр 1121 может подать информацию, используемую в процессе фильтрации, такую как коэффициент фильтра, когда это необходимо, на блок 1116 кодирования без потерь, так что информация будет кодирована.
Кадровая память 1122 сохраняет реконструированное изображение, поданное от операционного блока 1120, и декодированное изображение, поданное от контурного фильтра 1121. Кадровая память 1122 подает хранящееся реконструированное изображение на блок 1124 внутрикадрового предсказания через блок 1123 выбора в заданный момент времени или на основе запроса извне, например, от блока 1124 внутрикадрового предсказания. Дополнительно, кадровая память 1122 подает хранящееся декодированное изображение на блок 1125 предсказания/компенсации движения через блок 1123 выбора в заданный момент времени или на основе запроса, поданного извне, например, от блока 1125 предсказания/компенсации движения.
Кадровая память 1122 сохраняет поданное декодированное изображение и подает хранящееся декодированное изображение на блок 1123 выбора в качестве опорного изображения в заданный момент времени.
Блок 1123 выбора выбирает место назначения для подачи опорного изображения, подаваемого из кадровой памяти 1122. Например, в случае внутрикадрового предсказания блок 1123 выбора подает опорное изображение (пиксельное значение в текущей картинке), полученное из кадровой памяти 1222, на блок 1125 предсказания/компенсации движения. Дополнительно, например, в случае межкадрового предсказания блок 1123 выбора подает опорное изображение, полученное от кадровой памяти 1122, на блок 1125 предсказания/компенсации движения.
Блок 1124 внутрикадрового предсказания выполняет внутрикадровое предсказание, генерируя предсказанное изображение с использованием пиксельного значения в текущей картинке, служащей опорным изображением, подаваемым из кадровой памяти 1122 через блок 1123 выбора. Блок 1124 внутрикадрового предсказания выполняет внутрикадровое предсказание во множестве режимов внутрикадрового предсказания, подготовленных заранее.
Блок 1124 внутрикадрового предсказания генерирует изображения предсказания во всех возможных режимах внутрикадрового предсказания, оценивает значения функции стоимости изображений предсказания, используя входное изображение, поданное из буфера 1112 перегруппировки экрана, и выбирает оптимальный режим. Когда оптимальный режим внутрикадрового предсказания выбран, внутрикадровый блок 1124 внутрикадрового предсказания подает изображение предсказания, сгенерированное в оптимальном режиме, на блок 1126 выбора изображения предсказания.
Дополнительно, блок 1124 внутрикадрового предсказания соответственно подает информацию о режиме внутрикадрового предсказания, указывающую используемый режим внутрикадрового предсказания, на блок 1116 кодирования без потерь, где информация кодируется, как описано выше.
Блок 1125 предсказания/компенсации движения выполняет предсказание движения (межкадровое предсказание), используя входное изображение, поданное из буфера 1112 перегруппировки экрана, и опорное изображение, поданное из кадровой памяти 1122 через блок 1123 выбора. Блок 1125 предсказания/компенсации движения выполняет процесс компенсации движения в соответствии с обнаруженным вектором движения и генерирует изображение предсказания (информацию о межкадрового изображении предсказания). Блок 1125 предсказания/компенсации движения выполняет межкадровое предсказание во множестве режимов межкадрового предсказания, подготовленных заранее.
Блок 1125 предсказания/компенсации движения генерирует изображения предсказания во всех возможных режимах межкадрового предсказания. Блок 1125 предсказания/компенсации движения оценивает значения функции стоимости изображений предсказания, используя входное изображение, поданное из буфера 1112 перегруппировки экрана, и информацию сгенерированного разностного вектора движения и т.п., и выбирает оптимальный режим. Когда оптимальный режим межкадрового предсказания выбран, блок 1125 предсказания/компенсации движения подает изображение предсказания, сгенерированное в оптимальном режиме, на блок 1126 выбора изображения предсказания.
Блок 1125 предсказания/компенсации движения подает информацию, представляющую используемый режим межкадрового предсказания, и информацию, требующуюся для выполнения процесса в режиме межкадрового предсказания, во время декодирования кодированных данных, и т.п. на блок 1116 кодирования без потерь, где информация кодируется. В качестве необходимой информации существует информация сгенерированного разностного вектора движения, и в качестве информации о векторе движения при предсказании существует флаг, указывающий индекс вектора предсказания движения.
Блок 1126 выбора изображения предсказания выбирает источник подачи изображения предсказания, которое должно подаваться на операционный блок 1113 и на операционный блок 1120. Например, в случае внутрикадрового кодирования блок 1126 выбора изображения предсказания выбирает блок 1124 внутрикадрового предсказания в качестве источника подачи изображения предсказания и подает изображение предсказания, полученное от блока 1124 внутрикадрового предсказания, на операционный блок 1113 и на операционный блок 1120. Дополнительно, например, в случае межкадрового кодирования блок 1126 выбора изображения предсказания выбирает блок 1125 предсказания/компенсации движения в качестве источника подачи изображения предсказания и подает изображение предсказания, поданное от блока 1125 предсказания/компенсации движения, на операционный блок 1113 и на операционный блок 1120.
Блок 1127 управления скоростью управляет скоростью операции квантования блока 1115 квантования, основываясь на объеме кодирования кодированных данных, накопленных в накопительном буфере 1117, так что переполнение или недостаточное наполнение не происходит.
Блок 1124 внутрикадрового предсказания подает используемый режим внутрикадрового предсказания на блок 1104 обеспечения режима внутрикадрового предсказания в качестве режима внутрикадрового предсказания базового уровня. Блок 1116 кодирования без потерь подает информацию, указывающую разрешающую способность базового уровня, на блок 1104 обеспечения режима внутрикадрового предсказания.
Блок кодирования изображения улучшенного уровня
На фиг. 83 представлена блок-схема примерной основной конфигурации блока 1105 кодирования изображения улучшенного уровня, показанного на фиг. 81. Как показано на фиг. 83, блок 1105 кодирования изображения улучшенного уровня имеет, в основном, ту же самую конфигурацию, что и блок 1103 кодирования изображения базового уровня, показанный на фиг. 82.
Здесь, соответствующие компоненты блока 1105 кодирования изображения улучшенного уровня выполняют процесс кодирования информации изображения улучшенного уровня вместо базового уровня. Другими словами, блок 1111 A/D-преобразования блока 1105 кодирования изображения улучшенного уровня выполняет A/D-преобразование информации изображения улучшенного уровня и накопительный буфер 1117 блока 1105 кодирования изображения улучшенного уровня на последующем этапе выводит кодированные данные улучшенного уровня, например, на устройство записи (носитель для записи) или на тракт передачи.
Блок 1105 кодирования изображения улучшенного уровня имеет блок 1134 внутрикадрового предсказания вместо блока 1124 внутрикадрового предсказания.
Блок 1134 внутрикадрового предсказания получает (считывает) режим внутрикадрового предсказания, соответствующий текущему блоку, из числа (репрезентативных значений) режимов внутрикадрового предсказания базового уровня, хранящихся в блоке 1104 обеспечения внутрикадрового предсказания, выполняет внутрикадровое предсказание улучшенного уровня, используя режим внутрикадрового предсказания, и генерирует изображение предсказания. Внутрикадровое предсказание выполняется таким же образом, как в блоке 1124 внутрикадрового предсказания.
Дополнительно, подобно блоку 1124 внутрикадрового предсказания, блок 1134 внутрикадрового предсказания должным образом подает, например, информацию о режиме внутрикадрового предсказания улучшенного уровня, указывающую используемый режим внутрикадрового предсказания, на блок 1116 кодирования без потерь, где информация кодируется.
Блок 1116 кодирования без потерь блока 1105 кодирования изображения улучшенного уровня подает информацию, указывающую разрешающую способность улучшенного уровня, на блок 1104 обеспечения режима внутрикадрового предсказания. Дополнительно, блок 1116 кодирования без потерь получает информацию, которая указывает коэффициент прореживания режима внутрикадрового предсказания базового уровня и подается от блока 1104 обеспечения режима внутрикадрового предсказания, кодирует полученную информацию и заставляет кодированный результат передаваться на сторону декодирования, например, через набор параметров последовательности (SPS), набор параметров картинки (PPS) или заголовок среза улучшенного уровня.
Например, информация, указывающая коэффициент прореживания, может передаваться через набор видеопараметров (VPS). В этом случае, информация, указывающая коэффициент прореживания, подается на блок 1101 генерирования общей информации.
Блок обеспечения режима внутрикадрового предсказания
На фиг. 84 представлена блок-схема примерной основной конфигурации блока 1104 обеспечения режима внутрикадрового предсказания, показанного на фиг. 81.
Блок 1104 обеспечения режима внутрикадрового предсказания содержит блок 1151 установки коэффициента прореживания, блок 1152 процесса прореживания и буфер 1153 режима внутрикадрового преобразования, показанные на фиг. 84.
Блок 1151 установки коэффициента прореживания устанавливает коэффициент прореживания режима внутрикадрового предсказания базового уровня. Способ установки является произвольным. Например, блок 1151 установки коэффициента прореживания может установить коэффициент прореживания, основываясь на команде, поданной извне, например, пользователем. В этом случае, коэффициент прореживания может быть установлен, основываясь на соотношении на базовом уровне.
Дополнительно, например, блок 1151 установки коэффициента прореживания может получить разрешающую способность базового уровня от блока 1116 кодирования без потерь блока 1103 кодирования изображения базового уровня и получить разрешающую способность улучшенного уровня от блока 1116 кодирования без потерь блока 1105 кодирования изображения улучшенного уровня. Например, блок 1151 установки коэффициента прореживания может предоставить пользователю информацию, указывающую разрешающую способность, отображая информацию, указывающую разрешающую способность на мониторе или т.п., или выводя звуковой сигнал, предоставляющий информацию, указывающую разрешающую способность, через громкоговоритель или т.п. В этом случае, пользователь может установить коэффициент прореживания, исходя из разрешающей способности каждого уровня.
Дополнительно, например, пользователь может назначить размер блока режима внутрикадрового предсказания в улучшенном уровне и блок 1151 установки коэффициента прореживания может преобразовывать назначенную информацию в коэффициент прореживания, основываясь на полученной разрешающей способности каждого уровня. В результате, можно установить коэффициент прореживания, основываясь на информации, легко понятной пользователю, и можно более легко устанавливать коэффициент прореживания.
Блок 1151 установки коэффициента прореживания подает информацию, указывающую установленный коэффициент прореживания, в блок 1152 процесса прореживания. Дополнительно, блок 1151 установки коэффициента прореживания подает информацию, указывающую установленный коэффициент прореживания, на блок 1116 кодирования без потерь блока 1105 кодирования изображения улучшенного уровня (или на блок 1101 генерирования общей информации), чтобы передать информацию на сторону декодирования.
Блок 1152 процесса прореживания получает режим внутрикадрового предсказания базового уровня, поданный от блока 1124 внутрикадрового предсказания блока 1103 кодирования изображения базового уровня и прореживает режим внутрикадрового предсказания с коэффициентом прореживания, установленным блоком 1151 установки коэффициента прореживания. Например, как описано выше, процесс прореживания режима внутрикадрового предсказания выполняется для каждой определенной области и выбирается репрезентативный представитель (режим внутрикадрового предсказания) каждой области. Режим внутрикадрового предсказания базового уровня, оставленный (выбранный) после прореживания, подается в буфер 1153 режима внутрикадрового предсказания.
Буфер 1153 режима внутрикадрового предсказания сохраняет выбранный режим внутрикадрового предсказания базового уровня, поданный от блока 1152 процесса прореживания. Буфер 1153 режима внутрикадрового предсказания подает в блок 1134 внутрикадрового предсказания режим внутрикадрового предсказания области, соответствующей текущему блоку внутрикадрового предсказания улучшенного уровня, выполненного в блоке 1134 внутрикадрового предсказания блока 1105 кодирования изображения улучшенного уровня, из числа выбранных хранящихся режимов внутрикадрового предсказания базового уровня.
Как описано выше, блок 1134 внутрикадрового предсказания выполняет внутрикадровое предсказание текущего блока улучшенного уровня, используя режим внутрикадрового предсказания базового уровня (выбранный режим внутрикадрового предсказания базового уровня), считанный из буфера 1153 режима внутрикадрового предсказания, и генерирует изображение предсказания.
Как описано выше, устройство 1100 масштабируемого кодирования может использовать режим внутрикадрового предсказания базового уровня для внутрикадрового предсказания кодирования улучшенного уровня и, таким образом, можно сдерживать снижение эффективности кодирования. Как результат, устройство 1100 масштабируемого кодирования может сдерживать снижение качества изображения из-за кодирования и декодирования. Дополнительно, когда режим внутрикадрового предсказания базового уровня подается на улучшенный уровень, режим внутрикадрового предсказания прореживается с определенным коэффициентом прореживания и, таким образом, устройство 1100 масштабируемого кодирования может сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
Последовательность выполнения операций генерирования общей информации
Далее будут описаны процессы, выполняемые устройством 1100 масштабируемого кодирования. Сначала, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 85, будет описан пример последовательности выполнения операций процесса генерирования общей информации. Когда процесс генерирования общей информации на этапе S4101 начался, блок 1151 установки коэффициента прореживания блока 1104 обеспечения режима внутрикадрового предсказания устанавливает коэффициент прореживания режима внутрикадрового предсказания базового уровня.
На этапе S4102 блок 1101 генерирования общей информации генерирует набор видеопараметров, содержащий информацию, указывающую коэффициент прореживания, установленный на этапе S4101.
На этапе S4103 блок 1101 генерирования общей информации передает (подает) в качестве общей информации набор видеопараметров, сгенерированный на этапе S4102, на сторону декодирования. Когда процесс на этапе S4103 закончен, закончен и процесс генерирования общей информации.
Последовательность выполнения операций процесса кодирования
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 86, будет описан пример последовательности выполнения операций процесса кодирования. Устройство 1100 масштабируемого кодирования выполняет процесс кодирования в блоках кодирования картинок.
Когда на этапе S4121 начат процесс кодирования, блок 1102 управления кодированием устройства 1100 масштабируемого кодирования устанавливает первый уровень в качестве цели процесса обработки.
На этапе S4122 блок 1102 управления кодированием определяет, является базовым уровнем текущий уровень, служащий в качестве цели процесса обработки. Когда текущий уровень определен как базовый уровень, процесс переходит к этапу S4123.
На этапе S4123 блок 1103 кодирования изображения базового уровня и блок 1104 обеспечения режима внутрикадрового предсказания выполняют процесс кодирования базового уровня. Когда процесс на этапе S4123 закончен, процесс переходит к этапу S4126.
Однако, когда на этапе S4122 текущий уровень определен как улучшенный уровень, процесс переходит к этапу S4124. На этапе S4124 блок 1102 управления кодированием определяет базовый уровень, соответствующий (то есть, используемый в качестве опорного места назначения) текущему уровню.
На этапе S4125 блок 1105 кодирования изображения улучшенного уровня выполняет процесс кодирования улучшенного уровня. Когда процесс на этапе S4125 закончен, процесс переходит к этапу S4126.
На этапе S4126 блок 1102 управления кодированием определяет, все ли уровни были обработаны. Когда определено, что существует необработанный уровень, процесс переходит к этапу S4127.
На этапе S4127 блок 1102 управления кодированием устанавливает следующий необработанный уровень в качестве цели процесса обработки (текущего уровня). Когда процесс на этапе S4127 закончен, процесс возвращается к этапу S4122. Процесс на этапах S4122-S4127 выполняется повторно и, таким образом, кодируется каждый уровень.
Затем, когда на этапе S4126 все уровни определены как обработанные, процесс кодирования заканчивается.
Последовательность выполнения операций процесса кодирования базового уровня
Далее, примерная последовательность выполнения операций процесса кодирования базового уровня, который выполняется на этапе S4123, показанном на фиг. 86, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 87.
На этапе S4141 блок 1111 A/D-преобразования блока 1103 кодирования изображения базового уровня выполняет A/D-преобразование информации входного изображения (данных изображения) базового уровня. На этапе S4142 буфер 1112 перегруппировки экрана сохраняет информацию изображения (цифровые данные) базового уровня, подвергнутую A/D-преобразованию, и перегруппирует картинки, расположенные в порядке отображения, в порядок кодирования.
На этапе S4143 блок 1124 внутрикадрового предсказания выполняет процесс внутрикадрового предсказания режима внутрикадрового предсказания. На этапе S4144 блок 1125 предсказания/компенсации движения выполняет процессы предсказания и компенсации движения, в которых в режиме предсказания и компенсации движения выполняются предсказание движения и компенсация движения в режиме межкадрового предсказания. На этапе S4145 блок 1126 выбора изображения предсказания определяет оптимальный режим, основываясь на значениях функции стоимости, полученных от блока 1124 внутрикадрового предсказания и от блока 1125 предсказания/компенсации движения. Другими словами, блок 1126 выбора изображения предсказания выбирает либо изображение предсказания, сгенерированное блоком 1124 внутрикадрового предсказания, либо изображение предсказания, сгенерированное блоком 1125 предсказания/компенсации движения. На этапе S4146 операционный блок 1113 вычисляет разность между изображением, перегруппированным в процессе, выполняемом на этапе S4142, и изображением предсказания, выбранным в процессе на этапе S4145. Разностные данные имеют меньший объем данных по сравнению с данными исходного изображения. Таким образом, можно сжать объем данных по сравнению со случаем, когда изображение кодируется без изменения.
На этапе S4147 блок 1114 ортогонального преобразования выполняет процесс ортогонального преобразования для разностной информации, сгенерированной процессом на этапе S4146. На этапе S4148 блок 1115 квантования квантует коэффициенты ортогонального преобразования, полученные процессом на этапе S4147, используя параметр квантования, вычисленный блоком 1127 управления скоростью.
Разностная информация, квантованная в процессе на этапе S4148, локально декодируется следующим образом. Другими словами, на этапе S4149 блок 1118 инверсного квантования инверсно квантует квантованные коэффициенты (которые также упоминаются как "коэффициенты квантования"), сгенерированные в процессе на этапе S4148 соответственно характеристикам, соответствующим характеристикам блока 1115 квантования. На этапе S4151 операционный блок 1120 добавляет изображение предсказания к локально декодированной разностной информации, чтобы сгенерировать локально декодированное изображение (изображение, соответствующее изображению, введенному в операционный блок 1113).
На этапе S4152 контурный фильтр 1121 выполняет фильтрацию изображения, сгенерированного в процессе на этапе S4151. В результате, блочное искажение и т.п. удаляются. На этапе S4153 кадровая память 1122 сохраняет изображение, из которого в процессе на этапе S4152 были удалены блочное искажение и т.п. Дополнительно, изображение, которое не подверглось процессу фильтрации, выполняемому контурным фильтром 1121, также подается в кадровую память 1122 из операционного блока 1120 и сохраняется в кадровой памяти 1122. Изображение, сохраненное в кадровой памяти 1122, используется в процессе на этапе S4143 или в процессе на этапе S4144.
На этапе S4154 блок 1152 процесса прореживания блока 1104 обеспечения режима внутрикадрового предсказания прореживает режим внутрикадрового предсказания базового уровня с коэффициентом прореживания, установленным на этапе S4101, показанном на фиг. 85.
На этапе S4155 буфер 1153 режима внутрикадрового предсказания блока 1104 обеспечения режима внутрикадрового предсказания сохраняет выбранный режим внутрикадрового предсказания базового уровня, который прореживается в процессе на этапе S4154.
На этапе S4156 блок 1116 кодирования без потерь блока 1103 кодирования изображения базового уровня кодирует коэффициенты, квантованные в процессе на этапе S4148. Другими словами, кодирование без потерь, такое как кодирование переменной длины или арифметическое кодирование, выполняется для данных, соответствующих разностному изображению.
В этом случае, блок 1116 кодирования без потерь кодирует информацию, связанную с режимом предсказания для изображения предсказания, выбранного в процессе на этапе S4145, и суммирует разностное изображение с кодированными данными, полученными при кодировании. Другими словами, блок 1116 кодирования без потерь также кодирует информацию об оптимальном режиме внутрикадрового предсказания, поданную от блока 1124 внутрикадрового предсказания, информацию, соответствующую оптимальному режиму межкадрового предсказания, поданную от блока 1125 компенсации/предсказания движения или т.п., и суммирует кодированную информацию с кодированными данными.
На этапе S4157 накопительный буфер 1117 накапливает кодированные данные базового уровня, полученные в процессе на этапе S155. Кодированные данные базового уровня, накопленные в накопительном буфере 1117, должным образом считываются и передаются на сторону декодирования через тракт передачи или через носитель записи.
На этапе S4158 блок 1127 управления скоростью управляет скоростью операции квантования блока 1115 квантования, основываясь на объеме кодирования (сгенерированном объеме кодирования) кодированных данных, накопленных в накопительном буфере 1117 на этапе S4157, так что переполнение или недостаточное наполнение не происходит.
После окончания процесса на этапе S4158 процесс кодирования базового уровня заканчивается и процесс возвращается к фиг. 86. Например, процесс кодирования базового уровня выполняется в блоках кодирования картинок. Другими словами, процесс кодирования базового уровня выполняется для каждой картинки текущего уровня. Здесь каждый процесс в процессе кодирования основного уровня выполняется для каждого блока обработки.
Последовательность выполнения операций процесса кодирования улучшенного уровня
Далее, примерная последовательность выполнения операций процесса кодирования улучшенного уровня, который выполняется на этапе S4125, показанном на фиг. 86, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 88.
Процессы на этапе S4171, этапе S4172 и этапах S4175-S4187 процесса кодирования улучшенного уровня выполняются таким же образом, как процессы на этапе S4141, этапе S4142, этапах S4144-S4153 и этапах S4156-S4158 процесса кодирования базового уровня, показанного на фиг. 87. Здесь, соответствующие составляющие процессы процесса кодирования улучшенного уровня выполняются для информации изображения улучшенного уровня посредством соответствующих блоков обработки блока 1105 кодирования изображения улучшенного уровня.
На этапе S4173 блок 1134 внутрикадрового предсказания блока 1105 кодирования изображения улучшенного уровня получает режим внутрикадрового предсказания базового уровня (выбранный режим внутрикадрового предсказания базового уровня), соответствующий текущему блоку, от буфера 1153 режима внутрикадрового предсказания блока 1104 обеспечения режима внутрикадрового предсказания.
На этапе S4174 блок 1134 внутрикадрового предсказания выполняет процесс внутрикадрового предсказания улучшенного уровня, используя выбранный режим внутрикадрового предсказания базового уровня, полученный на этапе S4173.
После окончания процесса на этапе S4187 процесс кодирования улучшенного уровня заканчивается и процесс возвращается к фиг. 86. Например, процесс кодирования улучшенного уровня выполняется в блоках кодирования картинок. Другими словами, процесс кодирования улучшенного уровня выполняется для каждой картинки текущего уровня. Здесь каждый процесс в процессе кодирования улучшенного уровня выполняется для каждого блока обработки.
Поскольку процесс выполняется как описано выше, устройство 1100 масштабируемого кодирования может использовать режим внутрикадрового предсказания базового уровня для внутрикадрового предсказания кодирования улучшенного уровня и, таким образом, можно сдерживать снижение эффективности кодирования. Таким образом, устройство 1100 масштабируемого кодирования может сдерживать снижение качества изображения из-за кодирования и декодирования. Дополнительно, когда режим внутрикадрового предсказания базового уровня обеспечивается на улучшенном уровне, режим внутрикадрового предсказания прореживается с определенным коэффициентом прореживания и, таким образом, устройство 1100 масштабируемого кодирования может сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
7. Шестой вариант осуществления
Устройство масштабируемого декодирования
Далее будет описано декодирование кодированных данных (битового потока), полученных посредством масштабируемого кодирования, как описано выше. На фиг. 89 представлена блок-схема примера основной конфигурации устройства масштабируемого декодирования, соответствующего устройству 1100 масштабируемого кодирования, показанному на фиг. 81. Например, устройство 1200 масштабируемого декодирования, показанное на фиг. 89, выполняет масштабируемое декодирования кодированных данных, полученные посредством масштабируемого кодирования данных изображения устройством 1100 масштабируемого кодирования согласно способу, соответствующему способу кодирования.
Как показано на фиг. 89, устройство 1200 масштабируемого декодирования содержит блок 1201 генерирования общей информации, блок 1202 управления декодированием, блок 1203 декодирования изображения базового уровня, блок 1204 обеспечения режима внутрикадрового предсказания и блок 1205 декодирования изображения улучшенного уровня.
Блок 1201 генерирования общей информации собирает общую информацию (такую как набор видеопараметров (VPS)), переданную со стороны кодирования. Блок 1201 генерирования общей информации извлекает информацию, относящуюся к декодированию, из собранной общей информации и подает собранную информацию на блок 1202 управления декодированием. Дополнительно, блок 1201 генерирования общей информации, соответственно, подает некоторую или всю общую информацию на блок 1203 декодирования изображения базового уровня, блок 1204 обеспечения режима внутрикадрового предсказания и блок 1205 декодирования изображения улучшенного уровня.
Например, когда со стороны кодирования через набор видеопараметров (VPS) передается информация, указывающая коэффициент прореживания, блок 1201 генерирования общей информации получает информацию, указывающую коэффициент прореживания, из набора видеопараметров, переданного со стороны кодирования, и подает информацию, указывающую коэффициент прореживания на блок 1204 обеспечения режима внутрикадрового предсказания.
Блок 1202 управления декодированием собирает информацию, относящуюся к декодированию, поданную от блока 1201 генерирования общей информации, и, основываясь на собранной информации, управляет декодированием каждого уровня, управляя блоком 1203 декодирования изображения базового уровня, блоком 1204 обеспечения режима внутрикадрового предсказания и блоком 1205 декодирования изображения улучшенного уровня.
Блок 1203 декодирования изображения базового уровня собирает кодированные данные базового уровня, полученные кодированием информации изображения базового уровня, с помощью блока декодирования изображения, соответствующего блоку 1103 кодирования изображения базового уровня, например, блока 1103 кодирования изображения базового уровня. Блок 1203 декодирования изображения базового уровня декодирует кодированные данные базового уровня без использования информации другого уровня и реконструирует и выводит информацию изображения базового уровня. Для декодирования базового уровня блок 1203 декодирования изображения базового уровня выполняет внутрикадровое предсказание на блоке, для которого внутрикадровое предсказание выполняется во время кодирования в режиме внутрикадрового предсказания (то есть, в том же самом режиме, который имеет место при кодировании), назначенном информацией режима внутрикадрового предсказания, переданной со стороны кодирования, генерирует изображение предсказания и генерирует декодированное изображение, используя изображение предсказания. Дополнительно, блок 1203 декодирования изображения базового уровня подает режим внутрикадрового предсказания для внутрикадрового предсказания базового уровня на блок 1204 обеспечения режима внутрикадрового предсказания. Например, блок 1203 декодирования изображения базового уровня может подать информацию о режиме внутрикадрового предсказания, переданную со стороны кодирования, на блок 1204 обеспечения режима внутрикадрового предсказания.
Блок 1204 обеспечения режима внутрикадрового предсказания выполняет процесс обеспечения режима внутрикадрового предсказания, полученный от блока 1203 декодирования изображения базового уровня, для внутрикадрового предсказания в блоке 1205 декодирования изображения улучшенного уровня. В этом случае, блок 1204 обеспечения режима внутрикадрового предсказания прореживает режим внутрикадрового предсказания базового уровня, полученный от блока 1203 декодирования изображения базового уровня, с определенным коэффициентом прореживания и сохраняет результирующий режим. Затем, когда выполняется кодирование улучшенного уровня, блок 1204 обеспечения режима внутрикадрового предсказания подает запомненный режим внутрикадрового предсказания базового уровня на блок 1205 декодирования изображения улучшенного уровня. Другими словами, режим внутрикадрового предсказания, выбранный блоком 1204 обеспечения режима внутрикадрового предсказания, подается на блок 1205 декодирования изображения улучшенного уровня.
Блок 1205 декодирования изображения улучшенного уровня собирает кодированные данные улучшенного уровня, полученные кодированием информации изображения улучшенного уровня, с помощью блока декодирования изображения, соответствующего блоку 1105 кодирования изображения улучшенного уровня, например, блока 1105 кодирования изображения улучшенного уровня. Блок 1205 декодирования изображения улучшенного уровня выполняет внутрикадровое предсказание, используя режим внутрикадрового предсказания базового уровня, полученный от блока 1204 обеспечения режима внутрикадрового предсказания, генерирует изображение предсказания, реконструирует информацию изображения улучшенного уровня, используя изображение предсказания, и выводит информацию изображения улучшенного уровня.
Блок декодирования изображения базового уровня
На фиг. 90 представлена блок-схема примерной основной конфигурации блока 1203 декодирования изображения базового уровня, показанного на фиг. 89. Как показано на фиг. 90, блок 1203 декодирования изображения базового уровня содержит накопительный буфер 1211, блок 1212 декодирования без потерь, блок 1213 инверсного квантования, блок 1214 инверсного ортогонального преобразования, операционный блок 1215, контурный фильтр 1216, буфер 1217 перегруппировки экрана и блок 1218 цифро-аналогового (D/A) преобразования. Блок 1203 декодирования изображения базового уровня дополнительно содержит кадровую память 1219, блок 1220 выбора, блок 1221 внутрикадрового предсказания, блок 1222 компенсации движения и блок 1223 выбора.
Накопительный буфер 1211 также функционирует как приемный блок, который принимает переданные кодированные данные базового уровня. Накопительный буфер 1211 принимает и накапливает переданные кодированные данные базового уровня и подает кодированные данные на блок 1212 декодирования без потерь в заданные моменты времени. Информация, необходимая для декодирования информации о режиме предсказания и т.п., добавляется к кодированным данным базового уровня.
Блок 1212 декодирования без потерь декодирует информацию, кодированную блоком 1116 кодирования без потерь, которая подается из накопительного буфера 1211 в соответствии со схемой кодирования блока 1116 кодирования без потерь. Блок 1212 декодирования без потерь подает квантованные данные коэффициентов разностного изображения, полученного декодированием, на блок 1213 инверсного квантования.
Дополнительно, блок 1212 декодирования должным образом извлекает и собирает блок NAL, содержащий набор видеопараметров (VPS), набор параметров последовательности (SPS), набор параметров картинки (PPS) и т.п., который содержится в кодированных данных базового уровня. Блок 1212 декодирования без потерь извлекает из информации ту информацию, которая относится к оптимальному режиму предсказания, определяет, основываясь на информации, какой из режимов, режим внутрикадрового предсказания или режим межкадрового предсказания, выбирается в качестве оптимального режима предсказания, и подает информацию, относящуюся к оптимальному режиму предсказания, в качестве режима, определенного для выбора, то есть, информацию от блока 1221 внутрикадрового предсказания или от блока 1222 компенсации движения. Другими словами, например, когда в качестве оптимального режима предсказания в блоке 1103 кодирования изображения базового уровня выбирается режим внутрикадрового предсказания выбирается, информация, относящаяся к оптимальному режиму предсказания, подается на блок 1221 внутрикадрового предсказания. Дополнительно, например, когда в блоке 1103 кодирования изображения базового уровня качестве оптимального режима предсказания выбирается режим межкадрового предсказания, информация, относящаяся к оптимальному режиму предсказания, подается на блок 1222 компенсации движения.
Дополнительно, например, блок 1212 декодирования без потерь извлекает информацию, необходимую для инверсного квантования, такую как матрица квантования и параметр квантования, из блока NAL извлеченную информацию на блок 1213 инверсного квантования.
Блок 1213 инверсного квантования инверсно квантует данные квантованных коэффициентов, полученные декодированием, выполненным блоком 1212 декодирования без потерь согласно схеме, соответствующей схеме квантования блока 1115 квантования. Блок 1213 инверсного квантования является блоком обработки, аналогичным блоку 1118 инверсного квантования. Другими словами, описание блока 1213 инверсного квантования может также применяться к блоку 1118 инверсного квантования. Здесь необходимо изменить и считать, например, входные и выходные места назначения данных в соответствии с устройством. Блок 1213 инверсного квантования подает полученные данные коэффициентов на блок 1214 инверсного ортогонального преобразования.
Блок 1214 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование данных коэффициентов, поданных от блока 1213 инверсного квантования, согласно схеме, соответствующей схеме ортогонального преобразования блока 1114 ортогонального преобразования. Блок 1214 инверсного ортогонального преобразования является блоком обработки, подобным блоку 1119 инверсного ортогонального преобразования. Другими словами, описание блока 1214 инверсного ортогонального преобразования может применяться к блоку 1119 инверсного ортогонального преобразования. Здесь необходимо изменить и считать, например, входные и выходные места назначения данных в соответствии с устройством.
Блок 1214 инверсного ортогонального преобразования получает декодированные остаточные данные, соответствующие остаточным данным, не подвергнутым ортогональному преобразованию в устройстве 1114 кодирования изображения посредством процесса инверсного ортогонального преобразования. Полученные декодированные остаточные данные, которые были подвергнуты инверсному ортогональному преобразованию, подаются на операционный блок 1215. Дополнительно, изображение предсказания подается на операционный блок 1215 от блока 1221 внутрикадрового предсказания или от блока 1222 компенсации движения через блок 1223 выбора.
Операционный блок 1215 суммирует декодированные остаточные данные с изображением предсказания и получает декодированные данные изображения, соответствующие данным изображения, из которых изображение предсказания не вычтено операционным блоком 1113. Операционный блок 1215 подает декодированные данные изображения на контурный фильтр 1216.
Контурный фильтр 1216 должным образом выполняет процесс фильтрации, такой как фильтрация удаления блочности или адаптивная контурная фильтрация, для поданного декодированного изображения и подает результирующее декодированное изображение на буфер 1217 перегруппировки экрана и в кадровую память 1219. Например, контурный фильтр 1216 выполняет процесс фильтрации удаления блочности декодированного изображения, чтобы удалить блочное искажение декодированного изображения. Дополнительно, например, контурный фильтр 1216 улучшает качество изображения, выполняя процесс контурной фильтрации результата процесса фильтрации удаления блочности (декодированного изображения, из которого удалено блочное искажение), используя фильтр Винера. Контурный фильтр 1216 является блоком обработки, подобным контурному фильтру 1121.
Декодированное изображение с выхода операционного блока 1215 может подаваться в буфер 1217 перегруппировки экрана и в кадровую память 1219 без использования контурного фильтра 1216. Другими словами, часть или весь процесс фильтрации, выполняемый контурным фильтром 1216, может быть пропущен.
Буфер 1217 перегруппировки экрана выполняет перегруппировку декодированного изображения. Другими словами, кадры, перегруппированные в порядок кодирования буфером 1112 перегруппировки экрана, перегруппируются в первоначальный порядок отображения. Блок 1218 D/A-преобразования осуществляет цифро-аналоговое (D/A) преобразование изображения, поданного из буфера 1217 перегруппировки экрана, и выводит результирующее изображение для отображения на дисплее (не показан).
Кадровая память 1219 сохраняет поданное декодированное изображение и подает сохраненное декодированное изображение на блок 1220 выбора в качестве опорного изображения в заданные моменты времени или на основе запроса извне, такого как от блока 1221 внутрикадрового предсказания или от блока 1222 компенсации движения,
Блок 1220 выбора выбирает место назначения для опорного изображения, подаваемого из кадровой памяти 1219. Когда изображение, которое было подвергнуто внутрикадровому кодированию, декодируется, блок 1220 выбора подает опорное изображение, полученное из кадровой памяти 1219, на блок 1221 внутрикадрового предсказания. Дополнительно, когда изображение, которое было подвергнуто межкадровому кодированию, декодируется, блок 1220 выбора подает опорное изображение, полученное из кадровой памяти 1219, на блок 1222 компенсации движения.
Например, информация, указывающая режим внутрикадрового предсказания, полученная путем декодирования информации заголовка, соответственно подается от блока 1212 декодирования без потерь на блок 1221 внутрикадрового предсказания. Блок 1221 внутрикадрового предсказания выполняет внутрикадровое предсказание, используя опорное изображение, полученное из кадровой памяти 219, в режиме внутрикадрового предсказания, используемом в блоке 1124 внутрикадрового предсказания и генерирует изображение предсказания. Блок 1221 внутрикадрового предсказания подает сгенерированное изображение предсказания на блок 1223 выбора.
Блок 1222 компенсации движения принимает информацию (информацию об оптимальном режиме предсказания, информацию об опорном изображении и т.п.), полученную декодированием информации заголовка, от блока 1212 декодирования без потерь.
Блок 1222 компенсации движения выполняет компенсацию движения, используя опорное изображение, полученное из кадровой памяти 1219, в режиме межкадрового предсказания, указанном информацией об оптимальном режиме предсказания, полученной от блока 1212 декодирования без потерь, и генерирует изображение предсказания. Блок 1222 компенсации движения подает сгенерированное изображение предсказания на блок 1223 выбора.
Блок 1223 выбора подает изображение предсказания, полученное от блока 1221 внутрикадрового предсказания, или изображение предсказания, полученное от блока 1222 компенсации движения, на операционный блок 1215. Затем операционный блок 1215 суммирует изображение предсказания, сгенерированное, используя вектор движения, с декодируемыми остаточными данными (информация разностного изображения), поданными от блока 1214 инверсного ортогонального преобразования, чтобы декодировать исходное изображение.
Дополнительно, блок 1221 внутрикадрового предсказания подает используемый режим внутрикадрового предсказания (то есть, режим внутрикадрового предсказания, назначенный стороной кодирования) на блок 1204 обеспечения режима внутрикадрового предсказания в качестве режима внутрикадрового предсказания базового уровня.
Блок декодирования изображения улучшенного уровня
На фиг. 91 представлена блок-схема примерной основной конфигурации блока 1205 декодирования изображения улучшенного уровня, показанного на фиг. 89. Как показано на фиг. 91, блок 1205 декодирования изображения улучшенного уровня имеет, в основном, ту же самую конфигурацию, что и блок 1203 декодирования изображения базового уровня, показанный на фиг. 90.
Здесь, соответствующие компоненты блока 1205 декодирования изображения улучшенного уровня выполняют процесс декодирования данных улучшенного уровня вместо базового уровня. Другими словами, накопительный буфер 1211 блока 1205 декодирования изображения улучшенного уровня сохраняет кодированные данные улучшенного уровня и блок 1218 D/A-преобразования блока 1205 декодирования изображения улучшенного уровня на последующем этапе выводит информацию изображения улучшенного уровня, например, на устройство записи (не показано) (носитель для записи) или в тракт передачи.
Дополнительно, блок 1205 декодирования изображения улучшенного уровня имеет блок 1231 внутрикадрового предсказания вместо блока 1221 внутрикадрового предсказания.
Блок 1231 внутрикадрового предсказания получает (считывает) режим внутрикадрового предсказания, соответствующий текущему блоку, из числа (репрезентативных значений) режимов внутрикадрового предсказания базового уровня, хранящихся в блоке 1204 обеспечения внутрикадрового предсказания, выполняет внутрикадровое предсказание улучшенного уровня, используя режим внутрикадрового предсказания, и генерирует изображение предсказания. Внутрикадровое предсказание выполняется таким же образом, как в блоке 1221 внутрикадрового предсказания.
Дополнительно, например, когда со стороны кодирования передается информация, указывающая коэффициент прореживания в наборе параметров последовательности (SPS), наборе параметров картинки (PPS) или в заголовке среза улучшенного уровня, блок 1212 декодирования без потерь блока 1205 декодирования изображения улучшенного уровня подает переданную со стороны кодирования информацию, указывающую коэффициент прореживания, на блок 1204 обеспечения режима внутрикадрового предсказания.
Например, информация, указывающая коэффициент прореживания, может передаваться через набор видеопараметров (VPS). В этом случае, информация, указывающая коэффициент прореживания, подается от блока 1201 генерирования общей информации на блок 1204 обеспечения режима внутрикадрового предсказания.
Блок обеспечения режима внутрикадрового предсказания
На фиг. 92 представлена блок-схема примерной основной конфигурации блока 1204 обеспечения режима внутрикадрового предсказания, показанного на фиг. 89.
Блок 1204 обеспечения режима внутрикадрового предсказания содержит блок 1251 получения коэффициента прореживания, блок 1252 процесса прореживания и буфер 1253 режима внутрикадрового преобразования, показанные на фиг. 92.
Блок 1251 получения коэффициента прореживания получает коэффициент прореживания режима внутрикадрового предсказания базового уровня, переданный со стороны кодирования от блока 1212 декодирования без потерь блока 1205 декодирования изображения улучшенного уровня (или блока 1201 генерирования общей информации). Блок 1251 получения коэффициента прореживания подает полученную информацию, указывающую установленный коэффициент прореживания, на блок 1252 процесса прореживания.
Блок 1252 процесса прореживания получает режим внутрикадрового предсказания каждого блока базового уровня, поданный от блока 1221 внутрикадрового предсказания блока 1203 декодирования изображения базового уровня и прореживает режим внутрикадрового предсказания с коэффициентом прореживания, поданным от блока 1251 получения коэффициента прореживания. Например, как описано выше, процесс прореживания режима внутрикадрового предсказания выполняется для каждой определенной области и выбирается типичный представитель (режим внутрикадрового предсказания) каждой области. Режим внутрикадрового предсказания базового уровня, выбранный при прореживании, подается в буфер 1253 режима внутрикадрового предсказания.
Буфер 1253 режима внутрикадрового предсказания сохраняет выбранный режим внутрикадрового предсказания базового уровня, поданный от блока 1252 процесса прореживания. Буфер 1253 режима внутрикадрового предсказания подает режим внутрикадрового предсказания блока, соответствующего текущему блоку внутрикадрового предсказания, выполненного в блоке 1231 внутрикадрового предсказания блока 1205 декодирования изображения улучшенного уровня, из числа выбранных режимов внутрикадрового предсказания базового уровня, хранящихся в блоке 1231 внутрикадрового предсказания.
Как описано выше, блок 1231 внутрикадрового предсказания выполняет внутрикадровое предсказание текущего блока улучшенного уровня, используя режим внутрикадрового предсказания базового уровня (выбранный режим внутрикадрового предсказания базового уровня), считанный из буфера 1253 режима внутрикадрового предсказания, и генерирует изображение предсказания.
Как описано выше, устройство 1200 масштабируемого декодирования может использовать режим внутрикадрового предсказания базового уровня для внутрикадрового предсказания кодирования улучшенного уровня и, таким образом, можно сдерживать снижение эффективности кодирования. Как результат, устройство 1200 масштабируемого декодирования может сдерживать снижение качества изображения из-за кодирования и декодирования. Дополнительно, когда режим внутрикадрового предсказания базового уровня обеспечивается для улучшенного уровня, режим внутрикадрового предсказания прореживается с определенным коэффициентом прореживания и, таким образом, устройство 1200 масштабируемого декодирования может сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
Последовательность выполнения операций генерирования общей информации
Далее будут описаны процессы, выполняемые устройством 1200 масштабируемого декодирования. Сначала, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 93, будет описан пример последовательности выполнения операций процесса генерирования общей информации.
После начала процесса сбора общей информации, на этапе S4201 блок 1201 генерирования общей информации получает набор видеопараметров, переданный со стороны кодирования.
На этапе S4202 блок 1251 получения коэффициента прореживания блока 1204 обеспечения режима внутрикадрового предсказания получает коэффициент прореживания режима внутрикадрового предсказания базового уровня из набора видеопараметров, полученного на этапе S4201.
Когда процесс на этапе S4202 закончен, закончен и процесс генерирования общей информации.
Последовательность выполнения операций процесса декодирования
Далее, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 94, будет описана примерная последовательность выполнения операций процесса декодирования. Устройство 1200 масштабируемого декодирования выполняет процесс декодирования в блоках кодирования картинок.
Когда на этапе S4221 процесс кодирования начат, блок 1202 управления декодированием устройства 1200 масштабируемого декодирования устанавливает первый уровень в качестве цели процесса обработки.
На этапе S4222 блок 1202 управления декодированием определяет, является ли базовым уровнем текущий уровень, служащий в качестве цели процесса обработки. Когда текущий уровень определен как базовый уровень, процесс переходит к этапу S4223.
На этапе S4223 блок 1203 декодирования изображения базового уровня и блок 1204 обеспечения режима внутрикадрового предсказания выполняют процесс декодирования базового уровня. Когда процесс на этапе S4223 закончен, процесс переходит к этапу S4226.
Дополнительно, когда на этапе S4222 текущий уровень определен как улучшенный уровень, процесс переходит к этапу S4224. На этапе S4224 блок 1202 управления декодированием определяет базовый уровень (то есть, уровень, используемый в качестве опорного места назначения), соответствующий текущему уровню.
На этапе S4225 блок 1205 декодирования изображения улучшенного уровня выполняет процесс декодирования улучшенного уровня. Когда процесс на этапе S4225 закончен, процесс переходит к этапу S4226.
На этапе S4226 блок 1202 управления декодированием определяет, все ли уровни были обработаны. Когда определено, что существует необработанный уровень, процесс переходит к этапу S4227.
На этапе S4227 блок 1202 управления декодированием устанавливает следующий необработанный уровень в качестве цели процесса обработки (текущего уровня). Когда процесс на этапе S4227 закончен, процесс возвращается к этапу S4222. Процесс на этапах S4222-S4227 выполняется повторно и, таким образом, декодируется каждый уровень.
Затем, когда на этапе S4226 все уровни определены как обработанные, процесс декодирования заканчивается.
Последовательность выполнения операций процесса декодирования базового уровня
Далее, примерная последовательность выполнения операций процесса декодирования базового уровня, который выполняется на этапе S4223, показанном на фиг. 94, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 95.
После начала на S4241 процесса декодирования базового уровня накопительный буфер 1211 блока 1203 декодирования изображения базового уровня накапливает битовые потоки базового уровня, переданные со стороны кодирования. На этапе S4242 блок 1212 декодирования без потерь декодирует битовые потоки (кодированную информацию разностного изображения) базового уровня, поданные из накопительного буфера 1211. Другими словами, декодируются кадр I, кадр Р и кадр В, кодированные блоком 1116 кодирования без потерь. В этом случае также декодируются содержащиеся в битовом потоке различные типы информации, такие как информация заголовка, а также информация разностного изображения.
На этапе S4243 блок 1213 инверсного квантования инверсно квантует квантованные коэффициенты, полученные в процессе на этапе S4242.
На этапе S4244 блок 1214 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование текущего блока (текущего TU).
На этапе S4245 блок 1221 внутрикадрового предсказания или блок 1222 компенсации движения выполняет процесс предсказания и генерирует изображение предсказания. Другими словами, процесс предсказания выполняется в режиме предсказания, используемом при кодировании, который определяется в блоке 1212 декодирования без потерь. Более конкретно, например, когда во время кодирования применяется внутрикадровое предсказание, блок 1221 внутрикадрового предсказания генерирует изображение предсказания в режиме внутрикадрового предсказания, который на момент кодирования определен как оптимальный. Дополнительно, например, когда во время кодирования применяется межкадровое предсказание, блок 1222 компенсации движения генерирует изображение предсказания в режиме межкадрового предсказания, который на момент кодирования определен как оптимальный.
На этапе S4246 операционный блок 1215 суммирует изображение предсказания, сгенерированное на этапе S4245, с информацией разностного изображения, сгенерированной в процессе инверсного ортогонального преобразования на этапе S4244. В результате, декодируется исходное изображение.
На этапе S4247 контурный фильтр 1216 должным образом выполняет процесс контурной фильтрации декодированного изображения, полученного на этапе S4246.
На этапе S4248 буфер 1217 перегруппировки экрана выполняет перегруппировку изображения, подвергнутого процессу фильтрации на этапе S4247. Другими словами, кадры, перегруппированные для кодирования буфером 1112 перегруппировки экрана, перегруппируются в первоначальный порядок отображения.
На этапе S4249 блок 1218 D/A-преобразования выполняет D/A-преобразование изображения, для которого порядок кадров перегруппирован на этапе S4248. Изображение выводится и отображается на дисплее (не показан).
На этапе S4250 кадровая память 1219 сохраняет декодированное изображение, подвергнутое процессу фильтрации контурным фильтром на этапе S4247.
На этапе S4251 блок 1252 процесса прореживания блока 1204 обеспечения режима внутрикадрового предсказания прореживает режим внутрикадрового предсказания базового уровня, полученный посредством процесса внутрикадрового предсказания блока 1221 внутрикадрового предсказания на этапе S4245, с коэффициентом прореживания, полученным на этапе S4102, показанном на фиг. 93.
На этапе S4252 буфер 1253 режима внутрикадрового предсказания блока 1204 обеспечения режима внутрикадрового предсказания сохраняет режим внутрикадрового предсказания базового уровня, выбранный посредством прореживания на этапе S4251.
После окончания процесса на этапе S4252 процесс декодирования базового уровня заканчивается и процесс возвращается к фиг. 94. Например, процесс декодирования базового уровня выполняется в блоках кодирования кадров. Другими словами, процесс декодирования базового уровня выполняется для каждого кадра текущего уровня. Здесь каждый процесс в процессе декодирования основного уровня выполняется для каждого блока обработки.
Последовательность выполнения операций процесса декодирования улучшенного уровня.
Далее, примерная последовательность выполнения операций процесса декодирования улучшенного уровня, который выполняется на этапе S4225, показанном на фиг. 94, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 96.
Процесс на этапах S4271-S4274 и процесс на этапах S4276-S4280 в процессе декодирования улучшенного уровня выполняются таким же образом, как процесс на этапах S4241-S4244 и процесс на этапах S4246-S4250 в процессе декодирования базового уровня. Здесь, соответствующие процессы процесса декодирования улучшенного уровня выполняются для кодированных данных улучшенного уровня посредством соответствующих блоков обработки блока 1205 декодирования изображения улучшенного уровня.
На этапе S4275 блок 1231 внутрикадрового предсказания блока 1205 декодирования изображения улучшенного уровня и блок 1222 компенсации движения выполняют процесс предсказания для кодированных данных улучшенного уровня.
После окончания процесса на этапе S4280 процесс декодирования улучшенного уровня заканчивается и процесс возвращается к фиг. 94. Например, процесс декодирования улучшенного уровня выполняется в блоках кодирования картинок. Другими словами, процесс декодирования улучшенного уровня выполняется для каждой картинки текущего уровня. Здесь каждый процесс в процессе декодирования улучшенного уровня выполняется для каждого блока обработки.
Последовательность выполнения операций процесса предсказания
Далее, примерная последовательность выполнения операций процесса предсказания, который выполняется на этапе S4275, показанном на фиг. 96, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 97.
Когда процесс предсказания начат на этапе S4301, блок 1231 внутрикадрового предсказания блока 1205 декодирования изображения улучшенного уровня определяет, является ли режим предсказания внутрикадровым предсказанием. Когда режим предсказания определяется как режим внутрикадрового предсказания, процесс переходит к этапу S4302.
На этапе S4302 блок 1231 внутрикадрового предсказания получает режим внутрикадрового предсказания блока, соответствующего текущему блоку, из числа выбранных режимов внутрикадрового предсказания базового уровня, хранящихся в буфере 1253 режима внутрикадрового предсказания блока 1204 обеспечения режима внутрикадрового предсказания.
На этапе S4303 блок 1231 внутрикадрового предсказания выполняет процесс внутрикадрового предсказания, используя режим внутрикадрового предсказания (выбранный режим внутрикадрового предсказания базового уровня), полученный на этапе S4302. и генерирует изображение предсказания. После окончания процесса на этапе S4303, процесс предсказания заканчивается и процесс возвращается к фиг. 96.
Дополнительно, когда на этапе S4301 режим предсказания определяется как режим межкадрового предсказания, процесс переходит к этапу S4304. На этапе S4304 блок 1222 компенсации движения выполняет компенсацию движения в оптимальном режиме межкадрового предсказания, служащем в качестве режима межкадрового предсказания, используемого во время кодирования, и генерирует изображение предсказания. После окончания процесса на этапе S4304, процесс предсказания заканчивается и процесс возвращается к фиг. 96.
Поскольку процесс выполняется как описано выше, устройство 1200 масштабируемого декодирования может использовать режим внутрикадрового предсказания базового уровня для внутрикадрового предсказания декодирования улучшенного уровня и, таким образом, можно сдерживать снижение эффективности кодирования. Как результат, устройство 1200 масштабируемого декодирования может сдерживать снижение качества изображения из-за кодирования и декодирования. Дополнительно, когда режим внутрикадрового предсказания базового уровня подается для улучшенного уровня, режим внутрикадрового предсказания прореживается с определенным коэффициентом прореживания, поданным со стороны кодирования, и, таким образом, устройство 1200 масштабируемого декодирования может сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования, аналогично устройству 1100 масштабируемого кодирования.
Настоящая технология, относящаяся к масштабируемому кодированию и декодированию, описанным выше в пятом и шестом вариантах осуществления, может подобным образом применяться к кодированию и декодированию мультипроекционного изображения, описанным выше в первом-третьем вариантах осуществления.
Другими словами, даже когда настоящая технология применяется к кодированию мультипроекционного изображения, предпочтительно, устройство кодирования изображения имеет конфигурацию, показанную на фиг. 81-84, и выполняет соответствующие процессы, описанные выше, со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 85-88.
Дополнительно, даже когда настоящая технология применяется к декодированию мультипроекционного изображения, предпочтительно, устройство кодирования изображения имеет конфигурацию, показанную на фиг. 89-92, и выполняет соответствующие процессы, описанные выше, со ссылкой на блок-схемы последовательности выполнения операций, показанные на фиг. 93-97.
8. Общие сведения 3
Управление направлением предсказания
Между тем, HEVC, соответствующем предшествующему уровню техники, временный вектор движение (temporal_motion_vector) может использоваться для кодирования вектора движения (mv_coding) и может использоваться любое из направлений, таких как направление L0 или направление L1. Другими словами, для временного вектора движения (temporal_motion_vector) желательно хранить информацию в любом из направления, L0 или L1.
На фиг. 98-100 показан примерный синтаксис заголовка сегмента среза, соответствующего предшествующему уровню техники. Информация флага (collocated_from_L0_flag), показанная на фиг. 99, является информацией флага, указывающей, сохраняется ли временный вектор движения (temporal_motion_vector) в направлении 10. Когда значение информации флага равно "1" (истинно), сохраняется временный вектор движения (temporal_motion_vector) в направлении L0, а когда значение информации флага равно "0" (ложно), сохраняется временный вектор движения (temporal_motion_vector) в направлении L1.
При этом, в работах Vadim Seregin, Patrice Onno, Shan Liu, Elena Alshina, Chulkeun Kim, Haitao Yang, "Description of Core Experiment SCE5: Inter-layer syntax prediction using the HEVC base layer," JCTVC-L1105, Joint Collaborative Team on Video Coding (JCT-VC)of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 1112th Meeting: Geneva, CH, 14-23 Jan. 2013, предложено межуровневое предсказание синтаксиса, используя информацию о движении в базовом уровне в качестве схемы кодирования сектора движения для масштабируемого кодирования.
При межуровневом предсказании синтаксиса информация о движении L0 базового уровня используется для процесса кодирования вектора движения L0 улучшенного уровня и информация о движении L1 базового уровня используется для кодирования вектора движения улучшенного уровня. Таким образом, необходимо сохранить в буфере информацию о движении в обоих направлениях, L0 и L1, и емкость запоминающего устройства, необходимая для кодирования и декодирования, вероятно, должна увеличиться.
В этом отношении устанавливается информация о направлении предсказания движения другого уровня, используемого для кодирования текущего уровня, служащего в качестве цели обработки в данных изображения, содержащих множество уровней, и только информация о движении в установленном направлении предсказания принимается от другого уровня. Например, когда для данных изображения выполняется масштабируемое кодирование, в межуровневом предсказании синтаксиса, использующем информацию о движении базового уровня для кодирования улучшенного уровня, устанавливается направление предсказания информации о движении базового уровня, используемой при межуровневом предсказании синтаксиса, и только информация о движении в направлении предсказания принимается и сохраняется в буфере. Например, в буфере принимается и сохраняется только информация о движении базового уровня в направлении L0 или в направлении L1. Затем, при межуровневом предсказании синтаксиса для кодирования улучшенного уровня считывается и используется информация о движении базового уровня, сохраненная в буфере.
Таким образом, можно уменьшить емкость буфера, необходимую для сохранения информации о движении базового уровня, по сравнению со случаем, когда принимается информация о движении базового уровня во всех направлениях предсказания (например, направлении L0 и направлении L1). Другими словами, можно сдерживать увеличение емкости запоминающего устройства, необходимого для кодирования.
Дополнительно, информация управления, указывающая установку направления предсказания информации о движении базового уровня, передается на сторону декодирования. Затем, сторона декодирования получает только информацию о движении базового уровня в направлении предсказания (например, в направлении L0 или в направлении L1), назначенном информацией управления, соответствующей установке информации управления, переданной со стороны кодирования, и сохраняет полученную информацию о движении в буфере. Затем, при межуровневом предсказании синтаксиса для декодирования улучшенного уровня считывается и используется информация о движении базового уровня, сохраненная в буфере.
Таким образом, можно уменьшить емкость буфера, необходимую для сохранения информации о движении базового уровня, по сравнению со случаем, когда принимается информация о движении базового уровня во всех направлениях предсказания (например, в направлении L0 и в направлении L1). Другими словами, можно сдерживать увеличение емкости запоминающего устройства, необходимой для декодирования.
Примерный синтаксис
На фиг. 101-103 показан примерный синтаксис заголовка сегмента среза в этом случае. Информация флага (colbasemv_from_10_flag) в качестве информации управления передается, как показано на фиг. 102. Информация флага является информацией флага, указывающей, сохраняется ли информация о движении базового уровня в направлении L0. Когда значение информации флага равно "1" (истинно), информация о движении в направлении L0 подается от базового уровня и сохраняется в буфере. Дополнительно, когда значение информации флага равно "0" (ложь), информация о движении в направлении L1 подается от базового уровня и сохраняется в буфере. Информация о движении базового уровня, сохраненная в буфере, как описано выше, используется для межуровневого предсказания улучшенного уровня.
По мере того, как передается информация управления, на стороне декодирования может выполняться то же самое межуровневое предсказание синтаксиса, что и на стороне кодирования. Таким образом, можно сдерживать увеличение емкости запоминающего устройства, необходимой для декодирования.
Как описано выше, информация, указывающая, является ли направление предсказания определенным направлением (например, направлением L0), может использоваться в качестве информации управления, указывающей направление предсказания информации о движении базового уровня, используемой для межуровневого предсказания. Поскольку информация флага используется в качестве информации управления, объем информации для информации управления может быть уменьшен (например, уменьшен до 1 бита.). Соответственно, можно сдерживать снижение эффективности кодирования.
Конечно, направление не ограничивается направлением L0. Например, информация, указывающая, является ли направлением предсказания информации о движении базового уровня, используемой для межуровневого предсказания, направление L1, может использоваться в качестве информации управления. Дополнительно, направление может быть выбрано. Например, направление может быть выбрано в произвольных единицах кодирования, таких как срезы, картинки или последовательности.
Дополнительно, информация управления не ограничивается информацией флага. Например, информация, указывающая, является ли направлением предсказания информации о движении базового уровня, используемой для межуровневого предсказания, направление L0 или направление L1, может использоваться в качестве информации управления.
Пример, приведенный на фиг. 101-103, был описан в связи с примером, в котором информация управления передается через заголовок среза, но настоящая технология не ограничивается этим примером. Другими словами, например, информация управления может передаваться в произвольных единицах кодирования, таких как последовательности, картинки или LCU. Другими словами, блок управления информации управления не ограничивается срезом. Например, информация управления может управляться в произвольных единицах кодирования, таких как последовательности, картинки или LCU.
Дополнительно, при межуровневом предсказании используется информация о движении определенной области базового уровня, соответствующая определенной области цели обработки улучшенного уровня.
Дополнительно, когда направление предсказания информации о движении, полученное от базового уровня, отличается от используемого направления предсказания, преобразование может быть выполнено. Например, когда информация о движении базового уровня в направлении, сохраненная в буфере, пригодна для предсказания улучшенного уровня в направлении L1, информация о движении базового уровня преобразуется в направлении L1. Это преобразование может быть выполнено аналогичным образом на стороне кодирования или на стороне декодирования.
Дополнительно, информация о движении, полученная от базового уровня, может быть преобразована таким образом, что масштабируемый параметр по мере необходимости используется в качестве опоры улучшенного уровня. Например, когда разрешающая способность является масштабируемой, масштаб полученной информации о движении базового уровня может преобразовываться (повышать дискретизацию) в соответствии с отношением разрешающих способностей базового уровня и улучшенного уровня. Дополнительно, это преобразование может выполняться перед сохранением информации в буфере или после считывания информации из буфера. Это преобразование может быть выполнено аналогичным образом на стороне кодирования или на стороне декодирования.
Далее будут описаны примеры, в которых настоящая технология применяется к конкретному устройству.
9. Седьмой вариант осуществления
Устройство кодирования изображения
На фиг. 104 представлено устройство кодирования изображения как пример устройства обработки изображения, к которому применяется настоящая технология. Устройство 1300 кодирования изображения, показанное на фиг. 104, является устройством выполнения масштабируемого кодирования изображения. Как показано на фиг. 104, устройство 1300 кодирования изображения содержит блок 1301 кодирования изображения базового уровня, блок 1302 кодирования изображения улучшенного уровня и блок 1303 мультиплексирования.
Блок 1301 кодирования изображения базового уровня кодирует изображение базового уровня и генерирует кодированный поток изображения базового уровня. Блок 1302 кодирования изображения улучшенного уровня кодирует изображение улучшенного уровня и генерирует кодированный поток изображения улучшенного уровня. Блок 1303 мультиплексирования выполняет мультиплексирование кодированного потока изображения базового уровня, сгенерированного блоком 1301 кодирования изображения базового уровня, и кодированного потока изображения улучшенного уровня, сгенерированного блоком 1302 кодирования изображения улучшенного уровня, генерируя кодированный поток масштабируемого изображения. Блок 1303 мультиплексирования передает сгенерированный кодированный поток масштабируемого изображения на сторону декодирования.
Блок 1301 кодирования изображения базового уровня кодирует изображение базового уровня, не обращаясь к другому уровню. С другой стороны, блок 1302 кодирования изображения улучшенного уровня выполняет межуровневое предсказание со ссылкой на базовый уровень при кодировании изображения улучшенного уровня. Например, блок 1302 кодирования изображения улучшенного уровня получает информацию о движении базового уровня, сгенерированную, когда блок 1301 кодирования изображения базового уровня кодирует изображение базового уровня, и выполняет межуровневое предсказание синтаксиса, используя информацию о движении базового уровня.
В этом случае, блок 1302 кодирования изображения улучшенного уровня устанавливает направление предсказания информации о движении, полученной от блока 1301 кодирования изображения базового уровня, получает только информацию о движении в установленном направлении предсказания и сохраняет информацию о движении в буфере. Дополнительно, блок 1302 кодирования изображения улучшенного уровня выполняет межуровневое предсказание, используя информацию о движении базового уровня (то есть, информацию о движении в установленном направлении предсказания), хранящуюся в буфере.
Дополнительно, блок 1302 кодирования изображения улучшенного уровня передает информацию управления, указывающую содержание установок направления предсказания, на сторону декодирования через блок 1303 мультиплексирования (в качестве кодированного потока масштабируемого изображения).
Блок кодирования изображения базового уровня
На фиг. 105 представлена блок-схема примерной основной конфигурации блока 1301 кодирования изображения базового уровня, показанного на фиг. 104. Как показано на фиг. 105, блок 1301 кодирования изображения базового уровня содержит блок 1311 аналогово-цифрового (A/D) преобразования, буфер 1312 перегруппировки экрана, операционный блок 1313, блок 1314 ортогонального преобразования, блок 1315 квантования, блок 1316 кодирования без потерь, накопительный буфер 1317, блок 1318 инверсного квантования и блок 1319 инверсного ортогонального преобразования. Блок 1301 кодирования изображения базового уровня дополнительно содержит операционный блок 1320, контурный фильтр 1321, кадровую память 1322, блок 1323 выбора, блок 1324 внутрикадрового предсказания, блок 1325 межкадрового предсказания, блок 1326 выбора изображения предсказания и блок 1327 управления скоростью.
Блок 1311 A/D-преобразования выполняет аналогово-цифровое преобразование входных данных изображения (информация изображения базового уровня) и подает преобразованные данные изображения (цифровые данные), которые должны сохраняться, в буфер 1312 перегруппировки экрана. Буфер 1312 перегруппировки экрана выполняет перегруппировку изображения кадров, хранящихся в порядке отображения, в порядок кадров для кодирования в соответствии с группой картинки (GOP) и подает изображение, перегруппированное в порядок кадров, на операционный блок 1313. Дополнительно, буфер 1312 реорганизации экрана также подает изображение, перегруппированное в порядок кадров, на блок 1324 внутрикадрового предсказания и на блок 1325 межкадрового предсказания.
Операционный блок 1313 вычитает изображение предсказания, полученное от блока 1324 внутрикадрового предсказания или от блока 1325 межкадрового предсказания через блок 1326 выбора изображения предсказания, из изображения, считанного из буфера 1312 перегруппировки экрана, и выводит разностную информацию на блок 1314 ортогонального преобразования. Например, в случае изображения, для которого выполняется внутрикадровое кодирование, операционный блок 1313 вычитает изображение предсказания, поданное от блока 1324 внутрикадрового предсказания, из изображения, считанного из буфера 1312 перегруппировки экрана. Дополнительно, например, в случае изображения, для которого выполняется межкадровое кодирование, операционный блок 1313 вычитает изображение предсказания, поданное от блока 1325 межкадрового предсказания, из изображения, считанного из буфера 1312 перегруппировки экрана.
Блок 1314 ортогонального преобразования выполняет ортогональное преобразование, такое как дискретное косинусное преобразование или преобразование Карунена-Лоэва для разностной информации, поданной от операционного блока 1313. Блок 1314 ортогонального преобразования подает коэффициенты преобразования на блок 1315 квантования.
Блок 1315 квантования квантует коэффициенты преобразования, поданные от блока 1314 ортогонального преобразования. Блок 1315 квантования устанавливает параметр квантования, основываясь на информации, касающейся целевого значения объема кодирования, поданной от блока 1327 управления скоростью, и выполняет квантование. Блок 1315 квантования подает квантованные коэффициенты преобразования на блок 1316 кодирования без потерь.
Блок 1316 кодирования без потерь кодирует коэффициенты преобразования, квантованные блоком 1315 квантования в соответствии с произвольной схемой кодирования. Поскольку данные коэффициента квантуются под управлением блока 1327 управления скоростью, объем кодирования становится целевым значением (или аппроксимирует целевое значение), установленным блоком 1327 управления скоростью.
Блок 1316 кодирования без потерь получает, например, информацию, указывающую режим внутрикадрового предсказания, от блока 1324 внутрикадрового предсказания и получает, например, информацию, указывающую режим межкадрового предсказания, и информацию разностного вектора движения от блока 1325 межкадрового предсказания. Дополнительно, блок 1316 кодирования без потерь соответственно генерирует блок NAL базового уровня, содержащий набор параметров последовательности (SPS), набор параметров картинки (PPS) и т.п.
Дополнительно, блок 1316 кодирования без потерь кодирует информацию (которая также упоминается как "информация деления области базового уровня"), относящуюся к делению области (например, к фрагменту фиксированного размера или срезу) базового уровня, установленному блоком установки деления области базового уровня.
Блок 1316 кодирования без потерь кодирует различные виды информации в соответствии с произвольной схемой кодирования и устанавливает (мультиплексирует) кодированную информацию как часть кодированных данных (упоминаемых также как "кодированный поток"). Блок 1316 кодирования без потерь подает кодированные данные, полученные кодированием, в накопительный буфер 1317, где они должны накапливаться.
Примерами схемы кодирования, используемой блоком 1316 кодирования без потерь, являются кодирование переменной длины и арифметическое кодирование. В качестве кодирования переменной длины, определенного в схеме H.264/AVC, используется контекстно адаптированное кодирование переменной длины (Context-Adaptive Variable Length Coding, CAVLC). Примером арифметического кодирования является, например, контекстно адаптированное двоичное арифметическое кодирование (Context-Adaptive Binary Arithmetic Coding, CABAC).
Накопительный буфер 1317 временно хранит кодированные данные (кодированные данные базового уровня), поданные от блока 1316 кодирования без потерь. Накопительный буфер 1317 в заданное время выводит хранящиеся кодированные данные базового уровня, например, на устройство записи (не показано) (носитель записи) на последующий этап или на тракт передачи. Другими словами, накопительный буфер 1317 служит также в качестве блока передачи, который передает кодированные данные.
Коэффициенты преобразования, квантованные блоком 1315 квантования, также подаются на блок 1318 инверсного квантования. Блок 1318 инверсного квантования инверсно квантует квантованные коэффициенты преобразования способом, соответствующим квантованию, выполняемому блоком 1315 квантования. Блок 1318 инверсного квантования подает полученные коэффициенты преобразования на блок 1319 инверсного ортогонального преобразования.
Блок 1319 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование коэффициентов преобразования, подаваемых от блока 1318 инверсного квантования, способом, соответствующим процессу ортогонального преобразования, выполняемому блоком 1314 ортогонального преобразования. Выходной результат (восстановленная разностная информация), подвергнутый инверсному ортогональному преобразованию, подается на операционный блок 1320.
Операционный блок 1320 получает локально декодированное изображение (декодированное изображение), прибавляя изображение предсказания, принятое от блока 1324 внутрикадрового предсказания или от блока 1325 межкадрового предсказания через блок 1326 выбора изображения предсказания, к восстановленной разностной информации, являющейся результатом инверсного ортогонального преобразования, поданным от блока 1319 инверсного ортогонального преобразования. Декодированное изображение подается на контурный фильтр 1321 или в кадровую память 1322.
Контурный буфер 1321 содержит фильтр удаления блочности, адаптивный контурный фильтр или т.п. и выполняет соответствующий процесс фильтрации реконструированного изображения, поданного от операционного блока 1320. Например, контурный фильтр 1321 выполняет процесс фильтрации удаления блочности реконструированного изображения и удаляет блочное искажение реконструированного изображения. Дополнительно, например, контурный фильтр 1321 улучшает качество изображения, выполняя процесс контурной фильтрации результата процесса фильтрации удаления блочности (реконструированного изображения, из которого удалено блочное искажение), используя фильтр Винера. Контурный фильтр 1321 подает результат процесса фильтрации (здесь также упоминается как "декодированное изображение") в кадровую память 1322.
Контурный фильтр 1321 может выполнять любой другой произвольный процесс фильтрации реконструированного изображения. Контурный фильтр 1321 может подать информацию, используемую в процессе фильтрации, такую как коэффициент фильтра, когда это необходимо, на блок 1316 кодирования без потерь, так что информация будет кодирована.
Кадровая память 1322 сохраняет поданное декодированное изображение и подает хранящееся декодированное изображение на блок 1323 выбора в качестве опорного изображения в заданный момент времени.
Более конкретно, кадровая память 1322 хранит реконструированное изображение, поданное от операционного блока 1320, и декодированное изображение, поданное от контурного фильтра 1321. Кадровая память 1322 подает хранящееся реконструированное изображение на блок 1324 внутрикадрового предсказания через блок 1323 выбора в заданный момент времени или на основе запроса извне, например, от блока 1324 внутрикадрового предсказания. Дополнительно, кадровая память 1322 подает хранящееся декодированное изображение на блок 1325 межкадрового предсказания через блок 1323 выбора в заданный момент времени или на основе запроса извне, например, от блока 1325 межкадрового предсказания.
Блок 1323 выбора выбирает место назначения для подачи опорного изображения, подаваемого из кадровой памяти 1322. Например, в случае внутрикадрового предсказания блок 1323 выбора подает опорное изображение (пиксельное значение в текущей картинке), полученное из кадровой памяти 1222, на блок 1322 внутрикадрового предсказания. Дополнительно, например, в случае межкадрового предсказания блок 1323 выбора подает опорное изображение, полученное от кадровой памяти 1322, на блок 1325 межкадрового предсказания.
Блок 1324 внутрикадрового предсказания выполняет процесс предсказания для текущей картинки, которая является изображением кадра цели обработки, и генерирует изображение предсказания. Блок 1324 внутрикадрового предсказания выполняет процесс предсказания в единицах кодирования определенных блоков (используя блок в качестве единицы обработки). Другими словами, блок 1324 внутрикадрового предсказания генерирует изображение предсказания текущего блока, служащего целью обработки в текущей картинке. В этом случае, блок 1324 внутрикадрового предсказания выполняет процесс предсказания (внутрикадрового предсказания), используя реконструированное изображение, поданное от кадровой памяти 1322 в качестве опорного изображения через блок 1323 выбора. Другими словами, блок 1324 внутрикадрового предсказания генерирует изображение предсказания текущего блока, служащего целью обработки в текущей картинке. Пиксельное значение соседнего пикселя, используемое для внутрикадрового предсказания является пиксельным значением предварительно обработанного пикселя текущей картинки. При внутрикадровом предсказании (то есть, в схеме генерирования изображения предсказания) заранее в качестве возможных кандидатов подготавливается множество способов (которые также упоминаются как режимы внутрикадрового предсказания"). Блок 1324 внутрикадрового предсказания выполняет внутрикадровое предсказание во множестве режимов внутрикадрового предсказания, подготовленных заранее.
Блок 1324 внутрикадрового предсказания генерирует изображения предсказания во всех возможных режимах внутрикадрового предсказания, оценивает значения функции стоимости изображений предсказания, используя входное изображение, поданное из буфера 1312 перегруппировки экрана, и выбирает оптимальный режим. Когда оптимальный режим внутрикадрового предсказания выбран, блок 1324 внутрикадрового предсказания подает изображение предсказания, сгенерированное в оптимальном режиме, на блок 1326 выбора изображения предсказания.
Дополнительно, как описано выше, блок 1324 внутрикадрового предсказания соответственно подает, например, информацию о режиме внутрикадрового предсказания, указывающую используемый режим внутрикадрового предсказания, на блок 1316 кодирования без потерь, где информация кодируется.
Блок 1325 межкадрового предсказания выполняет процесс предсказания для текущего кадра и генерирует изображение предсказания. Блок 1325 межкадрового предсказания выполняет процесс предсказания в единицах кодирования определенных блоков (используя блок в качестве единицы обработки). Другими словами, блок 1325 межкадрового предсказания генерирует изображение предсказания текущего блока, служащего целью обработки в текущей картинке. В этом случае, блок 1325 межкадрового предсказания выполняет процесс предсказания, используя данные изображения входного изображения, поданные из буфера 1312 перегруппировки экрана, и данные изображения декодированного изображения, поданные в качестве опорного изображения из кадровой памяти 1322. Декодированное изображение является изображением (другим кадром, отличным от текущего кадра) фрейма, обрабатываемого перед текущим кадром. Другими словами, блок 1325 межкадрового предсказания выполняет процесс предсказания (межкадрового предсказания) генерирования изображения предсказания, используя изображение другого кадра.
Межкадровое предсказание содержит предсказание движения и компенсацию движения. Более конкретно, блок 1325 межкадрового предсказания выполняет предсказание движения для текущего блока, используя входное изображение и опорное изображение, и обнаруживает вектор движения. Затем блок 1325 межкадрового предсказания выполняет процесс компенсации движения в соответствии с обнаруженным вектором движения, используя опорное изображение, и генерирует изображение предсказания (информацию об изображении межкадрового предсказания). При межкадровом предсказании (то есть, в схеме генерирования изображения предсказания) заранее в качестве возможных кандидатов подготавливается множество способов (которые также упоминаются как "режимы межкадрового предсказания"). Блок 1325 межкадрового предсказания выполняет межкадровое предсказание во множестве режимов межкадрового предсказания, подготовленных заранее.
Блок 1325 межкадрового предсказания генерирует изображения предсказания во всех возможных режимах межкадрового предсказания. Блок 1325 межкадрового предсказания оценивает значения функции стоимости изображений предсказания, используя входное изображение, поданное из буфера 1312 перегруппировки экрана, информацию сгенерированного разностного вектора движения и т.п., и выбирает оптимальный режим. Когда оптимальный режим внутрикадрового предсказания выбран, блок 1325 внутрикадрового предсказания подает изображение предсказания, сгенерированное в оптимальном режиме, на блок 1326 выбора изображения предсказания.
Блок 1325 межкадрового предсказания подает информацию, указывающую используемый режим межкадрового предсказания, информацию, требующуюся для выполнения процесса в режиме межкадрового предсказания во время декодирования кодированных данных, и т.п., на блок 1316 кодирования без потерь, где информация кодируется. В качестве необходимой информации существует информация сгенерированного разностного вектора движения, и в качестве информации о векторе движения при предсказании существует флаг, указывающий индекс вектора предсказания движения.
Блок 1326 выбора изображения предсказания выбирает источник подачи изображения предсказания, которое должно подаваться на операционный блок 1313 и на операционный блок 1320. Например, в случае внутрикадрового кодирования блок 1326 выбора изображения предсказания выбирает блок 1324 внутрикадрового предсказания в качестве источника подачи изображения предсказания и подает изображение предсказания, поданное от блока 1324 внутрикадрового предсказания, на операционный блок 1313 и на операционный блок 1320. Дополнительно, например, в случае межкадрового кодирования блок 1326 выбора изображения предсказания выбирает блок 1325 межкадрового предсказания в качестве источника подачи изображения предсказания и подает изображение предсказания, поданное от блока 1325 межкадрового предсказания, на операционный блок 1313 и на операционный блок 1320.
Блок 1327 управления скоростью управляет скоростью операции квантования блока 1315 квантования, основываясь на объеме кодирования кодированных данных, накопленных в накопительном буфере 1317, так что переполнение или недостаточное наполнение не происходит.
Блок 1301 кодирования изображения базового уровня выполняет кодирование, не обращаясь к другому уровню. Другими словами, блок 1324 внутрикадрового кодирования и блок 1325 межкадрового кодирования не обращаются к информации (например, декодированному изображению, информации о режиме внутрикадрового предсказания, информации о режиме межкадрового предсказания и информации о движении), связанной с кодированием другого уровня.
Дополнительно, блок 1325 межкадрового предсказания подает информацию о движении в направлении предсказания (например, в направлении 10 или в направлении L1), запрошенную блоком 1302 кодирования изображения улучшенного уровня, на блок 1302 кодирования изображения улучшенного уровня.
Блок кодирования изображения улучшенного уровня
На фиг. 106 представлена блок-схема примерной основной конфигурации блока 1302 кодирования изображения улучшенного уровня, показанного на фиг. 104. Как показано на фиг. 106, блок 1302 кодирования изображения улучшенного уровня имеет, в основном, ту же самую конфигурацию, что и блок 1301 кодирования изображения базового уровня, показанный на фиг. 105.
Как показано на фиг. 106, блок 1302 кодирования изображения улучшенного уровня содержит блок 1331 аналогово-цифрового (A/D) преобразования, буфер 1332 перегруппировки экрана, операционный блок 1333, блок 1334 ортогонального преобразования, блок 1335 квантования, блок 1336 кодирования без потерь, накопительный буфер 1337, блок 1338 инверсного квантования и блок 1339 инверсного ортогонального преобразования. Блок 1302 кодирования изображения улучшенного уровня дополнительно содержит операционный блок 1340, контурный фильтр 1341, кадровую память 1342, блок 1343 выбора, блок 1344 внутрикадрового предсказания, блок 1345 межкадрового предсказания, блок 1346 выбора изображения предсказания и блок 1347 управления скоростью.
Блок 1331 A/D-преобразования - блок 1347 управления скоростью соответствуют блоку 1311 A/D-преобразования - блоку 1327 управления скоростью, показанным на фиг. 105, и выполняют тот же самый процесс, что и соответствующие блоки обработки. Здесь, соответствующие компоненты блока 1302 кодирования изображения улучшенного уровня выполняют процесс кодирования информации изображения улучшенного уровня вместо базового уровня. Таким образом, описание блока 1311 A/D-преобразования - блока 1327 управления скоростью, показанных на фиг. 105, может применяться в качестве описания процессов блока 1331 A/D-преобразования - блока 1347 управления скоростью, но в этом случае в качестве данных, подлежащих обработке, необходимо использовать данные улучшенного уровня, а не данные базового уровня. Дополнительно, необходимо соответствующим образом заменить блок обработки источника входного сигнала или назначение выходных данных на соответствующий блок обработки из числа блока 1331 A/D-преобразования - блока 1347 управления скоростью и осуществить считывание.
Здесь, блок 1345 межкадрового предсказания устанавливает направление предсказания (например, направление 10 или направление L1) информации о движении, полученной от блока 1301 кодирования изображения базового уровня, получает информацию о движении базового уровня в установленном направлении предсказания от блока 1301 кодирования изображения базового уровня и сохраняет полученную информацию о движении во встроенном буфере. Блок 1345 межкадрового предсказания выполняет межкадровое предсказание синтаксиса, используя информацию о движении базового уровня, хранящуюся в буфере.
Блок межкадрового предсказания
На фиг. 107 представлена блок-схема примерной основной конфигурации блока 1345 обеспечения межкадрового предсказания, показанного на фиг. 106. Как показано на фиг. 107, блок 1345 межкадрового предсказания содержит блок 1371 установки опорного направления предсказания базового уровня, буфер 1372 информации о движении базового уровня, блок 1373 преобразования информации о движении, блок 1374 предсказания движения и блок 1375 предсказания движения.
Блок 1371 установки опорного направления предсказания базового уровня устанавливает направление предсказания информации о движении базового уровня, на которое должна делаться ссылка (используется в межуровневом предсказании синтаксиса). Например, блок 1371 установки опорного направления предсказания базового уровня выбирает информацию о движении базового уровня в направлении 10 или информацию о движении базового уровня в направлении L1 в качестве информации о движении, на которую должна делаться ссылка.
Блок 1371 установки опорного направления предсказания базового уровня генерирует информацию управления, указывающую содержание установки направления предсказания, подает информацию управления в буфер 1372 информации о движении базового уровня и заставляет установку отражаться в буфере 1372 информации о движении базового уровня и блоке 1373 преобразования информации о движении.
Например, в качестве информации управления может использоваться информация, описанная выше в разделе 8 "Общие сведения 3". В примере, показанном на фиг. 107, блок 1371 установки опорного направления предсказания базового уровня генерирует информацию флага (colbasemv_from_10_flag), указывающую, упоминается ли информация о движении базового уровня в направлении 10 как информация управления, и подает сгенерированную информацию флага (colbasemv_from_10_flag) в буфер 1372 информации о движении базового уровня и на блок 1373 преобразования информации о движении. Дополнительно, блок 1371 установки опорного направления предсказания базового уровня подает информацию флага (colbasemv_from_10_flag) на блок 1336 кодирования без потерь, так что информация флага (colbasemv_from_10_flag) кодируется и передается на сторону декодирования.
Буфер 1372 информации о движении базового уровня получает информацию о движении базового уровня (которая также упоминается как "информация о движении базового уровня") от блока 1301 кодирования изображения базового уровня и сохраняет (удерживает) полученную информацию о движении. В этом случае, блок 1372 информации о движении базового уровня получает информацию о движении базового уровня в направлении предсказания в соответствии с установкой, сделанной блоком 1371 установки опорного направления предсказания базового уровня, то есть, информацией о движении базового уровня в направлении предсказания, указаннойя информацией управления (информацией флага (colbasemv_from_10_flag)), полученной от блока 1371 установки опорного направления предсказания базового уровня. Ограничивая направление предсказания информации о движении базового уровня, которая должна быть получена, как описано выше, можно уменьшить емкость запоминающего устройства буфера 1372 информации о движении базового уровня, в котором хранится информация о движении базового уровня.
Когда блок 1374 предсказания движения выполняет межуровневое предсказание, блок 1373 преобразования информации о движении считывает информацию о движении базового уровня, хранящуюся в буфере 1372 информации о движении базового уровня, и подает информацию о движении базового уровня на блок 1374 предсказания движения. В этом случае, блок 1373 преобразования информации о движении должным образом выполняет процесс преобразования считанной информации о движении базового уровня и подает преобразованную информацию о движении базового уровня на блок 1374 предсказания движения.
Например, когда направление предсказания, соответствующее установке, сделанной блоком 1371 установки опорного направления предсказания базового уровня, то есть, направление предсказания, указанное информацией управления (информацией флага (colbasemv_from_10_flag)), поданной от блока 1371 установки опорного направления предсказания базового уровня, не идентично направлению предсказания для межуровневого предсказания блока 1374 предсказания движения, блок 1373 преобразования информации о движении преобразует направление предсказания информации о движении базового уровня (например, преобразует информацию о движении в направлении L0 в информацию о движении в направлении L1 или преобразует информацию о движении в направлении L1 в информацию о движении в направлении L0.
Дополнительно, например, блок 1373 преобразования информации о движении может преобразовать межуровневый масштабируемый параметр информации о движении базового уровня, основываясь на базовом уровне, в информацию о движении, основываясь на улучшенном уровне.
Блок 1374 предсказания движения выполняет предсказание движения во всех возможных режимах межкадрового предсказания. Например, блок 1374 предсказания движения выполняет предсказание движения, используя входное изображение, поданное из буфера 1332 перегруппировки экрана, и опорное изображение, поданное из кадровой памяти 1342. Дополнительно, например, блок 1374 предсказания движения выполняет межуровневое предсказание синтаксиса, используя информацию о движении базового уровня, поданную от блока 1373 преобразования информации о движении.
Когда предсказание выполняется во всех возможных режимах, как описано выше, блок 1374 предсказания движения оценивает значение функции стоимости для каждого результата предсказания и выбирает оптимальный режим, основываясь на результате оценки. Блок 1374 предсказания движения подает информацию о движении для режима, выбранного в качестве оптимального режима, на блок 1375 компенсации движения в качестве информации об оптимальном движении. Дополнительно, блок 1374 предсказания движения подает информацию об оптимальном межкадровом предсказании в качестве информации, относящейся к предсказанию движения для режима, выбранного в качестве оптимального режима, на блок 1336 кодирования без потерь, где информация об оптимальном межкадровом предсказании кодируется и передается на сторону декодирования. Например, информация об оптимальном межкадровом предсказании содержит информацию, указывающую оптимальный режим, информацию об оптимальном движении, информацию (например, информацию о разностном движении), полученную кодированием информации об оптимальном движении.
Блок 1375 компенсации движения выполняет компенсацию движения, используя информацию об оптимальном движении, поданную от блока 1374 предсказания движения, и опорное изображение, поданное из кадровой памяти 1342, и генерирует изображение предсказания. Блок 1375 компенсации движения подает сгенерированное изображение предсказания на блок 1346 выбора изображения предсказания.
Последовательность выполнения операций процесса кодирования изображения
Далее будут описаны соответствующие процессы, выполняемые устройством 1300 кодирования изображения. Сначала, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 108, будет описан пример последовательности выполнения операции процесса кодирования изображения.
После начала процесса кодирования изображения на этапе S5101, блок 1301 кодирования изображения базового уровня устройства 1300 кодирования изображения кодирует данные изображения базового уровня.
На этапе S5102 блок 1302 кодирования изображения улучшенного уровня кодирует данные изображения улучшенного уровня.
На этапе S5103 блок 1303 мультиплексирования выполняет мультиплексирование кодированного потока изображения базового уровня, сгенерированного в процессе на этапе S5101, и кодированного потока изображения улучшенного уровня, сгенерированного в процессе на этапе S5102, (то есть, битовых потоков соответствующих уровней) и генерирует линию кодированных потоков маштабируемого изображения.
Когда процесс на этапе S5103 закончен, устройство 1300 кодирования изображения заканчивает процесс кодирования изображения. Одна картинка (или 1 срез) обрабатывается в процессе кодирования изображения. Таким образом, устройство 1300 кодирования изображения выполняет процесс кодирования изображения для каждой картинки (или среза) иерархических данных движущегося изображения.
Последовательность выполнения операций процесса кодирования базового уровня
Далее, примерная последовательность выполнения операций процесса кодирования базового уровня, который выполняется на этапе S5101, показанном на фиг. 108, блоком 1301 кодирования изображения базового уровня, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 109.
После начала процесса кодирования базового уровня на этапе S5121, блок 1311 A/D-преобразования блока 1301 кодирования изображения базового уровня выполняет A/D-преобразование изображения каждого кадра (картинки) входного движущегося изображения.
На этапе S5122 буфер 1312 перегруппировки экрана сохраняет изображение, подвергнутое A/D-преобразованию на этапе S5121, и перегруппирует картинки, расположенные в порядке отображения, в порядок кодирования.
На этапе S5123 блок 1324 внутрикадрового предсказания выполняет процесс внутрикадрового предсказания режима внутрикадрового предсказания.
На этапе S5124 блок 1325 межкадрового предсказания выполняет процесс межкадрового предсказания, в котором выполняются предсказание движения и компенсации движения в режиме межкадрового предсказания и т.п. Другими словами, блок 1325 межкадрового предсказания выполняет предсказание движения во всех возможных режимах и оценивает значения функции стоимости для результатов предсказания и выбирает оптимальный режим межкадрового предсказания, основываясь на результате оценки. Затем, блок 1325 межкадрового предсказания выполняет компенсацию движения в оптимальном режиме межкадрового предсказания и генерирует изображение предсказания. Поскольку блок 1301 кодирования изображения базового уровня не обращается к информации другого уровня, блок 1325 межкадрового предсказания не выполняет межкадровое предсказание.
На этапе S5125 блок 1326 выбора изображения предсказания выбирает изображение предсказания, основываясь на значении функции стоимости или т.п. Другими словами, блок 1326 выбора изображения предсказания выбирает либо изображение предсказания, сгенерированное при внутрикадровом предсказании на этапе S5123, либо изображение предсказания при межкадровом предсказании на этапе S5124.
На этапе S5126 операционный блок 1313 вычисляет разность между входным изображением, перегруппированным в порядок кадров в процессе, выполняемом на этапе S5122, и изображением предсказания, выбранным в процессе на этапе S5125. Другими словами, операционный блок 1313 генерирует данные изображения разностного изображения между входным изображением и изображением предсказания. Данные изображения для разностного изображения, полученного, как описано выше, уменьшаются по объему данных, который должен быть меньше, чем объем данных исходного изображения. Таким образом, можно уменьшить объем данных, который должен быть меньше, чем в случае, когда изображение кодируется без изменения.
На этапе S5127 блок 1314 ортогонального преобразования выполняет ортогональное преобразование для данных изображения разностного изображения, сгенерированного в процессе на этапе S5128.
На этапе S5128 блок 1315 квантования квантует коэффициенты ортогонального преобразования, полученные в процессе на этапе S5127, используя параметр квантования, вычисленный блоком 1327 управления скоростью.
На этапе S5129 блок 1318 инверсного квантования инверсно квантует квантованные коэффициенты (которые также упоминаются как "коэффициенты квантования"), сгенерированные в процессе на этапе S5128 согласно характеристикам, соответствующим характеристикам блока 1315 квантования.
На этапе S5130 блок 1319 инверсного ортогонального преобразования выполняет ортогональное преобразование для коэффициентов ортогонального преобразования, полученных в процессе, представленном на этапе S5129.
На этапе S5131 операционный блок 1320-0 суммирует изображение предсказания, выбранное в процессе на этапе S5125, с разностным изображением, восстановленным в процессе на этапе S5130, и генерирует данные изображения для реконструированного изображения.
На этапе S5132 контурный фильтр 1321 выполняет процесс контурной фильтрации данных изображения для реконструированного изображения, сгенерированного в процессе на этапе S5131. В результате, например, блочное искажение реконструированного изображения удаляется.
На этапе S5133 кадровая память 1322 сохраняет, например, данные декодированного изображения, полученные в процессе на этапе S5132, и реконструированное изображение, полученное в процессе на этапе S5131.
На этапе S5134 блок 1316 кодирования без потерь кодирует квантованные коэффициенты, полученные в процессе на этапе S5128. Другими словами, кодирование без потерь, такое как кодирование переменной длины или арифметическое кодирование, выполняется для данных, соответствующих разностному изображению.
Дополнительно, в этом случае, блок 1316 кодирования без потерь кодирует информацию, связанную с режимом предсказания для изображения предсказания, выбранного в процессе на этапе S5125, и суммирует разностное изображение с кодированными данными, полученными при кодировании. Другими словами, блок 1316 кодирования без потерь также кодирует информацию об оптимальном режиме внутрикадрового предсказания, поданную от блока 1324 внутрикадрового предсказания, информацию, соответствующую оптимальному режиму межкадрового предсказания, поданную от блока 1325 межкадрового предсказания движения или т.п., и суммирует кодированную информацию с кодированными данными.
Дополнительно, блок 1316 кодирования без потерь также устанавливает и кодирует, например, элементы синтаксиса различных блоков NAL и суммирует установленные элементы синтаксиса с кодированными данными.
На этапе S5135 накопительный буфер 1317 накапливает кодированные данные, полученные в процессе на этапе S5134. Кодированные данные, накопленные в накопительном буфере 1317, должным образом считываются и передаются на сторону декодирования через тракт передачи или через носитель записи.
На этапе S5136 блок 1327 управления скоростью управляет скоростью операции квантования блока 1315 квантования, основываясь на объеме кодирования (сгенерированном объеме кодирования) кодированных данных, накопленных в накопительном буфере 1317 в процессе этапа S5135, так что переполнение или недостаточное наполнение не происходит. Дополнительно, блок 1327 управления скоростью подает на блок 1315 квантования информацию, связанную с параметром квантования.
После окончания процесса на этапе S5136 процесс кодирования базового уровня заканчивается и процесс возвращается к фиг. 108.
Последовательность выполнения операций процесса кодирования улучшенного уровня
Далее примерная последовательность выполнения операций процесса кодирования улучшенного уровня, который выполняется блоком 1302 кодирования изображения улучшенного уровня на этапе S5102, показанном на фиг. 108, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 110.
Когда на этапе S5151 начат процесс кодирования улучшенного уровня, блок 1371 установки опорного направления предсказания базового уровня блока 1302 кодирования изображения улучшенного уровня устанавливает направление предсказания информации о движении базового уровня.
На этапе S5152 блок 1371 установки опорного направления предсказания базового уровня подает информацию управления, указывающую содержание установки, выполненной на этапе S5151, на блок 1336 кодирования без потерь, так что информация управления кодируется и передается на сторону декодирования.
На этапе S5153 буфер 1372 информации о движении базового уровня получает информацию о движении базового уровня в направлении предсказания, установленном на этапе S5151, от блока 1301 кодирования изображения базового уровня и сохраняет полученную информацию о движении базового уровня.
Процесс на этапах S5154-S5169 соответствует процессу на этапах S5121-S5136, показанному на фиг. 109, и выполняется, в основном, тем же самым способом, что и процесс на этапах S5121-S5136, показанный на фиг. 109.
Здесь в процессе межкадрового предсказания на этапе S5157 межкадровое предсказание вводится также в качестве возможного кандидата. Другими словами, на этапе S5157 блок 1374 предсказания движения выполняет межкадровое предсказание синтаксиса, используя информацию о движении базового уровня, считанную из буфера 1372 информации о движении базового уровня через блок 1373 преобразования информации о движении, в качестве одного из возможных кандидатов режима. Блок 1374 предсказания движения выбирает оптимальный режим межкадрового предсказания из числа всех возможных кандидатов режима, в том числе, межуровневое предсказание синтаксиса, и генерирует изображение предсказания.
После окончания процесса на этапе S5169 процесс кодирования улучшенного уровня заканчивается и процесс возвращается к фиг. 108.
Поскольку процесс выполняется так, как описано выше, блок 1302 кодирования изображения улучшенного уровня может уменьшить емкость буфера, необходимую для сохранения информации о движении базового уровня, по сравнению со случаем, когда принимается информация о движении базового уровня во всех направлениях предсказания (например, в направлении L0 и в направлении L1). Другими словами, устройство 1300 кодирования изображения может сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования.
Дополнительно, устройство 1300 кодирования изображения передает информацию управления, указывающую установку направления предсказания информации о движения базового уровня, на сторону декодирования и, таким образом, сторона декодирования может уменьшить емкость буфера, необходимую для хранения информации о движении базового уровня, аналогично стороне кодирования. Другими словами, можно сдерживать увеличение емкости запоминающего устройства, необходимой для декодирования.
Последовательность выполнения операций процесса ссылки для информации о движении базового уровня
Как описано выше, в процессе межкадрового предсказания на этапе S5157, показанном на фиг. 110, информация о движении базового уровня, хранящаяся в буфере 1372 информации о движении базового уровня, считывается для межуровневого предсказания. Примерная последовательность выполнения операций процесса ссылки для информации о движении базового уровня будет описана, обращаясь к блок-схеме последовательности выполнения операций, показанной на фиг. 111.
После начала на этапе S5181 процесса ссылки на информацию о движении базового уровня блок 1373 преобразования информации о движении блока 1345 межкадрового предсказания считывает информацию о движении базового уровня, на которую должна делаться ссылка, из буфера 1372 информации о движении базового уровня.
На этапе S5182 блок 1373 преобразования информации о движении определяет, идентично ли направление предсказания при межуровневом предсказании направлению предсказания (то есть, направлению предсказания информации о движении, считанной на этапе S5181), установленному блоком 1371 установки опорного направления предсказания базового уровня. Когда направление предсказания межуровневого предсказания определено как не идентичное направлению предсказания, установленному блоком 1371 установки опорного направления предсказания, процесс переходит к этапу S5183.
На этапе S5183 блок 1373 преобразования информации о движении инвертирует информацию о движении базового уровня, считанную на этапе S5181. Например, когда направлением предсказания для межуровневого предсказания является направление L0, а направлением предсказания информации о движении базового уровня, считанной на этапе S5181, является направление L1, блок 1373 преобразования информации о движении преобразует направление предсказания информации о движении базового уровня в направление L0. Дополнительно, например, когда направлением предсказания для межуровневого предсказания является направление L1, а направлением предсказания информации о движении базового уровня, считанной на этапе S5181, является направление L0, блок 1373 преобразования информации о движении преобразует направление предсказания информации о движении базового уровня в направление L1.
Когда процесс на этапе S5183 закончен, процесс переходит к этапу S5184.
Дополнительно, когда направление предсказания межуровневого предсказания на этапе S5182 определено как идентичное направлению предсказания, установленному блоком 1371 установки опорного направления предсказания, процесс переходит к этапу S5184. Другими словами, процесс преобразования направления предсказания не выполняется.
На этапе S5184 блок 1374 предсказания движения выполняет предсказание движения улучшенного уровня, используя информацию о движении базового уровня, которая была считана и соответственно преобразована, как описано выше.
Когда процесс на этапе S5184 закончен, процесс ссылки для информации о движении базового уровня заканчивается.
Как описано выше, блок 1345 межкадрового предсказания может заставить направление предсказания информации о движении базового уровня, считанной из буфера 1372 информации о движении базового уровня, совпадать с направлением предсказания межуровневого предсказания. Таким образом, буфер 1372 информации о движения базового уровня может сохранять информацию о движении базового уровня для одного направления предсказания. Таким образом, можно уменьшить емкость буфера, необходимую для хранения информации о движении базового уровня. Другими словами, можно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования.
Дополнительно, в процессе ссылки для информации о движении базового уровня блок 1373 преобразования информации о движении может выполнить процесс преобразования масштабируемого параметра, основанного на базовом уровне, в масштабируемый параметр, основанный на улучшенном уровне, для информации о движении базового уровня, считанной из буфера 1372 информации о движении базового уровня. Процесс преобразования может выполняться перед этапом S5182 или может выполняться перед этапом S5184.
10. Восьмой вариант осуществления
Устройство декодирования изображения
Далее будет описано декодирование данных, кодированных, как описано выше. На фиг. 112 представлена блок-схема примерной основной конфигурации устройства декодирования изображения, соответствующего устройству 1300 кодирования изображения, показанному на фиг. 104, как пример устройства обработки изображения, к которому применяется настоящая технология.
Устройство 1400 декодирования изображения, показанное на фиг. 112, декодирует кодированные данные, сгенерированные устройством 1300 кодирования изображения, посредством способа декодирования, соответствующего способу кодирования (то есть, выполняет масштабируемое декодирование кодированных данных, полученных путем масштабируемого кодирования).
Как показано на фиг. 112, устройство 1400 декодирования изображения содержит блок 1401 демультиплексирования, блок 1402 декодирования изображения базового уровня и блок 1403 декодирования изображения улучшенного уровня.
Блок 1401 демультиплексирования принимает кодированный поток масштабируемого изображения, в котором переданные со стороны кодирования кодированный поток изображения базового уровня и кодированный поток изображения улучшенного уровня мультиплексируются, выполняет демультиплексирование кодированного потока масштабируемого изображения и извлекает кодированный поток изображения базового уровня и кодированный поток изображения улучшенного уровня. Блок 1402 декодирования изображения базового уровня декодирует кодированный поток изображения базового уровня, извлеченный блоком 1401 демультиплексирования, и получает изображение базового уровня. Блок 1403 декодирования изображения улучшенного уровня декодирует кодированный поток изображения улучшенного уровня, извлеченный блоком 1401 демультиплексирования, и получает изображение улучшенного уровня.
Блок 1402 декодирования изображения базового уровня декодирует кодированный поток изображения базового уровня, не обращаясь к другому уровню. С другой стороны, блок 1403 декодирования изображения улучшенного уровня выполняет межуровневое предсказание со ссылкой на базовый уровень при декодировании кодированного потока изображения улучшенного уровня. Например, блок 1403 декодирования изображения улучшенного уровня получает информацию о движении базового уровня, сгенерированную, когда блок 1402 декодирования изображения базового уровня декодирует кодированный поток изображения базового уровня, и выполняет межуровневое предсказание синтаксиса, используя информацию о движении базового уровня.
В этом случае блок 1403 декодирования изображения улучшенного уровня получает только информацию о движении базового уровня в направлении предсказания, назначенном (то есть, путем установки, выполненной на стороне кодирования (во время кодирования)) информацией управления, переданной со стороны кодирования, и сохраняет полученную информацию о движении базового уровня в буфере. Затем, блок 1403 декодирования изображения улучшенного уровня выполняет межуровневое предсказание, используя информацию о движении базового уровня (то есть, информацию о движении в том же самом направлении предсказания, которое использовалось во время кодирования), хранящуюся в буфере.
Блок декодирования изображения базового уровня
На фиг. 113 представлена блок-схема примерной основной конфигурации блока 1402 декодирования изображения базового уровня, показанного на фиг. 112. Как показано на фиг. 113, блок 1402 декодирования изображения базового уровня содержит накопительный буфер 1411, блок 1412 декодирования без потерь, блок 1413 инверсного квантования, блок 1414 инверсного ортогонального преобразования, операционный блок 1415, контурный фильтр 1416, буфер 1417 перегруппировки экрана и блок 1418 цифро-аналогового (D/A) преобразования. Блок 1402 декодирования изображения базового уровня дополнительно содержит кадровую память 1419, блок 1420 выбора, блок 1421 внутрикадрового предсказания, блок 1422 межкадрового предсказания и блок 1423 выбора предсказанного изображения.
Накопительный буфер 1411 также функционирует как приемный блок, который принимает переданные кодированные данные. Накопительный буфер 1411 принимает и накапливает переданные кодированные данные и подает кодированные данные на блок 1412 декодирования без потерь в заданные моменты времени. Информация, необходимая для декодирования информации о режиме предсказания, добавляется к кодированным данным. Блок 1412 декодирования без потерь декодирует информацию, кодированную блоком 1316 кодирования без потерь, которая подается из накопительного буфера 1411, согласно схеме декодирования, соответствующей схеме кодирования. Блок 1412 декодирования без потерь подает квантованные данные коэффициентов разностного изображения, полученного декодированием, на блок 1413 инверсного квантования.
Дополнительно, блок 1412 декодирования без потерь определяет, какой из режимов, режим внутрикадрового предсказания или режим межкадрового предсказания, выбран в качестве оптимального режима предсказания, и подает информацию, относящуюся к оптимальному режиму предсказания, на блок 1421 внутрикадрового предсказания или на блок 1422 межкадрового предсказания, в зависимости от режима, определенного для выбора. Другими словами, например, в случае, когда сторона кодирования в качестве оптимального режима предсказания выбирает режим внутрикадрового предсказания, информация, относящаяся к оптимальному режиму предсказания, подается на блок 1421 внутрикадрового предсказания. Дополнительно, например, в случае, когда сторона кодирования в качестве оптимального режима предсказания выбирает режим межкадрового предсказания, информация, относящаяся к оптимальному режиму предсказания, подается на блок 1422 межкадрового предсказания.
Дополнительно, блок 1412 декодирования без потерь подает информацию, необходимую для инверсного квантования, например, такую как матрица квантования и параметр квантования, на блок 1413 инверсного квантования.
Блок 1413 инверсного квантования инверсно квантует данные квантованных коэффициентов, полученные декодированием, выполненным блоком 1412 декодирования без потерь согласно схеме, соответствующей схеме квантования блока 1315 квантования. Блок 1413 инверсного квантования является блоком обработки, аналогичным блоку 1318 инверсного квантования. Блок 1413 инверсного квантования подает полученные данные коэффициентов на блок 1414 инверсного ортогонального преобразования.
Блок 1414 инверсного ортогонального преобразования, по мере необходимости, выполняет инверсное ортогональное преобразование коэффициентов ортогонального преобразования, подаваемых от блока 1413 инверсного квантования, согласно схеме, соответствующей схеме ортогонального преобразования блока 1314 ортогонального преобразования. Блок 1414 инверсного ортогонального преобразования является блоком обработки, подобным блоку 1319 инверсного ортогонального преобразования.
Посредством процесса инверсного ортогонального преобразования, данные изображения разностного изображения восстанавливаются. Данные изображения восстановленного разностного изображения соответствуют данным изображения разностного изображения, которые не подвергаются ортогональному преобразованию в устройстве кодирования изображения. Здесь далее, данные изображения восстановленного разностного изображения, полученного в процессе инверсного ортогонального преобразования блока 1414 инверсного ортогонального преобразования, также упоминаются как остаточные данные декодирования. Блок 1414 инверсного ортогонального преобразования подает остаточные данные декодирования на операционный блок 1415. Дополнительно, данные изображения для изображения предсказания подаются на операционный блок 1415 от блока 1421 внутрикадрового предсказания или от блока 1422 межкадрового предсказания через блок 1423 выбора изображения предсказания.
Операционный блок 1415 получает данные изображения для реконструированного изображения, в котором разностное изображение суммируется с изображением предсказания, используя остаточные данные декодирования и данные изображения для изображения предсказания. Реконструированное изображение соответствует входному изображению, из которого изображение предсказания не вычитается операционным блоком 1313. Операционный блок 1415 подает реконструированное изображение на контурный фильтр 1416.
Контурный фильтр 1416 соответственно выполняет для поданного реконструированного изображения процесс контурной фильтрации, такой как процесс фильтрации удаления блочности или процесс адаптивной контурной фильтрации, и генерирует декодированное изображение. Например, контурный фильтр 1416 выполняет для реконструированного изображения процесс фильтрации удаления блочности и удаляет блочное искажение. Дополнительно, например, контурный фильтр 1416 улучшает качество изображения, выполняя процесс контурной фильтрации результата процесса фильтрации удаления блочности (реконструированного изображения, из которого удалено блочное искажение), используя фильтр Винера.
Тип процесса фильтрации, выполняемого контурным фильтром 1416, является произвольным и может выполняться любой другой процесс фильтрации. Дополнительно, контурный фильтр 1416 может выполнять процесс фильтрации, используя коэффициент фильтра, поданный со стороны кодирования. Дополнительно, контурный фильтр 1416 может выводить данные без выполнения процесса фильтрации.
Контурный фильтр 1416 подает декодированное изображение (или реконструированное изображение), служащее результатом процесса фильтрации, на буфер 1417 перегруппировки экрана и на буфер 1419 кадровой памяти.
Буфер 1417 перегруппировки экрана выполняет перегруппировку декодированного изображения в порядок кадров. Другими словами, буфер 1417 перегруппировки экрана перегруппирует изображение кадров, перегруппированные в порядок кодирования, с помощью буфера 1312 перегруппировки экрана в первоначальный порядок отображения. Другими словами, буфер 1417 перегруппировки экрана сохраняет данные изображения декодированного изображения кадров, поданных в порядке кодирования, в этом порядке, считывает данные изображения декодированного изображения кадров, хранящихся в порядке кодирования, в порядок отображения и подает считанные данные изображения на блок 1418 D/A-преобразования. Блок 1418 D/A-преобразования осуществляет цифроаналоговое (D/A) преобразование декодированного изображения (цифровые данные), поданного из буфера 1417 реорганизации экрана, и выводит аналоговые данные для отображения на дисплее (не показан).
Кадровая память 1419 сохраняет поданное декодированное изображение и подает хранящееся декодированное изображение на блок 1421 внутрикадрового предсказания или на блок 1422 межкадрового предсказания в качестве опорного изображения через блок 1420 выбора в определенные моменты времени или основываясь на запросе, поданном извне, таком как запрос от блока 421 внутрикадрового предсказания или от блока 1422 межкадрового предсказания.
Например, информация о режиме внутрикадрового предсказания соответственно подается на блок 1421 внутрикадрового предсказания от блока 1412 декодирования без потерь. Блок 1421 внутрикадрового предсказания выполняет внутрикадровое предсказание в режиме внутрикадрового предсказания (оптимальном режиме внутрикадрового предсказания), используемом в блоке 1324 внутрикадрового предсказания, и генерирует изображение предсказания. В этом случае, блок 1421 внутрикадрового предсказания выполняет внутрикадровое предсказание, используя данные изображения для реконструированного изображения, поданного из кадровой памяти 1419 через блок 1420 выбора. Другими словами, блок 1421 внутрикадрового предсказания использует реконструированное изображение в качестве опорного изображения (соседнего пикселя). Блок 1421 внутрикадрового предсказания подает сгенерированное изображение предсказания на блок 1423 выбора изображения предсказания.
Например, информация об оптимальном режиме предсказания и информация о движении соответственно подаются от блока 1412 декодирования без потерь на блок 1422 межкадрового предсказания. Блок 1422 межкадрового предсказания выполняет межкадровое предсказание, используя декодированное изображение (опорное изображение), полученное из кадровой памяти 1419 в режиме межкадрового предсказания (оптимальном режиме межкадрового предсказания), указанном в информации об оптимальном режиме предсказания, полученной от блока 1412 декодирования без потерь, и генерирует изображение предсказания.
Блок 1423 выбора изображения предсказания подает изображение предсказания, полученное от блока 1421 внутрикадрового предсказания, или изображение предсказания, полученное от блока 1422 межкадрового предсказания,, на операционный блок 1415. Затем операционный блок 1415 суммирует изображение предсказания с остаточными данными декодирования (информация разностного изображения), поданными от блока 1414 инверсного ортогонального преобразования, и таким образом получают реконструированное изображение.
Блок 1402 декодирования изображения базового уровня выполняет декодирование, не обращаясь к другому уровню. Другими словами, блок 1421 внутрикадрового кодирования и блок 1422 межкадрового кодирования не обращаются к информации (например, декодированному изображению, информации о режиме внутрикадрового предсказания, информации о режиме межкадрового предсказания и информации о движении), связанной с кодированием другого уровня.
Дополнительно, блок 1422 межкадрового предсказания подает информацию о движении в направлении предсказания (например, в направлении L0 или в направлении L1), запрошенную блоком 1403 декодирования изображения улучшенного уровня, на блок 1403 декодирования изображения улучшенного уровня.
Блок декодирования изображения улучшенного уровня
На фиг. 114 представлена блок-схема примерной основной конфигурации блока 1403 декодирования изображения улучшенного уровня, показанного на фиг. 112.
Как показано на фиг. 114, блок 1403 декодирования изображения улучшенного уровня имеет, в основном, ту же самую конфигурацию, что и блок 1402 декодирования изображения базового уровня, показанный на фиг. 113.
Другими словами, блок 1403 декодирования изображения улучшенного уровня, как показано на фиг. 114, содержит накопительный буфер 1431, блок 1432 декодирования без потерь, блок 1433 инверсного квантования, блок 1434 инверсного ортогонального преобразования, операционный блок 1435, контурный фильтр 1436, буфер 1437 перегруппировки экрана и блок 1438 D/A-преобразования. Блок 1403 декодирования улучшенного уровня дополнительно содержит кадровую память 1439, блок 1440 выбора, блок 1441 внутрикадрового преобразования, блок 1442 межкадрового предсказания и блок 1443 выбора изображения предсказания.
Накопительный буфер 1431 в блоке 1443 выбора изображения предсказания соответствует накопительному буферу 1411 в блоке 1023 выбора изображения предсказания, показанном на фиг. 113, и выполняет тот же самый процесс, что и соответствующие блоки обработки. Здесь, соответствующие компоненты блока 1403 кодирования изображения улучшенного уровня выполняют процесс кодирования информации изображения улучшенного уровня вместо базового уровня. Таким образом, описание накопительного буфера 1411 - блока 1423 выбора изображения предсказания, показанных на фиг. 113, может применяться к описанию процессов накопительного буфера 1431 - блока 1443 выбора изображения предсказания, но в этом случае в качестве данных, подлежащих обработке, необходимо использовать данные улучшенного уровня, а не данные базового уровня. Дополнительно, необходимо соответствующим образом заменить блок обработки источника входного сигнала или назначение выходных данных на соответствующий блок обработки блока 1403 декодирования изображения улучшенного уровня и осуществить считывание.
Здесь, блок 1432 декодирования без потерь подает, например, информацию управления (например, информацию флага (colbasemv_from_10_flag), указывающую, сохраняется ли информация о движении базового уровня в направлении 10) для направления предсказания информации о движении базового уровня, полученной от блока 1402 декодирования изображения, поданной со сторона кодирования, которая вводится в заголовок среза, на блок 1442 межкадрового предсказания.
Блок 1442 межкадрового предсказания получает информацию о движении базового уровня в направлении предсказания, назначенном посредством информации управления, полученной от блока 1402 декодирования изображения базового уровня, и сохраняет полученную информацию о движении базового уровня во встроенном буфере. Когда выполняется межуровневое предсказание синтаксиса, блок 1442 межкадрового предсказания использует информацию о движении базового уровня, хранящуюся в буфере.
Блок межкадрового предсказания
На фиг. 115 представлена блок-схема примерной основной конфигурации блока 1442 обеспечения межкадрового предсказания, показанного на фиг. 114. Как показано на фиг. 115, блок 1442 межкадрового предсказания содержит буфер 1471 информации о движении базового уровня, блок 1472 преобразования информации о движении и блок 1473 компенсации движения.
Буфер 1471 информации о движении базового уровня получает информацию управления (информацию флага (colbasemv_from_10_flag)), поданную от блока 1432 декодирования без потерь. Буфер 1471 информации о движении базового уровня получает информацию о движении базового уровня в направлении предсказания, указанном информацией управления, и сохраняет полученную информацию о движении базового уровня. Другими словами, буфер 1471 информации о движении базового уровня получает информацию о движении базового уровня в том же самом направлении предсказании, как во время кодирования. Ограничивая направление предсказания информации о движении базового уровня, которая должна быть получена, как описано выше, можно уменьшить емкость запоминающего устройства буфера 1471 информации о движении базового уровня, в котором хранится информация о движении базового уровня.
Буфер 1472 преобразования информации о движении получает информацию управления (информацию флага (colbasemv_from_10_flag)), поданную от блока 1432 декодирования без потерь. Дополнительно, когда блок 1473 компенсации движения посредством межуровневого предсказания реконструирует информацию о движении, блок 1472 преобразования информации о движении считывает информацию о движении базового уровня, хранящуюся в буфере 1471 информации о движении базового уровня, и подает информацию о движении базового уровня на блок 1473 компенсации движения. В этом случае, блок 1472 преобразования информации о движении должным образом выполняет процесс преобразования считанной информации о движении базового уровня и подает преобразованную информацию о движении базового уровня на блок 1473 компенсации движения.
Например, когда направление предсказания, указанное информацией управления (информацией флага (colbasemv_from_10_flag)), поданной от блока 1432 декодирования без потерь, не идентично направлению предсказания для межуровневого предсказания блока 1473 компенсации движения, блок 1472 преобразования информации о движении преобразует направление предсказания информации о движении базового уровня (например, преобразует информацию о движении в направлении L0 в информацию о движении в направлении L1 или преобразует информацию о движении в направлении L1 в информацию о движении в направлении L0).
Дополнительно, например, блок 1472 преобразования информации о движении может преобразовать межуровневый масштабируемый параметр информации о движении базового уровня, основываясь на базовом уровне, в информацию о движении, основываясь на улучшенном уровне.
Блок 1473 компенсации движения выполняет компенсацию движения в оптимальном режиме межкадрового предсказания, (режиме межкадрового предсказания, используемом во время кодирования), указанном информацией об оптимальном режиме межкадрового предсказания, поданной от блока 1432 декодирования без потерь, и генерирует изображение предсказания. Например, блок 1473 компенсации движения декодирует кодированную информацию о движении (например, разностную информацию о движении), содержащуюся в информации об оптимальном межкадровом предсказании, поданной от блока 1432 декодирования без потерь, и реконструирует информацию о движении текущего блока. Затем, блок 1473 компенсации движения получает опорное изображение из кадровой памяти 1439, соответствующее реконструированной информации о движении, и генерирует изображение предсказания. Блок 1473 компенсации движения подает сгенерированное изображение предсказания на блок 1443 выбора изображения предсказания.
Дополнительно, для примера, когда режим оптимального межкадрового предсказания является межуровневым предсказанием синтаксиса, блок 1473 компенсации движения реконструирует информацию о движении текущего блока, используя информацию о движении базового уровня, поданную от блока 1472 преобразования информации о движении, и генерирует изображение предсказания.
Последовательность выполнения операций процесса декодирования изображения
Далее будут описаны последовательности выполнения операций соответствующих процессов, выполняемых устройством 1400 декодирования изображения. Сначала, со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 116, будет описан пример последовательности выполнения операций процесса декодирования изображения.
После начала процесса декодирования изображения на этапе S5201 блок 1401 демультиплексирования устройства 1400 декодирования изображения выполняет демультиплексирование кодированного потока масштабируемого изображения, переданного со стороны кодирования для каждого уровня.
На этапе S5202 блок 1402 декодирования изображения базового уровня декодирует кодированный поток изображения базового уровня, извлеченный в процессе на этапе S5201. Блок 1402 декодирования изображения базового уровня выводит данные изображения базового уровня, сгенерированные при декодировании.
На этапе S5203 блок 1403 декодирования изображения улучшенного уровня декодирует кодированный поток изображения улучшенного уровня, извлеченный в процессе на этапе S5201. Блок 1403 декодирования изображения улучшенного уровня выводит данные изображения улучшенного уровня, сгенерированные при декодировании.
Когда процесс на этапе S5203 закончен, устройство 1400 декодирования изображения заканчивает процесс декодирования изображения. В процессе декодирования изображения обрабатывается один кадр (или 1 срез). Таким образом, устройство 1400 декодирования изображения периодически выполняет процесс декодирования изображения для каждого кадра (или среза) иерархических данных движущегося изображения.
Последовательность выполнения операций процесса декодирования базового уровня
Далее, примерная последовательность выполнения операций процесса декодирования базового уровня, выполняемого на этапе S5202, показанном на фиг. 116, блоком 1402 декодирования изображения базового уровня, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 117.
После начала на S5221 процесса декодирования базового уровня накопительный буфер 1411 блока 1402 декодирования изображения базового уровня накапливает переданный битовый поток (кодированные данные). На этапе S5222 блок 1412 декодирования без потерь декодирует битовый поток (кодированные данные), поданный из накопительного буфера 1411. Другими словами, декодируются такие данные изображения, как кадр I, кадр Р и кадр В, кодированные блоком 1316 кодирования без потерь. В этом случае также декодируются содержащиеся в битовом потоке различные типы информации, такие как информация заголовка, а также данные изображения, содержащиеся в битовом потоке.
На этапе S5223 блок 1413 инверсного квантования инверсно квантует квантованные коэффициенты, полученные в процессе на этапе S5222.
На этапе S5224 блок 1414 инверсного ортогонального преобразования выполняет инверсное ортогональное преобразование коэффициентов, которые были инверсно квантованы на этапе S5223.
На этапе S5225 блок 1421 внутрикадрового предсказания или блок 1422 межкадрового предсказания генерирует изображение предсказания. Другими словами, компенсация движения выполняется в режиме предсказания, используемом при кодировании, который определяется в блоке 1412 декодирования без потерь. Более конкретно, например, когда во время кодирования применяется внутрикадровое предсказание, блок 1421 внутрикадрового предсказания генерирует изображение предсказания в режиме внутрикадрового предсказания, который на момент кодирования определен как оптимальный. Более конкретно, например, когда во время кодирования применяется внутрикадровое предсказание, блок 1422 внутрикадрового предсказания генерирует изображение предсказания в режиме внутрикадрового предсказания, который на момент кодирования определен как оптимальный.
На этапе S5226 операционный блок 1415 суммирует изображение предсказания, сгенерированное на этапе S5225, с разностным изображением, полученным на этапе S5224 инверсным ортогональным преобразованием. Как результат, получают данные изображения для реконструированного изображения.
На этапе S5227 контурный фильтр 1416 соответствующим образом выполняет процесс контурной фильтрации, такой как процесс фильтрации удаления блочности или процесс адаптивной контурной фильтрации, для для данных изображения реконструированного изображения, полученного в процессе на этапе S5226.
На этапе S5228 буфер 1417 перегруппировки экрана выполняет перегруппировку кадров реконструированного изображения, подвергнутого процессу фильтрации на этапе S5227. Другими словами, кадры, перегруппированные во время кодирования, перегруппируются в первоначальный порядок отображения.
На этапе S5229 блок 1418 D/A-преобразования выполняет D/A-преобразование изображения, для которого порядок кадров перегруппирован на этапе S5228. Изображение выводится на дисплей (не показан) и изображение отображается.
На этапе S5230 кадровая память 1419 сохраняет, например, данные декодированного изображения, полученные в процессе на этапе S5227, или данные реконструированного изображения, полученные в процессе на этапе S5226.
После окончания процесса на этапе S5230 процесс декодирования базового уровня заканчивается и процесс возвращается к фиг. 116.
Последовательность выполнения операций процесса декодирования улучшенного уровня
Далее примерная последовательность выполнения операций процесса декодирования улучшенного уровня, выполняемого на этапе S5203, показанном на фиг. 116, блоком 1403 декодирования изображения улучшенного уровня, будет описана со ссылкой на блок-схему последовательности выполнения операций, показанную на фиг. 118.
После начала процесса декодирования улучшенного уровня на этапе S5251 блок 1422 межкадрового предсказания блока 1403 декодирования улучшенного уровня получает информацию управления (информацию флага (colbasemv_from_10_flag)), переданную со стороны кодирования через блок 1412 декодирования без потерь.
На этапе S5252 блок 1422 межкадрового предсказания получает информацию о движении базового уровня в направлении предсказания, назначенном посредством информации управления, полученной от блока 1402 декодирования изображения базового уровня на этапе S5251, и сохраняет полученную информацию о движении базового уровня в буфере.
Процесс на этапах S5253-S5262 соответствует процессу на этапах S5221-S5230, показанному на фиг. 117, и выполняется, главным образом, тем же самым способом, что и процесс на этапах S5221-S5230, показанный на фиг. 117.
Здесь, когда оптимальный режим предсказания, в котором изображение предсказания генерируется на этапе S5257, является межуровневым предсказанием синтаксиса межкадрового предсказания, блок 1442 межкадрового предсказания генерирует изображение предсказания, используя информацию о движении базового уровня, полученную от блока 1402 блока декодирования изображения базового уровня.
После окончания процесса на этапе S5262 процесс декодирования улучшенного уровня заканчивается и процесс возвращается к фиг. 116.
Поскольку процесс выполняется так, как описано выше, блок 1403 декодирования изображения улучшенного уровня может уменьшить емкость буфера, необходимую для сохранения информации о движении базового уровня, по сравнению со случаем, когда принимается информация о движении базового уровня во всех направлениях предсказания (например, в направлении L0 и в направлении L1). Другими словами, устройство 1400 декодирования изображения может сдерживать увеличение емкости запоминающего устройства, необходимой для декодирования.
Последовательность выполнения операций процесса ссылки на информацию о движении базового уровня
Дополнительно, когда оптимальным режимом предсказания является межуровневое предсказание для межкадрового предсказания, как описано выше, информация о движении базового уровня, хранящаяся в буфере 1471 информации о движении базового уровня, считывается, когда на этапе S5257, показанном на фиг. 118, генерируется изображение предсказания. Процесс ссылки на информацию о движении базового уровня путем считывания информации о движении базового уровня выполняется таким же способом, как в случае кодирования. Другими словами, описание показанной на фиг. 111 блок-схемы последовательности выполнения операций может к процессу на стороне декодирования. Поэтому описание этого процесса не приводится.
Настоящая технология может применяться ко всем устройствам кодирования изображения и устройствам декодирования изображения, основываясь на способах масштабируемого кодирования и декодирования.
Например, настоящая технология может применяться к устройству кодирования изображения и устройству декодирования изображения, используемым для приема информации изображения (битового потока), сжатой, используя ортогональное преобразование, такое как дискретное косинусное преобразование и компенсация движения, как в MPEG или Н.26х, через сетевую среду, такую как спутниковое вещание, кабельное телевидение, Интернет или мобильный телефон. Дополнительно, настоящая технология может применяться к устройству кодирования изображения и к устройству декодирования изображения, используемым при выполнении процесса на носителе записи, таком как оптический диск, магнитный диск или флэш-память.
11. Девятый вариант осуществления
Компьютер
Ряд процессов, описанных выше, могут выполняться посредством аппаратурного обеспечения или программного обеспечения. Когда последовательности процессов исполняются посредством программного обеспечения, программы, составляющие программное обеспечение, устанавливаются на компьютер. Здесь примеры с компьютером содержат компьютер, введенный в специализированное аппаратурное обеспечение, и универсальный персональный компьютер, способный исполнять различного рода функции посредством установленных на нем различных программ.
На фиг. 119 показана блок-схема примера конфигурации аппаратурного обеспечения компьютера, исполняющего последовательность описанных выше процессов, используя программу.
В компьютере 1800, показанном на фиг. 119, центральный процессор (CPU) 1801, постоянное запоминающее устройство (ROM) 1802 и оперативное запоминающее устройство (RAM) 1803 соединяются друг с другом через шину 1804.
Также, к шине 1804 подключается интерфейс 1810 ввода-вывода (I/O). К интерфейсу 1810 ввода-вывода присоединяются устройство 1811 ввода, устройство 1812 вывода, блок 1813 запоминающего устройства, блок 1814 связи и привод 1815.
Например, устройство 1811 ввода содержит клавиатуру, мышь, микрофон, сенсорную панель, входной терминал и т.п. Устройство 1812 вывода выполнено, например, в виде дисплея, громкоговорителя, выходного терминала и т.п. Блок 1813 запоминающего устройства содержит, например, жесткий диск, диск RAM, энергонезависимую память и т.п. Блок 1814 связи содержит, например, сетевой интерфейс. Привод 1815 приводит в действие съемный носитель 1821, такой как магнитный диск, оптический диск, магнитооптический диск или полупроводниковая память.
В компьютере с описанной выше конфигурацией CPU 1801 выполняет ряд описанных выше процессов, например, путем загрузки программы, хранящейся в блоке 1813 запоминающего устройства, на RAM 1803 через интерфейс 1810 ввода-вывода и шину 1804 и исполнения программы. RAM 1803 также соответственно хранит, например, данные, необходимые, когда CPU 1801 исполняет различного рода процессы.
Например, программа, исполняемая компьютером (CPU 1801), может быть записана на съемном носителе 1821 в качестве пакетного носителя или т.п. и применяться. Дополнительно, программа может предоставляться через проводную или беспроводную среду передачи, такую как локальная сеть (LAN), Интернет или цифровое спутниковое вещание.
В компьютере съемный носитель 1821 устанавливается на привод 1815 и затем программа через интерфейс 1810 I/O может устанавливаться в блок 1813 запоминающего устройства. Дополнительно, программа может приниматься блоком 1814 связи через проводную или беспроводную среду передачи и затем устанавливаться в блок 1813 запоминающего устройства. Кроме того, программа может заранее устанавливаться в ROM 1802 или в блок 1813 запоминающего устройства заранее.
Дополнительно, программа может быть программой, в которой процессы выполняются в хронологическом порядке, описанном в настоящем раскрытии, или могут быть программой, в которой процессы выполняются параллельно или с необходимой синхронизацией.
Дополнительно, в настоящем описании этапы, описывающие программу, записанную на носителе записи, содержат не только процессы, выполняемые хронологически в соответствии с описанным порядком, но также процессы, не требующие хронологического выполнения, но выполняемые параллельно или индивидуально.
Кроме того, в настоящем раскрытии система означает набор из двух или более элементов конфигурации (устройств, модулей (частей) или т.п.), независимо от того, расположены ли все элементы конфигурации в едином корпусе. Таким образом, системами являются как множество устройств, помещенных в отдельные корпуса и соединенных через сеть, так и единое устройство, в котором множество модулей помещено в единый корпус.
Дополнительно, любая конфигурация, описанная как одно устройство (или один блок обработки), может быть разделена на множество устройств (или блоков обработки). Напротив, любая конфигурация, описанная как множество устройств (или блоков обработки), может быть объединена в одном устройстве (или одном блоке обработки). Дополнительно, любая конфигурация, отличная от описанной выше конфигурации, может быть добавлена к конфигурации каждого устройства (или каждого блока обработки). Кроме того, если конфигурация или работа системы в целом являются, по существу, одними и теми же, часть конфигурации определенного устройства (или блока обработки) может быть введена в конфигурацию другого устройства (или другого блока обработки).
Предпочтительные варианты осуществления настоящего раскрытия были описаны выше со ссылкой на сопроводительные чертежи, и в то же время настоящее раскрытие не ограничивается приведенными выше примерами. Специалист в данной области техники, для которой сделано настоящее раскрытие, может найти различные альтернативы и модификации в рамках объема приложенной формулы изобретения и следует понимать, что они, естественно, будут попадать в рамки технического объема настоящего раскрытия.
Например, настоящая технология может иметь конфигурацию вычисления облака, где множество устройств используются совместно и обрабатывают одну функцию через сеть.
Дополнительно, этапы, описанные в приведенных выше блок-схемах последовательности выполнения операции, могут выполняться единым устройством или могут использоваться совместно и выполняться множеством устройств.
Дополнительно, когда в одном этапе содержится множество процессов, множество процессов, содержащихся в едином этапе, могут выполняться единым устройством или могут использоваться совместно и выполняться множеством устройств.
Устройства кодирования изображения и устройства декодирования изображения, соответствующие представленным выше вариантам осуществления, могут применяться при спутниковом вещании, кабельном вещании, таком как кабельное телевидение, в передатчиках или приемниках при доставке изображений по Интернету или при доставке на терминалы посредством сотовой связи, устройств записи, которые записывают изображения на носители, такие как оптический диск, магнитный диск или флэш-память, или различных электронных устройств, таких как воспроизводящие устройства, которые воспроизводят изображения с носителя записи. Ниже будут описаны четыре примера применения.
12. Примеры применения
Первый пример применения: телевизионный приемник
На фиг. 120 показан пример конфигурации схемы, показывающей телевизионное устройство, к которому применяется описанный выше вариант осуществления. Телевизионное устройство 1900 содержит антенну 1901, тюнер 1902, демультиплексор 1903, декодер 1904, блок 1905 видеопроцессора, блок 1906 отображения, блок 1907 аудиопроцессора, громкоговоритель 1908, внешний интерфейс 1909, блок 1910 управления, интерфейс 1911 пользователя и шину 1912.
Тюнер 1902 извлекает сигнал желаемого канала из широковещательного сигнала, принятого через антенну 1901, и демодулирует извлеченный сигнал. Дополнительно, тюнер 1902 выводит кодированный битовый поток, полученный при демодуляции, на демультиплексор 1903. Другими словами, тюнер 1902 принимает кодированный поток, содержащий кодированное изображение, и служит в телевизионном устройстве 1900 в качестве передающего блока.
Демультиплексор 1903 демультиплексирует видеопоток и аудиопоток программы просмотра целевого объекта из кодированного битового потока и выводит каждый демультиплексированный поток на декодер 1904. Дополнительно, демультиплексор 1903 извлекает вспомогательные данные, такие как электронная телевизионная программа (EPG, Electronic Program Guide), из кодированного битового потока и подает извлеченные данные на блок 1910 управления. Дополнительно, когда кодированный битовый поток скремблирован, демультиплексор 1903 может выполнять дескремблирование.
Декодер 1904 декодирует видеопоток и аудиопоток, поступающие от демультиплексора 1903. Декодер 1904 выводит видеоданные, сгенерированные посредством процесса декодирования, на блок 1905 видеопроцессора. Дополнительно, декодер 1904 выводит аудиоданные, сгенерированные посредством процесса декодирования, на блок 1907 аудиопроцессора.
Блок 1905 видеопроцессора воспроизводит видеоданные, введенные от декодера 1904, и заставляет видеоданные отображаться на блоке 1906 отображения. Дополнительно, блок 1905 видеопроцессора может заставить отображаться на блоке 1906 отображения изображение прикладного экрана, подаваемое через сеть. В зависимости от настроек, видеопроцессор 1905 может выполнять дополнительный процесс, такой как процесс удаления шумов видеоданных. Блок 1905 видеопроцессора может генерировать изображение графический интерфейс пользователя (GUI, Graphical User Interface), такое как меню, кнопка или курсор, и накладывать сгенерированное изображение на выходное изображение.
Блок 1906 отображения приводится в действие запускающим сигналом, поданным от блока 1905 видеопроцессора, и отображает видеоданные или изображение на видеоэкране устройства отображения (такого как, например, жидкокристаллический дисплей, плазменный дисплей или органоэлектролюминесцентный дисплей (OELD) (органический EL-дисплей)).
Блок 1907 аудиопроцессора выполняет процесс воспроизведения, такой как D/A-преобразование и усиление аудиоданных, поступающих от декодера 1904, и выводит аудиосигнал через громкоговоритель 1908. Блок 1907 аудиопроцессора может выполнять дополнительную обработку, такую как процесс снижения шумов аудиоданных.
Внешний интерфейс 1909 является интерфейсом для соединения телевизионного устройства 1900 с внешним устройством или сетью. Например, видеопоток или аудиопоток, принятый через внешний интерфейс 1909, может декодироваться декодером 1904. Другими словами, внешний интерфейс 1909 также служит передающим блоком телевизионного устройства 1900, который принимает кодированный поток, содержащий кодированное изображение.
Блок 1910 управления содержит процессор, такой как центральный процессор (CPU), и память, такую как RAM или ROM. Например, устройство памяти хранит программу, исполняемую CPU, программные данные, данные EPG и данные, полученные через сеть. Например, программа, хранящаяся в памяти, считывается и исполняется CPU при включении телевизионного устройства 1900. CPU исполняет программу и управляет работой телевизионного устройства 1900 в соответствии, например, сигналом управления, поступающим от интерфейса 1911 пользователя.
Интерфейс 1911 пользователя соединяется с блоком 1910 управления. Интерфейс 1911 пользователя имеет, например, кнопку и переключатель для работы пользователя с телевизионным устройством 1900 и приемный блок для приема сигнала дистанционного управления. Интерфейс 1911 пользователя посредством этих компонент обнаруживает операцию пользователя, генерирует сигнал управления и выводит сгенерированный сигнал управления на блок 1910 управления.
Шина 1912 соединяет друг с другом тюнер 1902, демультиплексор 1903, декодер 1904, блок 1905 видеопроцессора, блок 1907 аудиопроцессора, внешний интерфейс 1909 и блок 1910 управления.
В телевизионном устройстве 1900 с описанной выше конфигурацией декодер 1904 имеет функцию устройства декодирования изображения, соответствующую описанному выше варианту осуществления. Таким образом, когда изображение декодируется в телевизионном устройстве 1900, можно сдерживать увеличение емкости запоминающего устройства, необходимой для декодирования.
Второй пример применения: мобильный телефон
На фиг. 121 показана примерная конфигурация схемы мобильного телефона, к которому применяется описанный выше вариант осуществления. Мобильный телефон 1920 содержит антенну 1921, блок 1922 связи, аудиокодек 1923, громкоговоритель 1924, микрофон 1925, блок 1926 камеры, блок 1927 видеопроцессора, блок 1928 мультиплексирования/разделения, блок 1929 записи/воспроизведения, блок 1930 отображения, блок 1931 управления, операционный блок 1932 и шину 1933.
Антенна 1921 соединяется с блоком 1922 связи. Громкоговоритель 1924 и микрофон 1925 соединяются с аудиокодеком 1923. Операционный блок 1932 соединяется с блоком 1931 управления. Шина 1933 соединяет друг с другом блок 1922 связи, аудиокодек 1923, блок 1926 камеры, блок 1927 видеопроцессора, блок 1928 мультиплексирования/ демультиплексирования, блок 1929 записи/воспроизведения, блок 1930 отображения и блок 1931 управления.
Мобильный телефон 1920 выполняет различные операции, такие как передача и прием аудиосигнала, передача и прием электронной почты или данных изображения, получение изображения и запись данных в различных режимах работы, таких как режим голосового вызова, режим передачи данных, режим фотографирования и режим видеотелефона.
В режиме голосового вызова аналоговый аудиосигнал, сгенерированный микрофоном 1925, подаются на аудиокодек 1923. Аудиокодек 1923 преобразует аналоговый аудиосигнал в аудиоданные и выполняет A/D-преобразование и сжатие преобразованных аудиоданных. Затем аудиокодек 1923 выводит сжатые аудиоданные на блок 1922 связи. Блок 1922 связи кодирует и модулирует аудиоданные и генерирует сигнал передачи. Затем блок 1922 связи передает сгенерированный сигнал передачи на базовую станцию (не показана) через антенну 1921. Дополнительно, блок 1922 связи усиливает радиосигнал, принятый через антенну 1921, выполняет преобразование частоты и получает принятый сигнал. Затем блок 1922 связи демодулирует и декодирует принятый сигнал, генерирует аудиоданные и выводит сгенерированные аудиоданные на аудиокодек 1923. Аудиокодек 1923 выполняет расширение аудиоданных, выполняет D/A-преобразование аудиоданных и генерирует аналоговый аудиосигнал. Аудиокодек 1923 затем подает сгенерированный аудиосигнал на громкоговоритель 1924 для вывода через него звукового сигнала.
Дополнительно, в режиме передачи данных, например, блок 1931 управления в соответствии с операцией пользователя, выполняемой через операционный блок 1932, генерирует текстовые данные, составляющие электронную почту. Блок 1931 управления отображает текст на блоке 1930 отображения. Блок 1931 управления генерирует данные электронной почты в соответствии с командой передачи, поданной от пользователя через операционный блок 1932, и выводит сгенерированные данные электронной почты на блок 1922 связи. Блок 1922 связи кодирует и модулирует данные электронной почты и генерирует сигнал передачи. Затем блок 1922 связи через антенну 1921 передает сгенерированный сигнал передачи на базовую станцию (не показана). Дополнительно, блок 1922 связи усиливает радиосигнал, принятый через антенну 1921, выполняет преобразование частоты и получает принимаемый сигнал. Также, блок 1922 связи демодулирует и декодирует принятый сигнал, восстанавливает данные электронной почты и выводит восстановленные данные электронной почты на блок 1931 управления. Блок 1931 управления отображает содержание электронной почты на блоке 1930 отображения и запоминает данные электронной почты на носителе для хранения данных блока 1929 записи/воспроизведения.
Блок 1929 записи/воспроизведения содержит произвольный носитель для хранения считываемых/записываемых данных. Например, носитель для хранения данных может быть носителем встроенного типа для хранения данных, таким как RAM или флэш-память, или может быть съемным носителем для хранения данных, таким как жесткий диск, магнитный диск, магнито-оптический диск, оптический диск, устройством памяти с нераспределенной пространственной битовой картой (USB) или картой памяти.
В режиме фотографирования блок 1926 камеры фотографирует объект, генерирует данные изображения и выводит сгенерированные данные изображения на видеопроцессор 1927. Видеопроцессор 1927 кодирует данные изображения, введенные из блока 1926 камеры, и сохраняет кодированный поток на носителе для хранения данных блока 1929 записи/воспроизведения.
В режиме видеотелефона, например, блок 1928 мультиплексирования/демультиплексирования мультиплексирует видеопоток, кодированный видеопроцессором 1927, и аудиопоток, введенный от аудиокодека 1923, и выводит мультиплексированный поток на блок 1922 связи. Блок 1922 связи кодирует и модулирует поток и генерирует сигнал передачи. Затем блок 1922 связи передает сгенерированный сигнал передачи на базовую станцию (не показана) через антенну 1921. Дополнительно, блок 1922 связи усиливает радиосигнал, принятый через антенну 1921, выполняет преобразование частоты и получает принимаемый сигнал. Сигнал передачи и принятый сигнал могут содержать кодированный битовый поток. Затем блок 1922 связи демодулирует и декодирует принятый сигнал, восстанавливает поток и выводит восстановленный поток на блок 1928 мультиплексирования/демультиплексирования. Блок 1928 мультиплексирования/демультиплексирования демультиплексирует видеопоток и аудиопоток из входного потока и, соответственно, выводит видеопоток и аудиопоток на видеопроцессор 1927 и на аудиокодек 1923. Блок 1927 видеопроцессора декодирует видеопоток и генерирует видеоданные. Видеоданные подаются на блок 1930 отображения и последовательности изображений отображаются блоком 1930 отображения. Аудиокодек 1923 выполняет расширение аудиопотока, выполняет D/A-преобразование и генерирует аналоговый аудиосигнал. Аудиокодек 1923 затем подает сгенерированный аудиосигнал на громкоговоритель 1924 для вывода через него звукового сигнала.
В мобильном телефоне 1920 с описанной выше конфигурацией блок 1927 видеопроцессора имеет функции устройства кодирования изображения и устройства декодирования изображения, соответствующие описанному выше варианту осуществления. Таким образом, когда мобильный телефон 1920 кодирует и декодирует изображение, можно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
Третий пример применения: устройство записи/воспроизведения
На фиг. 122 показана примерная схемная конфигурация устройства записи/воспроизведения, к которому применяется описанный выше вариант осуществления. Например, устройство 1940 записи/воспроизведения кодирует аудиоданные и видеоданные принятой вещательной программы и запоминает кодированные данные на носителе для записи. Например, устройство 1940 записи/воспроизведения может кодировать аудиоданные и видеоданные, полученные от другого устройства, и записывать кодированные данные на носитель для записи данных. Например, устройство 1940 записи/воспроизведения воспроизводит данные, записанные на носителе для записи данных, используя монитор и громкоговоритель в соответствии с командой пользователя. В этом случае, устройство 1940 записи/воспроизведения декодирует аудиоданные и видеоданные.
Устройство 1940 записи/воспроизведения содержит тюнер 1941, внешний интерфейс 1942, кодер 1943, дисковод 1944 жесткого диска (HDD), дисковод 1945, переключатель 1946, декодер 1947, блок 1948 экранного меню (OSD), блок 1949 управления и интерфейс 1950 пользователя.
Тюнер 1941 извлекает сигнал желаемого канала из широковещательного сигнала, принятого через антенну (не показана), и демодулирует извлеченный сигнал. Затем тюнер 1941 выводит кодированный битовый поток, полученный при демодуляции, на переключатель 1946. Другими словами, тюнер 1941 играет в устройстве 1940 записи/воспроизведения роль передающего блока.
Внешний интерфейс 1942 является интерфейсом для соединения устройства 1940 записи/воспроизведения с внешним устройством или сетью. Внешний интерфейс 1942 может быть, например, интерфейсом IEEE1394, сетевым интерфейсом, интерфейсом USB или интерфейсом флэш-памяти. Например, видеоданные и аудиоданные, принятые через внешний интерфейс 1942 вводятся на кодер 1943. Другими словами, внешний интерфейс 1942 в устройстве 1940 записи/воспроизведения играет роль передающего блока.
Когда видеоданные и аудиоданные, принятые от внешнего интерфейса 1942, не кодированы, кодер 1943 кодирует видеоданные и аудиоданные. Дополнительно, кодер 1943 выводит кодированный битовый поток на переключатель 1946.
HDD 1944 записывает на внутреннем жестком диске кодированный битовый поток, в котором сжаты данные контента, такие как видеоданные или аудиоданные, различные программы и другие данные. При воспроизведении видеоданных или аудиоданных HDD 1944 считывает данные с жесткого диска.
Дисковод 1945 записывает на носитель или считывает данные с носителя для записи, установленного на нем. Носителем записи, устанавливаемым на дисковод 1945, могут быть, например, диск DVD (DVD-video, DVD-RAM, DVD-R, DVD-RW, DVD+R, DVD+RW или т.п.), диск Blu-ray (зарегистрированная торговая марка) или т.п.
Когда видеоданные и аудиоданные записаны, переключатель 1946 выбирает кодированный битовый поток, который вводится от тюнера 1941 или кодера 1943, и выводит выбранный кодированный битовый поток на HDD 1944 или на дисковод 1945. Дополнительно, при воспроизведении видеоданных или звука переключатель 1946 выводит на декодер 1947 кодированный битовый поток, введенный от HDD 1944 или от дисковода 1945.
Декодер 1947 декодирует кодированный битовый поток и генерирует видеоданные и аудиоданные. Затем декодер 1947 выводит сгенерированные видеоданные на OSD 1948. Декодер 1904 выводит сгенерированные аудиоданные на внешний громкоговоритель.
Блок 1948 OSD воспроизводит видеоданные, введенные от декодера 1947, и отображает видеоданные. Например, блок 1948 OSD может накладывать изображение GUI, такое как меню, кнопка или курсор, на отображаемые видеоданные.
Блок 1949 управления содержит процессор, такой как центральный процессор (CPU), и устройство памяти, такое как RAM или ROM. Устройство памяти хранит программу, исполняемую CPU, программные данные и т.п. Например, программа, хранящаяся в памяти, считывается и исполняется CPU при включении устройства 1940 записи/воспроизведения. Исполняя программу, CPU управляет работой устройства 1940 записи/ воспроизведения в соответствии, например, с сигналом управления, вводимым от интерфейса 1950 пользователя.
Интерфейс 1950 пользователя соединяется с блоком 1949 управления. Например, интерфейс 1950 пользователя имеет, например, кнопку и переключатель для работы пользователя с устройством 1940записи/воспроизведения и приемный блок для приема сигнала дистанционного управления. Интерфейс 1950 пользователя посредством этих компонент обнаруживает операцию пользователя, генерирует сигнал управления и выводит сгенерированный сигнал управления на блок 1949 управления.
В устройстве 1940 записи/воспроизведения с описанной выше конфигурацией кодер 1943 имеет функцию устройства кодирования изображения, соответствующую описанному выше варианту осуществления. Декодер 1947 имеет функцию устройства декодирования изображения, соответствующую описанному выше варианту осуществления. Таким образом, когда устройство 1940 записи/воспроизведения кодирует и декодирует изображение, можно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
Четвертый пример применения: устройство получения изображения
На фиг. 123 показана примерная схемная конфигурации устройства получения изображения, к которому применяется описанный выше вариант осуществления. Устройство 1960 получения изображения получает изображение объекта, генерирует изображение, кодирует данные изображения и записывает данные изображения на носителе для записи данных.
Устройство 1960 получения изображения содержит оптический блок 1961, блок 1962 получения изображения, сигнальный процессор 1963, видеопроцессор 1964, блок 1965 отображения, внешний интерфейс 1966, устройство 1967 памяти, привод 1968 носителя данных, блок 1969 OSD, блок 1970 управления, интерфейс 1971 пользователя и шину 1972.
Оптический блок 1961 соединяется с блоком 1962 получения изображения. Блок 1962 получения изображения соединяется с сигнальным процессором 1963. Блок 1965 отображения соединяется с видеопроцессором 1964. Интерфейс 1971 пользователя соединяется с блоком 1970 управления. Шина 1972 соединяет друг с другом видеопроцессор 1964, внешний интерфейс 1966, устройство 1967 памяти, дисковод 1968 носителя данных, блок 1969 OSD и блок 1970 управления.
Оптический блок 1961 содержит объектив, диафрагменный механизм и т.п. Оптический блок 1961 генерирует оптическое изображение объекта на поверхности получения изображений блока 1962 получения изображений. Блок 1962 получения изображения содержит датчик изображения, такой как CCD-датчик изображения (CCD, Charge Coupled Device, прибор с зарядовой связью) или CMOS (Complementary Metal Oxide Semiconductor, комплементарный металло-оксидный полупроводник) или т.п. и преобразует оптическое изображение, полученное на поверхности получения изображения, в сигнал изображения в виде электрического сигнала, используя для этого фотоэлектрическое преобразование. Затем блок 1962 получения изображения выводит сигнал изображения на блок 1963 сигнального процессора.
Сигнальный процессор 1963 выполняет различные виды обработки сигналов камеры, такие как г-образная коррекция, гамма-коррекция или коррекция цвета сигнала изображения, поданного от блока 1962 получения изображения. Сигнальный процессор 1963 выводит данные изображения, подвергнутые обработке сигнальным процессором, на блок 1964 видеопроцессора.
Блок 1964 видеопроцессора кодирует данные изображения, полученные от блока 1963 сигнального процессора, и генерирует кодированные данные. Затем блок 1964 видеопроцессора выводит сгенерированные кодированные данные на внешний интерфейс 1966 или на привод 1968 носителя данных. Дополнительно, блок 1964 видеопроцессора декодирует кодированные данные изображения, полученные от внешнего интерфейса 1966 или привода 1968 носителя данных, и генерирует данные изображения. Затем блок 1964 видеопроцессора выводит сгенерированные данные изображения на блок 1965 отображения. Блок 1964 видеопроцессора может выводить данные изображения, принятые от блока 1963 сигнального процессора, на блок 1965 отображения, чтобы отображать на нем изображение. Блок 1964 видеопроцессора может накладывать данные для отображения, полученные от блока 1969 OSD, на изображение, выводимое на блок 1965 отображения.
Блок 1969 OSD генерирует изображение GUI, такое как меню, кнопка или курсор, и выводит сгенерированное изображение на блок 1964 видеопроцессора.
Внешний интерфейс 1966 выполнен, например, как USB-терминал ввода-вывода. Внешний интерфейс 1966, например, при печати изображения соединяет устройство 1960 получения изображения с принтером. Дополнительно, если необходимо, с внешним интерфейсом 1966 соединяется дисковод. В дисковод устанавливается съемный носитель, например, такой как магнитный диск или оптический диск, и программа, которая считывается со съемного носителя, может устанавливаться в устройство 1960 получения изображения. Дополнительно, внешний интерфейс 1966 может быть выполнен как сетевой интерфейс, соединенный с сетью, такой как LAN или Интернет. Другими словами, внешний интерфейс 1966 в устройстве 1960 получения изображения играет роль передающего блока.
Носитель записи данных, устанавливаемый на приводе 1968 носителя данных, может быть произвольным считываемым/перезаписываемым съемным носителем, таким как магнитный диск, магнито-оптический диск, оптический диск или полупроводниковая память. Дополнительно, записываемый носитель фиксированно устанавливается на привод 1968 носителя данных и, например, может быть создана конфигурация с непередаваемым блоком запоминающего устройства, таким как встроенный дисковод жесткого диска или твердотельный дисковод (SSD).
Блок 1970 управления содержит процессор, такой как центральный процессор (CPU), и устройство памяти, такое как RAM или ROM. Например, устройство памяти хранит программу, исполняемую CPU, программные данные и т.п. Например, программа, хранящаяся в памяти, считывается и исполняется CPU при включении устройства 1960 получения изображения. CPU исполняет программу и управляет работой устройства 1960 получения изображения, например, в соответствии с сигналом управления, поступающим от интерфейса 1971 пользователя.
Интерфейс 1971 пользователя соединяется с блоком 1970 управления. Интерфейс 1971 пользователя имеет, например, кнопку, переключатель или т.п. для работы пользователя с устройством 1960 получения изображения. Интерфейс 1971 пользователя посредством этих компонент обнаруживает операцию пользователя, генерирует сигнал управления и выводит сгенерированный сигнал управления на блок 1970 управления.
В устройстве 1960 получения изображения с упомянутой конфигурацией блок 1964 видеопроцессора имеет функции устройства кодирования изображения и устройства декодирования изображения, соответствующие описанному выше варианту осуществления. Таким образом, когда устройство 1960 получения изображения кодирует и декодирует изображение, можно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
13. Примеры применения масштабируемого кодирования
Первая система
Далее будут описаны конкретные примеры масштабируемых кодированных данных, сгенерированных при масштабируемом кодировании. Масштабируемое кодирование используется для выбора данных, которые должны передаваться, например, как показано на фиг. 124.
В системе 2000 передачи данных, показанной на фиг. 124, распределительный сервер 2002 считывает масштабируемые кодированные данные, хранящиеся в блоке 2001 запоминающего устройства масштабируемых кодированных данных, и распределяет масштабированные кодированные данные по оконечным устройствам, таким как персональный компьютер 2004, AV-устройство 2005, планшетное устройство 2006 и мобильный телефон 2007 через сеть 2003.
В этом случае, распределительный сервер выбирает соответствующие кодированные данные высокого качества согласно возможностям оконечных устройств, среды передачи данных или т.п. и передает выбранные данные высокого качества. Хотя распределительный сервер 2002 передает не обязательно данные высокого качества, оконечные устройства необязательно получают изображение высокого качества и могут возникать задержка или переполнение. Дополнительно, полоса пропускания для передачи данных не обязательно может быть занята и нагрузка на оконечное устройство не обязательно может возрастать. С другой стороны, хотя распределительный сервер 2002 передает не обязательно данные низкого качества, маловероятно, что оконечные устройства должны получать изображение достаточного качества. Таким образом, распределительный сервер 2002 считывает масштабируемые кодированные данные, которые хранятся в блоке 2001 запоминающего устройства как кодированные данные с качеством, соответствующим возможностям оконечного устройства или среды передачи данных, и затем передает считанные данные.
Например, предполагается, что блок 2001 запоминающего устройства для хранения масштабируемых кодированных данных должен хранить масштабируемые кодированные данные (BL+EL) 2011, кодированные посредством масштабируемого кодирования. Масштабируемые кодированные данные (BL+EL) являются кодированными данными, содержащими как основной уровень, так и улучшенный уровень, и являются данными, из которых изображение основного уровня и изображение улучшенного уровня могут быть получены, декодируя масштабируемые кодированные данные (BL+EL) 2011.
Распределительный сервер 2002 выбирает должный уровень, соответствующий возможностям оконечного устройства, которому должны передаваться данные, среду передачи данных и т.п. и считывает данные выбранного уровня. Например, для персонального компьютера 2004 или планшетного устройства 2006 с высокой способностью обработки, распределительный сервер 2002 считывает высококачественные масштабируемые кодированные данные (BL+EL) 2011 из блока 2001 запоминающего устройства для хранения масштабируемых кодированных данных и передает масштабируемые кодированные данные (BL+EL) 2011 без изменения. С другой стороны, например, для AV-устройства 2005 или мобильного телефона 2007 с низкой способностью обработки, распределительный сервер 2002 извлекает данные базового уровня из масштабируемых кодированных данных (BL+EL) 2011 и передает масштабируемые кодированные данные (BL) 2012, являющиеся данными с тем же самым содержанием, что и масштабируемые кодированные данные (BL+EL) 2011, но с более низким качеством, чем масштабируемые кодированные данные (BL+EL) 2011.
Как описано выше, используя масштабируемые кодированные данные, объем данных может легко регулироваться и, таким образом, можно предупреждать возникновение задержки или переполнения и предотвращать ненужное увеличение нагрузки на оконечное устройство или среду передачи. Дополнительно, масштабируемые кодированные данные (BL+EL) 2011 уменьшаются по избыточности между уровнями и, таким образом, можно уменьшать объем данных, который будет меньше, чем когда в качестве кодированных данных каждого уровня используются индивидуальные данные. Таким образом, можно более эффективно использовать область памяти блока 2001 запоминающего устройства масштабируемых кодированных данных.
Дополнительно, поскольку в качестве оконечного устройства могут применяться различные устройства, от персонального компьютера 2004 до мобильного телефона 2007, характеристики аппаратурного обеспечения оконечных устройств различаются в зависимости от устройства. Дополнительно, поскольку оконечными устройствами могут выполняться различные приложения, программное обеспечение обладает различными возможностями. Дополнительно, в качестве сети 2003, служащей средой передачи данных, могут применяться все сети линий связи, содержащие проводную сеть или беспроводную сеть или ту и другую сети, такие как Интернет или локальная сеть (LAN), и, таким образом, обеспечиваются различные возможности передачи данных. Кроме того, изменения могут происходить из-за других средств передачи данных или т.п.
В этом отношении, распределительный сервер 2002 может быть выполнен с возможностью осуществления связи с оконечным устройством, служащим в качестве места назначения передачи данных, прежде чем начать передачу данных, и получения информации, относящейся к возможностям оконечного устройства, таким как технические характеристики оконечного устройства или характеристики приложения (программного обеспечения), исполняемого оконечным устройством, и информации, относящейся к среде передачи данных, такой как доступная ширина полосы сети 2003. Затем распределительный сервер 2002 может выбрать соответствующий уровень, основываясь на полученной им информации.
Дополнительно, извлечение уровня может выполняться в оконечном устройстве. Например, персональный компьютер 2004 может декодировать переданные масштабируемые кодированные данные (BL+EL) 2011 и отображать изображение базового уровня или изображение улучшенного уровня. Дополнительно, например, персональный компьютер 2004 может извлекать масштабируемые кодированные данные (BL) 2012 базового уровня из переданных масштабируемых кодированных данных (BL+EL) 2011, сохранять масштабируемые кодированные данные (BL) 2012 базового уровня, передавать масштабируемые кодированные данные (BL) 2012 базового уровня на другое устройство, декодировать масштабируемые кодированные данные (BL) 2012 базового уровня и отображать изображение базового уровня.
Конечно, количество блоков 2001 запоминающего устройства для масштабируемых кодированных данных, количество распределительных серверов 2002, количество сетей 2003 и количество оконечных устройств являются произвольными. Хотя приведенное выше описание было сделано на основе примера, в котором распределительный сервер 2002 передает данные оконечным устройствам, примеры применения этим примером не ограничиваются. Система 2000 передачи данных может применяться к любой системе, в которой, когда кодированные данные, сгенерированные посредством масштабируемого кодирования, передаются на оконечное устройство, соответствующий уровень выбирается согласно возможностям оконечных устройств или среды передачи данных и кодированные данные передаются.
В системе 2000 передачи данных настоящая технология применяется аналогично применению масштабируемого кодирования и масштабируемого декодирования, описанным в четвертом-восьмом вариантах осуществления, и, таким образом, могут быть получены те же самые результаты, что и результаты, описанные в четвертом-восьмом вариантах осуществления.
Вторая система
Масштабируемое кодирование используется для передачи, использующей множество сред передачи данных, например, как показано на фиг. 125.
В системе 2100 передачи данных, показанной на фиг. 125, вещательная станция 2101 передает масштабируемые кодированные данные (BL) 2121 базового уровня через наземное вещание 2111. Дополнительно, широковещательная станция 2101 передает масштабируемые кодированные данные (EL) 2122 улучшенного уровня (например, пакетирует масштабируемые кодированные данные (EL) 2122 и затем передает результирующие пакеты) через произвольную сеть 2112, выполненную с возможностью сети передачи данных, содержащей проводную сеть или беспроводную или оба типа сети.
Оконечное устройство 2102 обладает функцией приема для приема наземного вещания 2111, осуществляемого широковещательной станцией 2101, и принимает масштабируемые кодированные данные (BL) 2121 базового уровня через наземное вещание 2111. Оконечное устройство 2102 дополнительно имеет функцию передачи данных для осуществления связи через сеть 2112 и принимает масштабируемые кодированные данные (EL) 2122 улучшенного уровня, переданные через сеть 2112.
Оконечное устройство 2102 декодирует масштабируемые кодированные данные базового уровня (BL) 2121, полученные через наземное вещание 2111, например, в соответствии с командой пользователя или т.п., получает изображение базового уровня, сохраняет изображение и передает изображение на другое устройство.
Дополнительно, оконечное устройство 2102 объединяет масштабируемые кодированные данные базового уровня (BL) 2121, полученные через наземное вещание 2111, с масштабируемыми кодированными данными улучшенного уровня (EL) 2122, полученными через сеть 2122, например, в соответствии с командой пользователя или т.п., получает масштабируемые кодированные данные (BL+EL), декодирует масштабируемые кодированные данные (BL+EL), чтобы получить изображение улучшенного уровня, сохраняет полученное изображение и передает полученное изображение на другое устройство.
Как описано выше, можно передавать масштабируемые кодированные данные соответствующих уровней, например, через различные среды передачи данных. Таким образом, можно распределить нагрузку и можно предотвратить появление задержки или переполнения.
Дополнительно, можно в соответствии с ситуацией выбирать среду передачи данных, используемую при передаче для каждого уровня. Например, масштабируемые кодированные данные (BL) 2121 базового уровня с относительно большим объемом данных могут передаваться через среду передачи данных с широкой полосой пропускания и масштабируемые кодированные (EL) 2122 улучшенного уровня с относительно малым объемом данных могут передаваться через среду передачи данных с узкой полосой пропускания. Дополнительно, например, среда передачи данных, через которую передаются масштабируемые кодированные данные (EL) 2122 улучшенного уровня может переключаться между сетью 2112 и наземным вещанием 2112 в соответствии с используемой полосой пропускания сети 1112. Конечно, то же самое относится к данным любого уровня.
Посредством такого управления, как описано выше, можно дополнительно сдерживать увеличение нагрузки при передаче данных.
Несомненно, количество уровней является произвольным и количество сред передачи данных, используемых для передачи, также является произвольным. Дополнительно, количество оконечных устройств 2102, являющихся местами назначения при передаче данных, также является произвольным. Приведенное выше описание было сделано на примере вещания от вещательной станции 2101; однако пример применения этим примером не ограничиваются. Система 2100 передачи данных может применяться к любой системе, в которой кодированные данные, сгенерированные посредством масштабируемого кодирования, делятся на два или более блоков разных уровней и передаются по множеству линий.
В системе 2100 передачи данных настоящая технология применяется аналогично применению масштабируемого кодирования и масштабируемого декодирования, описанным в четвертом-восьмом вариантах осуществления, и, таким образом, могут быть получены те же самые результаты, что и результаты, описанные в четвертом-восьмом вариантах осуществления.
Третья система
Масштабируемое кодирование используется для хранения кодированных данных, например, как показано на фиг. 126.
В системе 2200 получения изображения, показанной на фиг. 126, устройство 2201 получения изображения выполняет масштабируемое кодирование данных изображения, полученного посредством получения изображения объекта 2211, и подает масштабируемые кодированные данные (BL+EL) 2221 на запоминающее устройство 2202 масштабируемых кодированных данных.
Запоминающее устройство 2202 для хранения масштабируемых кодированных данных хранит масштабируемые кодированные данные (BL+EL) 2221, поданные от устройства 2201 получения изображения, с качеством, соответствующим ситуации. Например, в обычном состоянии запоминающее устройство 2202 масштабируемых кодированных данных извлекает данные базового уровня из масштабируемых кодированных данных (BL+EL) 2221 и сохраняет данные в качестве масштабируемых кодированных данных (BL) 2222 базового уровня, имеющих малый объем данных с низким качеством. С другой стороны, например, в ситуации повышенного внимания, запоминающее устройство 2202 масштабируемых кодированных данных сохраняет масштабируемые кодированные данные (BL+EL) 2221, имеющие большой объем данных с высоким качеством, без изменения.
Соответственно, запоминающее устройство 2202 масштабируемых кодированных данных может сохранять изображение с высоким качеством, только когда это необходимо, и, таким образом, можно препятствовать увеличению объема данных и повышать эффективность использования области памяти, не допуская снижения ценности изображения из-за ухудшения качества.
Например, предположим, что устройство 2201 получения изображения является контрольной камерой. Когда цель контроля (например, злоумышленник) отсутствует на сфотографированном изображении (в течение обычного времени), содержание фотографического изображения, вероятно, должно быть несущественным и, таким образом, приоритет отдается уменьшению объема данных и данные изображения (масштабируемые кодированные данные) сохраняются с низким качеством. С другой стороны, когда на фотографическом изображении видна цель контроля в виде объекта 2211 (во время ситуации повышенного внимания), содержание фотографического изображения, вероятно, должно быть существенным и, таким образом, приоритет отдается качеству изображения и данные изображения (масштабируемые кодированные данные) сохраняются с высоким качеством.
Здесь ситуация обычного времени или требующая повышенного внимания может, определяться, например, анализируя изображение с использованием запоминающего устройства 2202 для хранения масштабируемых кодированных данных. Дополнительно, устройство 2201 получения изображения может выполнить определение и передать результат определения на запоминающее устройство 2202 масштабируемых кодированных данных.
Дополнительно, критерий определения для определения ситуации обычного времени или времени повышенного внимания произволен и содержание изображения, являющееся критерием определения, является произвольным. Конечно, критерием определения может быть условие, отличное от содержания изображения. Например, переключение может выполняться в соответствии с величиной или формой сигнала записанного звука, переключение может выполняться с определенными интервалами времени или переключение может выполняться в ответ на внешнюю команду, такую как команда пользователя.
В представленном выше описании был описан пример, в котором выполняется переключение между двумя состояниями, обычным временем и временем повышенного внимания, но количество состояний является произвольным. Например, переключение может выполняться между тремя или более состояниями, такими как обычное время, время повышенного внимания низкого уровня, время повышенного внимания, время повышенного внимания высокого уровня и т.п. Здесь верхний предел количества состояний переключения зависит от количества уровней масштабируемых кодированных данных.
Дополнительно, устройство 2201 получения изображений может определять количество уровней для масштабируемого кодирования в соответствии с состояниями. Например, в обычном состоянии устройство 2201 получения изображения может генерировать масштабируемые кодированные данные (BL) 2222 базового уровня, имеющие малый объем данных с низким качеством, и подавать масштабируемые кодированные данные (BL) 2222 на запоминающее устройство 2202 масштабируемых кодированных данных. Дополнительно, например, во время повышенного внимания устройство 2201 получения изображения может генерировать масштабируемые кодированные данные (BL+EL) 2221 базового уровня, имеющие большой объем данных с высоким качеством, и подавать масштабируемые кодированные данные (BL+EL) 2221 базового уровня на запоминающее устройство 2202 масштабируемых кодированных данных.
Приведенное выше описание сделано в связи с примером контрольной камеры, но назначение системы 2200 получения изображения является произвольным и не ограничивается контрольной камерой.
В системе 2200 получения изображения настоящая технология применяется аналогично применению масштабируемого кодирования и масштабируемого декодирования, описанных в четвертом-восьмом вариантах осуществления, и, таким образом, могут быть получены те же самые результаты, что и результаты, описанные в четвертом-восьмом вариантах осуществления.
14. Комплект, блок, модуль, процессор
Прочие варианты осуществления
Варианты осуществления выше были описаны в связи с примером устройства, системы или т.п. согласно настоящей технологии, но настоящая технология не ограничивается приведенными выше примерами и может быть реализована как любой компонент, установленный в устройство, как устройство, образующее систему, например, процессор, служащий в качестве системной LSI (большой интегральной схемы), как модуль, использующий множество процессоров или т.п., блок, использующий множество модулей или т.п., комплект (то есть, несколько компонент устройства), в котором к блоку добавляется любая другая функция, или т.п.
Видеокомплект
Пример, в котором настоящая технология реализуется как комплект, будет описан со ссылкой на фиг. 127. На фиг. 127 представлена примерная схемная конфигурация видеокомплекта, к которому применяется настоящая технология.
В последние годы функции электронных устройств стали весьма разнообразными и когда некоторые компоненты реализуются как товар для продажи, поставка или т.п. при разработке или изготовлении, существует много случаев, когда множество компонент, обладающих соответствующими функциями, объединяются и реализуются в виде комплекта с множеством функций, а также случаев, когда реализация осуществляется как компонент, обладающий единственной функцией.
Видеокомплект 2300, показанный на фиг. 127, имеет такую многофункциональную конфигурацию, в которой устройство, имеющее функцию, связанную с кодированием изображения и/или декодированием изображения (любая из них или обе), объединяется с устройством, имеющим любую другую функцию, связанную с этой функцией.
Как показано на фиг. 127, видеокомплект 2300 содержит группу модулей, таких как видеомодуль 2311, внешняя память 2312, модуль 2313 управления электропитанием, входной модуль 2314 и устройство с соответствующими функциями, такими как устройство 2321 связности, камера 2322 и датчик 2323.
Модуль является частью, имеющей множество функций, в которой интегрированы несколько соответствующих функций части. Конкретная физическая конфигурация является произвольной, но, например, осуществляется таким образом, что множество процессов, имеющих соответствующие функции, элементов электронной схемы, таких как резистор и конденсатор, и других устройств располагаются и интегрируются на проводной подложке. Дополнительно, с упомянутым модулем могут объединяться другой модуль или процессор, чтобы получить новый модуль.
В случае примера, показанного на фиг. 127, видеомодуль 2311 является объединением компонент с функциями, связанными с обработкой изображений, и содержит прикладной процессор, видеопроцессор, широкополосный модем 2333 и радиочастотный модуль 2334.
Процессором является устройство, в котором конфигурация, имеющая определенную функцию интегрируется в полупроводниковый кристалл посредством SoC (System On а Chip, система на кристалле) и также упоминается, например, как называемый системная большая интегральная схема, LSI или т.п. Конфигурация, обладающая определенной функцией, может быть логической схемой (конфигурацией аппаратурного обеспечения), может быть CPU, ROM, RAM и т.п., и программой (конфигурация программного обеспечения), исполняемой, используя CPU, ROM, RAM, и может быть комбинацией конфигурации аппаратурного обеспечения и конфигурации программного обеспечения. Например, процессор может содержать логические схемы, CPU, ROM, RAM и т.п., где некоторые функции реализуются логическими схемами (компонент аппаратурного обеспечения), а другие функции реализуются программой (компонент программного обеспечения), исполняемой CPU.
Прикладной процессор 2331, показанный на фиг. 127, является процессором, исполняющим прикладную программу, связанную с обработкой изображения. Приложение, исполняемое прикладным процессором 2331 может не только выполнять процесс вычислений, но также, по мере необходимости, управлять компонентами внутри и снаружи видеомодуля 2311, такими как видеопроцессор 2332, чтобы реализовывать определенную функцию.
Видеопроцессор 2332 является процессором, имеющим функции, связанные с кодированием изображения и/или декодированием изображения.
Широкополосный модем 2333 выполняет цифровую модуляцию данных (цифровой сигнал), которые должны передаваться посредством проводной и/или беспроводной широкополосной передачи данных, выполняемой через широкополосную линию, такую как Интернет или телефонная сеть общего пользования, и преобразует данные в аналоговый сигнал или демодулирует аналоговый сигнал, принятый при широкополосной передаче данных, и преобразует аналоговый сигнал в данные (цифровой сигнал). Например, широкополосный модем 2333 обрабатывает различную информацию, такую как данные изображения, обработанные видеопроцессором 2332, поток, содержащий кодированные данные изображения, прикладную программу или данные настройки.
Радиочастотный модуль 2334 является модулем, выполняющим процесс преобразования частоты, процесс модуляции/демодуляции, процесс усиления, процесс фильтрации и т.п. для радиочастотного (RF, Radio Frequency) сигнала, который передается/принимается через антенну. Например, радиочастотный модуль 2334 выполняет, например, преобразование частоты для группового сигнала, сгенерированного широкополосным модемом 2333, и генерирует радиочастотный сигнал. Дополнительно, например, радиочастотный модуль 2334 выполняет, например, преобразование частоты радиочастотного сигнала, принятого через входной модуль 2314, и генерирует групповой сигнал.
Дополнительно, как показано на фиг. 127 пунктирной линией 2341, прикладной процессор 2331 и видеопроцессор 2332 могут интегрироваться в единый процессор.
Внешнее устройство 2312 памяти устанавливается вне видеомодуля 2311 и содержит запоминающее устройство, используемое видеомодулем 2311. Запоминающее устройство внешнего устройства 2312 памяти может быть реализовано в любой физической конфигурации, но используется, в основном, для хранения данных большого объема, таких как данные изображения кадровых блоков, и, таким образом, желательно реализовывать запоминающее устройство внешнего устройства 2312 памяти, используя соответствующую полупроводниковую память на чипах большой емкости, таких как динамическая память с произвольным доступом (DRAM).
Модуль 2313 управления электропитанием руководит и управляет подачей электропитания на видеомодуль 2311 (соответствующие компоненты внутри видеомодуля 2311).
Входной модуль 2314 является модулем, обеспечивающим входную функцию (конечный участок схемы передачи/приема на стороне антенны) для радиочастотного модуля 2334. Как показано на фиг. 127, входной модуль 2314 содержит, например, блок 2351 антенны, фильтр 2352 и усилительный блок 2353.
Блок 2351 антенны содержит антенну, передающую/принимающую радиосигнал, и ее периферическую конфигурацию. Блок 2351 антенны передает сигнал, поданный от усилительного блока 2353, в качестве радиосигнала и подает принятый радиосигнал на фильтр 2352 в качестве электрического сигнала (радиочастотного сигнала). Фильтр 2352 выполняет, например, процесс фильтрации радиочастотного сигнала, принятого через блок 2351 антенны, и подает обработанный радиочастотный сигнал на радиочастотный модуль 2334. Усилительный блок 2353 усиливает радиочастотный сигнал, поданный от радиочастотного модуля 2334, и подает усиленный радиочастотный сигнал на блок 2351 антенны.
Модуль 2321 связности является модулем, обладающим функцией, связанной с внешним подключением. Физическая конфигурация модуля 2321 связности является произвольной. Например, модуль 2321 связности содержит конфигурацию, имеющую функцию связи, отличную от стандарта связи, поддерживаемого широкополосным модемом 2333, внешним терминалом ввода/вывода или т.п.
Например, модуль 2321 связности может содержать модуль, имеющий функцию связи на основе стандарта беспроводной связи, такого как Bluetooth (зарегистрированная торговая марка), IEEE 802.11 (например, Wi-Fi (Wireless Fidelity; зарегистрированная торговая марка)), NFC (Near Field Communication, связь в ближнем поле) и IrDA (InfraRed Data Association), и антенну, которая передает/принимает сигнал, удовлетворяющий стандарту или т.п. Дополнительно, например, модуль 2321 связности содержит модуль, имеющий функцию связи, основанную на стандарте проводной связи, таком как Universal Serial Bus (USB) или High-Definition Multimedia Interface (HDMI, мультимедийный интерфейс высокой четкости) (зарегистрированная торговая марка), или оконечное устройство, удовлетворяющее стандарту. Дополнительно, например, модуль 2321 связности может содержать любую другую функцию передачи данных (сигнала) или т.п., такую как аналоговое оконечное устройство ввода/вывода.
Дополнительно, модуль 2321 связности может содержать устройство назначения места передачи данных (сигнала). Например, модуль 2321 связности может содержать привод (в том числе, привод жесткого диска, SSD (Solid State Drive), а NAS (Network Attached Storage), или т.п., а также привод съемного носителя), выполняющий считывание данных или запись данных на носителе для записи, таком как магнитный диск, оптический диск, магнитно-оптический диск или полупроводниковая память. Дополнительно, модуль 2321 связности может содержать устройство вывода (монитор, громкоговоритель или т.п.) для вывода изображения или звука.
Камера 2322 является модулем, обладающим функцией фотографирования объекта и получения данных изображения объекта. Например, данные изображения, полученные при фотографировании камерой 2322 подаются на видеопроцессор 2322 и кодируются им.
Датчик 2323 является модулем, имеющим произвольную функцию датчика, такого как аудиодатчик, ультразвуковой датчик, оптический датчик, датчик освещенности, инфракрасный датчик, датчик изображения, датчик вращения, датчик угла, датчик угловой скорости, датчик скорости, датчик ускорения, датчик наклона, магнитный датчик идентификации, датчик удара или датчик температуры. Например, данные, которые обнаруживаются датчиком 2323, подаются на прикладной процессор 2331 и используются прикладной программой или т.п.
Конфигурация, описанная выше как модуль, может быть реализована как процессор и конфигурация, описанная как процессор, может быть реализована как модуль.
В видеокомплекте 2300, имеющем описанную выше конфигурацию, настоящая технология может быть применена к видеопроцессору 2332, как будет описано далее. Таким образом, видеокомплект 2300 может быть реализован как комплект, к которому применима настоящая технология.
Пример конфигурации видеопроцессора
На фиг. 128 схематично представлена примерная конфигурация видеопроцессора 2332 (фиг. 127), к которому применяется настоящая технология.
В примере, показанном на фиг. 128, видеопроцессор 2332 имеет функцию приема входного видеосигнала и аудиосигнала и кодирования видеосигнала и аудиосигнала в соответствии с определенным способом и функцию декодирования кодированных видеоданных и аудиоданных и воспроизведения и вывода видеосигнала и аудиосигнала.
Как показано на фиг. 128 видеопроцессор 2332 содержит блок 2401 входного видеопроцессора, первый блок 2402 увеличения/уменьшения изображения, второй блок 2403 увеличения/уменьшения изображения, блок 2404 выходного видеопроцессора, кадровую память 2405 и блок 2406 управления памятью. Видеопроцессор 2332 содержит механизм 2407 кодирования/декодирования, видеобуферы 2408А и 2408В элементарного потока (ES) и аудиобуферы 2409А и 2409В ES. Видеопроцессор 2332 дополнительно содержит аудиокодер 2410, аудиодекодер 2411; блок 2412 мультиплексирования (мультиплексор (MUX)) 2412; блок 2413 демультиплексирования (демультиплексор DMUX)) и потоковый буфер 2414.
Блок 2401 входного видеопроцессора, например, получает видеосигнал, поступающий от модуля 2321 связности (фиг. 127) или т.п., и преобразует полученный видеосигнал в цифровые данные изображения. Первый блок 2402 увеличения/уменьшения изображения выполняет, например, процесс преобразования формата и процесс увеличения/уменьшения изображения для данных изображения. Второй блок 2403 увеличения/уменьшения изображения выполняет процесс увеличения/уменьшения изображения для данных изображения в соответствии с форматом в месте назначения, в которое выводятся данные изображения через блок 2404 выходного видеопроцессора, или выполняет для данных изображения процесс преобразования формата и процесс увеличения/уменьшения изображения, которые идентичны процессам первого блока 2402 увеличения/уменьшения изображения. Блок 2404 выходного видеопроцессора выполняет преобразование формата и преобразование в аналоговый сигнал для данных изображения и выводит воспроизводимый видеосигнал, например, на модуль 2321 связности (фиг. 127) или т.п.
Фреймовая память 2405 является устройством памяти для данных изображения, которое совместно используется блоком 2401 входного видеопроцессора, первым блоком 2402 увеличения/уменьшения изображения, вторым блоком 2403 увеличения/уменьшения изображения, блоком 2404 выходного видеопроцессора и механизмом 2407 кодирования/декодирования. Фреймовая память 2405 реализуется, полупроводниковая память, такая как DRAM.
Блок 2406 управления памятью принимает сигнал синхронизации от механизма 2407 кодирования/декодирования и управляет доступом к кадровой памяти 2405 для записи/считывания в соответствии с графиком доступа для кадровой памяти 2405, записанным в таблице 2406А управления доступом. Таблица 2406А управления доступом обновляется блоком 2406 управления памятью в соответствии с процессом, выполняемым механизмом 2407 кодирования/декодирования, первым блоком 2402 увеличения/уменьшения изображения, вторым блоком 2403 увеличения/уменьшения изображения или т.п.
Механизм 2407 кодирования/декодирования выполняет процесс кодирования для кодирования данных изображения и процесс декодирования для декодирования видеопотока, являющегося данными, полученными кодированием данных изображения. Например, механизм 2407 кодирования/декодирования кодирует данные изображения, считанные из кадровой памяти 2405, и далее записывает кодированные данные изображения в видеобуфер 2408А ES в качестве видеопотока. Дополнительно, например, механизм 2407 кодирования/декодирования последовательно считывает видеопоток из видеобуфера 2408В ES, последовательно декодирует видеопоток и далее записывает декодированные данные изображения в кадровую память 1405. Во время таких процессов кодирования/декодирования механизм 2407 кодирования/декодирования использует кадровую память 2405 в качестве рабочей области. Дополнительно, механизм 2407 кодирования/декодирования выводит сигнал синхронизации на блок 2406 управления памятью, например, в момент запуска обработки каждого макроблока.
Видеобуфер 2408A ES буферирует видеопоток, сгенерированный механизмом 2407 кодирования/декодирования и затем подает видеопоток на блок 2412 мультиплексирования (MUX). Видеобуфер 2408В ES буферирует видеопоток, поданный от блока 2413 демультиплексирования (DMUX) и затем подает видеопоток на механизм 2407 кодирования/декодирования.
Аудиобуфер 2409А ES буферирует аудиопоток, сгенерированный аудиокодером 2410, и затем подает аудиопоток на блок 2412 мультиплексирования (MUX). Аудиобуфер 2409В ES буферирует аудиопоток, поданный от блока 2413 демультиплексирования (DMUX) и затем подает аудиопоток на аудиодекодер 2411.
Например, аудиокодер 2410 преобразует аудиосигнал, введенный, например, от модуля 2321 связности (фиг. 127) или т.п., цифровой сигнал и кодирует цифровой сигнал в соответствии с определенным способом, таким как, например, аудиоспособ MPEG или способ АС3 (AudioCode, номер 3). Аудиокодер 2410 последовательно записывает в аудиобуфер 2409А ES аудиопоток, являющийся данными, полученными кодированием аудиосигнала. Аудиодекодер 2411 декодирует аудиопоток, полученный от аудиобуфера 2409В ES, выполняет, например, преобразование в аналоговый сигнал и подает воспроизведенный аудиосигнал, например, на модуль 2321 связности (фиг. 127) или т.п.
Блок 2412 мультиплексирования (MUX) выполняет мультиплексирование видеопотока и аудиопотока. Способ мультиплексирования (то есть, форматирование битового потока посредством мультиплексирования) является произвольным. Дополнительно, во время мультиплексирования блок 2412 мультиплексирования (MUX) может добавлять в битовый поток определенную информацию заголовка или т.п. Другими словами, блок 2412 мультиплексирования (MUX) посредством процесса мультиплексирования может преобразовывать формат потока. Например, блок 2412 мультиплексирования (MUX) мультиплексирует видеопоток и аудиопоток, чтобы преобразовать их в транспортный поток, который является битовым потоком в формате передачи. Дополнительно, например, блок 2412 мультиплексирования (MUX) мультиплексирует видеопоток и аудиопоток, чтобы преобразовать их в данные (файловые данные) в формате файла записи.
Блок 2413 демультиплексирования (DMUX) демультиплексирует битовый поток, полученный мультиплексированием видеопотока и аудиопотока, используя способ, соответствующий мультиплексирования, выполняемому блоком 2412 мультиплексирования (MUX). Другими словами, блок 2413 демультиплексирования (DMUX) извлекает видеопоток и аудиопоток (разделяет видеопоток и аудиопоток) из битового потока, считанного из потокового буфера 2414. Другими словами, блок 2413 демультиплексирования (DMUX) может выполнять преобразование (инверсное преобразование для преобразования, выполненного блоком 2412 мультиплексирования (MUX)) формата потока, осуществляя процесс демультиплексирования. Например, блок 2413 демультиплексирования (DMUX) может получить транспортный поток, поданный, например, от модуля 2321 связности или от широкополосного модема 2333 (оба показаны на фиг. 127) через потоковый буфер 2414, и посредством демультиплексирования преобразовать транспортный поток в видеопоток и аудиопоток. Дополнительно, например, блок 2413 демультиплексирования (DMUX) может получить файловые данные, считанные с различных носителей для записи данных, например, модулем 2321 связности (фиг. 127) через потоковый буфер 2414, и посредством демультиплексирования преобразовать файловые данные в видеопоток и аудиопоток.
Потоковый буфер 2414 буферирует битовый поток. Например, потоковый буфер 2414 буферирует транспортный поток, поданный от блока 2412 мультиплексирования (MUX) и подает транспортный поток, например, на модуль 2321 связности или на широкополосный модем 2333 (оба показаны на фиг. 127) в определенные моменты времени или по полученному извне запросу или т.п.
Дополнительно, например, потоковый буфер 2414 буферирует файловые данные, поданные от блока 2412 мультиплексирования (MUX), подает файловые данные, например, на модуль 2321 связности (фиг. 127) или т.п. в определенные моменты времени или основываясь на запросе извне, и записывает файловые данные на различного рода носители для записи данных.
Дополнительно, потоковый буфер 2414 буферирует транспортный поток, поданный, например, от модуля 2321 связности или от широкополосного модема 2333 (оба показаны на фиг. 127), и подает транспортный поток на блок 2413 демультиплексирования (DMUX) в определенные моменты времени или основываясь на запросе извне или т.п.
Дополнительно, потоковый буфер 2414 буферирует файловые данные, считанные с различных носителей для записи данных, например, модулем 2321 связности (фиг. 127) или т.п., и подает файловые данные на блок 2413 демультиплексирования (DMUX) в определенные моменты времени или основываясь на переданном извне запросе или т.п.
Далее будет описана работа видеопроцессора 2332 с описанной выше конфигурацией. Видеосигнал, поданный на видеопроцессор 2332 например, от модуля 2321 связности (фиг. 127) или т.п., преобразуется в цифровые данные изображения в соответствии с заданным способом, таким как способ 4:2:2Y/Cb/Cr, блоком 2401 входного видеопроцессора и последовательно записывается в кадровую память 2405. Цифровые данные изображения считываются в первый блок 2402 увеличения/уменьшения изображения или во второй блок 2403 увеличения/уменьшения изображения, подвергаются процессу преобразования формата по определенному способу, такому как 4:2:0Y/Cb/Cr, и процессу увеличения/уменьшения и снова записываются в кадровую память 2405. Данные изображения кодируются механизмом 2407 кодирования/декодирования и записываются в видеобуфер 2408A ES в качестве видеопотока.
Дополнительно, аудиосигнал, поданный от модуля 2321 связности (фиг. 127) или т.п. на видеопроцессор 2332, кодируется аудиокодером 2410 и записывается в аудиобуфер 2409А ES в качестве аудиопотока.
Видеопоток, хранящийся в видеобуфере 2408А ES, и аудиопоток, хранящийся в аудиобуфере 2409A ES, считываются и мультиплексируются блоком 2412 мультиплексирования (MUX) 2412 и преобразуются в транспортный поток, файловые данные или т.п. Транспортный поток, сгенерированный блоком 2412 мультиплексирования (MUX), буферируется в потоковом буфере 2414 и затем выводится во внешнюю сеть, например, через модуль 2321 связности или широкополосный модем 2333 (оба показаны на фиг. 127). Дополнительно, файловые данные, сгенерированные блоком 2412 мультиплексирования (MUX), буферируются в потоковый буфер 2414, затем выводятся, например, на модуль 2321 связности (фиг. 127) или т.п., и записываются на различного рода носители для записи данных.
Дополнительно, транспортный поток, поданный на видеопроцессор 2332 из внешней сети, например, через модуль 2321 связности или широкополосный модем 2333 (оба показаны на фиг. 127), буферируется в потоковом буфере 2414 и затем демультиплексируется блоком 2413 демультиплексирования (DMUX). Кроме того, файловые данные, которые считываются с различных носителей для записи данных, например, модулем 2321 связности (фиг. 127) или т.п., и затем вводятся на видеопроцессор 2332, буферируются в потоковый буфер 2414 и затем демультиплексируются блоком 2413 демультиплексирования (DMUX) 2413. Другими словами, транспортный поток или файловые данные, введенные на видеопроцессор 2332, демультиплексируются блоком 2413 демультиплексирования (DMUX) на видеопоток и аудиопоток.
Аудиопоток подается на аудиодекодер 2411 через аудиобуфер 2409В ES, декодируется и полученный таким образом аудиосигнал воспроизводится. Дополнительно, видеопоток записывается в видеобуфер 2408В ES и последовательно считывается и декодируется механизмом 2407 кодирования/декодирования и записывается в кадровую память 2405. Декодированные данные изображения подвергаются процессу увеличения или уменьшения вторым блоком 2403 увеличения/уменьшения изображения и записываются в кадровую память 2405. Затем декодированные данные изображения считываются в блок 2404 выходного видеопроцессора, подвергаются процессу преобразования формата, выполняя преобразование в заданный формат, такой как способ 4:2:2Y/Cb/Cr, и преобразуются в аналоговый сигнал и полученный таким образом видеосигнал воспроизводится и выводится.
Когда настоящая технология применяется к видеопроцессору 2332 с описанной выше конфигурацией, предпочтительно, чтобы описанные выше варианты осуществления настоящей технологии применялись к механизму 2407 кодирования/декодирования. Другими словами, механизм кодирования/декодирования предпочтительно имеет, например, функции устройства кодирования изображения и устройства декодирования изображения, соответствующие описанному выше варианту осуществления. Соответственно, видеопроцессор 2332 может получать такие же результаты, как те, которые описаны выше со ссылкой на фиг. 1-118.
Дополнительно, в механизме кодирования/декодирования настоящая технология (то есть, функции устройств кодирования изображения или устройств декодирования изображения, соответствующих описанному выше варианту осуществления) может реализовываться аппаратурным обеспечением, таким как логическая схема, или программным обеспечением, таким как встроенная программа, или и тем и другим.
Другая примерная конфигурация видеопроцессора
На фиг. 129 схематично представлена примерная конфигурация видеопроцессора 2332 (фиг. 127), к которому применяется настоящая технология. В случае примера, показанного на фиг. 129, видеопроцессор 2332 имеет функцию кодирования и декодирования видеоданных согласно определенному способу.
Более конкретно, как показано на фиг. 129, видеопроцессор 2332 содержит блок 2511 управления, интерфейс 2512 отображения, механизм 2513 отображения, механизм 2514 обработки изображения и внутреннюю память 2515. Видеопроцессор 2332 содержит механизм 2516 кодека, интерфейс 2517 памяти, блок 2518 мультиплексирования/ демультиплексирования (MUX/DMUX); сетевой интерфейс 2519 и видеоинтерфейс 2520.
Блок 2511 управления управляет работой каждого блока обработки в видеопроцессоре 2332, таких как интерфейс 2512 отображения, механизм 2513 отображения, механизм 2514 видеопроцессора и механизм 2516 кодека.
Как показано на фиг. 129, блок 2511 управления содержит, например, основной процессор CPU 2531, подпроцессор 2532 и системный контроллер 2533. Основной CPU 2531 исполняет, например, программу управления работой каждого блока обработки в видеопроцессоре 2332. Основной CPU 2531 генерирует сигнал управления, например, в соответствии с программой и подает сигнал управления на каждый блок обработки (то есть, управляет работой каждого блока обработки). Подпроцессор 2532 играет вспомогательную роль для основного CPU 2531. Например, подпроцессор 2532 выполняет дочерний процесс или подпрограмму программ, выполняемых основным CPU 2531. Системный контроллер 2533 управляет операциями основного CPU 2531 и подпроцессора 2532, например, назначает программу, которая должна исполняться основным CPU 2531 и подпроцессором 2532.
Интерфейс 2512 отображения выводит данные изображения, например, на модуль 2321 связности (фиг. 127) или т.п. под управлением блока 2511 управления. Например, интерфейс 2512 отображения преобразует данные изображения, являющиеся цифровыми данными, в аналоговый сигнал и выводит аналоговый сигнал, например, на контрольное устройство модуля 2321 связности (фиг. 127) в качестве воспроизводимого видеосигнала или выводит данные изображения, являющиеся цифровыми данными, например, на устройство монитора модуля 2321 связности (фиг. 127).
Механизм 2513 отображения под управлением блока 2511 управления выполняет различного рода процессы преобразования, такие как процесс преобразования формата, процесс преобразования размера и процесс преобразования цветовой гаммы для данных изображения, чтобы подогнать их под технические требования к контрольному устройству, отображающему изображение.
Механизм 2514 обработки изображения под управлением блока 2511 управления выполняет для данных изображения определенный процесс обработки изображения, такой как процесс фильтрации для улучшения качества изображения.
Внутренняя память 2515 является памятью, установленной в видеопроцессоре 2332 и совместно используемой механизмом 2513 отображения, механизмом 2514 обработки изображения и механизмом 2516 кодека. Внутренняя память 2515 используется для обмена данными, выполняемого, например, между механизмом 2513 отображения, механизмом 2514 обработки изображения и механизмом 2516 кодека. Например, во внутренней памяти 2515 при необходимости хранятся данные, поданные от механизма 2513 отображения, механизма 2514 обработки изображения или механизма 2516 кодека, и данные подаются на механизм 2513 отображения, механизм 2514 обработки изображения или механизм 2516 кодека (например, в соответствии с запросом). Внутренняя память 2515 может быть реализована любым запоминающим устройством, но поскольку внутренняя память используется, главным образом, для хранения данных малого объема, таких, как данные изображения видеоблоков или параметров, желательно реализовывать внутреннюю память 2515, с использованием полупроводниковой памяти, имеющей относительно малую емкость (например, по сравнению с внешней памятью 2312) и высокое быстродействие, такую как SRAM (Static Random Access Memory, статическая память с произвольным доступом).
Механизм 2516 кодека выполняет процессы, связанные с кодированием и декодированием данных изображения. Например, механизм 2516 кодека может иметь функцию кодека, поддерживающую множество способов кодирования/декодирования, и выполнять кодирование данных изображения или декодирование кодированных данные, используя способ, выбранный из множества способов.
В примере, показанном на фиг. 129, механизм 2516 кодека, например, содержит MPEG-2 Video 2541, AVC/H.264 2543, HEVC/H.265 2545, HEVC/H.265 (масштабируемый) 2544, HEVC/H.265 (мультипроекционный) 2545 и MPEG-DASH 2551 в качестве функциональных блоков обработки, связанных с кодеком.
MPEG-2 Video 2541 является функциональным блоком кодирования или декодирования данных изображения, соответствующим способу MPEG-2. является функциональным блоком кодирования или декодирования данных изображения, соответствующим способу AVC. HEVC/H.265 2543 является функциональным блоком кодирования или декодирования данных изображения, соответствующим способу HEVC. HEVC/H.265 (масштабируемый) 2544 является функциональным блоком, выполняющим масштабируемое кодирование или масштабируемое декодирование данных изображения, соответствующим способу HEVC. HEVC/H.265 (мультипроекционный) 2545 является функциональным блоком, выполняющим мультипроекционное кодирование или мультипроекционное декодирование данных изображения, соответствующим способу HEVC.
MPEG-DASH 2551 является функциональным блоком передачи и приема данных изображения в соответствии с системой MPEG-Dynamic Adaptive Streaming over HTTP (MPEG-DASH). MPEG-DASH является технологией потокового видео, использующей протокол передачи гипертекста, HyperText Transfer Protocol, (HTTP), и имеющей особенность соответствующего выбора фрагмента из множества фрагментов кодированных данных, которые различаются по заранее подготовленной разрешающей способности или т.п. в блоках сегментов и передаче выбранного сегмента. MPEG-DASH 2551 выполняет генерирование потока, соответствующего стандарту, передачу управления потоком и т.п. и использует MPEG-2 Video 2541 - HEVC/H.265 (мультипроекционный) 2545 для кодирования и декодирования данных изображения.
Интерфейс 2517 памяти является интерфейсом, используемым для внешней памяти 2312. Данные, поданные от механизма 2514 обработки изображения или механизма 2516 кодека, подаются во внешнюю память 2312 через интерфейс 2517 памяти. Дополнительно, данные, считанные из внешней памяти 2312, подаются на видеопроцессор 2332 (механизм 2514 обработки изображения или механизм 2516 кодека) через интерфейс 2517 памяти.
Блок 2518 мультиплексирования/демультиплексирования (MUX DMUX) 2518 выполняет мультиплексирование или демультиплексирование различного рода данных, относящихся к изображению, таких как битовый поток кодированных данных, данные изображения и видеосигнал. Способ мультиплексирования/демультиплексирования является произвольным. Например, во время мультиплексирования блок 2518 мультиплексирования/демультиплексирования (MUX DMUX) может не только объединять множество данных в одни, но также добавлять к данным определенную информацию заголовка или т.п. Дополнительно, во время демультиплексирования блок 2518 мультиплексирования/демультиплексирования (MUX DMUX) может не только разделять одни данные на множество данных, но также добавлять к каждым из поделенных данных определенную информацию заголовка или т.п. Другими словами, блок 2518 мультиплексирования/демультиплексирования (MUX DMUX) посредством мультиплексирования и демультиплексирования может преобразовывать формат данных. Например, блок 2518 мультиплексирования/демультиплексирования (MUX DMUX) может мультиплексировать битовый поток, который должен преобразовываться в транспортный поток, служащий в качестве битового потока формата преобразования или данных (файловых данных) формата записи файлов. Конечно, посредством демультиплексирования также может выполняться инверсное преобразование.
Сетевой интерфейс 2519 является интерфейсом, например, для широкополосного модема 2333 или для модуля 2321 связности (оба показаны на фиг. 127). Видеоинтерфейс 2520 является интерфейсом, например, для модуля 2321 связности или для камеры 2322 (оба показаны на фиг. 127).
Далее будет описан пример работы такого видеопроцессора 2332. Например, когда транспортный поток принимается от внешней сети, например, через модуль 2321 связности или широкополосный модем 2333 (оба показаны на фиг. 127), транспортный поток подается на блок 2518 мультиплексирования/демультиплексирования (MUX DMUX) через сетевой интерфейс 2519, демультиплексируется и затем декодируется механизмом 2516 кодека. Данные изображения, полученные декодированием, выполняемым механизмом 2516 кодека, подвергаются определенной обработке изображения, выполняемой, например, механизмом 2514 обработки изображения, подвергаются определенному преобразованию, выполняемому механизмом 2513 отображения, и подаются, например, на модуль 2321 связности (фиг. 127) или т.п. через интерфейс 2512 отображения и, таким образом, изображение отображается на мониторе. Дополнительно, например, данные изображения, полученные декодированием, выполняемым механизмом 2516 кодека, снова кодируются механизмом 2516 кодека, мультиплексируются блоком 2518 мультиплексирования/демультиплексирования (MUX DMUX), чтобы быть преобразованными в файловые данные, выводятся, например, на модуль 2321 связности (фиг. 127) или т.п. через видеоинтерфейс 2520 и затем записываются на различного рода носители для записи данных.
Дополнительно, например, файловые данные или кодированные данные, полученные кодированием данных изображения, считанных модулем 2321 связности (фиг. 127) или т.п. с носителя для записи данных (не показан), подаются на блок 2518 мультиплексирования/демультиплексирования (MUX DMUX) через видеоинтерфейс 2520, демультиплексируются и декодируются механизмом 2516 кодеком. Данные изображения, полученные декодированием, выполняемым механизмом 2516 кодека, подвергаются определенной обработке изображения, выполняемой механизмом 2514 обработки изображения, подвергаются определенному преобразованию, выполняемому механизмом 2513 отображения, и подаются, например, на модуль 2321 связности (фиг. 127) или т.п. через интерфейс 2512 отображения и, таким образом, изображение отображается на мониторе. Дополнительно, например, данные изображения, полученные декодированием, выполняемым механизмом 2516 кодека, снова кодируются механизмом 2516 кодека, мультиплексируются блоком 2518 мультиплексирования/демультиплексирования (MUX DMUX), чтобы быть преобразованными в транспортный поток, подаются, например, на модуль 2321 связности или на широкополосный модем (оба показаны на фиг. 127) через сетевой интерфейс 2519 и передаются на другое устройство (не показано).
Дополнительно, между процессорными блоками в видеопроцессоре 2332 происходит передача данных изображения или других данных, например, используя внутреннюю память 2515 или внешнюю память 2312. Дополнительно, модуль 2313 управления электропитанием управляет, например, электропитанием, подаваемым на блок 2511 управления.
Когда настоящая технология применяется к видеопроцессору 2332 с описанной выше конфигурацией, предпочтительно применять к механизму 2516 кодека описанные выше варианты осуществления настоящей технологии. Другими словами, например, предпочтительно, механизм 2516 кодека имеет функциональный блок реализации устройства кодирования изображения и устройства декодирования изображения, соответствующие описанному выше варианту осуществления. Дополнительно, например, когда механизм 2516 кодека действует как описано выше, видеопроцессор 2332 может иметь те же самые результаты, что и результаты, описанные выше со ссылкой на фиг. 1-118.
Дополнительно, в механизме 2516 кодека настоящая технология (то есть, функции устройств кодирования изображения или устройств декодирования изображения, соответствующих описанному выше варианту осуществления) может реализовываться аппаратурным обеспечением, таким как логическая схема, или программным обеспечением, таким как встроенная программа, или и тем и другим.
Выше были описаны две примерные конфигурации видеопроцессора 2332, но конфигурация видеопроцессора 2332 является произвольной и может быть конфигурацией, отличной от описанных выше двух примерных конфигураций. Дополнительно, видеопроцессор 2332 может быть выполнен в виде единого полупроводникового чипа, либо в виде множества полупроводниковых чипов. Например, видеопроцессор 2332 может быть выполнен в виде трехмерной слоистой LSI, в которой множество полупроводников располагаются слоями. Дополнительно, видеопроцессор 2332 может быть реализован посредством множества LSI.
Примеры применения в устройствах
Видеокомплект 2300 может быть встроен в различные устройства, обрабатывающие данные изображения. Например, видеокомплект 2300 может быть встроен в телевизионное устройство 1900 (фиг. 120), мобильный телефон 1920 (фиг. 121), устройство 1940 записи и воспроизведения (фиг. 122), устройство 1960 получения изображения (фиг. 123) или т.д. Соответственно, при встраивании видеопроцессора 2300 устройства могут получать такие же результаты, как те, которые описаны выше со ссылкой на фиг. 1-118.
Дополнительно, видеокомплект 2300 может также быть введен в оконечное устройство, такое как персональный компьютер 2004, AV-устройство 2005, планшетное устройство 2006 или мобильный телефон 2007 в системе 2000 передачи данных, показанной на фиг. 124, в вещательную станцию 2101 и оконечное устройство 2102 в системе 2100 передачи данных, показанной на фиг. 125, или в устройство 2201 получения изображения или в запоминающее устройство 2202 масштабируемых кодируемых данных в системе 2200 получения изображения, показанной на фиг. 126. Соответственно, при встраивании видеопроцессора 2300 устройства могут получать такие же результаты, как те, которые описаны выше со ссылкой на фиг. 1-118.
Дополнительно, когда компонент содержит видеокомплект 2322, каждый компонент видеокомплекта 2300 может реализовываться как компонент, к которому применима настоящая технология. Например, только видеопроцессор 2332 может быть выполнен как видеопроцессор, к которому применима настоящая технология. Дополнительно, например, процессоры, указанные пунктирной линией 2341, как описано выше, видеомодуль 2311 или т.п. могут быть реализованы, например, как процессор или модуль, к которому применяется настоящая технология. Дополнительно, например, комбинация видеомодуля 2311, внешней памяти 2312, модуля 2313 управления электропитанием и входного модуля 2314 может быть реализована в виде видеоблока 2361, к которому применима настоящая технология. Эти конфигурации могут иметь те же самые результаты, что и результаты, описанные выше со ссылкой на фиг. 1-118.
Другими словами, любая конфигурация, которая содержит видеопроцессор 2332, может быть встроена в различного рода устройства, обрабатывающие данные изображения, аналогично случаю видеокомплекта 2300. Например, видеопроцессор 2332, процессоры, обозначенные пунктирной линией 2341, видеомодуль 1311 или видеоблок 2361 могут быть встроены в телевизионное устройство 1900 (фиг. 120), мобильный телефон 1920 (фиг. 121), устройство 1940 записи/воспроизведения (фиг. 122), устройство 1960 получения изображения (фиг. 123), оконечное устройство, такое как персональный компьютер 2004, AV-устройство 2005, планшетное устройство 2006 или мобильный телефон 2007 в системе 2000 передачи данных, показанной на фиг. 124, широковещательная станция 2101 или оконечное устройство 2102 в системе 2100 передачи данных, показанной на фиг. 125, и устройство 2201 получения изображения или запоминающее устройство 2202 масштабируемых кодированных данных в системе 2200 получения изображения, показанной на фиг. 126, или т.п. Дополнительно, при встраивании конфигурации, к которой применяется настоящая технология, устройства могут получать такие же результаты, как те, которые описаны выше со ссылкой на фиг. 118, аналогично видеокомплекту 2300.
15. Примеры применения системы воспроизведения контента для MPEG-DASH
Пример применения MPEG-DASH
Настоящая технология может также применяться к системе выбора соответствующих данных из числа множества фрагментов кодированных данных, имеющих различные разрешающие способности, которые подготовлены заранее в блоках сегментов, и использующей выбранные данные, например, в системе воспроизведения контента потока HTTP или в системе беспроводной связи по стандарту Wi-Fi, такой как система MPEG DASH, которая будет описана дальше.
Краткие сведения о системе воспроизведения контента
Сначала, со ссылкой на фиг. 130-132 кратко описывается система воспроизведения контента, к которой применима настоящая технология. 130 to 132.
Базовая конфигурация, являющаяся общей для вариантов осуществления, будет описана ниже со ссылкой на фиг. 130 и 131.
На фиг. 130 показана конфигурация системы воспроизведения контента. Как показано на фиг. 130, система воспроизведения контента содержит серверы 2610 и 2611 контента, сеть 2612 и устройство 2620 воспроизведения контента (клиентское устройство).
Серверы 2610 и 2611 контента и устройство 2620 воспроизведения контента соединяются друг с другом через сеть 2612. Сеть 2612 является проводным или беспроводным трактом передачи для информации, передаваемой от устройства, соединенного с сетью 2612.
Например, сеть 2612 может содержать сеть общего пользования, такую как Интернет, телефонную сеть общего пользования или сеть спутниковой связи, различного рода локальные сети (LAN), в том числе Ethernet (зарегистрированная торговая марка), глобальная сеть (WAN) или т.п. Дополнительно, сеть 2612 может содержать сеть выделенных линий, такую как виртуальная частная сеть по протоколу Интернет, Internet protocol-virtual private network (IP-VPN).
Сервер 2610 контента кодирует данные контента и генерирует и сохраняет файл данных, содержащий кодированные данные и метаинформацию кодированных данных. Когда сервер 2610 контента генерирует файл данных формата МР4, кодированные данные соответствуют "mdat" и метаинформация соответствует "moov".
Дополнительно, данные контента могут быть музыкальными данными, такими как музыка, лекция или радиопрограмма, видеоданными, такими как кинофильм, телевизионная программа, видеопрограмма, фотография, документ, живопись и графика, игры, программное обеспечение или т.п.
Здесь, сервер 2610 контента генерирует множество файлов данных одного и того же контента, но с разными битовыми скоростями. Дополнительно, в ответ на запрос воспроизведения контента, принятый от устройства 2620 воспроизведения контента, сервер 2611 контента вводит информацию о параметре, добавленную к соответствующему URL устройством 2620 воспроизведения контента, в информацию URL сервера 2610 контанта и передает результирующую информацию на устройство 2620 воспроизведения контента. Подробности будут описаны ниже со ссылкой на фиг. 131.
На фиг. 131 представлен поток данных в системе воспроизведения контента, показанной на фиг. 130. Сервер 2610 контента кодирует одни и те же данные контента с разными битовыми скоростями, например, файл А - со скоростью 2 Мб/с, файл В - со скоростью 1,5 Мб/с и файл С со скоростью 1 Мб/с, как показано на фиг. 131. Относительно, файл А имеет высокую битовую скорость, файл В имеет стандартную битовую скорость и файл С имеет низкую битовую скорость.
Дополнительно, кодированные данные каждого файла делятся на множество сегментов, как показано на фиг. 131. Например, кодированные данные файла А делятся на такие сегменты, как "A1," "А2," "A3", …, и "An," кодированные данные файла В делятся на такие сегменты, как "B1," "В2," "В3", …, и "Bn" и кодированные данные файла С делятся на такие сегменты, как "C1," "С2," "С3", …, и "Cn".
Дополнительно, каждый сегмент может быть выполнен со структурой конфигурации, отличной от одного или более фрагментов кодированных видеоданных и кодированных аудиоданных, которая начинается со стоковой структуры МР4 (например, IDR-картинка при видеокодировании AVC/H.264) и может воспроизводиться независимо. Например, когда видеокадры 30 кадров/с кодируются группой картинки, Group of Picture (GOP), имеющей фиксированную длину 15 кадров, каждый сегмент может кодировать видеоданные и аудиоданные за 2 секунды, соответствующие 4 GOP, или может кодировать видеоданные и аудиоданные за 10 секунд, соответствующих 20 GOP.
Дополнительно, сегменты, которые являются одними и теми же в порядке расположения в каждом файле, имеют одни и те же диапазоны воспроизведения (диапазоны расположения по времени относительно заголовка контента). Например, диапазоны воспроизведения сегмента "А2", сегмента "В2" и сегмента "С2" являются одинаковыми, и когда каждый сегмент является кодированными данными по 2 секунды, диапазоны воспроизведения сегмента "А2", сегмента "В2" и сегмента "С2" составляют 2-4 секунды контента.
Когда файл А - файл С выполнены в виде множества сегментов, сервер 2610 контента сохраняет файл А - файл С. Дополнительно, как показано на фиг. 131, сервер 2610 контента последовательно передает сегменты, образующие различные файлы, на устройство 2620 воспроизведения контента и устройство 2620 воспроизведения контента выполняет потоковое воспроизведение для принятых сегментов.
Здесь, сервер 2610 контента, соответствующий настоящему варианту осуществления, передает файл плей-листа (здесь далее, "описание медиапрезентации (MPD)), содержащий информацию о битовой скорости и информацию о доступе для каждых кодированных данных, на устройство 2620 воспроизведения контента и устройство 2620 воспроизведения контента выбирает любую из множества битовых скоростей, основываясь на MPD, и запрашивает сервер 2610 контента, чтобы передать сегмент, соответствующий выбранной битовой скорости.
На фиг. 130 показан только один сервер 2610 контента, но настоящее раскрытие не ограничивается этим примером.
На фиг. 132 показан конкретный пример MPD. MPD содержит информацию о доступе для множества фрагментов кодированных данных, имеющих разные битовые скорости (полосы пропускания), как показано на фиг. 132. Например, MPD, показанное на фиг. 132, указывает, что существуют кодированные данные с 256 Кб/с, кодированные данные с 1,024 Мб/с, кодированные данные с 1,384 Мб/с, кодированные данные с 1,536 Мб/с и кодированные данные с 2,048 Мб/с, и содержит информацию о доступе, связанную с каждыми кодированными данными. Устройство 2620 воспроизведения контента может динамически изменять битовую скорость кодированных данных, подвергающихся потоковому воспроизведению, основываясь на MPD.
Дополнительно, на фиг. 130 показан мобильный терминал как пример устройства 2620 воспроизведения контента, но устройство 2620 воспроизведения контента не ограничивается этим примером. Например, устройство 2620 воспроизведения контента может быть устройством обработки информации, таким как персональный компьютер (PC), устройство обработки домашнего видео (DVD-рекордер, видеокассетный рекордер (VCR)), персональные цифровые помощники (PDA), домашний игровой автомат или бытовая электроаппаратура. Дополнительно, устройство 2620 воспроизведения контента может быть устройством обработки информации, таким как мобильный телефон, система для персональных мобильных телефонов (PHS), портативный музыкальный плеер, портативный видеоплеер или портативный игровой автомат.
Конфигурация сервера 2610 контента
Общие сведения о системе воспроизведения контента были описаны со ссылкой на фиг. 130-132. Далее, конфигурация сервера 2610 контента будет описана со ссылкой на фиг. 133.
На фиг. 133 представлена функциональная блок-схема, показывающая конфигурацию сервера 2610 контента. Как показано на фиг. 133, сервер 2610 контента содержит блок 2631 генерирования файла, блок 2632 запоминающего устройства и блок 2633 связи.
Блок 2631 генерирования файла содержит кодер 2641, который кодирует данные контента и генерирует множество фрагментов кодированных данных, имеющих разные битовые скорости для одного и того же контента и MPD. Например, когда генерируются кодированные данные с 256 Кб/с, кодированные данные с 1,024 Мб/с, кодированные данные с 1,384 Мб/с, кодированные данные с 1,536 Мб/с и кодированные данные с 2,048 Мб/с, блок 2631 генерирования файла генерирует MPD, как показано на фиг. 132.
Блок 2632 запоминающего устройства сохраняет множество фрагментов кодированных данных, имеющих разные битовые скорости, и MPD, сгенерированное блоком 2631 генерирования файла. Блок 2632 запоминающего устройства может быть носителем для хранения данных, таким как энергонезависимая память, магнитный диск, оптический диск или магнитооптический диск (МО). Примерами энергонезависимой памяти могут быть электрически стираемая программируемая постоянная память (EEPROM) или стираемая программируемая постоянная память (EPROM). В качестве магнитного диска существуют жесткий диск, магнитный диск типа дискеты и т.п. Дополнительно, в качестве оптического диска существуют компакт-диск (CD) а записываемым цифровой универсальный диск (DVD-R), диск Blu-ray (BD) (зарегистрированная торговая марка) и т.п.
Блок 2633 связи является интерфейсом для устройства 2620 воспроизведения контента и осуществляет связь с устройством воспроизведения контента через сеть 2612.
Для дополнительного уточнения, блок связи 2633 имеет функцию сервера НТТР связи с устройством 2620 воспроизведения контента, соответствующим НТТР. Например, блок 2633 связи передает MPD на устройство 2620 воспроизведения контента, извлекает из блока 2632 запоминающего устройства запрошенные кодированные данные, основываясь на MPD от устройства 2620 воспроизведения контента, соответствующего HTTP, и передает кодированные данные на устройство 2620 воспроизведения контента в качестве реакции HTTP.
Конфигурация устройства 2620 воспроизведения контента
Выше была описана конфигурация сервера 2610 контента, соответствующего настоящему варианту осуществления. Далее конфигурация устройства 2620 воспроизведения контента будет описана со ссылкой на фиг. 134.
На фиг. 134 представлена функциональная блок-схема, показывающая конфигурацию устройства 2620 воспроизведения контента. Как показано на фиг. 134, устройство 2620 воспроизведения контента содержит блок 2651 связи, блок 2652 запоминающего устройства, блок 2653 воспроизведения, блок 2654 выбора и блок 2656 получения текущего местоположения.
Блок 2651 связи является интерфейсом с сервером 2610 контента, запрашивает в сервера 2610 контента передачу данных и получает данные от сервера 2610 контента. Для дополнительного уточнения, блок связи 2651 имеет функцию клиента HTTP, осуществляющего связь с устройством 2620 воспроизведения контента, соответствующим HTTP. Например, блок 2651 связи может выборочно получать MPD и сегменты кодированных данных от сервера 2610 контента, используя диапазон HTTP.
Блок 2652 запоминающего устройства сохраняет различного рода фрагменты информации, относящиеся к воспроизведению контента. Например, сегменты, полученные от сервера 2610 контента блоком 2651 связи один за другим буферируются. Сегменты кодированных данных, буферированные в блоке 2652 запоминающего устройства последовательно подаются на блок 2653 воспроизведения способом FIFO (первым вошел, первым выше).
Дополнительно, блок 2652 запоминающего устройства добавляет параметр к URL с помощью блока 2651 связи, основываясь на команде добавления команды к URL контента, который описывается в MPD и запрашивается от сервера 2611 контента, который будет описан позже, и сохраняет определение для доступа URL.
Блок 2653 воспроизведения последовательно воспроизводит сегменты, поданные из блока 2652 запоминающего устройства. Конкретно, блок 2653 воспроизведения выполняет декодирование сегментов, D/A-преобразование, визуализацию и т.п.
Блок 2654 выбора последовательно выбирает, получают ли сегмент кодированных данных, соответствующий любой одной из битовых скоростей, содержащихся в MPD, в одном и том же контенте. Например, когда блок 2654 выбора последовательно выбирает сегменты "А1", "В2" и "A3", соответствующие полосе частот сети 2612, блок 2651 связи последовательно получает сегменты "A1", "В2" и "A3" от сервера 2610 контента, как показано на фиг. 131.
Блок 2656 получения текущего местоположения может быть образован модулем, который получает текущее местоположение устройства 2620 воспроизведения контента, например, получает текущее местоположение приемника глобальной системы навигации и определения местоположения (GPS) или т.п. Дополнительно, блок 2656 получения текущего местоположения может получать текущее местоположение устройства 2620 воспроизведения контента, используя беспроводную сеть.
Конфигурация сервера 2611 контента
На фиг. 135 представлена примерная конфигурация сервера 2611 контента. Как показано на фиг. 135, сервер 2611 контента содержит блок 2671 запоминающего устройства и блок 2672 связи.
Блок 2671 запоминающего устройства сохраняет информацию URL для MPD. Информация URL для MPD передается от сервера 2611 контента устройству 2620 воспроизведения контента в соответствии с запросом, принятым от устройства 2620 воспроизведения контента, которое запрашивает воспроизведение контента. Дополнительно, когда информация URL для MPD подается на устройство 2620 воспроизведения контента, блок 2671 запоминающего устройства сохраняет информацию об определении, используемую, когда устройство 2620 воспроизведения контента добавляет к URL параметр, описанный в MPD.
Блок 2672 связи является интерфейсом для устройства 2620 воспроизведения контента и осуществляет связь с устройством воспроизведения контента через сеть 2612. Другими словами, блок 2672 связи принимает запрос информации URL для MPD от устройства 2620 воспроизведения контента, которое запрашивает воспроизведение контента, и передает информацию URL для MPD на устройство 2620 воспроизведения контента. URL для MPD, переданный от блока 2672 связи, содержит информацию, к которой посредством блока 2620 воспроизведения контента добавляется параметр.
Для параметра, добавляемого к URL для MPD, с помощью устройства 2620 воспроизведения контента различные установки могут выполняться, основываясь не информации об определении, совместно используемой сервером 2611 контента и устройством 2620 воспроизведения контента. Например, к URL для MPD с помощью устройства 2620 воспроизведения контента может добавляться такая информация, как текущее местоположение устройства 2620 воспроизведения информации, идентификатор (ID) пользователя, использующий устройство 2620 воспроизведения контента, размер памяти устройства 2620 воспроизведения контента и емкость запоминающего устройства устройства 2620 воспроизведения контента.
В системе воспроизведения контента с описанной выше конфигурацией, такой, к которой применяется описанная выше настоящая технология со ссылкой на фиг. 1-118, могут быть получены те же самые результаты, что и результаты, описанные выше со ссылкой на фиг. 1-118.
Другими словами, кодер сервера 2610 контента имеет функцию устройства кодирования изображения, соответствующую описанному выше варианту осуществления. Дополнительно, блок 2653 воспроизведения устройства 2620 воспроизведения контента имеет функцию устройства декодирования изображения, соответствующую описанному выше варианту осуществления. Таким образом, можно сдерживать увеличение емкости хранения, необходимой для кодирования и декодирования.
Дополнительно, в системе воспроизведения контента, когда передаются и принимаются данные, кодированные в соответствии с настоящей технологией, можно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
16. Примеры применения системы беспроводной связи по стандарту Wi-Fi
Примеры применения системы беспроводной связи по стандарту Wi-Fi
Далее будет описан пример основных операций устройства беспроводной связи в системе беспроводной связи, к которой применима настоящая технология.
Пример основных операций устройства беспроводной связи
Сначала передаются и принимаются беспроводные пакеты, пока не будет установлено соединение равноправных устройств (Р2Р), и используется конкретное приложение.
Затем, прежде чем соединение будет установлено на втором уровне, беспроводные пакеты передаются и принимаются до тех пор, пока не будет назначено конкретное приложение для использования, затем устанавливается соединение Р2Р и работает конкретное приложение. Затем, после того, как соединение установлено на втором уровне, передаются и принимаются беспроводные пакеты для активации конкретного приложения.
Пример связи при начале работы конкретного приложения
На фиг. 136 и 137 представлены карты последовательности операций, на которых показан примерный процесс осуществления связи устройствами, служащими основой беспроводной связи, как пример передачи и приема беспроводных пакетов, пока не установлено равноправное соединение (Peer to Peer, Р2Р) и не начнет работу конкретное приложение. Конкретно, описывается пример процесса установления прямого соединения, устанавливающего соединение по стандарту Wi-Fi Direct (также называемому "Wi-Fi Р2Р"), принятому Wi-Fi Alliance.
Здесь, в Wi-Fi direct, множество беспроводных устройств связи обнаруживают присутствие беспроводного устройства связи другой стороны (обнаружение устройства и обнаружение обслуживания). Дополнительно, когда выбор устройства связи выполнен, выполняется аутентификация устройств между выбранными устройствами через Wi-Fi protected setup (WPS) и затем устанавливается прямое соединение. В Wi-Fi direct множество беспроводных устройств связи принимают решение принять на себя обязанности ведущего устройства (владельца группы) или ведомого устройства (клиента) и формируют группу связи.
Здесь, в примерном процессе связи передача и прием отдельных пакетов не показываются. Например, во время первого соединения обмен пакетами для использования WPS не обязателен, как описано выше, и обмен пакетами также необходим при обмене запросом/ответом аутентификации или т.п. Однако, на фиг. 136 и 137 такой обмен пакетами не показан и показаны только второе и последующие соединения.
Дополнительно, на фиг. 136 и 137 показан примерный процесс связи между первым беспроводным устройством 2701 связи и вторым беспроводным устройством 2702 связи, но то же самое относится к процессу связи между другими беспроводными устройствами связи.
Сначала между первым устройством 2701 беспроводной связи и вторым устройством 2702 (2711) беспроводной связи выполняется обнаружение устройства. Например, первое устройство 2701 беспроводной связи передает пробный запрос (сигнал запроса ответа) и принимает пробный ответ (ответный сигнал) на пробный запрос от второго устройства 2702 беспроводной связи. Таким образом, первое устройство 2701 беспроводной связи и второе устройство 2702 беспроводной связи могут обнаруживать присутствие друг друга. Дополнительно, посредством обнаружения устройств можно получить название или тип устройства (TV, PC, смартфон или т.п.) другой стороны.
Затем между первым устройством 2701 беспроводной связи и вторым устройством 2702 (2712) беспроводной связи выполняется обнаружение обслуживания. Например, первое устройство 2701 беспроводной связи передает запрос обнаружения обслуживания, запрашивающий обслуживание, поддержанный вторым устройством беспроводной связи 2702 обнаруженным при обнаружении устройств. Затем первое устройство 2701 беспроводной связи может получить обслуживание, поддерживаемое вторым устройством 2702 беспроводной связи, принимая ответ с обнаружением обслуживания от второго устройства 2702 беспроводной связи. Другими словами, посредством обнаружения обслуживания можно получить, например, обслуживание, осуществляемое другой стороной. Например, обслуживание, исполняемое другой стороной, является обслуживанием или протоколом (digital living network alliance (DLNA), digital media renderer (DMR), или т.п.).
Затем пользователь выполняет операцию (операцию выбора партнера для соединения) выбора партнера для соединения (2713). Операция выбора партнера для соединения может быть выполнена только в одном первом устройстве 2701 беспроводной связи или в одном втором устройстве 2702 беспроводной связи. Например, экран с выбором партнера для соединения отображается на блоке отображения первого устройства 2701 беспроводной связи и второе устройство 2702 беспроводной связи выбирается посредством операции пользователя на экране с выбором партнера для соединения в качестве партнера для соединения.
Когда пользователь выполняет операцию (2713) выбора партнера для соединения, проводятся переговоры владельца группы между первым устройством 2701 беспроводной связи и вторым устройством 2702 (2714) беспроводной связи. В примере, показанном на фиг. 136 и 137, в результате переговоров владельца группы первое устройство 2701 беспроводной связи становится владельцем 2715 группы и второе устройство 2702 беспроводной связи становится клиентом 2716.
Затем процессы (2717-2720) выполняются между первым устройством 2701 беспроводной связи и вторым устройством 2702 беспроводной связи и, таким образом, устанавливается прямое соединение. Другими словами, последовательно проводятся ассоциация, (установление связи L2 (второго уровня)) (2717) и установление защищенного звена связи (этап 2718). Дополнительно, последовательно проводятся назначение IP-адреса (2719) и установка L4 (2720) в L3 посредством простого протокола обнаружения обслуживания SSDP. Дополнительно, L2 (уровень 2) означает второй уровень (уровень звена передачи данных), L3 (уровень 3) означает третий уровень (сетевой уровень) и L4 (уровень 4) означает четвертый уровень (транспортный уровень).
Пользователь затем выполняет операцию назначения или операцию запуска конкретного приложения (операция назначения/запуска приложения) (этап 2721). Операция назначения/запуска приложения может выполняться только в одном первом устройстве 2701 беспроводной связи или в одном втором устройстве 200 беспроводной связи. Например, экран операции назначения/запуска приложения отображается на блоке отображения первого устройства 2701 беспроводной связи и конкретное приложение выбирается на экране назначения/запуска приложения в соответствии с операцией пользователя.
Когда пользователь выполняет операцию (этап 2721) назначения/запуска приложения, между первым устройством 2701 беспроводной связи и вторым устройством 2702 (2722) беспроводной связи выполняется конкретное приложение, соответствующее этой операции назначения/запуска приложения.
Здесь, соединение считается выполненным между станциями точек доступа (АР-STA) в рамках технических требований (технических требований, закрепленных в стандарте IEEE802.11) до выполнения стандарта Wi-Fi direct. В таком случае трудно заранее обнаружить устройство, которое должно соединяться, до того, как будет установлено соединение через второй уровень (перед тем, как выполняется ассоциация согласно терминологии IEEE802.11).
С другой стороны, как показано на фиг. 136 и 137, в Wi-Fi direct, когда с помощью операций обнаружения устройства или обнаружения обслуживания (вариант) ищут возможного кандидата на партнера для соединения, можно получить информацию о партнере для соединения. Примерами информации о партнере для соединения являются тип основного устройства и поддерживаемое конкретное приложение. Дополнительно, можно заставить пользователя выбрать партнера для соединения, основываясь на полученной информации о партнере для соединения.
Расширяя действие этих технических требований, можно реализовать систему беспроводной связи, в которой конкретное приложение назначается, партнер для соединения выбирается до того, как установлено соединение через второй уровень, и конкретное приложение автоматически запускается после выбора. Пример последовательности установления соединения для такого случая показан на фиг. 139. Дополнительно, примерная конфигурация формата кадра, передаваемого/принимаемого в процессе связи, показана на фиг. 138.
Пример конфигурации формата кадра
На фиг. 138 показана примерная конфигурация формата кадра, передаваемого и принимаемого в процессе связи, выполняемом устройствами системы, служащими основой настоящей технологии. Другими словами, на фиг. 138 показана примерная конфигурация кадра MAC, используемого для установления соединения через второй уровень. Конкретно, представляется пример формата кадра запроса/ответа ассоциации (2787) для реализации последовательности, показанной на фиг. 139.
Как показано на фиг. 138, кадр MAC содержит управление кадром (2751) до FCS (2758) и диапазон участка управления кадром (2751) до управления последовательностью (2756) служит в качестве заголовка MAC. Дополнительно, когда передается запрос ассоциации, в управлении кадром (2751) устанавливаются В3В2="0b00" и В7В6В5В4="0b0000". Дополнительно, когда запрос ассоциации инкапсулируется, в управлении кадром (2751) устанавливаются В3В2="0b00" и В7В6В5В4="0b0001". Дополнительно, "0b00" равно "00" в двоичной записи, "0b0000" равно "0000" двоичной записи и "0b0001" равно "0001" в двоичной записи.
Здесь, кадр MAC (тело кадра (2757)), показанный на фиг. 138, в основном, является форматом кадра запроса/ответа ассоциации, описанным в разделах 7.2.3.4 и 7.2.3.5 технических требований IEEE 802.11-2007. Здесь различие состоит в том, что независимо вводятся расширенные элементы информации (здесь далее, сокращенно "IE"), а также IE, определенные в IEEE 802.11.
Дополнительно, чтобы указать конкретный IE поставщика (2760), устанавливают "127", являющееся десятичным числом, для типа IE (идентификатор информационного элемента (2761)). В этом случае, в соответствии с разделом 7.3.2.26 технических требований IEEE 802.11-2007, поле Length (2762) и поле OUI (2763) следуют друг за другом, сопровождаемые конкретным контентом поставщика (2764).
В качестве контента для конкретного контента поставщика (2764) поле (тип IE (2765)), указывающее тип конкретного IE поставщика, устанавливается первым. Далее, конфигурация, способная хранить множество подэлементов (2766), считается заданной.
В качестве контента подэлемента (2766), название (2767) конкретного приложения, которое должно использоваться, и роль (2768) устройства, когда работает конкретное приложение, считаются содержащимися. Дополнительно, информация (2769) (информация для установки L4) конкретного приложения, номер порта, используемого для управления информацией или т.п. и информация (2770) (информация о возможностях), относящаяся к возможностям конкретного приложения, считаются содержащимися. Здесь, например, когда назначенным конкретным приложением является DLNA, информация о возможностях является информацией, указывающей, поддерживается ли передача/воспроизведение аудиоданных, поддерживается ли передача/воспроизведение видеоданных, или т.п.
В системе беспроводной связи с описанной выше конфигурацией, такой, к которой применяется описанная выше настоящая технология со ссылкой на фиг. 1-118, могут быть получены те же самые результаты, что и результаты, описанные выше со ссылкой на фиг. 1-118. Другими словами, можно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования. Дополнительно, в системе беспроводной связи, когда выполняются передача и прием данных, кодированных соответствии с настоящей технологией, можно сдерживать увеличение емкости запоминающего устройства, необходимой для кодирования и декодирования.
В настоящем раскрытии описание было сделано в связи с примером, в котором различные виды фрагментов информации, а также кодированные данные данных изображения мультиплексируются в кодированный поток и передаются со стороны кодирования на сторону декодирования. Однако, технология передачи информации не ограничивается этим примером. Например, информация может передаваться или записываться как отдельные данные, связанные с кодированным битовым потоком, без мультиплексирования в кодированный битовый поток. Здесь термин "ассоциированный" означает, что изображение (или часть изображения, такая как срез или блок), содержащееся в битовом потоке, может быть связано с информацией, соответствующей изображению во время декодирования. Другими словами, информация может передаваться через тракт передачи, отличный от тракта прохождения изображения (или битового потока). Дополнительно, информация может записываться на носителе для записи данных (или в другой области хранения данных на том же самом носителе для записи), отличном от того, на котором записывается изображение (или битовый поток). Дополнительно, например, информация и изображение (или битовый поток) могут ассоциироваться друг с другом, например, в произвольных блоках, таких как блоки из множества фреймов, блоки из фрейма или блоки из частей фрейма.
Дополнительно, в настоящем описании блок дерева кодирования (CTU) принимается как блок, содержащий дерево кодирования (CTB) для LCU (максимальное количество CU) и параметр на момент обработки на основе LCU (уровня). Дополнительно, блок кодирования (CU), образующий CTU, принимается как блок, содержащий блок кодирования (CB) и параметр на момент обработки на основе CU (уровня).
Настоящая технология может также использовать следующие конфигурации.
(1) Устройство обработки изображений, содержащее:
модуль компенсации движения для осуществления компенсации движения при декодировании текущего уровня; и
первый модуль сжатия для сжатия вектора движения текущего уровня, реконструированного модулем компенсации движения, и используемого для компенсации движения при декодировании другого уровня.
(2) Устройство обработки изображения по любому из (1)-(9), дополнительно содержащее:
второй модуль сжатия для сжатия вектора движения текущего уровня, реконструированного модулем компенсации движения с коэффициентом сжатия, большим, чем коэффициент сжатия первого модуля сжатия,
при этом модуль компенсации движения выполнен с возможностью осуществления компенсации движения при декодировании текущего уровня, с использованием вектора движения, сжатого вторым модулем сжатия.
(3) Устройство обработки изображения по (2),
в котором второй модуль сжатия дополнительно выполнен с возможностью сжатия вектора движения, сжатого первым модулем сжатия.
(4) Устройство обработки изображения по любому из (1)-(9),
в котором блок компенсации движения выполняет выполнен с возможностью осуществления компенсации движения при декодировании текущего уровня, с использованием вектора движения, сжатый первым модулем сжатия.
(5) Устройство обработки изображения по любому из (1)-(9), дополнительно содержащее:
приемный блок, выполненный с возможностью приема флага, указывающего, используется ли вектор движения текущего уровня для компенсации движения при декодирования другого уровня; и
модуль выбора, выполненный с возможностью выбора вектора движения, сжатого первым модулем сжатия, в качестве вектора движения текущего уровня, используемого для компенсации движения при декодирования другого уровня, когда флаг, принятый приемным модулем, указывает, что вектор движения сжат, и выбора вектора движения, который не сжат первым модулем сжатия, в качестве вектора движения текущего уровня, используемого для компенсации движения при декодирования другого уровня, когда флаг, принятый приемным модулем, указывает, что вектор движения не сжат.
(6) Устройство обработки изображения по (5),
в котором модуль компенсации движения выполнен с возможностью осуществления компенсации движения при декодировании текущего уровня, с использованием вектора движения, сжатого первым блоком сжатия, независимо от значения флага, принятого приемным блоком.
(7) Устройство обработки изображения по любому из (1)-(9),
в котором первый модуль сжатия выполнен с возможностью выбора вектора движения, служащего в качестве репрезентативного значения, из множества векторов движения, реконструированных модулем компенсации движения, и сжатия вектора движения текущего уровня.
(8) Устройство обработки изображения по любому из (1)-(9),
в котором первый модуль сжатия выполнен с возможностью вычисления вектора движения, служащего в качестве репрезентативного значения, с использованием множества векторов движения, реконструированных модулем компенсации движения, и сжатия вектора движения текущего уровня.
(9) Устройство обработки изображения по любому из (1)-(8),
в котором модуль компенсации движения выполнен с возможностью осуществления компенсации движения, с использованием вектора движения, реконструированного для компенсации движения при декодирования другого уровня.
(10) Способ обработки изображения устройства обработки изображения, содержащий этапы, на которых:
выполняют с помощью устройства обработки изображения компенсацию движения при декодировании текущего уровня;
сжимают с помощью устройства обработки изображения вектор движения текущего уровня, реконструированный посредством компенсации движения и используемый для компенсации движения при декодировании другого уровня.
(11) Устройство обработки изображения, содержащее:
модуль предсказания/компенсации движения для осуществления предсказания и компенсации движения при кодировании текущего уровня; и
первый модуль сжатия для осуществления сжатия вектора движения текущего уровня, сгенерированного модулем предсказания/компенсации движения и используемого для предсказания и компенсации движения при декодировании другого уровня.
(12) Устройство обработки изображения по любому из (11)-(19), дополнительно содержащее:
второй модуль сжатия для осуществления сжатия вектора движения текущего уровня, сгенерированного модулем предсказания/компенсации движения с коэффициентом сжатия, большим, чем коэффициент сжатия первого модуля сжатия, при этом
модуль предсказания/компенсации движения выполнен с возможностью предсказания и компенсации движения при кодировании текущего уровня, с использованием вектора движения, сжатого вторым модулем сжатия.
(13) Устройство обработки изображения по (12),
в котором второй модуль сжатия дополнительно выполнен с возможностью сжатия вектора движения, сжатого первым модулем сжатия.
(14) Устройство обработки изображения по любому из (11)-(19),
в котором модуль предсказания/компенсации движения выполнен с возможностью предсказания и компенсации движения при кодировании текущего уровня, с использованием вектора движения, сжатого первым модулем сжатия.
(15) Устройство обработки изображения по любому из (11)-(19), дополнительно содержащее:
модуль управления, выполненный с возможностью управления тем, сжимается ли вектор движения текущего уровня, используемый для предсказании и компенсации движении при кодировании другого уровня;
модуль выбора, выполненный с возможностью выбора любого вектора движения, не сжатого первым модулем сжатия, или вектора движения, сжатого первым модулем сжатия, в качестве вектора движения текущего уровня, используемого для предсказании и компенсации движения при кодировании другого уровня в соответствии с управлением, осуществляемым модулем управления;
модуль генерирования, выполненный с возможностью генерирования флага, указывающего, сжимается ли вектор движения текущего уровня, используемый для предсказании и компенсации движении при кодировании другого уровня в соответствии с управлением, осуществляемым модулем управления; и
передающий модуль, выполненный с возможностью передачи флага, сгенерированного модулем генерирования.
(16) Устройство обработки изображения по (15),
в котором модуль предсказания/компенсации движения выполнен с возможностью выполнения предсказания и компенсации движения при кодировании текущего уровня, с использованием вектора движения, сжатого первым блоком сжатия, независимо от управления, осуществляемого модулем управления.
(17) Устройство обработки изображения по любому из (11)-(19),
в котором первый модуль сжатия выполнен с возможностью выбора вектора движения, служащего в качестве репрезентативного значения, из множества векторов движения, сгенерированных модулем предсказания/компенсации движения, и сжатия вектора движения текущего уровня.
(18) Устройство обработки изображения по любому из (11)-(19),
в котором первый модуль сжатия выполнен с возможностью вычисления вектора движения, служащего в качестве репрезентативного значения, с использованием множества векторов движения, сгенерированных модулем предсказания/компенсации движения, и сжатия вектора движения текущего уровня.
(19) Устройство обработки изображения по любому из (11)-(18),
в котором модуль предсказания/компенсации движения выполнен с возможностью предсказания и компенсации движения, с использованием вектора движения, сгенерированного при предсказании и компенсации движения во время кодирования другого уровня.
(20) Способ обработки изображения устройства обработки изображения, содержащий этапы, на которых:
выполняют посредством устройства обработки изображения предсказание и компенсацию движения при декодировании текущего уровня; и
сжимают посредством устройства обработки изображения вектор движения текущего уровня, сгенерированный посредством предсказания и компенсации движения и используемый для предсказания и компенсации движения при кодировании другого уровня.
(21) Устройство обработки изображения, содержащее:
приемный модуль для приема масштабируемых кодированных данных изображения, полученных посредством кодирования множества фрагментов иерархических данных изображения;
модуль процесса прореживания для осуществления прореживания режима внутрикадрового предсказания в текущей области базового уровня масштабируемых кодированных данных изображения, принятых приемным модулем;
модуль запоминающего устройства для хранения режимов внутрикадрового предсказания базового уровня, оставшихся после прореживания, выполняемого модулем процесса прореживания, в качестве репрезентативного представителя текущей области;
модуль внутрикадрового предсказания для считывания из модуля запоминающего устройства режима внутрикадрового предсказания базового уровня, соответствующего текущему блоку улучшенного уровня масштабируемых кодированных данных изображения, принятых приемным модулем, из числа режимов внутрикадрового предсказания базового уровня, хранящихся в модуле запоминающего устройства, осуществления внутрикадрового предсказания, с использованием режима внутрикадрового предсказания, и генерирования изображения предсказания текущего блока улучшенного уровня; и
модуль декодирования для декодирования улучшенного уровня масштабируемых кодированных данных изображения, принятых приемным модулем, с использованием изображения предсказания, сгенерированного модулем внутрикадрового предсказания.
(22) Устройство обработки изображения по любому из (21) и (23)-(29),
в котором модуль процесса прореживания выполнен с возможностью установки режима внутрикадрового предсказания блока, на котором внутрикадровое предсказание впервые выполняется в текущей области, в качестве репрезентативного представителя текущей области и отвергания режимов внутрикадрового предсказания других блоков в текущей области.
(23) Устройство обработки изображения по любому из (21), (22) и (24)-(29),
в котором модуль процесса прореживания выполнен с возможностью установки режима внутрикадрового предсказания блока вблизи центра текущей области в качестве репрезентативного представителя текущей области и отвергания режимов внутрикадрового предсказания других блоков в текущей области.
(24) Устройство обработки изображения по любому из (21)-(23) и (25)-(29),
в котором приемный модуль дополнительно выполнен с возможностью приема коэффициент прореживания, а
модуль процесса прореживания выполнен с возможностью прореживания режима внутрикадрового предсказания базового уровня с коэффициентом прореживания, принятым приемным модулем.
(25) Устройство обработки изображения по любому из (21)-(24) и (26)-(29),
в котором коэффициент прореживания установлен на основе разрешающей способности базового уровня.
(26) Устройство обработки изображения по любому из (21)-(25) и (27)-(29),
в котором коэффициент прореживания хранится в определенном положении масштабируемых кодированных данных изображения и передается.
(27) Устройство обработки изображения по любому из (21)-(26), (28) и (29),
в котором коэффициент прореживания передается через набор видеопараметров.
(28) Устройство обработки изображения по любому из (21)-(27) и (29),
в котором коэффициент прореживания передается через набор параметров последовательности, набор параметров кадра или заголовок среза улучшенного уровня масштабируемых кодированных данных изображения.
(29) Устройство обработки изображения по любому из (21)-(28),
в котором модуль декодирования выполнен с возможностью декодирования базового уровня масштабируемых кодированных данных изображения, кодированных в соответствии с системой кодирования, отличной от системы кодирования улучшенного уровня масштабируемых кодированных данных изображения.
(30) Способ обработки изображения, содержащий этапы, на которых:
принимают масштабируемые кодированные данные изображения, полученные посредством кодирования множества фрагментов иерархических данных изображения;
прореживают режим внутрикадрового предсказания на текущей области базового уровня принятых масштабируемых кодированных данных изображения;
сохраняют в модуле запоминающего устройства режимы внутрикадрового предсказания базового уровня, оставшиеся после прореживания, в качестве репрезентативного представителя текущей области;
считывают режим внутрикадрового предсказания базового уровня, соответствующий текущему блоку улучшенного уровня принятых масштабируемых кодированных данных изображения, из числа режимов внутрикадрового предсказания базового уровня, хранящихся в модуле запоминающего устройства, выполняют внутрикадровое предсказание, с использованием считанного режима внутрикадрового предсказания, и генерируют изображение предсказания текущего блока улучшенного уровня; и
декодируют улучшенный уровень принятых масштабируемых кодированных данных изображения, с использованием сгенерированного изображения предсказания.
(31) Устройство обработки изображения, содержащее:
модуль процесса прореживания, выполненный с возможностью прореживания режима внутрикадрового предсказания в текущей области базового уровня для множества фрагментов иерархических данных изображения;
модуль запоминающего устройства для хранения режимов внутрикадрового предсказания базового уровня, оставшихся после прореживания, выполняемого модулем процесса прореживания, в качестве репрезентативного представителя текущей области;
модуль внутрикадрового предсказания для считывания из модуля запоминающего устройства режима внутрикадрового предсказания базового уровня, соответствующего текущему блоку улучшенного уровня данных изображения из числа режимов внутрикадрового предсказания базового уровня, хранящихся в модуле запоминающего устройства, выполнения внутрикадрового предсказания, с использованием считанного режима внутрикадрового предсказания, и генерирования изображение предсказания текущего блока улучшенного уровня;
модуль кодирования для кодирования улучшенного уровня данных изображения, с использованием изображения предсказания, сгенерированного модулем внутрикадрового предсказания; и
передающий модуль для передачи масштабируемых кодированных данных изображения, полученных кодированием данных изображения модулем кодирования.
(32) Устройство обработки изображения по любому из (31) и (33)-(39),
в котором модуль процесса прореживания выполнен с возможностью установки режима внутрикадрового предсказания блока, в котором внутрикадровое предсказание впервые выполняется в текущей области, в качестве репрезентативного представителя текущей области, и отвергания режимов внутрикадрового предсказания других блоков в текущей области.
(33) Устройство обработки изображения по любому из (31), (32) и (34)-(39),
в котором модуль процесса прореживания выполнен с возможностью установки режима внутрикадрового предсказания блока вблизи центра текущей области в качестве репрезентативного представителя текущей области и отвергания режимов внутрикадрового предсказания других блоков в текущей области.
(34) Устройство обработки изображения по любому из (31)-(33) и (35)-(39), дополнительно содержащее
модуль установки коэффициента прореживания, выполненный с возможностью установки коэффициента прореживания, при этом
модуль процесса прореживания выполнен с возможностью прореживания режима внутрикадрового предсказания базового уровня с коэффициентом прореживания, установленным модулем установки коэффициента прореживания.
(35) Устройство обработки изображения по любому из (31)-(34) и (36)-(39),
в котором модуль установки коэффициента прореживания выполнен с возможностью установки коэффициента прореживания, на основе разрешающей способности базового уровня.
(36) Устройство обработки изображения по любому из (31)-(35) и (37)-(39),
в котором передающий модуль выполнен с возможностью сохранения коэффициента прореживания в определенном положении в масштабируемых кодированных данных изображения и передачи коэффициента прореживания.
(37) Устройство обработки изображения по любому из (31)-(36), (38) и (39),
в котором передающий модуль выполнен с возможностью передачи коэффициента прореживания через набор видеопараметров.
(38) Устройство обработки изображения по любому из (31)-(37) и (39),
в котором передающий модуль выполнен с возможностью передачи коэффициента прореживания через набор параметров последовательности, набор параметров кадра или заголовок среза улучшенного уровня масштабируемых кодированных данных изображения.
(39) Устройство обработки изображения по любому из (31)-(38),
в котором модуль кодирования выполнен с возможностью кодирования базового уровня данных изображения, кодированных в соответствии с системой кодирования, отличной от системы кодирования улучшенного уровня данных изображения.
(40) Способ обработки изображения, содержащий этапы, на которых:
прореживают режим внутрикадрового предсказания в текущей области базового уровня для множества фрагментов иерархических данных изображения;
сохраняют в модуле запоминающего устройства режимы внутрикадрового предсказания базового уровня, оставшиеся после прореживания, в качестве репрезентативного представителя текущей области;
считывают режим внутрикадрового предсказания базового уровня, соответствующий текущему блоку улучшенного уровня данных изображения из числа режимов внутрикадрового предсказания базового уровня, хранящихся в блоке запоминающего устройства, выполняют внутрикадровое предсказание, используя считанный режим внутрикадрового предсказания, и генерируют изображение предсказания текущего блока улучшенного уровня;
кодируют улучшенный уровень данных изображения, с использованием сгенерированного изображения предсказания; и
передают масштабируемые кодированные данные изображения, полученные посредством кодирования данных изображения.
(41) Устройство декодирования изображения, содержащее:
приемный модуль для приема кодированных данных текущего уровня данных изображения, содержащих множество уровней и информацию управления, указывающую направление предсказания информации о движении другого уровня, используемого для декодирования текущего уровня данных изображения;
модуль получения информации о движении для приема информации о движении другого уровня в направлении предсказания, указанном информацией управления, принятой приемным модулем;
модуль генерирования изображения предсказания для осуществления предсказания движения, с использованием информации о движении другого уровня в направлении предсказания, полученном модулем получения информации о движении, и генерирования изображения предсказания текущего уровня; и
модуль декодирования для декодирования кодированных данных текущего уровня, с использованием изображения предсказания, сгенерированного модулем генерирования изображения предсказания.
(42) Устройство декодирования изображения по любому из (41) и (43)-(49),
в котором информация управления является информацией, указывающей, является ли направление предсказания направлением L0.
(43) Устройство декодирования изображения по любому из (41), (42) и (44)-(49),
в котором информация управления является информацией, указывающей, является ли направление предсказания направлением L1.
(44) Устройство декодирования изображения по любому из (41)-(43) и (45)-(49),
в котором информация управления является информацией, указывающей, является ли направление предсказания направлением L0 или направлением L1.
(45) Устройство декодирования изображения по любому из (41)-(44) и (46)-(49),
в котором информация управления является информацией, указывающей направление предсказания для каждого из множества срезов, полученных делением картинки.
(46) Устройство декодирования изображения по любому из (41)-(45) и (47)-(49),
в котором приемный модуль выполнен с возможностью приема информации управления для каждого из срезов.
(47) Устройство декодирования изображения по любому из (41)-(46), (48) и (49), дополнительно содержащее
модуль преобразования, выполненный с возможностью направления предсказания информации о движении другого уровня, когда направление предсказания информации о движении другого уровня, полученное модулем получения информации о движении, отличается от направления предсказания во время использования.
(48) Устройство декодирования изображения по любому из (41)-(47) и (49),
в котором модуль преобразования дополнительно выполнен с возможностью преобразования информации о движении другого уровня, полученную модулем получения информации о движении, основываясь на текущем уровне.
(49) Устройство декодирования изображения по любому из (41)-(48),
в котором модуль получения информации о движении выполнен с возможностью получения информации о движении в направлении предсказания, указанном информацией управления, в области другого уровня, соответствующей текущей области текущего уровня.
(50) Способ декодирования изображения, содержащий этапы, на которых:
принимают кодированные данные текущего уровня данных изображения, содержащих множество уровней, и информацию управления, указывающую направление предсказания информации о движении другого уровня, используемого для декодирования текущего уровня данных изображения;
получают информацию о движении другого уровня в направлении предсказания, указанном принятым управлением;
выполняют предсказание движения, с использованием полученной информации о движении другого уровня в направлении предсказания, и генерируют изображение предсказания текущего уровня; и
декодируют кодированные данные текущего уровня, с использованием сгенерированного изображения предсказания.
(51) Устройство кодирования изображения, содержащее:
модуль установки направления предсказания для установки направления предсказания информации о движении другого уровня, используемого для кодирования текущего уровня данных изображения, содержащих множество уровней;
модуль получения информации о движении для получения информации о движении другого уровня в направлении предсказания, установленном модулем установки направления предсказания;
модуль генерирования изображения предсказания для предсказания движения, с использованием информации о движении другого уровня в направлении предсказания, полученном блоком получения информации о движении, и генерирования изображения предсказания текущего уровня;
модуль кодирования для кодирования текущего уровня данных изображения, с использованием изображения предсказания, сгенерированного модулем генерирования изображения предсказания; и
передающий модуль для передачи кодированных данных изображения, сгенерированных модулем кодирования, и информации управления, указывающей направление предсказания, установленное модулем установки направления предсказания.
(52) Устройство кодирования изображения по любому из (51) и (53)-(59),
в котором информация управления является информацией, указывающей, является ли направление предсказания, установленное модулем установки направления предсказания, направлением L0.
(53) Устройство кодирования изображения по любому из (51), (52) и (54)-(59),
в котором информация управления является информацией, указывающей, является ли направление предсказания, установленное модулем установки направления предсказания, направлением L1.
(54) Устройство обработки изображения по любому из (51)-(53) и (55)-(59),
в котором информация управления является информацией, указывающей, является ли направление предсказания, установленное модулем установки направления предсказания, направлением L0 или направлением L1.
(55) Устройство обработки изображения по любому из (51)-(54) и (56)-(59),
в котором модуль установки направления предсказания выполнен с возможностью установки направления предсказания для каждого из множества срезов, полученных делением кадра.
(56) Устройство кодирования изображения по любому из (51)-(55) и (57)-(59)
в котором передающий модуль выполнен с возможностью передачи информации управления для каждого из срезов.
(57) Устройство кодирования изображения по любому из (51)-(56), (58) и (59), дополнительно содержащее
модуль преобразования, выполненный с возможностью преобразования направления предсказания информации о движении другого уровня, когда направление предсказания информации о движении другого уровня, полученное модулем получения информации о движении, отличается от направления предсказания во время использования.
(58) Устройство кодирования изображения по любому из (51)-(57) и (59),
в котором модуль преобразования дополнительно выполнен с возможностью преобразования информации о движении другого уровня, полученной модулем получения информации о движении, основываясь на текущем уровне.
(59) Устройство кодирования изображения по любому из (51)-(58),
в котором модуль получения информации о движении выполнен с возможностью получения информации о движении в направлении предсказания, установленном модулем установки направления предсказания в области другого уровня, соответствующей текущей области текущего уровня.
(60) Способ кодирования изображения, содержащий этапы, на которых:
устанавливают направление предсказания информации о движении другого уровня, используемого для кодирования текущего уровня данных изображения, содержащих множество уровней;
получают информацию о движении другого уровня в установленном направлении предсказания;
выполняют предсказание движения, с использованием полученной информации о движении другого уровня в направлении предсказания, и генерируют изображение предсказания текущего уровня;
кодируют текущий уровень данных изображения, с использованием сгенерированного изображения предсказания; и
передают кодированные данные, полученные кодированием данных изображения, и информацию управления, указывающую установленное направление предсказания.
Перечень ссылочных позиций
100 Устройство кодирования изображения
114 Модуль предсказания/компенсации движения
121 Модуль сжатия вектора движения
122 Устройство памяти вектора движения
200 Устройство декодирования изображения
211 Модуль компенсации движения
221 Модуль сжатия вектора движения
222 Устройство памяти вектора движения
300 Устройство кодирования изображения
314 Модуль предсказания/компенсации движения
321 Модуль сжатия вектора движения
322 Временная память
323 Модуль сжатия вектора движения
324 Устройство памяти вектора движения
400 Устройство декодирования изображения
411 Модуль компенсации движения
421 Модуль сжатия вектора движения
422 Временная память
423 Модуль сжатия вектора движения
424 Устройство памяти вектора движения
500 Устройство кодирования изображения
514 Модуль предсказания/компенсации движения
506 Модуль кодирования без потерь
507 Накопительный буфер
521 Модуль управления
522 Модуль генерирования флага
531 Модуль выбора
532 Временная память
533 Модуль сжатия вектора движения
534 Устройство памяти вектора движения
535 Модуль выбора
600 Устройство декодирования изображения
601 Накопительный буфер
602 Модуль декодирования без потерь
621 Модуль управления
631 Модуль выбора
632 Временная память
633 Модуль сжатия вектора движения
634 Устройство памяти вектора движения
635 Модуль выбора