Способ и устройство кодирования изображений
IMAGE ENCODING METHOD AND DEVICE

Область техники, к которой относится изобретение
Настоящее изобретение относится к способу и устройству кодирования изображения и более конкретно к способу и устройству кодирования изображения, обеспечивающего уменьшение степени снижения эффективности кодирования.
Уровень техники
В последние годы с целью повысить эффективность кодирования сверх того уровня, который обеспечивает стандарт MPEG-4 Part 10 (Усовершенствованное видеокодирование (Advanced Video Coding); в дальнейшем именуемое AVC), Группа сотрудничества в области видеокодирования (Joint Collaboration Team - Video Coding (JCTVC)), представляющая собой совместную организацию Сектора стандартизации в области телекоммуникаций (Telecommunication Standardization Sector) Международного союза по телекоммуникациям (International Telecommunication Union) (ITU-T) и Международной организации по стандартизации/Международной электротехнической комиссии (International Organization for Standardization / International Electrotechnical Commission (ISO/IEC)), разрабатывала стандарт для системы видеокодирования, именуемый «Высокоэффективное видеокодирование» (HEVC), (например, см. Патентный документ 1).
Кроме того была предложена синтаксическая структура высокого уровня (high-level syntax (HL syntax)) для, например, набора параметров видео (video parameter set (VPS)), набора параметров последовательности (sequence parameter set (SPS)), набора параметров кадра (picture parameter set (PPS)), заголовка среза и других подобных элементов, являющаяся общей для расширенных стандартов (например, см. Непатентный документ 2 и Непатентный документ 3).
Список литературы
Непатентные документы
Непатентный документ 1: Benjamin Bross, Woo-Jin Han, Jens-Rainer Ohm, Gary J. Sullivan, Ye-Kui Wang, Thomas Wiegand, "High Efficiency Video Coding (HEVC) text specification draft 10 (for FDIS & Last Call)", JCTVC-L1003_v34, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11 12th Meeting: Geneva, CH, 14-23 Jan. 2013.
Непатентный документ 2: Gerhard Tech, Krzysztof Wegner, Ying Chen, Miska Hannuksela, Jill Boyce, "MV-HEVC Draft Text 4", JCT3V-D1004-v4, Joint Collaborative Team on 3D Video Coding Extension Development of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 114th Meeting: Incheon, KR, 20-26 Apr. 2013.
Непатентный документ 3: Jianle Chen, Jill Boyce, Yan Ye, Miska M. Hannuksela, "SHVC Working Draft 2", JCTVC-M1008_v3, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SGI 6 WP3 and ISCVIEC JTC1/SC29/WG1113th Meeting: Incheon, KR, 18-26 Apr. 2013.
Раскрытие изобретения
Проблемы, решаемые изобретением
Однако в случае использования способов, предлагаемых Непатентным документом 2 и Непатентным документом 3, в процессе передачи информации, относящейся к межуровневому прогнозированию, в заголовке среза при этом передают также ненужный синтаксис. Соответственно объем кодирования заголовка среза возрастает сверх необходимого, так что имеет место проблема снижения эффективности кодирования.
Настоящее изобретение создано с учетом такой ситуации и предназначено для уменьшения степени снижения эффективности кодирования.
Решение проблем
Согласно одному из аспектов настоящей технологии предложено устройство кодирования изображения, содержащее: модуль генерирования информации о назначении опорного уровня для генерирования информации о назначении опорного уровня, указывающей уровень, служащий опорным при межуровневом прогнозировании в случае, когда максимальный номер другого уровня, служащего опорным уровнем при межуровневом прогнозировании, и номер другого уровня, служащего опорным уровнем при межуровневом прогнозировании, заданные для данных всего изображения, конфигурированного в виде множества уровней, не совпадают один с другим; и кодирующий модуль для осуществления кодирования данных изображения.
Кроме того, устройство кодирования изображения может дополнительно содержать модуль управления прогнозированием, выполненным с возможностью управления межуровневым прогнозированием на основе информации о назначении опорного уровня, генерируемой модулем генерирования информации о назначении опорного уровня.
Далее, устройство кодирования изображения может дополнительно содержать передающий модуль, для передачи информации о назначении опорного уровня вместе с заголовком среза.
Модуль генерирования информации о назначении опорного уровня выполнен с возможностью генерирования информации о назначении опорного уровня, когда текущий уровень не является уровнем 0, и когда число опорных уровней не равно "0".
Кроме того, устройство кодирования изображения может дополнительно содержать модуль генерирования информации о межуровневой прогнозируемости, выполненный с возможностью генерирования информации о межуровневой прогнозируемости, представляющей, разрешено ли межуровневое прогнозирование.
Дополнительно, модуль генерирования информации о назначении опорного уровня выполнен с возможностью генерирования информации о назначении опорного уровня, когда информация о межуровневой прогнозируемости указывает, что межуровневое прогнозирование разрешено и когда имеется множество опорных уровней для текущего уровня.
Устройство кодирования изображения может дополнительно содержать модуль генерирования информации о числе опорных уровней, выполненный с возможностью генерирования информации о числе опорных уровней, представляющую номер другого уровня, служащего опорным во время межуровневого прогнозирования.
Модуль генерирования информации о числе опорных уровней выполнен с возможностью генерирования информации о числе опорных уровней, когда число опорных уровней при межуровневом прогнозировании не ограничивается одним.
Согласно другому аспекту настоящей технологии предложен способ кодирования изображения, содержащий этапы, на которых: формируют информацию о назначении опорного уровня, указывающую уровень, являющийся опорным при межуровневом прогнозировании, в случае, когда максимальный номер другого уровня, являющегося опорным при выполнении межуровневого прогнозирования, и номер другого уровня, являющегося опорным при выполнении межуровневого прогнозирования, заданные для данных всего изображения, конфигурированных в виде множества уровней, не совпадают один с другим; и кодируют данные изображения.
Согласно одному из аспектов настоящей технологии, информацию о назначении опорного уровня, указывающую уровень, являющийся опорным при межуровневом прогнозировании, генерируют в случае, когда максимальный номер другого уровня, являющегося опорным при выполнении межуровневого прогнозирования, и номер другого уровня, являющегося опорным при выполнении межуровневого прогнозирования, заданные для данных всего изображения, конфигурированных в виде множества уровней, не совпадают один с другим; и кодируют данные изображения.
Преимущества настоящего изобретения
Согласно настоящему изобретению можно кодировать и декодировать изображение. В частности, можно снизить степень увеличения нагрузки при кодировании или декодировании.
Краткое описание чертежей
Фиг. 1 представляет схему, иллюстрирующую пример конфигурации блока кодирования.
Фиг. 2 представляет схему, иллюстрирующую пример системы кодирования иерархического изображения.
Фиг. 3 представляет схему, иллюстрирующую пример кодирования с пространственным масштабированием.
Фиг. 4 представляет схему, иллюстрирующую пример кодирования с временным масштабированием.
Фиг. 5 представляет схему, иллюстрирующую пример масштабируемого кодирования отношения сигнал/шум.
Фиг. 6 представляет схему, иллюстрирующую пример синтаксиса заголовка среза.
Фиг. 7 представляет схему, иллюстрирующую пример семантики заголовка среза.
Фиг. 8 представляет схему, иллюстрирующую пример межуровневого прогнозирования.
Фиг. 9 представляет схему, иллюстрирующую пример синтаксиса заголовка среза.
Фиг. 10 представляет схему, иллюстрирующую пример способа задания опорного уровня.
Фиг. 11 представляет схему, иллюстрирующую пример синтаксиса заголовка среза.
Фиг. 12 представляет схему, иллюстрирующую пример семантики заголовка среза.
Фиг. 13 представляет схему, иллюстрирующую пример соотношения между уровнем и опорным уровнем при межуровневом прогнозировании.
Фиг. 14 представляет схему, иллюстрирующую пример способа задания опорного уровня.
Фиг. 15 представляет схему, иллюстрирующую пример синтаксиса набора параметров последовательности.
Фиг. 16 представляет схему, иллюстрирующую пример синтаксиса набора опорных кадров при межуровневом прогнозировании.
Фиг. 17 представляет схему, иллюстрирующую пример синтаксиса заголовка среза.
Фиг. 18 представляет схему, иллюстрирующую пример семантики набора параметров последовательности.
Фиг. 19 представляет схему, иллюстрирующую пример семантики набора опорных кадров при межуровневом прогнозировании.
Фиг. 20 представляет схему, иллюстрирующую пример семантики заголовка среза.
Фиг. 21 представляет схему, иллюстрирующую пример синтаксиса заголовка среза.
Фиг. 22 представляет схему, продолжающую фиг. 21 и иллюстрирующую синтаксис заголовка среза.
Фиг. 23 представляет схему, продолжающую фиг. 22 и иллюстрирующую синтаксис заголовка среза.
Фиг. 24 представляет схему, иллюстрирующую пример семантики заголовка среза.
Фиг. 25 представляет схему, иллюстрирующую пример синтаксиса набора параметров последовательности.
Фиг. 26 представляет схему, продолжающую фиг. 25 и иллюстрирующую синтаксис набора параметров последовательности.
Фиг. 27 представляет схему, иллюстрирующую пример синтаксиса набора опорных кадров при межуровневом прогнозировании.
Фиг. 28 представляет схему, иллюстрирующую пример синтаксиса заголовка среза.
Фиг. 29 представляет схему, продолжающую фиг. 28 и иллюстрирующую пример синтаксиса заголовка среза.
Фиг. 30 представляет схему, продолжающую фиг. 29 и иллюстрирующую пример синтаксиса заголовка среза.
Фиг. 31 представляет схему, продолжающую фиг. 30 и иллюстрирующую пример синтаксиса заголовка среза.
Фиг. 32 представляет схему, иллюстрирующую пример семантики набора параметров последовательности.
Фиг. 33 представляет схему, иллюстрирующую пример семантики набора опорных кадров при межуровневом прогнозировании.
Фиг. 34 представляет схему, иллюстрирующую пример семантики заголовка среза.
Фиг. 35 представляет блок-схему, иллюстрирующую пример базовой конфигурации устройства кодирования изображения.
Фиг. 36 представляет блок-схему, иллюстрирующую пример базовой конфигурации модуля кодирования изображения базового уровня.
Фиг. 37 представляет блок-схему, иллюстрирующую пример базовой конфигурации модуля кодирования изображения расширительного уровня.
Фиг. 38 представляет блок-схему, иллюстрирующую пример базовой конфигурации модуля генерирования информации заголовка.
Фиг. 39 представляет логическую схему, иллюстрирующую пример последовательности операций для процедуры кодирования изображения.
Фиг. 40 представляет логическую схему, иллюстрирующую пример последовательности операций для процедуры кодирования базового уровня.
Фиг. 41 представляет логическую схему, иллюстрирующую пример последовательности операций для процедуры кодирования расширительного уровня.
Фиг. 42 представляет логическую схему, иллюстрирующую пример последовательности операций для процедуры генерирования информации заголовка применительно к межуровневому прогнозированию.
Фиг. 43 представляет логическую схему, иллюстрирующую другой пример последовательности операций для процедуры генерирования информации заголовка применительно к межуровневому прогнозированию.
Фиг. 44 представляет блок-схему, иллюстрирующую пример базовой конфигурации устройства декодирования изображения.
Фиг. 45 представляет блок-схему, иллюстрирующую пример базовой конфигурации модуля декодирования изображения базового уровня.
Фиг. 46 представляет блок-схему, иллюстрирующую пример базовой конфигурации модуля декодирования изображения расширительного уровня.
Фиг. 47 представляет блок-схему, иллюстрирующую пример базовой конфигурации модуля анализа информации заголовка.
Фиг. 48 представляет логическую схему, иллюстрирующую пример последовательности операций для процедуры декодирования изображения.
Фиг. 49 представляет логическую схему, иллюстрирующую пример последовательности операций для процедуры декодирования базового уровня.
Фиг. 50 представляет логическую схему, иллюстрирующую пример последовательности операций для процедуры декодирования расширительного уровня.
Фиг. 51 представляет логическую схему, иллюстрирующую пример последовательности операций для процедуры анализа информации заголовка применительно к межуровневому прогнозированию.
Фиг. 52 представляет логическую схему, иллюстрирующую другой пример последовательности операций для процедуры анализа информации заголовка применительно к межуровневому прогнозированию.
Фиг. 53 представляет схему, иллюстрирующую пример системы кодирования многопроекционного изображения.
Фиг. 54 представляет схему, иллюстрирующую пример базовой конфигурации устройства кодирования многопроекционного изображения, к которому применена предлагаемая технология.
Фиг. 55 представляет схему, иллюстрирующую пример базовой конфигурации устройства кодирования многопроекционного изображения, к которому применена предлагаемая технология.
Фиг. 56 представляет блок-схему, иллюстрирующую пример базовой конфигурации компьютера.
Фиг. 57 представляет упрощенную блок-схему, иллюстрирующую пример конфигурации телевизионного устройства.
Фиг. 58 представляет упрощенную блок-схему, иллюстрирующую пример конфигурации мобильного телефона.
Фиг. 59 представляет упрощенную блок-схему, иллюстрирующую пример конфигурации устройства записи/воспроизведения.
Фиг. 60 представляет упрощенную блок-схему, иллюстрирующую пример конфигурации устройства считывания изображения.
Фиг. 61 представляет блок-схему, иллюстрирующую пример использования масштабируемого кодирования.
Фиг. 62 представляет блок-схему, иллюстрирующую другой пример использования масштабируемого кодирования.
Фиг. 63 представляет блок-схему, иллюстрирующую еще один пример использования масштабируемого кодирования.
Фиг. 64 представляет упрощенную блок-схему, иллюстрирующую пример конфигурации комплексного видеоустройства.
Фиг. 65 представляет упрощенную блок-схему, иллюстрирующую пример конфигурации видеопроцессора.
Фиг. 66 представляет упрощенную блок-схему, иллюстрирующую другой пример конфигурации видеопроцессора.
Фиг. 67 представляет пояснительную схему, иллюстрирующую конфигурацию системы воспроизведения контента.
Фиг. 68 представляет пояснительную схему, иллюстрирующую потоки данных в системе воспроизведения контента.
Фиг. 69 представляет пояснительную схему, иллюстрирующую конкретный пример файла MPD.
Фиг. 70 представляет функциональную блок-схему, иллюстрирующую конфигурацию сервера контента в составе системы воспроизведения контента.
Фиг. 71 представляет функциональную блок-схему, иллюстрирующую конфигурацию устройства для воспроизведения контента в составе системы воспроизведения контента.
Фиг. 72 представляет функциональную блок-схему, иллюстрирующую конфигурацию сервера контента в составе системы воспроизведения контента.
Фиг. 73 представляет диаграмму последовательности операций, иллюстрирующую пример процедуры связи, осуществляемой каждым устройством в системе радиосвязи.
Фиг. 74 представляет диаграмму последовательности операций, иллюстрирующую пример процедуры связи, осуществляемой каждым устройством в системе радиосвязи.
Фиг. 75 представляет схему, упрощенно иллюстрирующую пример конфигурации формата кадра, передаваемого и принимаемого в ходе процедуры связи, осуществляемой каждым устройством в системе радиосвязи.
Фиг. 76 представляет диаграмму последовательности операций, иллюстрирующую пример процедуры связи, осуществляемой каждым устройством в системе радиосвязи.
Способы осуществления изобретения
Далее будут рассмотрены варианты осуществления настоящего изобретения. Описание будет дано в следующем порядке.
1. Первый вариант (уменьшение избыточности в заголовке среза)
2. Второй вариант (устройство кодирования изображения)
3. Третий вариант (устройство декодирования изображения)
4. Четвертый вариант (устройства кодирования многопроекционного изображения и декодирования многопроекционного изображения)
5. Пятый вариант (компьютер)
6. Шестой вариант (пример приложения)
7. Седьмой вариант (пример приложения для масштабируемого кодирования)
8. Восьмой вариант (устройство/блок/модуль/процессор)
9. Девятый вариант (пример приложения для системы воспроизведения контента согласно стандарту MPEG-DASH)
10. Десятый вариант (пример приложения системы радиосвязи согласно стандарту Wi-Fi)
1. Первый вариант
Процесс стандартизации кодирования изображения
В последние годы информацию изображения обрабатывают и хранят в виде цифровых данных, и при этом, для передачи и накопления информации с высокой эффективностью, широко используются устройства, сжимающие и кодирующие изображение с применением системы кодирования, сжимающей данные посредством ортогонального преобразования, такого как дискретное косинусное преобразование, и компенсации движения с использованием избыточности, присущей информации изображения. Среди примеров такой системы кодирования можно указать системы согласно стандартам Группы экспертов по кинематографии (Moving Picture Experts Group (MPEG)) и другие подобные системы.
В частности, стандарт MPEG2 (ISO/IEC 13818-2) определяет систему кодирования изображения общего назначения и является стандартом, охватывающим как изображения с чересстрочной разверткой, так и изображения с последовательной (построчной) разверткой, а также изображения со стандартным разрешением и изображения высокой четкости. Например, сегодня стандарт MPEG2 широко применяется для самого широкого диапазона приложений для использования, как в профессиональной сфере, так и в быту. При использовании системы MPEG2 сжатия данных, например, в случае изображения с чересстрочной разверткой и со стандартным разрешением 720×480 пикселей, назначают объем кода (скорость передачи данных) от 4 до 8 Мбит/с. Кроме того, при использовании системы MPEG2 сжатия данных, например, в случае изображения с чересстрочной разверткой и высокой четкостью в формате 1920×1088 пикселей, назначают объем кода (скорость передачи данных) от 18 до 20 Мбит/с. Соответственно можно реализовать высокий коэффициент сжатия и удовлетворительное качество изображения.
Стандарт MPEG2 направлен главным образом на высококачественное кодирование изображения, подходящее преимущественно для вещания, но не согласован с системой кодирования, объем кода (скорость передачи данных) в которой ниже скорости, применяемой в стандарте MPEG1, другими словами, с системой, имеющей коэффициент сжатия данных выше, чем в стандарте MPEG1. Однако считается, что число запросов на такие системы будет расти в будущем в связи с широким применением портативных терминалов и стандартизацией системы кодирования MPEG4, разработанной для этой цели. Стандарт этой группы, относящийся к системе кодирования изображения, был утвержден в декабре 1998 г. под номером ISO/IEC 14496-2.
Более того, в последние годы, с первоначальной целью кодирования изображения для видеоконференций был экспертной группой по видеокодированию (VCEG) Сектора стандартизации ITU-T разработан и введен в действие стандарт H.26L (H.26L International Telecommunication Union Telecommunication Standardization Sector (ITU-T) Q6/16 Video Coding Expert Group (VCEG)). Известно, что стандарт H.26L требует большего объема вычислений в процессе кодирования и декодирования, чем обычная система кодирования, такая как MPEG2 или MPEG4, и реализует более высокую эффективность кодирования. Кроме того, на сегодня, как часть работ по стандартам MPEG4, был на основе стандарта H.26L разработан стандарт, реализующий более высокую эффективность кодирования за счет введения функций, не поддерживаемых стандартом H.26L. Этот новый стандарт получил название Совместная модель видеокодирования с повышенной степенью сжатия (Joint Model of Enhanced-Compression Video Coding).
В рамках плана стандартизации в марте 2003 г. был введен международный стандарт на основе стандартов Н.264 и MPEG-4 Part 10 (Усовершенствованное видеокодирование (Advanced Video Coding); далее называемый AVC).
Кроме того, в качестве расширения стандарта H.264/AVC, в феврале 2005 г. был введен стандарт Расширение диапазона точности (Fidelity Range Extension (FRExt)), содержащий средства кодирования, необходимые для использования в деловой сфере, а также дискретное косинусное преобразование 8×8 DCT и матрицу квантования, определенные в стандарте MPEG-2 и именуемые RGB, 4:2:2 и 4:4:4. Таким образом, создана использующая стандарт H.264/AVC система кодирования, способная представлять шумы кинопленки, присутствующие в кинофильме, а сам стандарт H.264/AVC находится на стадии использования в самом широком спектре приложений дисков Блю-рей (Blu-Ray Disc (торговая марка)) и в аналогичных приложениях.
Однако в последние годы выросли потребности в кодировании с еще более высокой степенью сжатия, например, сжатие изображения с разрешением 4000×2000 пикселей, что в четыре раза больше числа пикселей в изображении высокой четкости, а также потребности передачи изображения высокой четкости в среду с ограниченной пропускной способностью, такую как Интернет. По этой причине группа VCEG, аффилированная с ITU-T, постоянно выпускает обзоры по вопросам повышения эффективности кодирования.
Таким образом, в настоящее время Группа сотрудничества по вопросам видеокодирования (Joint Collaboration Team - Video Coding (JCTVC)), являющаяся совместной группой организации по стандартизации под эгидой ITU-T с одной стороны и Международной организации по стандартизации/Международной электротехнической комиссии (International Organization for Standardization / International Electrotechnical Commission (ISO/IEC)) с другой стороны, с целью дальнейшего повышения эффективности кодирования сверх уровня, достижимого в стандарте AVC, ведет работы по стандартизации системы кодирования, называемой Высокоэффективное видеокодирование (High Efficiency Video Coding (HEVC)). Разработанный этой группой проект стандарта был опубликован в январе 2013 г. (например, см. Непатентный документ 1).
Система кодирования
В дальнейшем предлагаемая технология будет описана для случая применения в такой системе кодирования/декодирования изображения, как система Высокоэффективного видеокодирования (High Efficiency Video Coding (HEVC)), в качестве примера.
Блок кодирования
В системе усовершенствованного видеокодирования (AVC) определена иерархическая структура, конфигурированная из макроблока и суб-макроблока. Однако макроблок размером 16×16 пикселей не является оптимальным для большого кадра изображения, именуемого кадром с ультравысокой четкостью (Ultra High Definition (UHD; 4000 пикселей ×2000 пикселей)) и становящегося целью для систем кодирования следующего поколения.
В отличие от этого, в системе HEVC, как показано на фиг. 1, определен блок кодирования (coding unit (CU)).
Блок CU именуется также блоком дерева кодирования (Coding Tree Block (СТВ)) и является частичной областью блока изображения, которая играет роль, аналогичную роли макроблока в системе AVC. Тогда как макроблок имеет фиксированный размер 16×16 пикселей, размер блока CU не фиксирован, а назначается в составе информации о сжатии изображения в каждой последовательности.
Например, в наборе параметров последовательности (SPS), входящем в состав кодированных данных, определены максимальный размер (наибольший блок кодирования (Largest Coding Unit (LCU))) и минимальный размер (наименьший блок кодирования (Smallest Coding Unit (SCU))) блока CU кодирования.
Каждый блок LCU, установив флаг разбиения split-flag=1, можно разделить на блоки CU меньшего размера, но не меньше наименьшего блока SCU. В примере, показанном на фиг. 1, размер блока LCU равен 128, а наибольшая глубина иерархии равна 5. Когда флаг split_flag равен "1", блок CU, имеющий размер 2N×2Ν, разделяют на блоки CU, каждый из которых имеет размер Ν×Ν, в иерархии на один уровень ниже.
Более того, блок CU разбивают на блоки прогнозирования (prediction unit (PUs)), представляющие собой области (частичные области изображения в блоках кадров), являющиеся блоками обработки данных при внутрикадровом прогнозировании или межкадровом прогнозировании, и разбивают на блоки преобразования (transform unit (TU)), представляющие собой области (частичные области изображения в блоках кадров), являющиеся блоками обработки при ортогональном преобразовании. В настоящий момент в системе HEVC могут быть использованы ортогональные преобразования с размерностью 16×16 и 32×32 в дополнение к ортогональным преобразованиям с размерностью 4×4 и 8×8.
Как и в описанной выше системе HEVC, в случае системы кодирования, в которой определен блок CU и в котором осуществляются различные процедуры в блоках CU, можно считать, что макроблок системы AVC соответствует блоку LCU, а блок (суб-блок) соответствует блоку CU. Кроме того, блок компенсации движения в системе AVC может считаться соответствующим блоку PU. Однако поскольку блок CU имеет иерархическую структуру, обычно размер блока LCU в наивысшей иерархии задают больше размера макроблока в системе AVC, такого как 128×128 пикселей.
Таким образом, здесь в последующем предполагается, что блок LCU содержит макроблок системы AVC, а блок CU содержит блок (суб-блок) системы AVC. Иными словами, термин «блок», используемый в приведенном ниже описании, представляет произвольную частичную область в составе изображения, а размер, форма, характеристики и другие подобные параметры блока ничем специально не ограничены. Другими словами, в понятие «блок» входят, например, такие произвольные области, как блок TU, блок PU, блок SCU, блок CU, блок LCU, суб-блок, макроблок и срез. Вполне очевидно, что в это понятие блока могут также входить частичные области (блоки обработки), отличные от перечисленных выше областей. Кроме того, случаи, где размер, блок обработки или другие подобные характеристики необходимо ограничить, будут описаны должным образом.
В настоящем описании предполагается, что блок дерева кодирования (Coding Tree Unit (CTU)) представляет собой блок, содержащий блок дерева кодирования (СТВ) из состава блока CU наибольшего размера (LCU) и параметр в момент обработки на основе (уровне) блока LCU. Кроме того, предполагается, что блок кодирования (CU), составляющий блок CTU, представляет собой блок, содержащий блок кодирования (Coding Block (СВ)) и параметр в момент обработки на основе (уровне) блока CU.
Выбор режима
В системах AVC и HEVC кодирования важную роль для достижения более высокой эффективности кодирования играет выбор подходящего режима прогнозирования.
В качестве примера такой системы выбора можно указать способ, согласно которому система выбора встроена в опорное программное обеспечение (опубликовано на сайте http://iphome.hhi.de/suehring/tml/index.htm) для стандарта H.264/MPEG-4AVC, именуемого (Joint Model (совместная модель)).
В совместной модели JM способ определения режима осуществляет выбор между режимом высокой сложности и режимом низкой сложности, которые будут описаны ниже. В любом из этих режимов вычисляют величину целевой функции для каждого режима (Mode) прогнозирования и выбирают режим прогнозирования, которому соответствует наименьшая величина целевой функции, в качестве оптимального режима для рассматриваемого блока или макроблока.
Целевая функция в режиме высокой сложности представлена Уравнением (1) ниже.
Математическая формула 1
Cost(Mode ∈ Ω)=D+λ*R… (1)
Здесь, Ω - универсальный набор режимов-кандидатов, используемых кодирования блока или макроблока, D - разность энергий между декодированным изображением и входным изображением в случае, когда кодирование осуществлялось в режиме прогнозирования. Кроме того, λ - неопределенный множитель Лагранжа, являющийся функцией параметра квантования. Параметр R - общий объем кода, если кодирование осуществляется в режиме, содержащем коэффициент ортогонального преобразования.
Другими словами, когда кодирование осуществляется в режиме высокой сложности, для вычисления указанных выше параметров D и R необходимо выполнить предварительное кодирование по одному разу для всех режимов-кандидатов, так что соответственно требуется больший объем вычислений.
Целевая функция в режиме низкой сложности представлена Уравнением (2) ниже.
Математическая формула 2
Cost(Mode ∈ Ω)=D+QP2Quant(QP)*HeaderBit… (2)
Здесь, D, в отличие от случая режима высокой сложности, представляет собой разность энергий между прогнозируемым изображением и входным изображением. Кроме того, величина QP2Quant (QP) является функцией параметра QP квантования, a HeaderBit представляет собой объем кода, применительно к информации, принадлежащей заголовку, такой как вектор движения и режим, не содержащий коэффициент ортогонального преобразования.
Другими словами, в режиме низкой сложности, хотя процесс прогнозирования необходимо провести для каждого режима-кандидата, декодированное изображение не требуется, и процедуру кодирования выполнять не нужно. По этой причине объем вычислений в режиме низкой сложности может быть меньше, чем в режиме высокой сложности.
Иерархическое кодирование
Описанные выше системы кодирования изображения, такие как системы по стандарту MPEG2 и по стандарту AVC, обладают функцией масштабируемости. Масштабируемое кодирование (иерархическое кодирование) представляет собой систему, согласно которой изображение конфигурируют в виде совокупности множества уровней, расположенных в иерархическом порядке, (иерархизируют) и осуществляют кодирование для каждого уровня. На фиг. 2 представлена схема, иллюстрирующая пример системы кодирования иерархического изображения.
Как показано на фиг. 2, в процессе иерархизации (иерархического представления) изображения одно исходное изображение разбивают на множество иерархий (уровней) с использованием ссылки на заданный параметр, имеющий функцию масштабируемости. Другими словами, иерархизированное изображение (далее - иерархическое изображение) содержит множество иерархий (уровней), имеющих взаимно различные (свое для каждого уровня) значения указанного заданного параметра. Эти множества уровней иерархического изображения конфигурированы в виде совокупности уровней, содержащей базовый уровень, кодирование и декодирование которого осуществляется с использованием только изображения этого базового уровня и без использования изображения какого-либо другого уровня, и небазовый уровень (также именуемый расширительным уровнем), кодирование и декодирование которого осуществляется с использованием изображения какого-либо другого уровня. Этот небазовый уровень может быть конфигурирован для использования изображения базового уровня или для использования изображения другого небазового уровня.
В общем случае для уменьшения избыточности небазовый уровень конфигурируют из данных (разностных данных) разностного изображения между изображением рассматриваемого небазового уровня и изображением другого уровня. Например, если одно изображение разбито на два иерархических уровня, а именно - базовый уровень и небазовый уровень (именуемый также расширительным уровнем), изображение, качество которого ниже качества исходного изображения, получают с использованием данных только базового уровня, а исходное изображение (другими словами, высококачественное изображение) получают на основе объединения данных базового уровня и данных небазового уровня.
Благодаря такому иерархическому разбиению изображения можно легко получать изображения различного качества в зависимости от ситуации. Например, в случае, когда терминалу, имеющему относительно небольшие возможности обработки и представления данных, такому как мобильный телефон, передают информацию сжатого изображения только для базового уровня и воспроизводят в этом терминале движущееся изображение с низким пространственным/временным разрешением или изображение низкого качества, а терминалу, имеющему относительно большие возможности обработки и представления данных, такому как телевизор или персональный компьютер, в дополнение к информации базового уровня передают информацию сжатого изображения для расширительного уровня и воспроизводят в этом терминале изображение с высоким пространственным/временным разрешением или изображение высокого качества, информация сжатого изображения в соответствии с возможностями конкретного рассматриваемого терминала может быть передана прямо от сервера без осуществления транскодирования.
Масштабируемый параметр
При таком кодировании иерархического изображения/декодировании иерархического изображения (масштабируемое кодирование/масштабируемое декодирование) параметр, обладающий функцией масштабируемости, является произвольным. Например, в качестве такого параметра может быть задано пространственное разрешение, как показано на фиг. 3, (пространственная масштабируемость). В случае такой пространственной масштабируемости разрешение изображения различно для каждого уровня. Другими словами, как показано на фиг. 3, каждое изображение разбито на два иерархических уровня, а именно базовый уровень, имеющий пространственное разрешение ниже разрешения исходного изображения, и расширительный уровень, позволяющий получить исходное изображение (исходное пространственное разрешение) при объединении с изображением базового уровня. Очевидно, что указанное здесь число иерархических уровней является только примером, так что изображение может быть разбито на произвольное число иерархических уровней.
В качестве параметра, обладающего такой масштабируемостью, может быть, например, использовано временное разрешение, как показано на фиг. 4 (временная масштабируемость). В случае такой временной масштабируемости, частота кадров различна для каждого уровня. Другими словами, в этом случае, как показано на фиг. 4, поскольку изображение разбито на иерархические уровни, имеющие взаимно различную (у каждого уровня - своя) частоту кадров, путем добавления уровня с высокой частотой кадров к уровню с низкой частотой кадров можно получить движущееся изображение с более высокой частотой кадров, а в результате объединения всех уровней можно получить исходное движущееся изображение (с исходной частотой кадров). Указанное здесь число иерархических уровней является только примером, так что изображение может быть разбито на произвольное число иерархических уровней.
Кроме того, в качестве параметра, обладающего такой масштабируемостью, можно, например, выбрать отношение сигнал/шум (Signal to Noise ratio (SNR)) (масштабируемость по отношению SNR). В случае такой масштабируемости по отношению SNR это отношение сигнал/шум различно для каждого уровня. Другими словами, как показано на фиг. 5, каждое изображение разбито на два иерархических уровня, а именно - базовый уровень с отношением SNR ниже, чем для исходного изображения, и расширительный уровень, позволяющий получить исходное изображение (исходное отношение SNR) при объединении с изображением базового уровня. Другими словами, в составе информации сжатого изображения базового уровня передают информацию, относящуюся к изображению с низким отношением PSNR, а при добавлении к этой информации базового уровня информации сжатого изображения расширительного уровня можно реконструировать отношение с высоким отношением PSNR. Очевидно, что указанное здесь число иерархических уровней является только примером, так что изображение может быть разбито на произвольное число иерархических уровней.
Очевидно, что в качестве параметра, обладающего масштабируемостью, можно использовать какой-либо еще параметр, отличный от параметров в рассмотренных выше примерах. Например, возможна масштабируемость по глубине цвета, когда базовый уровень конфигурирован в виде 8-битового изображения, а при добавлении к нему расширительного уровня получается 10-битовое изображение.
Кроме того, возможна масштабируемость по цветоразностным данным, когда базовый уровень конфигурирован посредством компонентного изображения в формате 4:2:0, а компонентное изображение в формате 4:2:2 получают путем добавления к нему расширительного уровня.
Синтаксическая структура высокого уровня для расширенного стандарта
Например, как описано в Непатентном документе 2 или Непатентном документе 3 была предложена синтаксическая структура высокого уровня (high level syntax (HL syntax)) для, например, набора параметров видео (VPS), набора параметров последовательности (SPS), набора параметров кадра (PPS), заголовка среза (SliceHeader) и других подобных элементов, являющаяся общей для расширенного стандарта HEVC, описанного выше.
В Непатентном документе 2 или Непатентном документе 3 было предложено передавать информацию, относящуюся к межуровневому прогнозированию, в заголовке среза. Фиг. 6 представляет схему, иллюстрирующую пример синтаксиса информации, относящейся к межуровневому прогнозированию, в составе заголовка среза. На фиг. 7 представлена схема, иллюстрирующая пример семантики заголовка среза.
Как показано на фиг. 6, в составе заголовка среза в качестве информации, относящейся к межуровневому прогнозированию, передают следующую информацию inter_layer_pred_enabled_fiag, num_inter_layer_refjpics_minus1, inter_layer_pred_layer_idc[i], inter_layer_sample_pred_only flag и т.п.
Флаг inter_layer_pred_enabled_flag является информацией о межуровневой прогнозируемости, представляющей, разрешено ли межуровневое прогнозирование для текущего среза, являющегося целью обработки. Если флаг имеет значение "0", межуровневое прогнозирование не может быть использовано для генерирования прогнозируемого изображения.
Параметр num_inter_layer_ref_pics_minus1 является информацией о числе опорных уровней, представляющей число опорных уровней, выбранных в качестве опорных целей при межуровневом прогнозировании текущего среза. Число уровней, получаемое путем добавления единицы к значению этого параметра, является числом опорных уровней, используемых при межуровневом прогнозировании текущего среза. Это число опорных уровней определено также в наборе параметров видео (VPS) (NumDirectRefLayers[N]). Параметр num_inter_layer_ref_pics_minus1 определяет, что число опорных уровней должно быть равно величине, получаемой путем вычитания единицы из величины этого параметра, или меньше. Другими словами, информация о числе опорных уровней (num_inter_layer_ref_pics_minus1+1) определяет число опорных уровней, выбранных для текущего среза, из совокупности опорных уровней, определенных в наборе параметров видео (VPS).
Кроме того, параметр NumDirectRefLayers[N] является информацией, представляющей максимальную величину номеров уровней, которые могут быть использованы в качестве опорных при межуровневом прогнозировании для уровня N. Другими словами, в качестве опорного уровня может быть использован любой уровень от уровня 0 и до уровня с номером, равным этому параметру.
Параметр inter_layer_pred_layer_idc[i] является информацией о назначении опорного уровня, указывающей уровни в качестве опорных уровней при межуровневом прогнозировании текущего среза. Кроме того, этот параметр inter_layer_pred_layer_idc[i] может указать уровни от уровня 0 до уровня, указанного параметром NumActiveRefLayerPics, в качестве опорных уровней.
Параметр NumActiveRefLayerPics является информацией о числе активных уровней, которые могут быть назначены в качестве опорных уровней (т.е. находящихся в активном состоянии) при межуровневом прогнозировании текущего среза. Если уровень (текущий уровень (nuh_layer_id)) текущего среза является уровнем 0 (nuh_layer_id==0), число опорных уровней для текущего среза равно 0 (NumDirectRefLayers[nuh_layer_id]=0), или межуровневое прогнозирование не разрешено (inter_layer_pred_enabled_flag), значение параметра NumActiveRefLayerPics равно 0. С другой стороны, если только один кадр используется для межуровневого прогнозирования каждого кадра в кодированной видео последовательности (Coded Video Sequence (CVS)), тогда параметр (max_one_active_ref_layer_flag) или максимальная величина номеров уровней, которые могут быть использованы в качестве опорных уровней при межуровневом прогнозировании текущего уровня, как это определено в наборе параметров видео (VPS), равна 1 (NumDirectRefLayers[nuh_layer_id]=1), параметр NumActiveRefLayerPics равен 1. В других случаях величина параметра NumActiveRefLayerPics равна величине (num_inter_layer_ref_pics_minus1+1), полученной путем добавления единицы к информации о числе опорных уровней.
Флаг inter_layer_sample_pred_only_flag является информацией о межкадровой прогнозируемости, представляющей, разрешено ли межкадровое прогнозирование для текущего среза. Если значение этого флага равно 0, межкадровое прогнозирование не может быть использовано для генерирования прогнозируемого изображения.
Другими словами, в состав относящейся к межуровневому прогнозированию информации, передаваемой от кодирующей стороны на декодирующую сторону, могут входить информация о межуровневой прогнозируемости, информация о числе опорных уровней, информация о назначении опорного уровня и информация о межкадровой прогнозируемости. Очевидно, что в состав информации, относящейся к межуровневому прогнозированию, может быть включена и какая-либо другая информация помимо перечисленных выше, равно как некоторые из этих видов информации могут быть исключены.
Как показано на фиг. 6, такую информацию, относящуюся к межуровневому прогнозированию, передают в случае, когда текущий уровень не является уровнем 0 (nuh_layer_id>0), а также в межуровневом прогнозировании для текущего уровня присутствует уровень, который может быть использован в качестве опорного уровня (NumDirectRefLayers[nuh_layer_id]>0).
Однако даже в таком случае можно рассмотреть ситуацию, когда описываемая выше информация, относящаяся к межуровневому прогнозированию, оказывается ненужной. Однако, согласно способам, рассматриваемым в Непатентном документе 2 или в Непатентном документе 3, информацию, относящуюся к межуровневому прогнозированию, передают без учета такой ситуации. Соответственно, при этом происходит также передача ненужного синтаксиса, объем кода в заголовке среза увеличивается без необходимости, вследствие чего появляется вероятность снижения эффективности кодирования.
Таким образом, конфигурируя более жесткие условия для передачи информации, относящейся к межуровневому прогнозированию, можно уменьшить избыточность в заголовке среза и соответственно повысить эффективность кодирования. Пример конкретного способа будет описан ниже.
Управление в соответствии с типом среза
В соответствии со способами, описываемые в Непатентном документе 2 или Непатентном документе 3, например, в случае точки произвольного доступа при внутрикадровом прогнозировании (Intra Random Access Point (IRAP)), которая является началом группы изображений (Group of Pictures (GOP)), информацией о межуровневом прогнозировании управляют с использованием значения параметра nal unit type (nal_unit_type), чтобы не передавать информацию, относящуюся к межуровневому прогнозированию.
Однако, например, как показано на виде А в составе фиг. 8, даже в случае применения точки IRAP, могут присутствовать Р-срез и В-срез, и в этих Р-срезе или В-срезе можно осуществить межуровневое прогнозирование. В отличие от этого, например, как показано на виде В в составе фиг. 8, если точка IRAP конфигурирована на основе только всех I-срезов, межуровневое прогнозирование не выполняется.
Другими словами, невозможно определить, выполнять ли межуровневое прогнозирование, на основе только параметра nal unit type (nal_unit_type). Если межуровневое прогнозирование не осуществляется, информация, относящаяся к межуровневому прогнозированию, становится избыточными данными. Другими словами, в таком случае, если передавать информацию, относящуюся к межуровневому прогнозированию, происходит ненужное увеличение объема кода в составе заголовка среза, вследствие чего возникает проблема снижения эффективности кодирования.
Таким образом, при управлении передачей информации, относящейся к межуровневому прогнозированию, необходимо учитывать также значение параметра тип среза (slice_type). Другими словами, если параметр тип среза указывает на Р-срез или В-срез, информацию, относящуюся к межуровневому прогнозированию, конфигурируют так, чтобы ее можно было передать.
Фиг. 9 иллюстрирует пример части синтаксиса заголовка среза для такого случая. Как показано на фиг. 9, перед синтаксисом (синтаксической структурой), определяющим информацию, относящуюся к межуровневому прогнозированию, добавлено условное выражение "if(slice_type==Ρ||slice_type==В) {". Другими словами, информацию, относящуюся к межуровневому прогнозированию, передают только в том случае, если это условное выражение является истинным.
При таком конфигурировании удается предотвратить ненужную передачу информации, относящейся к межуровневому прогнозированию, что позволяет не допустить снижения эффективности кодирования.
Управление в соответствии с числом опорных уровней
Как описано выше, в наборе параметров видео (VPS) и в заголовке среза присутствует синтаксис, определяющий число опорных уровней. Другими словами, как, например, показано на виде А в составе фиг. 10, число опорных уровней, применимое ко всей последовательности, определяют в составе набора параметров видео (VPS). Например, как показано на виде В в составе фиг. 10, в заголовке среза, опорные уровни выбирают из группы опорных уровней, определенной в составе набора параметров видео (VPS). Соответственно, опорные уровни могут изменяться для каждого кадра.
В случае, когда число опорных уровней, определенное в составе набора параметров видео (VPS), и число опорных уровней, определенное в заголовке среза, совпадают одно с другим, все опорные уровни, определенные в составе набора параметров видео (VPS), определены в качестве опорных уровней для текущего среза. Другими словами, в таком случае нет необходимости специально назначать уровни для применения в качестве опорных уровней с использованием информации о назначении опорного уровня (inter_layer_pred_layer_idc[i]).
Однако согласно способам, описываемым в Непатентном документе 2 и в Непатентном документе 3, даже в этом случае передают информацию о назначении опорного уровня (inter_layer_pred_layer_idc[i]). Другими словами, объем кода для заголовка среза оказывается без необходимости увеличен, и возникает проблема снижения эффективности кодирования.
Таким образом, если число (NumDirectRefLayers[nuh_layer_id]) опорных уровней, определенное в составе набора параметров видео (VPS), и число (информация о числе активных уровней (NumActiveRefLayerPics)) опорных уровней, определенное в заголовке среза, не совпадают одно с другим, информацию о назначении опорного уровня (inter_layer_pred_layer_idc[i]) конфигурируют таким образом, чтобы ее можно было передать.
Фиг. 11 иллюстрирует пример конфигурации части синтаксиса заголовка среза для такого случая. Фиг. 12 иллюстрирует пример семантики заголовка среза для такого случая. Как показано на фиг. 11, перед синтаксисом, определяющим информацию о назначении опорного уровня (inter_layer_pred_layer_idc[i]), добавлено условное уравнение "if(NumDirectRefLayers[nuh_layer_id]!=NumActiveRefLayerPics)". Другими словами, информацию, относящуюся к межуровневому прогнозированию, конфигурируют таким образом, чтобы ее можно было передать, только в том случае, если это условное выражение является истинным.
При таком конфигурировании можно не допустить ненужной передачи информации назначении опорного уровня и, соответственно, избежать снижения эффективности кодирования.
Предварительное определение схемы опорных уровней
В соответствии со способами, описываемыми в Непатентном документе 2 и в Непатентном документе 3, информацию, относящуюся к межуровневому прогнозированию, передают в каждом срезе. Другими словами, в каждом срезе указывают все уровни, которые могут быть использованы в качестве опорных уровней.
Однако на самом деле, соотношение между уровнем и опорным уровнем в совокупности уровней, например, как в случае, показанном на фиг. 13, легко переходит к зависимости от позиции (другими словами, соотношение между уровнем и опорным уровнем в направлении оси времени) в пределах группы GOP. Другими словами, во многих случаях соотношение между уровнем и опорным уровнем в направлении межуровневого прогнозирования определяют на основе позиции текущего среза в группе GOP.
Соответственно, посредством определения (фиксации) заранее соотношения между уровнем и опорным уровнем (другими словами, схемы задания уровней для использования в качестве опорных уровней (также именуется набором опорных кадров при межуровневом прогнозировании)) в совокупности уровней, имеющих высокую частоту появления и указания соответствующего фиксированного соотношения между уровнем и опорным уровнем (набор опорных кадров при межуровневом прогнозировании) с использованием индекса в каждом срезе, объем кода можно снизить и сделать меньше, чем в случае, когда назначают все опорные слои для каждого среза, как в способе, описываемом в Непатентном документе 2 или Непатентном документе 3. Другими словами, можно избежать снижения эффективности кодирования.
Набор опорных кадров при межуровневом прогнозировании передают в составе набора параметров последовательности (SPS), чтобы его можно было использовать для всей последовательности (для всех срезов в пределах этой последовательности). Кроме того, если соответствующее соотношение между уровнем и опорным уровнем не присутствует в заданном наборе опорных кадров при межуровневом прогнозировании для текущего среза, набор опорных кадров при межуровневом прогнозировании для текущего среза может быть определен в заголовке этого среза.
Другими словами, согласно способам, описываемым в Непатентном документе 2 и Непатентном документе 3, как показано на виде А в составе фиг. 14, тогда как перезапись или дополнение информации об опорных уровнях, определенной в наборе параметров видео (VPS), осуществляют в заголовке каждого среза, как показано на виде В в составе фиг. 14, схемы (наборы опорных кадров при межуровневом прогнозировании) соотношения между уровнем и опорным уровнем сохраняют в составе набора параметров последовательности (SPS), и, на уровне кадров, (каждый срез) схему назначают с использованием индекса (например, идентификационного номера). Аналогично набору опорных кадров (RPS (Reference Picture Set)), в случае схемы, отличной от указанных схем (наборов опорных кадров при межуровневом прогнозировании) для соотношения между уровнем и опорным уровнем, сохраняемых в наборе параметров последовательности (SPS), схема (набор опорных кадров при межуровневом прогнозировании) для соотношения между уровнем и опорным уровнем, заданного для рассматриваемого среза, определена в заголовке этого среза (или в наборе параметров кадра (PPS)).
Кроме того, могут быть определены несколько наборов опорных кадров при межуровневом прогнозировании (путем присвоения индексов этим наборам, число наборов опорных кадров при межуровневом прогнозировании является произвольным).
Фиг. 15 иллюстрирует пример конфигурации части синтаксиса набора параметров последовательности (SPS) для такого случая. Фиг. 16 иллюстрирует пример синтаксиса, определяющего набор опорных кадров при межуровневом прогнозировании. Фиг. 17 иллюстрирует пример конфигурации части синтаксиса заголовка среза для такого случая.
Фиг. 18 иллюстрирует пример семантики набора параметров последовательности (SPS) в таком случае. Фиг. 19 иллюстрирует пример семантики, определяющей набор опорных кадров при межуровневом прогнозировании. Фиг. 20 иллюстрирует пример конфигурации части семантики заголовка среза в таком случае.
Как показано на фиг. 15, в составе набора параметров последовательности (SPS) заданы информация о числе наборов (num_inter_layer_ref_pic_sets), представляющая число наборов опорных кадров при межуровневом прогнозировании, которые должны быть определены, и наборы опорных кадров при межуровневом прогнозировании (inter_layer_ref_pic_set(i)), соответствующие этому числу наборов.
В каждом наборе опорных кадров при межуровневом прогнозировании, как показано на фиг. 16, задают информацию о числе опорных уровней (num_inter_layer_ref_pics_minus1) и информацию о назначении опорного уровня (inter_layer_pred_layer_idc[i]), соответствующую числу опорных уровней.
Кроме того, как показано на фиг. 17, в заголовке среза, задают информацию о межуровневой прогнозируемости (inter_layer_pred_enabled_flag) и набор опорных кадров при межуровневом прогнозировании, использующие информацию, представляющую, является ли набор опорных кадров при межуровневом прогнозировании пригодным для использования. Кроме того, если набор опорных кадров при межуровневом прогнозировании является пригодным для использования, задают индекс (inter_layer_ref_pic_set_idx), указывающий набор опорных кадров при межуровневом прогнозировании. С другой стороны, если набор опорных кадров при межуровневом прогнозировании не является пригодным для использования, задают набор опорных кадров при межуровневом прогнозировании (inter_layer_ref_pic_set(num_inter_layer_ref_pic_sets)) для текущего среза. Кроме того, задают информацию о межкадровой прогнозируемости (inter_layer_sample_pred_only_flag).
При таком конфигурировании можно уменьшить объем кода в информации, относящейся к межуровневому прогнозированию, что позволяет не допустить снижения эффективности кодирования.
Сочетание способов управления
Тогда как выше были описаны только три способа управления информацией, относящейся к межуровневому прогнозированию, эти способы можно применять в различных сочетаниях. Например, способы, описанные в разделах <Управление в соответствии с типом среза> и <Управление в соответствии с числом опорных уровней>, можно применять в сочетании. Кроме того, способы, описанные в разделах <Управление в соответствии с типом среза> и предварительное определение схемы опорных уровней>, можно использовать в сочетании. Более того, способы, описанные в разделах <Управление в соответствии с числом опорных уровней> и <Предварительное определение схемы опорных уровней> также можно применять в сочетании.
Далее, все три способа, описанные в разделах <Управление в соответствии с типом среза>, <Управление в соответствии с числом опорных уровней> и предварительное определение схемы опорных уровней>, можно использовать в сочетании.
Более того, описанные выше способы можно сочетать с каким-либо еще другим способом.
На фиг. 21-23 представлены схемы, иллюстрирующие примеры синтаксиса заголовка среза для случая сочетания способов, описанных в разделах <Управление в соответствии с типом среза> и <Управление в соответствии с числом опорных уровней>. На фиг. 24 представлена схема, иллюстрирующая пример семантики заголовка среза для этого случая.
На участке, представленном на фиг. 22 с наклонной штриховкой, показано управление передачей (включая формирование) информации, относящейся к межуровневому прогнозированию.
При таком конфигурировании удается избежать ненужной передачи информации, относящейся к межуровневому прогнозированию, а также можно избежать ненужной передачи информации о назначении опорного уровня, и тем самым в большей степени предотвратить снижение эффективности кодирования, чем этого можно добиться при использовании только способа, описанного в разделе <Управление в соответствии с типом среза>, или только способа, описанного в разделе <Управление в соответствии с числом опорных уровней>.
На фиг. 25 и 26 представлены схемы, иллюстрирующие примеры синтаксиса для набора параметров последовательности (SPS) при использовании сочетания способов, описанных в разделах <Управление в соответствии с типом среза>, <Управление в соответствии с числом опорных уровней> и предварительное определение схемы опорных уровней>. На фиг. 27 представлена схема, задающая набор опорных кадров при межуровневом прогнозировании для этого случая. Фиг. 28-31 представляют схемы, иллюстрирующие примеры синтаксиса заголовка среза для этого случая.
Фиг. 32 представляет схему, иллюстрирующую пример семантики набора параметров последовательности (SPS) для этого случая. Фиг. 33 представляет схему, иллюстрирующую пример семантики набора опорных кадров при межуровневом прогнозировании для этого случая. Фиг. 34 представляет схему, иллюстрирующую пример семантики заголовка среза для этого случая.
На участке, представленном на фиг. 26 с наклонной штриховкой, определены наборы опорных кадров при межуровневом прогнозировании, а параметры для каждого набора опорных кадров при межуровневом прогнозировании определены на фиг. 27. Кроме того, на участке, представленном на фиг. 29 с наклонной штриховкой, показано управление передачей (включая формирование) информации, относящейся к межуровневому прогнозированию.
При таком конфигурировании удается избежать ненужной передачи информации, относящейся к межуровневому прогнозированию, а также можно избежать ненужной передачи информации о назначении опорного уровня и уменьшить объем кода для относящейся к межуровневому прогнозированию информации, которую нужно передать, и тем самым в большей степени предотвратить снижение эффективности кодирования, чем этого можно добиться при использовании только способа, описанного в разделе <Управление в соответствии с типом среза>, или только способа, описанного в разделе <Управление в соответствии с числом опорных уровней>, или только способа, описанного в разделе предварительное определение схемы опорных уровней>.
Кроме того, на декодирующей стороне путем анализа информации заголовка, содержащего информацию, относящуюся к межуровневому прогнозированию, с использованием способа, аналогичного описанной выше процедуре управления информацией, относящейся к межуровневому прогнозированию, на кодирующей стороне, можно правильно анализировать информацию, относящуюся к межуровневому прогнозированию, и тем самым можно правильно управлять межуровневым прогнозированием на основе этой информации. Соответственно реализуется предотвращение ненужных передач информации, относящейся к межуровневому прогнозированию, что позволяет избежать снижения эффективности кодирования.
Очевидно, что описанное выше сочетание нескольких способов управления можно применять аналогично тому, как это делается на кодирующей стороне.
2. Второй вариант
Устройство кодирования изображения
Далее будут рассмотрены способ и устройство, реализующие предлагаемую технологию, как это описано выше. На фиг. 35 представлена схема, иллюстрирующая устройство кодирования изображения, представляющее собой вариант устройства обработки изображения, к которому применима предлагаемая технология. Показанное на фиг. 35 устройство 100 кодирования изображения представляет собой устройство, осуществляющее кодирование иерархического изображения (масштабируемое кодирование). Как показано на фиг. 35, устройство 100 кодирования изображения содержит: модуль 101 кодирования изображения базового уровня; модуль 102 кодирования изображения расширительного уровня, мультиплексорный модуль 103; и модуль 104 управления.
Модуль 101 кодирования изображения базового уровня осуществляет кодирование изображения базового уровня, формируя в результате поток данных кодированного изображения базового уровня. Кроме того, модуль 102 кодирования изображения расширительного уровня осуществляет кодирование изображения расширительного уровня, формируя в результате поток данных кодированного изображения расширительного уровня. Мультиплексорный модуль 103 осуществляет мультиплексирование потока данных кодированного изображения базового уровня, формируемого модулем 101 кодирования изображения базового уровня, и потока данных кодированного изображения расширительного уровня, формируемый модулем 102 кодирования изображения расширительного уровня, генерируя в результате поток данных кодированного иерархического изображения. Мультиплексорный модуль 103 передает сформированный им поток данных кодированного иерархического изображения на декодирующую сторону.
Модуль 101 кодирования изображения базового уровня передает декодированное изображение (также именуемое декодированным изображением базового уровня), полученное в процессе кодирования базового уровня, в модуль 102 кодирования изображения расширительного уровня.
Модуль 102 кодирования изображения расширительного уровня получает декодированное изображение базового уровня, поступающее от модуля 101 кодирования изображения базового уровня, и сохраняет это полученное декодированное изображение базового уровня. Указанный модуль 102 кодирования изображения расширительного уровня использует сохраненное им декодированное изображение базового уровня в качестве опорного изображения для процедуры прогнозирования в ходе кодирования расширительного уровня.
Модуль 104 управления осуществляет настройки, относящиеся к данным полного изображения, и управляет модулем 101 кодирования изображения базового уровня и модулем 102 кодирования изображения расширительного уровня на основе этих настроек, управляя тем самым процедурой кодирования каждого уровня. Кроме того, модуль 104 управления генерирует с использованием этих настроек набор параметров видео (VPS) и направляет этот набор параметров видео в мультиплексорный модуль 103, передавая тем самым набор параметров видео на декодирующую сторону. В этот момент набор параметров видео может быть конфигурирован для передачи в составе кодированного потока данных иерархического изображения или для передачи в виде данных, отличных от кодированного потока данных иерархического изображения.
Модуль 102 кодирования изображения расширительного уровня формирует информацию заголовка, такую как набор параметров последовательности (SPS), и заголовок среза в соответствии с командами (информация из состава набора параметров видео (VPS), поступающего от модуля 104 управления) модуля 104 управления.
Модуль кодирования изображения базового уровня
На фиг. 36 представлена блок-схема, иллюстрирующая пример базовой конфигурации модуля 101 кодирования изображения базового уровня, показанного на фиг. 35. Как изображено на фиг. 36, модуль 101 кодирования изображения базового уровня содержит: модуль 111 аналого-цифрового преобразования; буфер 112 реорганизации экрана; вычислительный модуль 113; модуль 114 ортогонального преобразования; модуль 115 квантования; модуль 116 обратимого кодирования; накопительный буфер 117; модуль 118 обратного квантования и модуль 119 обратного ортогонального преобразования. Кроме того, модуль 101 кодирования изображения базового уровня содержит: вычислительный модуль 120; контурный фильтр 121; память 122 кадров; селекторный модуль 123; модуль 124 внутрикадрового прогнозирования; модуль 125 межкадрового прогнозирования; модуль 126 селектора прогнозируемого изображения; и модуль 127 управления частотой дискретизации.
Модуль 111 аналого-цифрового преобразования осуществляет аналого-цифровое преобразование данных входного изображения (информации изображения базового уровня) и передает данные изображения (цифровые данные) после преобразования в буфер 112 реорганизации экрана, сохраняя тем самым данные изображения в этом буфере. Буфер 112 реорганизации экрана изменяет расположение сохраненных в нем изображений кадров, которые были расположены в порядке их представления на дисплее, и располагает их в порядке кадров кодирования в соответствии с группой изображений (GOP) и передает полученные в результате такого изменения порядка кадров изображения в вычислительный модуль 113. Кроме того, буфер 112 реорганизации экрана передает изображения, полученные в результате изменения порядка кадров также в модуль 124 внутрикадрового прогнозирования и в модуль 125 межкадрового прогнозирования.
Вычислительный модуль 113 вычитает прогнозируемое изображение, поступающее от модуля 124 внутрикадрового прогнозирования или от модуля 125 межкадрового прогнозирования через модуль 126 селектора прогнозируемого изображения, из изображения, считываемого из буфера 112 реорганизации экрана, и передает полученную разностную информацию в модуль 114 ортогонального преобразования. Например, в случае изображения, для которого выполняется внутрикадровое кодирование, вычислительный модуль 113 вычитает прогнозируемое изображение, поступающее от модуля 124 внутрикадрового прогнозирования, из изображения, считываемого из буфера 112 реорганизации экрана. С другой стороны, например, в случае изображения, для которого выполняется межкадровое кодирование, вычислительный модуль 113 вычитает прогнозируемое изображение, поступающее от модуля 125 межкадрового прогнозирования, из изображения, считываемого из буфера 112 реорганизации экрана.
Модуль 114 ортогонального преобразования осуществляет ортогональное преобразование, такое как дискретное косинусное преобразование или преобразование Карунена-Лоэва, применительно к разностной информации, поступающей от вычислительного модуля 113. Этот модуль 114 ортогонального преобразования передает полученные им коэффициенты преобразования в модуль 115 квантования.
Этот модуль 115 квантования осуществляет квантование коэффициентов преобразования, поступающих от модуля 114 ортогонального преобразования. Модуль 115 квантования задает параметры квантования на основе информации, относящейся к целевому значению объема кода, поступающему от модуля 127 управления частотой дискретизации, и осуществляет квантование коэффициентов. Модуль 115 квантования передает квантованные коэффициенты преобразования в модуль 116 обратимого кодирования.
Модуль 116 обратимого кодирования осуществляет кодирование квантованных коэффициентов преобразования, поступающих от модуля 115 квантования, с использованием произвольной системы кодирования. Поскольку данные коэффициентов квантуют под управлением модуля 127 управления частотой дискретизации, объем кода становится равным целевой величине, заданной модулем 127 управления частотой дискретизации (или близким к этой целевой величине).
Кроме того, модуль 116 обратимого кодирования получает информацию, представляющую режим внутрикадрового прогнозирования, и другую подобную информацию, от модуля 124 внутрикадрового прогнозирования и получает информацию, представляющую режим межкадрового прогнозирования, информацию разностного вектора движения и другую подобную информацию от модуля 125 межкадрового прогнозирования. Более того, модуль 116 обратимого кодирования генерирует должным образом для базового уровня единицу уровня абстракции сети (Network Abstraction Layer (NAL)), содержащую набор параметров последовательности (SPS), набор параметров кадра (PPS) и другую подобную информацию.
Модуль 116 обратимого кодирования осуществляет кодирование таких разнообразных сегментов информации с использованием произвольной системы кодирования и конфигурирует кодированную информацию как часть кодированных данных (также именуемых кодированным потоком данных). Этот модуль 116 обратимого кодирования передает кодированные им данные в накопительный буфер 117, где происходит накопление кодированных данных.
Среди примеров системы кодирования, применяемой в модуле 116 обратимого кодирования, можно указать кодирование в коде переменной длины, арифметическое кодирование и другие подобные виды кодирования. В качестве примеров кодирования в коде переменной длины можно указать контекстно-адаптивное кодирование в коде переменной длины (Context-Adaptive Variable Length Coding (CAVLC)), определенное в системе H.264/AVC, и другие подобные виды кодирования. В качестве примеров арифметического кодирования можно указать контекстно-адаптивное двоичное арифметическое кодирование (Context-Adaptive Binary Arithmetic Coding (CABAC)) или другое подобное кодирование.
Накопительный буфер 117 временно сохраняет кодированный поток данных (кодированный поток данных базового уровня), поступающий от модуля 116 обратимого кодирования. Кроме того, этот накопительный буфер 117 передает сохраняемый в нем кодированный поток данных базового уровня в заданные моменты времени в мультиплексорный модуль 103 (фиг. 15). Другими словами, накопительный буфер 117 служит также передающим модулем, который передает кодированный поток данных базового уровня.
Кроме того, коэффициенты преобразования, квантованные посредством модуля 115 квантования, передают в модуль 118 обратного квантования. Этот модуль 118 обратного квантования осуществляет обратное квантование применительно к квантованным коэффициентам преобразования с использованием способа, соответствующего процедуре квантования, осуществляемой в модуле 115 квантования. Модуль 118 обратного квантования передает полученные им коэффициенты преобразования в модуль 119 обратного ортогонального преобразования.
Этот модуль 119 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование применительно к коэффициентам преобразования, поступающим от модуля 118 обратного квантования, с использованием способа, соответствующего процедуре ортогонального преобразования, осуществляемой модулем 114 ортогонального преобразования. Выходные данные (восстановленная разностная информация), для которых выполнено обратное ортогональное преобразование, поступают в вычислительный модуль 120.
Вычислительный модуль 120 суммирует прогнозируемое изображение, поступающее от модуля 124 внутрикадрового прогнозирования или от модуля 125 межкадрового прогнозирования через модуль 126 селектора прогнозируемого изображения, с восстановленной разностной информацией, представляющей собой результатом обратного ортогонального преобразования, поступающим от модуля 119 обратного ортогонального преобразования, и получает в результате изображение (декодированное изображение), являющееся локально декодированным. Это декодированное изображение передают в контурный фильтр 121 или в память 122 кадров.
Контурный фильтр 121 содержит фильтр удаления блочности, адаптивный контурный фильтр или аналогичное устройство и осуществляет должным образом фильтрацию реконструированного изображения, поступающего от вычислительного модуля 120. Например, контурный фильтр 121 устраняет блочные искажения реконструированного изображения посредством применения процедуры фильтрации удаления блочности к реконструированному изображению. Кроме того, например, контурный фильтр 121 осуществляет процедуру контурной фильтрации с использованием фильтра Винера применительно к результату (реконструированному изображению, из которого удалены блочные искажения) фильтрации удаления блочности, повышая тем самым качество изображения. Контурный фильтр 121 передает результат фильтрации (далее именуемый декодированным изображением) в память 122 кадров.
Более того, контурный фильтр 121 может быть конфигурирован для осуществления какой-либо другой дополнительной произвольной фильтрации применительно к реконструированному изображению. Кроме того, контурный фильтр 121 может, если нужно, быть конфигурирован для передачи информации, такой как используемые коэффициенты фильтрации или другая подобная информация, в модуль 116 обратимого кодирования этой информации.
Память 122 кадров сохраняет поступившее декодированное изображение и передает сохраненное декодированное изображение селекторному модулю 123 в заданные моменты времени в качестве опорного изображения.
Более конкретно, память 122 кадров сохраняет реконструированное изображение, поступившее от вычислительного модуля 120, и декодированное изображение, поступившее от контурного фильтра 121. Память 122 кадров передает сохраненное в ней реконструированное изображение в модуль 124 внутрикадрового прогнозирования через селекторный модуль 123 в заданные моменты времени или на основе запроса от внешнего модуля, такого как модуль 124 внутрикадрового прогнозирования или аналогичный модуль. Кроме того, память 122 кадров передает сохраняемое декодированное изображение в модуль 125 межкадрового прогнозирования через селекторный модуль 123 в заданные моменты времени или на основе запроса от внешнего модуля, такого как модуль 125 межкадрового прогнозирования.
Селекторный модуль 123 выбирает адресата опорного изображения, поступающего из памяти 122 кадров. Например, в случае внутрикадрового прогнозирования селекторный модуль 123 передает опорное изображение (величины пикселей изнутри текущего кадра или декодированного изображения базового уровня), поступающее из памяти 122 кадров, в модуль 124 внутрикадрового прогнозирования. С другой стороны, например, в случае межкадрового прогнозирования селекторный модуль 123 передает опорное изображение (декодированное изображение расширительного уровня извне текущего кадра или декодированное изображение базового уровня), поступающее из памяти 122 кадров, в модуль 125 межкадрового прогнозирования.
Модуль 124 внутрикадрового прогнозирования осуществляет процедуру прогнозирования для текущего кадра, иными словами, для изображения кадра, подлежащего обработке, генерируя в результате прогнозируемое изображение. Этот модуль 124 внутрикадрового прогнозирования осуществляет эту процедуру прогнозирования для каждой группы из заданного числа блоков (для блоков в качестве единиц обработки). Другими словами, модуль 124 внутрикадрового прогнозирования генерирует прогнозируемое изображение текущего блока, являющегося целью обработки, из состава текущего кадра. В этот момент модуль 124 внутрикадрового прогнозирования осуществляет процедуру прогнозирования (внутриэкранное прогнозирование (также именуемое внутрикадровым прогнозированием)) с использованием реконструированного изображения, поступающего из памяти 122 кадров через селекторный модуль 123, в качестве опорного изображения. Другими словами, модуль 124 внутрикадрового прогнозирования генерирует прогнозируемое изображение с использованием величин пикселей, расположенных по периферии текущего блока, входящего в состав реконструированного изображения. Величины расположенных по периферии пикселей, используемых для такого внутрикадрового прогнозирования, являются величинами пикселей, обработанных в прошлом в текущем кадре. В качестве такого внутрикадрового прогнозирования (другими словами, в качестве способа генерирования прогнозируемого изображения), заранее подготовлены несколько способов-кандидатов (также именуемых режимами внутрикадрового прогнозирования). Модуль 124 внутрикадрового прогнозирования осуществляет внутрикадрового прогнозирование в нескольких режимах внутрикадрового прогнозирования, подготовленных заранее.
Модуль 124 внутрикадрового прогнозирования генерирует прогнозируемые изображения во всех режимах-кандидатах внутрикадрового прогнозирования, оценивает величину целевой функции для каждого прогнозируемого изображения с использованием входного изображения, поступающего из буфера 112 реорганизации экрана, и выбирает оптимальный режим. Когда оптимальный режим внутрикадрового прогнозирования выбран, модуль 124 внутрикадрового прогнозирования передает прогнозируемое изображение, сформированное в оптимальном режиме, в модуль 126 селектора прогнозируемого изображения.
Кроме того, как описано выше, модуль 124 внутрикадрового прогнозирования передает должным образом информацию о режиме внутрикадрового прогнозирования, представляющую используемый режим внутрикадрового прогнозирования, и другую необходимую информацию в модуль 116 обратимого кодирования этой информации.
Модуль 125 межкадрового прогнозирования генерирует прогнозируемое изображение путем осуществления процедуры прогнозирования для текущего кадра. Этот модуль 125 межкадрового прогнозирования осуществляет эту процедуру прогнозирования для каждой группы из заданного числа блоков (блоков в качестве единиц обработки). Другими словами, модуль 125 межкадрового прогнозирования генерирует прогнозируемое изображение для текущего блока, являющегося целью обработки, в составе текущего кадра. В этот момент модуль 125 межкадрового прогнозирования осуществляет процедуру прогнозирования с использованием данных входного изображения, поступающих из буфера 112 реорганизации экрана, и данных декодированного изображения, поступающих из памяти 122 кадров, в качестве опорного изображения. Это декодированное изображение представляет собой изображение (другой кадр, отличный от текущего кадра) кадров, обработанных прежде текущего кадра. Другими словами, модуль 125 межкадрового прогнозирования осуществляет процедуру прогнозирования (межэкранное прогнозирование (также именуемое межкадровым прогнозированием)), которая генерирует прогнозируемое изображение с использованием изображения другого кадра.
Такое межкадровое прогнозирование конфигурировано из прогнозирования движения и компенсации движения. Более конкретно, модуль 125 межкадрового прогнозирования осуществляет прогнозирование движения для текущего блока с использованием входного изображения и опорного изображения и определяет в результате вектор движения. Затем модуль 125 межкадрового прогнозирования осуществляет процедуру компенсации движения в соответствии с найденным вектором движения с использованием опорного изображения и генерирует тем самым прогнозируемое изображение (информацию о прогнозируемом изображении при межкадровом прогнозировании) для текущего блока. В качестве такого межкадрового прогнозирования (другими словами, в качестве способа генерирования прогнозируемого изображения) заранее готовят несколько способов-кандидатов (именуемых также режимами межкадрового прогнозирования). Модуль 125 межкадрового прогнозирования осуществляет такое межкадровое прогнозирование в нескольких режимах межкадрового прогнозирования, подготовленных заранее.
Модуль 125 межкадрового прогнозирования генерирует прогнозируемые изображения во всех режимах-кандидатах межкадрового прогнозирования. Этот модуль 125 межкадрового прогнозирования оценивает значение целевой функции для каждого из прогнозируемых изображений с использованием входного изображения, поступающего из буфера 112 реорганизации экрана, и информации о найденном разностном векторе движения и другой подобной информации и выбирает оптимальный режим. Когда оптимальный режим межкадрового прогнозирования выбран, модуль 125 межкадрового прогнозирования передает прогнозируемое изображение, сформированное в оптимальном режиме, в модуль 126 селектора прогнозируемого изображения.
Модуль 125 межкадрового прогнозирования передает информацию, представляющую используемый режим межкадрового прогнозирования, информацию, необходимую для осуществления процедуры в режиме межкадрового прогнозирования во время декодирования кодированных данных, и другую подобную информацию в модуль 116 обратимого кодирования с целью кодировать эту информацию. Среди необходимой информации можно указать, например, информацию для генерирования разностного вектора движения, флаг, представляющий индекс прогнозируемого вектора движения, в качестве информации о прогнозируемом векторе движения, и другую подобную информацию.
Модуль 126 селектора прогнозируемого изображения выбирает источник прогнозируемого изображения для передачи в вычислительный модуль 113 и вычислительный модуль 120. Например, в случае внутрикадрового кодирования модуль 126 селектора прогнозируемого изображения выбирает модуль 124 внутрикадрового прогнозирования в качестве источника прогнозируемого изображения и передает прогнозируемое изображение, поступающее от модуля 124 внутрикадрового прогнозирования, в вычислительный модуль 113 и вычислительный модуль 120. С другой стороны, например, в случае межкадрового кодирования модуль 126 селектора прогнозируемого изображения выбирает модуль 125 межкадрового прогнозирования в качестве источника прогнозируемого изображения и передает прогнозируемое изображение, поступившее от модуля 125 межкадрового прогнозирования, в вычислительный модуль 113 и вычислительный модуль 120.
Модуль 127 управления частотой дискретизации управляет частотой операции квантования, выполняемой модулем 115 квантования, на основе объема кода в составе кодированных данных, накопленных в накопительном буфере 117, таким образом, чтобы избежать как переполнения, так и недостаточного заполнения буфера.
Кроме того, память 122 кадров передает хранящееся в ней декодированное изображение базового уровня в модуль 102 кодирования изображения расширительного уровня.
Модуль кодирования изображения расширительного уровня
Фиг. 37 представляет блок-схему, иллюстрирующую пример базовой конфигурации модуля 102 кодирования изображения расширительного уровня, показанного на фиг. 35. Как показано на фиг. 37, модуль 102 кодирования изображения расширительного уровня имеет в основном такую же конфигурацию, как модуль 101 кодирования изображения базового уровня, представленный на фиг. 36.
Другими словами, модуль 102 кодирования изображения расширительного уровня, изображенный на фиг. 37, содержит: модуль аналого-цифрового преобразования 131; буфер 132 реорганизации экрана; вычислительный модуль 133; модуль 134 ортогонального преобразования; модуль 135 квантования; модуль 136 обратимого кодирования; накопительный буфер 137; модуль 138 обратного квантования, и модуль 139 обратного ортогонального преобразования. Кроме того, модуль 102 кодирования изображения расширительного уровня содержит: вычислительный модуль 140; контурный фильтр 141; память 142 кадров; селекторный модуль 143; модуль 144 внутрикадрового прогнозирования; модуль 145 межкадрового прогнозирования; модуль 146 селектора прогнозируемого изображения; и модуль 147 управления частотой дискретизации.
Перечисленные компоненты от модуля 131 аналого-цифрового преобразования до модуля 147 управления частотой дискретизации включительно соответствуют компонентам от модуля 111 аналого-цифрового преобразования до модуля 127 управления частотой дискретизации включительно, показанным на фиг. 36, и осуществляют процедуры, аналогичные соответствующим рабочим модулям. Однако каждый модуль из состава модуля 102 кодирования изображения расширительного уровня осуществляет процедуру кодирования информации изображения расширительного уровня вместо изображения базового уровня. Таким образом, представленное выше описание процедур, выполняемых компонентами от модуля 111 аналого-цифрового преобразования до модуля 127 управления частотой дискретизации включительно, показанными на фиг. 36, может быть применено к компонентам от модуля 131 аналого-цифрового преобразования до модуля 147 управления частотой дискретизации включительно. В таком случае обрабатываемые данные должны быть данными не базового уровня, а расширительного уровня. Кроме того, источник входных данных и рабочий модуль-адресат результата обработки данных необходимо заменить в настоящем описании соответствующими рабочими модулями из совокупности от модуля 131 аналого-цифрового преобразования до модуля 147 управления частотой дискретизации включительно.
Кроме того, память 142 кадров получает декодированное изображение базового уровня, поступающее от модуля 101 кодирования изображения базового уровня, и, например, сохраняет полученное декодированное изображение базового уровня в качестве долговременного опорного изображения или подобного объекта. Это декодированное изображение базового уровня используется, например, в качестве опорного изображения для межуровневого прогнозирования при выполнении процедур прогнозирования, осуществляемых модулем 144 внутрикадрового прогнозирования и модулем 145 межкадрового прогнозирования.
Кроме того, модуль 102 кодирования изображения расширительного уровня дополнительно содержит модуль 151 генерирования информации заголовка и модуль 152 управления прогнозированием.
Модуль 151 генерирования информации заголовка генерирует разного рода информацию заголовка, такую как набор параметров последовательности и заголовок среза, в соответствии с командами от модуля 104 управления (другими словами, с использованием информации из состава набора параметров видео (VPS) или подобной информации, поступающей от модуля 104 управления).
Этот модуль 151 генерирования информации заголовка, например, генерирует должным образом информацию, относящуюся к межуровневому прогнозированию, посредством осуществления процедуры управления, как описано в первом варианте, и вставляет сформированную им информацию в состав информации заголовка, такой как набор параметров последовательности (SPS) и заголовок среза.
Модуль 151 генерирования информации заголовка передает сгенерированную им информацию заголовка в модуль 136 обратимого кодирования, передавая тем самым информацию заголовка на декодирующую сторону. Этот модуль 136 обратимого кодирования передает, например, информацию заголовка в накопительный буфер 137 в составе потока данных кодированного изображения расширительного уровня, передавая тем самым информацию заголовка на декодирующую сторону.
Рассматриваемый модуль 151 генерирования информации заголовка передает сгенерированную им информацию управления межуровневым прогнозированием и другую подобную информацию в модуль 152 управления прогнозированием. Этот модуль 152 управления прогнозированием управляет межуровневым прогнозированием, осуществляемым модулем 144 внутрикадрового прогнозирования и модулем 145 межкадрового прогнозирования в соответствии с результатом генерирования информации, относящейся к межуровневому прогнозированию (сгенерированной информацией, относящейся к межуровневому прогнозированию, или с фактом не формирования информации, относящейся к межуровневому прогнозированию).
Рассматриваемый модуль 151 генерирования информации заголовка содержит, например, процессор CPU, RAM, ROM и другие подобные компоненты и осуществляет описанные выше процедуры путем выполнения программы, считываемой из ROM или аналогичного запоминающего устройства с использованием RAM посредством процессора CPU.
Модуль генерирования информации заголовка
Фиг. 38 представляет блок-схему, иллюстрирующую пример конфигурации функциональных блоков в составе модуля 151 генерирования информации заголовка, показанного на фиг. 37. В этом модуле 151 генерирования информации заголовка описанная выше процедура осуществляется, например, путем выполнения программы, считываемой из ROM или аналогичного запоминающего устройства с использованием RAM посредством процессора CPU, что обеспечивает реализацию разнообразных функциональных блоков, представленных на фиг. 38.
Как показано на фиг. 38, модуль 151 генерирования информации заголовка содержит: модуль 161 генерирования заголовка среза; модуль 162 генерирования набора параметров последовательности 162; и модуль 163 генерирования набора опорных кадров при межуровневом прогнозировании.
Модуль 161 генерирования заголовка среза генерирует заголовок текущего среза. Модуль 162 генерирования набора параметров последовательности генерирует набор параметров последовательности (SPS) (также именуемой текущей последовательностью), которой принадлежит текущий срез. Модуль 163 генерирования набора опорных кадров при межуровневом прогнозировании генерирует параметры, конфигурирующие каждый набор опорных кадров при межуровневом прогнозировании, определенный модулем 162 генерирования набора параметров последовательности.
Модуль 161 генерирования заголовка среза содержит: модуль 171 определения зависимости; модуль 172 определения типа среза; модуль 173 определения уровня; модуль 174 определения числа опорных уровней; модуль 174 определения межуровневой прогнозируемости; модуль 176 определения набора опорных кадров при межуровневом прогнозировании; модуль 177 определения числа наборов; модуль 178 генерирования синтаксиса, относящегося к межуровневому прогнозированию; модуль 179 генерирования набора параметров; и модуль 180 задания индекса.
Модуль 171 определения зависимости определяет, зависит ли заголовок текущего среза от другого среза. Модуль 172 определения типа среза определяет тип текущего среза. Модуль 173 определения уровня выполняет определение, относящееся к уровню текущего среза. Модуль 174 определения числа опорных уровней выполняет определение, относящееся к числу опорных уровней. Модуль 175 определения межуровневой прогнозируемости определяет, можно ли осуществить межуровневое прогнозирование. Модуль 176 определения набора опорных кадров при межуровневом прогнозировании определяет, используется ли предварительно заданный набор опорных кадров при межуровневом прогнозировании. Модуль 177 определения числа наборов определяет число наборов опорных кадров при межуровневом прогнозировании. Модуль 178 генерирования синтаксиса, относящегося к межуровневому прогнозированию, генерирует информацию, относящуюся к межуровневому прогнозированию. Модуль 179 генерирования набора параметров осуществляет процедуру, относящуюся к генерированию набора опорных кадров при межуровневом прогнозировании. Модуль 180 задания индекса осуществляет процедуру, относящуюся к генерированию индекса, указывающего набор опорных кадров при межуровневом прогнозировании.
Модуль 178 генерирования синтаксиса, относящегося к межуровневому прогнозированию, содержит: модуль 181 генерирования информации о межуровневой прогнозируемости; модуль 182 генерирования информации о номере опорного уровня; модуль 183 генерирования информации о назначении опорного уровня; и модуль 184 генерирования информации о межкадровой прогнозируемости 184.
Модуль 181 генерирования информации о межуровневой прогнозируемости осуществляет процедуру, относящуюся к генерированию информации о межуровневой прогнозируемости. Модуль 182 генерирования информации о номере опорного уровня осуществляет процедуру, относящуюся к генерированию информации о числе опорных уровней. Модуль 183 генерирования информации о назначении опорного уровня осуществляет процедуру, относящуюся к генерированию информации о назначении опорного уровня. Модуль 184 генерирования информации о межкадровой прогнозируемости осуществляет процедуру, относящуюся к генерированию информации о межкадровой прогнозируемости.
Модуль 162 генерирования набора параметров последовательности содержит модуль 185 генерирования информации о числе наборов и модуль 186 генерирования набора параметров.
Модуль 185 генерирования информации о числе наборов генерирует информацию о числе наборов, представляющую число наборов параметров, (наборов опорных кадров при межуровневом прогнозировании) определяемых в наборе параметров последовательности. Модуль 186 генерирования набора параметров 186 генерирует (определяет) набор параметров (набор опорных кадров при межуровневом прогнозировании).
Модуль 163 генерирования набора опорных кадров при межуровневом прогнозировании содержит модуль 187 генерирования информации о номере опорного уровня и модуль 188 генерирования информации о назначении опорного уровня.
Модуль 187 генерирования информации о номере опорного уровня представляет собой рабочий модуль, осуществляющий процедуру, аналогичную модулю 182 генерирования информации о номере опорного уровня, и генерирует информацию о числе опорных уровней в составе набора опорных кадров при межуровневом прогнозировании. Модуль 188 генерирования информации о назначении опорного уровня представляет собой рабочий модуль, осуществляющий процедуру, аналогичную модулю 183 генерирования информации о назначении опорного уровня, и генерирует информацию о назначении опорного уровня, представляющую все опорные уровни, назначенные в наборе опорных кадров при межуровневом прогнозировании.
Как было описано в первом варианте, имеются множество способов управления информацией, относящейся к межуровневому прогнозированию, и эти способы могут сочетаться один с другим. Таким образом, из совокупности функциональных блоков, представленных на фиг. 38, функциональные блоки, ненужные для реализации используемого способа или сочетания способов управления, могут быть исключены.
Последовательность операций процедуры кодирования изображения
Далее будет рассмотрена последовательность операций для каждой процедуры, выполняемой устройством 100 кодирования изображения, как описано выше. Сначала пример последовательности операций процедур кодирования изображения будет рассмотрен со ссылками на логическую схему, представленную на фиг. 39.
Когда начинается выполнение процедуры кодирования изображения, модуль 104 управления в составе устройства 100 кодирования изображения задает порядок всей процедуры масштабируемого кодирования на этапе S101.
На этапе S102 модуль 104 управления осуществляет управление каждым модулем от модуля 101 кодирования изображения базового уровня до мультиплексорного модуля 103 включительно в соответствии с порядком, заданным на этапе S101.
На этапе S103 модуль 104 управления генерирует набор параметров видео (VPS), отражающий порядок, заданный на этапе S101.
На этапе S104 модуль 101 кодирования изображения базового уровня кодирует данные изображения базового уровня.
На этапе S105 модуль 102 кодирования изображения расширительного уровня кодирует данные изображения расширительного уровня.
На этапе S106 мультиплексорный модуль 103 осуществляет мультиплексирование кодированного потока данных изображения базового уровня, сформированного на этапе S104, и кодированного потока данных изображения расширительного уровня, сформированного на этапе S105 (другими словами, потоков битов данных каждого уровня), генерируя тем самым кодированный поток данных иерархического изображения одной системы. Кроме того, мультиплексорный модуль 103 встраивает набор параметров видео (VPS), сформированный на этапе S103, в кодированный поток данных иерархического изображения по мере необходимости. Мультиплексорный модуль 103 передает на выход кодированный поток данных иерархического изображения для передачи на декодирующую сторону.
Когда завершается выполнение операций этапа S106, устройство 100 кодирования изображения завершает выполнение процедуры кодирования изображения. В результате осуществления такой процедуры кодирования изображения происходит обработка одного кадра. Таким образом, устройство 100 кодирования изображения вновь и вновь выполняет такую процедуру кодирования изображения для каждого кадра в составе разбитых на уровни данных движущегося изображения. Однако, например, операции, которые не требуется выполнять для каждого кадра, такие как операции этапов с S101 по S103, должным образом исключаются.
Последовательность операций процедуры кодирования базового уровня
Далее пример последовательности операций процедуры кодирования базового уровня, выполняемой модулем 101 кодирования изображения базового уровня на этапе S104, представленном на фиг. 39, будет описан со ссылками на логическую схему, показанную на фиг. 40.
Когда начинается осуществление процедуры кодирования базового уровня, модуль 111 аналого-цифрового преобразования в составе модуля 101 кодирования изображения базового уровня выполняет аналого-цифровое преобразование каждого кадра входного движущегося изображения на этапе S121.
На этапе S122 буфер 112 реорганизации экрана сохраняет преобразованное в цифровую форму изображение, полученное на этапе S121, и реорганизует кадры от порядка для представления на устройстве отображения к порядку кодирования.
На этапе S123 модуль 124 внутрикадрового прогнозирования осуществляет внутрикадровое прогнозирование в соответствии с режимом внутрикадрового прогнозирования.
На этапе S124 модуль 125 межкадрового прогнозирования осуществляет межкадровое прогнозирование, в процессе которого он выполняет прогнозирование движения, компенсацию движения и другие подобные операции в соответствии с режимом межкадрового прогнозирования.
На этапе S125 модуль 126 селектора прогнозируемого изображения выбирает прогнозируемое изображение на основе значения целевой функции и других подобных факторов. Другими словами, модуль 126 селектора прогнозируемого изображения выбирает одно из изображений - прогнозируемое изображение, сформированное в процессе внутрикадрового прогнозирования, выполненного на этапе S123, или прогнозируемое изображение, сгенерированное в процессе межкадрового прогнозирования, выполненного на этапе S124.
На этапе S126 вычислительный модуль ИЗ вычисляет разность между входным изображением, в котором порядок кадров был изменен в процессе выполнения этапа S122, и прогнозируемым изображением, выбранным на этапе S125. Другими словами, вычислительный модуль 113 генерирует данные разностного изображения между входным изображением и прогнозируемым изображением. Объем данных полученного таким способом разностного изображения оказывается меньше объема данных полного изображения. Таким образом, предлагаемый способ позволяет уменьшить (сжать) объем данных по сравнению со случаем прямого кодирования изображения.
На этапе S127 модуль 114 ортогонального преобразования осуществляет ортогональное преобразование данных разностного изображения, сгенерированного на этапе S126.
На этапе S128 модуль 115 квантования осуществляет квантование коэффициентов ортогонального преобразования, полученных на этапе S127, с использованием параметров квантования, вычисленных модулем 127 управления частотой дискретизации.
На этапе S129 модуль 118 обратного квантования осуществляет обратное квантование применительно к квантованным коэффициентам (также именуемым коэффициентами квантования), сгенерированным на этапе S128, с использованием характеристик, соответствующих характеристикам модуля 115 квантования.
На этапе S130 модуль 119 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование применительно к коэффициентам ортогонального преобразования, полученным на этапе S129.
На этапе S131 вычислительный модуль 120 суммирует прогнозируемое изображение, выбранное на этапе S125, с разностным изображением, восстановленным на этапе S130, генерируя тем самым данные реконструированного изображения.
На этапе S132 контурный фильтр 121 осуществляет фильтрацию данных реконструированного изображения, сгенерированного на этапе S131. Соответственно происходит устранение блочных искажений и других подобных искажений реконструированного изображения.
На этапе S133 память 122 кадров сохраняет данные декодированного изображения (декодированного изображения базового уровня), полученного на этапе S132, реконструированного изображения, полученного на этапе S131, и другие подобные данные.
На этапе S134 модуль 116 обратимого кодирования осуществляет кодирование квантованных коэффициентов, полученных на этапе S128. Другими словами, модуль 116 обратимого кодирования осуществляет обратимое кодирование, такое как кодирование в коде переменной длины или арифметическое кодирование, применительно к данным, соответствующим разностному изображению.
Кроме того, в это время модуль 116 обратимого кодирования осуществляет кодирование информации, относящейся к режиму прогнозирования для прогнозируемого изображения, выбранного на этапе S125, и суммирует разностное изображение с кодированными данными, полученными в результате кодирования. Другими словами модуль 116 обратимого кодирования осуществляет кодирование информации об оптимальном режиме внутрикадрового прогнозирования, поступающей от модуля 124 внутрикадрового прогнозирования, информации об оптимальном режиме межкадрового прогнозирования, поступающей от модуля 125 межкадрового прогнозирования, и другой подобной информации добавляет эту кодированную информацию к кодированным данным.
Более того, модуль 116 обратимого кодирования задает и кодирует элементы синтаксиса для различных nal-единиц (nal units) и других подобных элементов и добавляет кодированные элементы синтаксиса к кодированным данным.
На этапе S135 накопительный буфер 117 аккумулирует кодированные данные (кодированный поток данных изображения базового уровня), полученные на этапе S134. Кодированный поток данных изображения базового уровня, аккумулированный в накопительном буфере 117, считывают должным образом, передают в мультиплексорный модуль 103, мультиплексируют с кодированным потоком данных изображения расширительного уровня и затем передают на декодирующую сторону по линии передачи или через носитель записи.
На этапе S136 модуль 127 управления частотой дискретизации управляет частотой операции квантования, выполняемой модулем 115 квантования, на основе объема кода (объема сформированного кода) в составе кодированных данных, аккумулированных в накопительном буфере 117 на этапе S135, таким образом, чтобы избежать переполнения или недостаточного заполнения буфера. Кроме того, модуль 127 управления частотой дискретизации передает информацию, относящуюся к параметрам квантования, в модуль 115 квантования.
На этапе S137 память 122 кадров передает сохраненное декодированное изображение базового уровня для осуществления процедуры кодирования расширительного уровня.
После завершения процесса на этапе S137 завершается процедура кодирования базового уровня, а работа возвращается к процедуре, показанной на фиг. 39.
Последовательность операций процедуры кодирования расширительного уровня
Далее пример последовательности операций процедуры кодирования расширительного уровня, выполняемой модулем 102 кодирования изображения расширительного уровня на этапе S105, представленном на фиг. 39, будет рассмотрен со ссылками на логическую схему, показанную на фиг. 41.
Когда начинается осуществление процедуры кодирования расширительного уровня, модуль 151 генерирования информации заголовка в составе модуля 102 кодирования изображения расширительного уровня генерирует, например, разного рода информацию заголовка, такую как набор параметров последовательности (SPS), заголовок среза и другую подобную информацию на этапе S141.
На этапе S142 память 142 кадров получает и сохраняет декодированное изображение базового уровня. Например, память 142 кадров сохраняет это декодированное изображение базового уровня в виде долговременного опорного кадра.
Операции этапов c S143 по S158 включительно соответствуют операциям этапов с S121 по S136 включительно, представленным на фиг. 40, и выполняются в основном аналогичным образом. Однако, тогда как каждая из операций на этапах с S121 по S136 включительно, показанных на фиг. 40, выполняется применительно к базовому уровню, каждая из операций этапов c S143 по S158 включительно осуществляется применительно к расширительному уровню.
После завершения процесса на этапе S158 завершается процедура кодирования расширительного уровня, а работа возвращается к процедуре, показанной на фиг. 39.
Процедура генерирования информации заголовка, относящейся к межуровневому прогнозированию
Модуль 151 генерирования информации заголовка и модуль 152 управления прогнозированием осуществляют процедуру генерирования информации заголовка, относящейся к межуровневому прогнозированию, на этапе S141, представленном на фиг. 41, и как описано в первом варианте, генерируют информацию, относящуюся к межуровневому прогнозированию, в качестве информации заголовка (заголовок среза) и управляют межуровневым прогнозированием.
Далее пример последовательности операций процедуры генерирования информации заголовка, относящейся к межуровневому прогнозированию, будет рассмотрен со ссылками на логическую схему, представленную на фиг. 42. На фиг. 42 показана последовательность операций для случая сочетания описанных для первого варианта способа из раздела Управление в соответствии с типом среза и способа из раздела Управление в соответствии с числом опорных уровней.
Когда начинается выполнение процедуры генерирования информации заголовка, относящейся к межуровневому прогнозированию, модуль 171 определения зависимости определяет на этапе S161, зависит ли заголовок текущего среза от какого-либо другого среза. Если определено, что срез зависим (флаг !dependent_slice_segment_flag), процедура переходит к этапу S162.
На этапе S162 модуль 172 определения типа среза определяет, является ли текущий срез срезом Р-типа (Р-срез) или срезом В-типа (В-срез). Если определено, что текущий срез является Р-срезом или В-срезом (slice_type=Ρ||slice_type==В), процедура переходит к этапу S163.
На этапе S163 модуль 173 определения уровня определяет, является ли уровень текущего среза расширительным уровнем, и определяет в составе набора параметров видео (VPS) один или более уровней в качестве опорных уровней. Если определено, что уровень текущего среза является расширительным уровнем, и в составе набора параметров видео (VPS) определены один или более уровней для использования в качестве опорных уровней (nuh_layer_id>0 && NumDirectReiLayers[nuh_layer_id]>0), процедура переходит к этапу S164.
На этапе S164 модуль 181 генерирования информации о межуровневой прогнозируемости генерирует информацию о межуровневой прогнозируемости (inter_layer_pred_enabled_flag) в качестве информации, относящейся к межуровневому прогнозированию.
На этапе S165 модуль 182 генерирования информации о номере опорного уровня генерирует информацию о числе опорных уровней (num_inter_layer_ref_pics_minusl) в качестве информации, относящейся к межуровневому прогнозированию.
На этапе S166 модуль 184 генерирования информации о межкадровой прогнозируемости генерирует информацию о межкадровой прогнозируемости (inter_layer_sample_pred_only_flag) в качестве информации, относящейся к межуровневому прогнозированию.
На этапе S167 модуль 174 определения числа опорных уровней определяет, совпадает ли число опорных уровней, определенное в составе набора параметров видео (VPS), с числом (информацией о числе активных уровней) опорных уровней, определенным в заголовке среза. Если определено, что эти два числа опорных уровней не совпадают (NumDirectReiLayers[nuh_layer_id]!=NumActiveRefLayerPics), процедура переходит к этапу S168.
На этапе S168 модуль 183 генерирования информации о назначении опорного уровня генерирует информацию о назначении опорного уровня (inter_layer_pred_layer_idc[i]) в качестве информации, относящейся к межуровневому прогнозированию. Когда процесс этапа S168 завершается, процедура переходит к этапу S169.
Кроме того, на этапе S167, если число опорных уровней, определенное в составе набора параметров видео (VPS), совпадает с числом (информацией о числе активных уровней) опорных уровней, определенных в заголовке среза, процесс этапа S168 пропускают, а процедура переходит к этапу S169.
На этапе S169 модуль 152 управления прогнозированием осуществляет управление межуровневым прогнозированием на основе каждого параметра, заданного модулем 151 генерирования информации заголовка, как рассмотрено выше, в качестве информации, относящейся к межуровневому прогнозированию. Когда процесс этапа S169 завершается, выполнение процедуры генерирования информации заголовка, относящейся к межуровневому прогнозированию, тоже завершается.
Кроме того, на этапе S161, если определено, что заголовок текущего среза зависит от какого-либо другого среза, процедура переходит к этапу S170. На этапе S162, если определено, что текущий срез является срезом 1-типа (I-срезом), процедура переходит к этапу S170. На этапе S163, если определено, что уровень текущего среза является базовым уровнем, или если в составе набора параметров видео (VPS) определено, что нет одного или нескольких уровней, которые могут быть использованы в качестве опорных уровней, процедура переходит к этапу S170.
На этапе S170 модуль 152 управления прогнозированием запрещает межуровневое прогнозирование и управляет работой таким образом, чтобы не выполнять межуровневое прогнозирование в процессе внутрикадрового прогнозирования и в процессе межкадрового прогнозирования.
Когда процесс этапа S170 завершается, происходит завершение выполнения процедуры генерирования информации заголовка, относящейся к межуровневому прогнозированию.
В результате выполнения каждого процесса, как описано выше, устройство 100 кодирования изображения может предотвратить ненужную передачу информации, относящейся к межуровневому прогнозированию и избежать снижения эффективности кодирования.
Кроме того, при использовании только способа, описанного в разделе Управление в соответствии с типом среза, процесс этапа S167, представленного на фиг. 42, может быть пропущен. Более того, при использовании только способа, описанного в разделе Управление в соответствии с числом опорных уровней, процесс этапа S162, представленного на фиг. 42, может быть пропущен.
Вторая последовательность операций для процедуры генерирования информации заголовка, относящейся к межуровневому прогнозированию
Далее, в качестве другого примера процедуры генерирования информации заголовка, относящейся к межуровневому прогнозированию, будет со ссылками на логическую схему, представленную на фиг. 43, рассмотрен случай сочетания использования способа, описанного в разделе Управление в соответствии с типом среза в первом варианте, способа, описанного в разделе Управление в соответствии с числом опорных уровней, и способа, описанного в разделе Предварительное определение схемы опорных уровней.
Когда начинается выполнение процедуры генерирования информации заголовка, относящейся к межуровневому прогнозированию, модуль 185 генерирования информации о числе наборов генерирует информацию о числе наборов (num_inter_layer_ref_pic_sets) в качестве набора параметров последовательности на этапе S181.
На этапе S182 модуль 186 генерирования набора параметров генерирует набор опорных кадров при межуровневом прогнозировании (inter_layer_ref_pic_set(i)) в качестве набора параметров последовательности.
На этапе S183 модуль 187 генерирования информации о номере опорного уровня генерирует информацию о числе опорных уровней (num_inter_layer_ref_pics_minusl) в качестве набора опорных кадров при межуровневом прогнозировании.
На этапе S184 модуль 188 генерирования информации о назначении опорного уровня генерирует информацию о назначении опорного уровня (inter_layer_pred_layer_idc[i]) в качестве набора опорных кадров при межуровневом прогнозировании.
На этапе S185 модуль 172 определения типа среза и модуль 173 определения уровня определяют, является ли уровень текущего среза расширительным уровнем, и является ли текущий срез Р-срезом или В-срезом. Если определено, что уровень текущего среза является расширительным уровнем (Layer_id>0), и что текущий срез является Р-срезом или В-срезом (slice_type=Ρ||slice_type==В), процедура переходит к этапу S186.
На этапе S186 модуль 175 определения межуровневой прогнозируемости 175 определяет, может ли быть выполнено межуровневое прогнозирование, на основе синтаксиса набора параметров видео (VPS) в текущем срезе. Если определено, что межуровневое прогнозирование может быть выполнено, процедура переходит к этапу S187.
На этапе S187 модуль 176 определения набора опорных кадров при межуровневом прогнозировании определяет, может ли прогнозирование быть выполнено на основе параметров из состава набора параметров последовательности (SPS), другими словами, из состава набора опорных кадров при межуровневом прогнозировании. Если определено, что прогнозирование может быть выполнено, процедура переходит к этапу S188.
На этапе S188 модуль 177 определения числа наборов определяет, существует ли множество наборов опорных кадров при межуровневом прогнозировании. Если определено, что имеются множество наборов опорных кадров при межуровневом прогнозировании (num_inter_layer_ref_pic_sets>1), процедура переходит к этапу S189.
На этапе S189 модуль 180 задания индекса генерирует индекс (inter_layer_ref_pic_set_idx), указывающий набор опорных кадров при межуровневом прогнозировании, применимый к текущему срезу, в качестве заголовка среза. Когда завершается выполнение процесса на этапе S189, процедура переходит к этапу S192.
Кроме того, на этапе S188, если определено, что число наборов опорных кадров при межуровневом прогнозировании равно единице, процедура переходит к этапу S190.
На этапе S190 модуль 180 задания индекса исключает генерирование индекса (inter_layer_ref_pic_set_idx). В этом случае, даже в отсутствие индекса, поскольку присутствует только один набор параметров (набор опорных кадров при межуровневом прогнозировании) с нулевым номером, набор опорных кадров при межуровневом прогнозировании оказывается назначен. Когда завершается выполнение процесса на этапе S190, процедура переходит к этапу S192.
Кроме того, на этапе S187, если определено, что параметры из состава набора параметров последовательности (SPS), другими словами, набор опорных кадров при межуровневом прогнозировании, не используются, процедура переходит к этапу S191.
На этапе S191 модуль 179 генерирования набора параметров формирует набор параметров (набор опорных кадров при межуровневом прогнозировании, предназначенный для текущего кадра) (inter_layer_ref_pic_set (nmn_inter_layer_ref_pic_sets)), специально выделенный для текущего кадра, в качестве заголовка среза. Когда завершается выполнение процесса на этапе S191, процедура переходит к этапу S192.
На этапе S192 модуль 152 управления прогнозированием осуществляет управление межуровневым прогнозированием на основе набора параметров (набора опорных кадров при межуровневом прогнозировании), заданного как описано выше. Когда завершается выполнение процесса на этапе S192, происходит завершение осуществления процедуры генерирования информации заголовка, относящейся к межуровневому прогнозированию.
Кроме того, на этапе S185, если модуль 173 определения уровня определит, что уровень для текущего среза является базовым уровнем, или определит, что текущий срез является I-срезом, процедура переходит к этапу S193. Более того, на этапе S186, если будет определено на основе синтаксиса набора параметров видео (VPS) для текущего среза, что межуровневое прогнозирование может быть осуществлено для этого среза, процедура переходит к этапу S193.
На этапе S193 модуль 152 управления прогнозированием запрещает межуровневое прогнозирование и управляет работой таким образом, что межуровневое прогнозирование не осуществляется ни в процессе внутрикадрового прогнозирования, ни в процессе межкадрового прогнозирования.
Когда завершается выполнение процесса на этапе S193, происходит завершение осуществления процедуры генерирования информации заголовка, относящейся к межуровневому прогнозированию.
В результате выполнения каждого процесса, как указано выше, устройство 100 кодирования изображения может предотвратить ненужную передачу информации, относящейся к межуровневому прогнозированию, и не допустить снижения эффективности кодирования.
Кроме того, в примере, представленном на фиг. 43, сравнение между числами опорных слоев, как на этапе S167, показанном на фиг. 42, осуществляется в семантике, вследствие чего описание этого сравнения здесь опущено. Очевидно, что аналогично случаю, показанному на фиг. 42, такое сравнение может быть произведено с использованием синтаксиса.
Когда способ, описанный в разделе Управление в соответствии с типом среза, исключен, процесс на этапе S185, представленном на фиг. 43, также может быть исключен. Кроме того, если способ, описанный в разделе Управление в соответствии с числом опорных слоев, исключен, тогда в процессе выполнения этапа S184 или S191, представленных на фиг. 43, может быть конфигурировано непроведение сравнения чисел опорных слоев, как на этапе S167, показанном на фиг. 42.
Конфигурация устройства 100 кодирования изображения и содержание обработки данных на этапах процедуры кодирования изображения не ограничиваются приведенным выше примером до тех пор, пока передачей информации, относящейся к межуровневому прогнозированию, можно управлять так, как это описано в первом варианте.
3. Третий вариант
Устройство декодирования изображения
Далее, будет рассмотрено декодирование кодированных данных, которые были закодированы, как описано выше. На фиг. 44 представлена блок-схема, иллюстрирующая пример базовой конфигурации устройства декодирования изображения, соответствующего устройству 100 кодирования изображения, являющемуся вариантом устройства обработки изображения, к которому применима предлагаемая технология. Устройство 200 декодирования изображения, показанное на фиг. 44, декодирует кодированные данные, генерируемые устройством 100 кодирования изображения, с использованием способа декодирования, соответствующего способу кодирования (другими словами, осуществляет иерархическое декодирование кодированных данных, подвергшихся иерархическому кодирования). Как показано на фиг. 44, устройство 200 декодирования изображения содержит: демультиплексорный модуль 201; модуль 202 декодирования изображения базового уровня; и модуль 203 декодирования изображения расширительного уровня.
Демультиплексорный модуль 201 принимает кодированный поток данных иерархического изображения, в составе которого мультиплексированы кодированный поток данных изображения базового уровня и кодированный поток данных изображения расширительного уровня и который передают от кодирующей стороны, и демультиплексирует этот кодированный поток иерархического изображения, выделяя из него кодированный поток данных изображения базового уровня и кодированный поток данных изображения расширительного уровня. Модуль 202 декодирования изображения базового уровня декодирует кодированный поток данных изображения базового уровня, выделенный демультиплексорным модулем 201, получая изображение базового уровня. Модуль 203 декодирования изображения расширительного уровня декодирует кодированный поток данных изображения расширительного уровня, выделенный демультиплексорным модулем 201, получая изображение расширительного уровня.
Модуль 202 декодирования изображения базового уровня передает полученное им декодированное изображение базового уровня в модуль 203 декодирования изображения расширительного уровня.
Модуль 203 декодирования изображения расширительного уровня получает декодированное изображение базового уровня, поступающее от модуля 202 декодирования изображения базового уровня, и сохраняет полученное им декодированное изображение базового уровня. Этот модуль 203 декодирования изображения расширительного уровня использует сохраненное декодированное изображение базового уровня в качестве опорного изображения для использования в процессе прогнозирования, осуществляемого в ходе декодирования расширительного уровня.
Модуль декодирования изображения базового уровня
На фиг. 45 представлена блок-схема, иллюстрирующая пример базовой конфигурации модуля 202 декодирования изображения базового уровня, показанного на фиг. 44. Как представлено на фиг. 45, модуль 202 декодирования изображения базового уровня содержит: накопительный буфер 211; модуль 212 обратимого декодирования; модуль 213 обратного квантования; модуль 214 обратного ортогонального преобразования; вычислительный модуль 215; контурный фильтр 216; буфер 217 реорганизации экрана; и модуль 218 цифро-аналогового преобразования. Кроме того, модуль 202 декодирования изображения базового уровня содержит: память 219 кадров, селекторный модуль 220; модуль 221 внутрикадрового прогнозирования; модуль 222 межкадрового прогнозирования; и модуль 223 селектора прогнозируемого изображения.
Накопительный буфер 211 служит также приемным модулем, который принимает переданные кодированные данные (кодированный поток данных изображения базового уровня, поступающий от демультиплексорного модуля 201). Этот накопительный буфер 211 принимает и аккумулирует переданные кодированные данные и передает эти кодированные данные в модуль 212 обратимого декодирования в заданные моменты времени. Здесь информация, необходимая для осуществления декодирования, такая как информация о режиме прогнозирования и другая подобная информация, добавлена к кодированным данным.
Модуль 212 обратимого декодирования осуществляет декодирование информации, кодированной посредством модуля 116 обратимого кодирования и поступающей из накопительного буфера 211, с использованием системы декодирования, соответствующей системе кодирования. Этот модуль 212 обратимого декодирования передает квантованные данные коэффициентов разностного изображения, полученные в результате декодирования, в модуль 213 обратного квантования.
Кроме того, модуль 212 обратимого декодирования определяет, какой из режимов -режим внутрикадрового прогнозирования или режим межкадрового прогнозирования, выбран в качестве оптимального режима прогнозирования, и передает информацию относительно оптимального режима прогнозирования одному из модулей - модулю 221 внутрикадрового прогнозирования или модулю 222 межкадрового прогнозирования, который будет выбран по результатам этого определения. Другими словами, например, если на кодирующей стороне в качестве оптимального режима прогнозирования выбран режим внутрикадрового прогнозирования, информацию (информацию о режиме внутрикадрового прогнозирования) относительно оптимального режима прогнозирования передают в модуль 221 внутрикадрового прогнозирования. С другой стороны, например, если на кодирующей стороне в качестве оптимального режима прогнозирования выбран режим межкадрового прогнозирования, информацию (информацию о режиме межкадрового прогнозирования) относительно оптимального режима прогнозирования передают в модуль 222 межкадрового прогнозирования.
Кроме того, модуль 212 обратимого декодирования, например, выделяет информацию, необходимую для обратного квантования, такую как матрица квантования и параметры квантования, из кодированных данных и передает выделенную информацию в модуль 213 обратного квантования.
Модуль 213 обратного квантования осуществляет обратное квантование применительно к данным квантованных коэффициентов, полученным в результате декодирования, осуществленного модулем 212 обратимого декодирования с использованием системы, соответствующей системе, квантования, примененной в модуле 115 квантования. Здесь модуль 213 обратного квантования представляет собой рабочий модуль, аналогичный модулю 118 обратного квантования. Этот модуль 213 обратного квантования передает полученные им данные преобразования (коэффициенты ортогонального преобразования) в модуль 214 обратного ортогонального преобразования.
Модуль 214 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование применительно к коэффициентам ортогонального преобразования, поступающим от модуля 213 обратного квантования, с использованием способа, соответствующего процедуре ортогонального преобразования, выполняемой модулем 114 ортогонального преобразования. Здесь рассматриваемый модуль 214 обратного ортогонального преобразования представляет собой рабочий модуль, аналогичный модулю 119 обратного ортогонального преобразования.
В результате такого обратного ортогонального преобразования происходит восстановление данных разностного изображения. Эти восстановленные данные разностного изображения соответствуют данным разностного изображения, имевшим место прежде выполнения процедуры ортогонального преобразования на кодирующей стороне. В последующем здесь восстановленные данные разностного изображения, полученные в результате обратного ортогонального преобразования, осуществленного модулем 214 обратного ортогонального преобразования, будут также именоваться декодированными остаточными данными. Рассматриваемый модуль 214 обратного ортогонального преобразования передает декодированные остаточные данные вычислительному модулю 215. Кроме того, вычислительный модуль 215 получает данные прогнозируемого изображения от модуля 221 внутрикадрового прогнозирования или от модуля 222 межкадрового прогнозирования через модуль 223 селектора прогнозируемого изображения.
Вычислительный модуль 215 получает данные реконструированного изображения посредством суммирования разностного изображения и прогнозируемого изображения с использованием декодированных остаточных данных и данных прогнозируемого изображения. Это реконструированное изображение соответствует входному изображению, имевшему место до вычитания из него прогнозируемого изображения, выполненного вычислительным модулем 113. Вычислительный модуль 215 передает реконструированное изображение в контурный фильтр 216.
Контурный фильтр 216 генерирует декодированное изображение посредством должного применения деблокирующей фильтрации, адаптивного контурного фильтра и других подобных операций к поступившему реконструированному изображению. Например, контурный фильтр 216 осуществляет деблокирующую фильтрацию реконструированного изображения, удаляя тем самым блочные искажения. Кроме того, например, контурный фильтр 216 осуществляет контурную фильтрацию результата (реконструированного изображения, из которого были удалены блочные искажения) деблокирующей фильтрации с использованием фильтра Винера, улучшая тем самым качество изображения.
Здесь тип фильтрации, осуществляемой контурным фильтром 216, является произвольным, так что может быть применена операция фильтрации, отличная от рассмотренных выше. Кроме того, контурный фильтр 216 может быть конфигурирован для осуществления фильтрации с использованием коэффициентов фильтрации, поступающих от устройства кодирования изображения. Более того, контурный фильтр 216 может быть конфигурирован для исключения фильтрации и передачи входных данных на выход без применения какой-либо фильтрации к этим входным данным.
Контурный фильтр 216 передает декодированное изображение (или реконструированное изображение), являющееся результатом фильтрации, в буфер 217 реорганизации экрана и в память 219 кадров.
Буфер 217 реорганизации экрана осуществляет изменение порядка кадров в декодированном изображении. Другими словами, буфер 217 реорганизации экрана переставляет изображения каждого кадра, которые были, посредством буфера 112 реорганизации экрана, расположены в порядке кодирования, и возвращает их к исходному порядку для представления на дисплее. Другими словами, буфер 217 реорганизации экрана сохраняет входные данные декодированных изображений каждого кадра, поступающих в порядке кодирования, в этом порядке, считывает данные декодированных изображений каждого кадра, сохраненных в порядке кодирования, в порядке для представления на дисплее и передает считываемые данные изображения в модуль 218 цифро-аналогового преобразования. Этот модуль 218 цифро-аналогового преобразования осуществляет цифро-аналоговое преобразование декодированных изображений (цифровых данных) каждого кадра, поступающих из буфера 217 реорганизации экрана, и передает эти декодированные изображения для представления на экране дисплея (не показан) в виде аналоговых данных.
Память 219 кадров сохраняет поступившее декодированное изображение и передает это сохраненное декодированное изображение в модуль 221 внутрикадрового прогнозирования или в модуль 222 межкадрового прогнозирования через селекторный модуль 220 в качестве опорного изображения в заданные моменты времени или на основе запроса извне - от модуля 221 внутрикадрового прогнозирования, модуля 222 межкадрового прогнозирования или другого подобного модуля.
Информация о режиме внутрикадрового прогнозирования или другая подобная информация поступает в модуль 221 внутрикадрового прогнозирования от модуля 212 обратимого декодирования. Модуль 221 внутрикадрового прогнозирования осуществляет внутрикадровое прогнозирование в режиме внутрикадрового прогнозирования (оптимальный режим внутрикадрового прогнозирования), использованном модулем 124 внутрикадрового прогнозирования, и генерирует в результате прогнозируемое изображение. В этот момент модуль 221 внутрикадрового прогнозирования осуществляет внутрикадровое прогнозирование с использованием данных реконструированного изображения, поступающих из памяти 219 кадров через селекторный модуль 220. Другими словами, модуль 221 внутрикадрового прогнозирования использует это реконструированное изображение в качестве опорного изображения (периферийные пиксели). Модуль 221 внутрикадрового прогнозирования передает сформированное им прогнозируемое изображение в модуль 223 селектора прогнозируемого изображения.
Информацию об оптимальном режиме прогнозирования, информацию движения и другую подобную информацию передают должным образом в модуль 222 межкадрового прогнозирования от модуля 212 обратимого декодирования. Модуль 222 межкадрового прогнозирования осуществляет межкадровое прогнозирование с использованием декодированного изображения (опорное изображение), полученного из памяти 219 кадров, в режиме межкадрового прогнозирования (оптимальный режим межкадрового прогнозирования), представленном информацией об оптимальном режиме прогнозирования, получаемой от модуля 212 обратимого декодирования, и генерирует в результате прогнозируемое изображение.
Модуль 223 селектора прогнозируемого изображения передает прогнозируемое изображение, поступившее от модуля 221 внутрикадрового прогнозирования, или прогнозируемое изображение, поступившее от модуля 222 межкадрового прогнозирования, вычислительному модулю 215. После этого вычислительный модуль 215 суммирует это прогнозируемое изображение с декодированными остаточными данными (информация разностного изображения), поступающими от модуля 214 обратного ортогонального преобразования, и получает тем самым реконструированное изображение.
Кроме того, память 219 кадров передает сохраненное в ней декодированное изображение базового уровня в модуль 203 декодирования изображения расширительного уровня.
Модуль декодирования изображения расширительного уровня На фиг. 46 представлена блок-схема, иллюстрирующая пример базовой конфигурации модуля 203 декодирования изображения расширительного уровня, показанного на фиг. 44. Как представлено на фиг. 46, модуль 203 декодирования изображения расширительного уровня имеет конфигурацию, в основном аналогичную конфигурации модуля 202 декодирования изображения базового уровня, показанной на фиг. 45.
Другими словами, модуль 203 декодирования изображения расширительного уровня, как показано на фиг. 46, содержит: накопительный буфер 231; модуль 232 обратимого декодирования; модуль 233 обратного квантования; модуль 234 обратного ортогонального преобразования; вычислительный модуль 235; контурный фильтр 236; буфер 237 реорганизации экрана 237; и модуль 238 цифро-аналогового преобразования. Кроме того, модуль 203 декодирования изображения расширительного уровня содержит: память 239 кадров; селекторный модуль 240; модуль 241 внутрикадрового прогнозирования; модуль 242 межкадрового прогнозирования; и модуль 243 селектора прогнозируемого изображения.
Компоненты от накопительного буфера 231 до модуля 243 селектора прогнозируемого изображения включительно соответствуют компонентам от накопительного буфера 211 до модуля 223 селектора прогнозируемого изображения включительно, показанным на фиг. 45, и выполняют операции, аналогичные операциям рабочих модулей с соответствующими названиями. Однако каждый компонент в составе модуля 203 декодирования изображения расширительного уровня осуществляет операции, относящиеся к кодированию/декодированию информации не базового уровня, а расширительного уровня. Таким образом, хотя приведенное выше описание компонентов от накопительного буфера 211 до модуля 223 селектора прогнозируемого изображения, показанных на фиг. 45, может быть применено к операциям, выполняемым компонентами от накопительного буфера 231 до модуля 243 селектора прогнозируемого изображения включительно, в этом случае обрабатываемые данные должны быть данными не базового уровня, а данными расширительного уровня. Кроме того, в этом случае следует заменить рабочие модули, являющиеся источниками входных данных или адресатами выходных данных для каждого конкретного модуля, соответствующими рабочими модулями из состава модуля 203 декодирования изображения расширительного уровня.
Память 239 кадров получает декодированное изображение базового уровня, поступающее от модуля 202 декодирования изображения базового уровня, и, например, сохраняет полученное декодированное изображение базового уровня в качестве долговременного опорного изображения или с аналогичной целью. Это декодированное изображение базового уровня используется, например, в качестве опорного изображения при межуровневом прогнозировании в процессе прогнозирования, осуществляемого модулем 241 внутрикадрового прогнозирования или модулем 242 межкадрового прогнозирования.
Кроме того, модуль 203 декодирования изображения расширительного уровня содержит модуль 251 анализа информации заголовка и модуль 252 управления прогнозированием.
Модуль 232 обратимого декодирования получает, например, информацию заголовка, такую как набор параметров последовательности (SPS) или заголовок среза, из кодированного потока данных изображения расширительного уровня. Есть возможность, что в эту информацию заголовка включена передаваемая от кодирующей стороны информация, относящаяся к межуровневому прогнозированию. Модуль 232 обратимого декодирования передает эту информацию заголовка в модуль 251 анализа информации заголовка.
После получения информации заголовка, поступившей от модуля 232 обратимого декодирования, модуль 251 анализа информации заголовка анализирует эту информацию заголовка. Анализируя эту информацию заголовка с использованием способа, соответствующего способу управления, описанному в первом варианте, модуль 251 анализа информации заголовка выделяет из этой информации заголовка, например, информацию, относящуюся к межуровневому прогнозированию. Эта информация, относящаяся к межуровневому прогнозированию, представляет собой информацию, переданную от кодирующей стороны, (например, от устройства 100 кодирования изображения) и относится к межуровневому прогнозированию, выполненному во время кодирования данных. Таким образом, также и на декодирующей стороне (в устройстве 200 декодирования изображения), управляя межуровневым прогнозированием на основе информации, аналогичной информации, использованной при кодировании данных, можно осуществить межуровневое прогнозирование, что позволяет правильно произвести декодирование.
Соответственно, модуль 252 управления прогнозированием осуществляет управление межуровневым прогнозированием, выполняемым модулем 241 внутрикадрового прогнозирования или модулем 242 межкадрового прогнозирования, на основе результатов анализа, выполненного модулем 251 анализа информации заголовка.
Как описано выше, устройство 200 декодирования изображения может реализовать повышение эффективности кодирования в соответствии с процедурой управления, описанной в первом варианте.
Модуль генерирования информации заголовка
На фиг. 47 представлена блок-схема, иллюстрирующая пример конфигурации модуля 251 анализа информации заголовка, представленного на фиг. 46. В этом модуле 251 анализа информации заголовка описанная выше процедура осуществляется, например, посредством выполнения программы, считываемой из ПЗУ ROM или аналогичного носителя записи с использованием RAM и процессора CPU, вследствие чего реализуются различные функциональные блоки, показанные на фиг. 47.
Как показано на фиг. 47, модуль 251 анализа информации заголовка содержит: модуль 261 анализа заголовка; модуль 262 анализа набора параметров последовательности; и модуль 263 анализа набора опорных кадров при межуровневом прогнозировании.
Модуль 261 анализа заголовка среза анализирует заголовок текущего среза. Модуль 262 анализа набора параметров последовательности анализирует набор параметров последовательности (SPS), относящийся к последовательности (также именуемой текущей последовательностью), которой принадлежит текущий срез. Модуль 263 анализа набора опорных кадров при межуровневом прогнозировании анализирует параметры, конфигурирующие каждый набор опорных кадров при межуровневом прогнозировании, определенный модулем 262 анализа набора параметров последовательности.
Модуль 261 анализа заголовка среза содержит: модуль 271 определения зависимости; модуль 272 определения типа среза; модуль 273 определения уровня; модуль 274 определения числа опорных уровней; модуль 275 определения межуровневой прогнозируемости; модуль 276 определения набора опорных кадров при межуровневом прогнозировании; модуль 277 определения числа наборов; модуль 278 анализа синтаксиса, относящегося к межуровневому прогнозированию; модуль 279 анализа набора параметров; и модуль 280 анализа индекса.
Модуль 271 определения зависимости определяет, зависит ли заголовок текущего среза от какого-либо другого среза. Модуль 272 определения типа среза определяет тип текущего среза. Модуль 273 определения уровня выполняет определение, относящееся к уровню текущего среза. Модуль 274 определения числа опорных уровней выполняет определение относительно числа опорных уровней. Модуль 275 определения межуровневой прогнозируемости определяет, можно ли осуществить межуровневое прогнозирование. Модуль 276 определения набора опорных кадров при межуровневом прогнозировании определяет, используется ли заранее заданный набор опорных кадров при межуровневом прогнозировании. Модуль 277 определения числа наборов определяет число наборов опорных кадров при межуровневом прогнозировании. Модуль 278 анализа синтаксиса, относящегося к межуровневому прогнозированию, анализирует информацию, относящуюся к межуровневому прогнозированию. Модуль 279 анализа набора параметров осуществляет анализ набора опорных кадров при межуровневом прогнозировании. Модуль 280 анализа индекса осуществляет анализ индекса, указывающего набор опорных кадров при межуровневом прогнозировании.
Модуль 278 анализа синтаксиса, относящегося к межуровневому прогнозированию, содержит: модуль 281 анализа информации о межуровневой прогнозируемости; модуль 282 анализа информации о числе опорных уровней; модуль 283 анализа информации о назначении опорного уровня; и модуль 284 анализа информации о межкадровой прогнозируемости.
Модуль 281 анализа информации о межуровневой прогнозируемости выполняет процедуру анализа информации о межуровневой прогнозируемости. Модуль 282 анализа информации о числе опорных уровней 282 выполняет процедуру анализа информации о числе опорных уровней. Модуль 283 анализа информации о назначении опорного уровня выполняет процедуру анализа информации о назначении опорного уровня. Модуль 284 анализа информации о межкадровой прогнозируемости выполняет процедуру анализа информации о межкадровой прогнозируемости.
Модуль 262 анализа набора параметров последовательности содержит модуль 285 анализа информации о числе наборов и модуль 286 анализа набора параметров.
Модуль 285 анализа информации о числе наборов анализирует информацию о числе наборов, представляющую число наборов параметров (наборов опорных кадров при межуровневом прогнозировании), определенное в наборе параметров последовательности. Модуль 286 анализа набора параметров анализирует набор параметров (набор опорных кадров при межуровневом прогнозировании).
Модуль 263 анализа набора опорных кадров при межуровневом прогнозировании содержит модуль 287 анализа информации о числе опорных уровней и модуль 288 анализа информации о назначении опорного уровня.
Модуль 287 анализа информации о числе опорных уровней представляет собой рабочий модуль, осуществляющий процедуру, аналогичную процедуре, выполняемой модулем 282 анализа информации о числе опорных уровней, и анализирует информацию о числе опорных уровней из состава набора опорных кадров при межуровневом прогнозировании. Модуль 288 анализа информации о назначении опорного уровня является рабочим модулем, осуществляющим процедуру, аналогичную процедуре, выполняемой модулем 283 анализа информации о назначении опорного уровня, и анализирующим информацию о назначении опорного уровня, представляющей все опорные уровни, назначенные в составе набора опорных кадров при межуровневом прогнозировании.
Как было описано применительно к первому варианту, имеются несколько способов управления информацией, относящейся к межуровневому прогнозированию, причем эти способы можно использовать в сочетании один с другими. Таким образом, из совокупности функциональных блоков, представленной на фиг. 47, функциональные блоки, которые не нужны для используемого способа управления, могут быть исключены, где это возможно.
Последовательность операций процедуры декодирования изображения
Далее будет рассмотрены последовательность операций для каждой из процедур, выполняемых устройством 200 декодирования изображения, как описано выше. Сначала пример последовательности операций для процедуры декодирования изображения будет рассмотрен со ссылками на логическую схему, представленную на фиг. 48.
Когда начинается выполнение процедуры декодирования изображения на этапе S201, демультиплексорный модуль 201 из состава устройства 200 декодирования изображения демультиплексирует кодированный поток данных иерархического изображения, передаваемый от кодирующей стороны для каждого уровня.
На этапе S202 модуль 202 декодирования изображения базового уровня осуществляет декодирование кодированного потока данных изображения базового уровня, выделенного на этапе S201. Этот модуль 202 декодирования изображения базового уровня передает на выход данные изображения базового уровня, сгенерированные в результате декодирования.
На этапе S203 модуль 203 декодирования изображения расширительного уровня декодирует кодированный поток данных изображения расширительного уровня, выделенный на этапе S201. Этот модуль 203 декодирования изображения расширительного уровня передает на выход данные изображения расширительного уровня, сформированные в результате декодирования.
Когда завершается процесс на этапе S203, устройство 200 декодирования изображения завершает процедуру декодирования изображения. Такая процедура декодирования изображения осуществляет обработку одного кадра. Таким образом, устройство 200 декодирования изображения снова и снова выполняет процедуру декодирования изображения для каждого кадра иерархических данных движущегося изображения.
Последовательность операций процедуры декодирования базового уровня
Далее, пример последовательности операций процедуры декодирования базового уровня, осуществляемой на этапе S202, показанном на фиг. 48, будет рассмотрен со ссылками на логическую схему, представленную на фиг. 49.
Когда начинается выполнение процедуры декодирования базового уровня, на этапе S221 накопительный буфер 211 из состава модуля 202 декодирования изображения базового уровня аккумулирует переданный кодированный поток данных базового уровня. На этапе S222 модуль 212 обратимого декодирования осуществляет декодирование кодированного потока данных базового уровня, поступившего из накопительного буфера 211. Другими словами, производится декодирование данных изображения I-среза, Р-среза, В-среза и других подобных данных, кодированных посредством модуля 116 обратимого кодирования. В это время происходит также декодирование разного рода информации, отличной от данных изображения, но входящей в поток битов данных, такой как информация заголовка.
На этапе S223 модуль 213 обратного квантования осуществляет обратное квантование применительно к квантованным коэффициентам, полученным на этапе S222.
На этапе S224 модуль 214 обратного ортогонального преобразования осуществляет обратное ортогональное преобразование коэффициентов, полученных посредством обратного квантования на этапе S223.
На этапе S225 модуль 221 внутрикадрового прогнозирования и модуль 222 межкадрового прогнозирования осуществляют процедуру прогнозирования, генерируя тем самым прогнозируемое изображение. Другими словами, процедура прогнозирования осуществляется в режиме прогнозирования, который определен модулем 212 обратимого декодирования и который был использован во время кодирования рассматриваемых данных. Более конкретно, например, если во время кодирования рассматриваемых данных применялось внутрикадровое прогнозирование, модуль 221 внутрикадрового прогнозирования генерирует прогнозируемое изображение в режиме внутрикадрового прогнозирования, выбранном в качестве оптимального режима во время кодирования этих данных. С другой стороны, например, если во время кодирования рассматриваемых данных применялось межкадровое прогнозирование, модуль 222 межкадрового прогнозирования генерирует прогнозируемое изображение в режиме межкадрового прогнозирования, выбранном в качестве оптимального режима во время кодирования этих данных.
На этапе S226 вычислительный модуль 215 суммирует прогнозируемое изображение, сгенерированное на этапе S225, с разностным изображением, полученным в результате выполнения обратного ортогонального преобразования на этапе S224. Таким способом получают данные реконструированного изображения.
На этапе S227 контурный фильтр 216 осуществляет должным образом контурную фильтрацию, содержащую фильтрацию удаления блочности, адаптивную контурную фильтрацию или другую подобную операцию, применительно к данным реконструированного изображения, полученным на этапе S226.
На этапе S228 буфер 217 реорганизации экрана изменяет расположение каждого кадра реконструированного изображения, к которому применена операция фильтрации на этапе S227. Другими словами порядок кадров, имевший место при кодировании данных заменяют исходным порядком кадров для представления на устролйстве5 отображения.
На этапе S229 модуль 218 цифро-аналогового преобразования осуществляет цифро-аналоговое преобразование изображения с реорганизованным на этапе S228 порядком кадров. Это изображение затем передают для представления на устройстве отображения (не показано).
На этапе S230 память 219 кадров сохраняет данные декодированного изображения, полученного на этапе S227, реконструированного изображения, полученного на этапе S226, и других подобных изображений.
На этапе S231 память 219 кадров передает декодированное изображение базового уровня, полученное в результате декодирования базового уровня, как описано выше, процедуре декодирования расширительного уровня.
Когда завершается выполнение процесса на этапе S231, происходит завершение осуществления процедуры декодирования базового уровня, а обработка данных возвращается к процедуре, представленной на фиг. 48.
Последовательность операций процедуры декодирования расширительного уровня
Далее пример последовательности операций процедуры декодирования расширительного уровня, выполняемой на этапе S203, показанном на фиг. 48, будет рассмотрена со ссылками на логическую схему, представленную на фиг. 50.
Когда начинается выполнение процедуры декодирования расширительного уровня, модуль 251 анализа информации заголовка из состава модуля 203 декодирования изображения расширительного уровня анализирует информацию заголовка, выделенную из кодированного потока данных модулем 232 обратимого декодирования, на этапе S241. Модуль 252 управления прогнозированием осуществляет управление межуровневым прогнозированием на основе результатов анализа.
На этапе S242 память 239 кадров получает и сохраняет поступившее декодированное изображение базового уровня. Например, память 239 кадров сохраняет декодированное изображение базового уровня в качестве долговременного опорного кадра.
Каждый процесс, выполняемый на этапах с S243 по S252 включительно, соответствует одноименному процессу, выполняемому на этапах с S221 по S230 включительно, показанных на фиг. 49, и осуществляется в основном аналогично такому одноименному процессу. Однако, тогда как операции процессов на этапах с S221 по S230 включительно, представленных на фиг. 49, осуществляются применительно к базовому уровню, операции процессов на этапах с S243 по S252 включительно выполняются применительно к расширительному уровню. Кроме того, на этапе S247 бывают ситуации, когда применяют межуровневое прогнозирование в качестве процедуры прогнозирования для генерирования прогнозируемого изображения.
Когда завершается выполнение процесса на этапе S252, происходит завершение осуществления процедуры декодирования расширительного уровня, а обработка данных возвращается к процедуре, представленной на. 48.
Последовательность операций процедуры анализа информации заголовка, относящейся к межуровневому прогнозированию
Модуль 251 анализа информации заголовка и модуль 252 управления прогнозированием осуществляют процедуру анализа информации заголовка, относящейся к межуровневому прогнозированию, на этапе S241, показанном на фиг. 50, и, как описано в первом варианте, анализируют информацию, относящуюся к межуровневому прогнозированию, из состава информации заголовка (заголовка среза) и управляют межуровневым прогнозированием.
Далее пример последовательности операций процедуры анализа информации заголовка, относящейся к межуровневому прогнозированию, будет рассмотрен со ссылками на логическую схему, представленную на фиг. 51. На фиг. 51 показана последовательность операций для случая использования сочетания способа, описанного в разделе Управление в соответствии с типом среза в первом варианте, и способа, описанного в разделе Управление в соответствии с числом опорных уровней.
Когда начинается осуществление процедуры анализа информации заголовка, относящейся к межуровневому прогнозированию, модуль 271 определения зависимости анализирует информацию о зависимости (флаг dependent_slice_segment_flag), входящую в состав заголовка среза, и определяет, зависит ли заголовок текущего среза от какого-либо другого среза, на этапе S261. Если определено, что срез зависим (флаг !dependent_slice_segment_flag), процедура переходит к этапу S262.
На этапе S262 модуль 272 определения типа среза анализирует параметр типа среза (slicetype), входящий в состав заголовка среза, и определяет, является ли текущий срез Р-срезом или В-срезом. Если определено, что текущий срез является Р-срезом или В-срезом (slice_type=Ρ||slice_type==В), процедура переходит к этапу S263.
На этапе S263 модуль 273 определения уровня анализирует информацию об уровне (nuh_layer_id), входящую в состав заголовка среза, и информацию об опорном уровне (NumDirectRefLayers[nuh_layer_id]), относящуюся к уровню текущего среза и входящую в состав набора параметров видео (VPS), и определяет, является ли уровень текущего среза расширительным уровнем, а также заданы ли один или несколько уровней в качестве опорных уровней в наборе параметров видео (VPS). Если определено, что уровень текущего среза является расширительным уровнем, и что один или несколько уровней заданы в качестве опорных уровней в наборе параметров видео (VPS) (nuh_layer_id>0 && NumDirectRefLayers[nuh_layer_id]>0), процедура переходит к этапу S264.
На этапе S264 модуль 281 анализа информации о межуровневой прогнозируемости анализирует информацию о межуровневой прогнозируемости (inter_layer_pred_enabled_flag), входящую в состав заголовка среза, и получает информацию о межуровневой прогнозируемости (inter_layer_pred_enabled_flag) в качестве информации, относящейся к межуровневому прогнозированию.
На этапе S265 модуль 282 анализа информации о числе опорных уровней анализирует информацию о числе опорных уровней (nmn_inter_layer_ref_pics_minus1), входящую в состав заголовка среза, и получает информацию о числе опорных уровней (nmn_inter_layer_ref_pics_minus1) в качестве информации, относящейся к межуровневому прогнозированию.
На этапе S266 модуль 284 анализа информации о межкадровой прогнозируемости анализирует информацию о межкадровой прогнозируемости (inter_layer_sample__pred_only_flag), входящую в состав заголовка среза, и получает информацию о межкадровой прогнозируемости (inter_layer_sample_pred_only_flag) в качестве информации, относящейся к межуровневому прогнозированию.
На этапе S267 модуль 274 определения числа опорных уровней анализирует информацию об опорных уровнях (NumDirectReiLayers[nuh_layer_id]), относящуюся к уровню текущего среза и входящую в состав набора параметров видео (VPS), и информацию о числе активных уровней (!=NumActiveRefLayerPics), входящую в заголовок среза, и определяет, совпадают ли число опорных уровней, определенное в наборе параметров видео (VPS), и число опорных уровней, определенное в заголовке среза. Если определено, что эти два числа опорных уровней не совпадают, (NumDirectRefLayers[nuh_layer_id]!=NumActiveRefLayerPics), процедура переходит к этапу S268.
На этапе S268 модуль 283 анализа информации о назначении опорного уровня анализирует информацию о назначении опорного уровня (inter_layer_pred_layer_idc[i]), входящую в состав заголовка среза, и получает эту информацию о назначении опорного уровня (inter_layer_pred_layer_idc[i]) в качестве информации, относящейся к межуровневому прогнозированию. Когда завершается выполнение процесса на этапе S268, процедура переходит к этапу S269.
Кроме того, на этапе S267, если число опорных уровней, определенное в составе набора параметров видео (VPS), и число опорных уровней, определенное в заголовке среза, совпадают, процесс этапа S268 исключают, а процедура переходит к этапу S269.
На этапе S269 модуль 252 управления прогнозированием осуществляет управление межуровневым прогнозированием на основе каждого параметра, полученного модулем 251 анализа информации заголовка, как указано выше, в качестве информации, относящейся к межуровневому прогнозированию. Когда завершается выполнение процесса на этапе S269, происходит завершение осуществления процедуры анализа информации заголовка, относящейся к межуровневому прогнозированию.
Кроме того, если на этапе S261 определено, что заголовок текущего среза зависит от какого-либо другого среза, на этапе S262 определено, что текущий срез является срезом I-типа, а на этапе S263 определено, что текущий срез является базовым уровнем, либо если в наборе параметров видео (VPS) не заданы один или несколько опорных уровней, тогда межуровневое прогнозирование в процессе кодирования не осуществляется, и соответственно выполнение процедуры анализа информации заголовка, относящейся к межуровневому прогнозированию, завершается.
Посредством выполнения каждой процедуры, как описано выше, устройство 200 декодирования изображения способно реализовать недопущение ненужных передач информации, относящейся к межуровневому прогнозированию, и предотвратить снижение эффективности кодирования.
Если используется только один способ, описанный в разделе Управление в соответствии с типом среза, процесс, выполняемый на этапе S267, представленном на фиг. 51, может быть опущен. Кроме того, если применяется только один способ, описанный в разделе Управление в соответствии с числом опорных уровней, процесс, выполняемый на этапе S262, представленном на фиг. 51, может быть опущен.
Последовательность 2 операций процедуры анализа информации заголовка, относящейся к межуровневому прогнозированию
Далее, в качестве другого примера процедуры анализа информации заголовка, относящейся к межуровневому прогнозированию, будет рассмотрен пример ситуации, когда способ, описанный в разделе Управление в соответствии с типом среза в первом варианте, способ, описанный в разделе Управление в соответствии с числом опорных уровней, и способ, описанный в разделе Предварительное определение схемы опорных уровней, применяются в сочетании один с другим, со ссылками на логическую схему, представленную на фиг. 52.
Когда начинается осуществление процедуры анализа информации заголовка, относящейся к межуровневому прогнозированию, модуль 285 анализа информации о числе наборов анализирует такую информацию о числе наборов (num_inter_layer_ref_pic_sets) из состава набора параметров последовательности и получает эту информацию о числе наборов (num_inter_layer_ref_pic_sets) в качестве информации, относящейся к межуровневому прогнозированию, на этапе S281.
На этапе S282 модуль 286 анализа набора параметров осуществляет анализ набора опорных кадров при межуровневом прогнозировании (inter_layer_ref_pic_set(i)) из состава набора параметров последовательности и получает набор опорных кадров при межуровневом прогнозировании (inter_layer_ref_pic_set(i)) в качестве информации, относящейся к межуровневому прогнозированию.
На этапе S283 модуль 287 анализа информации о числе опорных уровней осуществляет анализ информации о числе опорных уровней (num_mter_layer_ref_pics_minus1) из состава каждого набора опорных кадров при межуровневом прогнозировании и получает эту информацию о числе опорных уровней (nmn_inter_layer_ref_pics_minus1) в качестве информации, относящейся к межуровневому прогнозированию.
На этапе S284 модуль 288 анализа информации о назначении опорного уровня 288 осуществляет анализ информации о назначении опорного уровня (inter_layer_pred_layer_idc[i]) из состава каждого набора опорных кадров при межуровневом прогнозировании и получает эту информацию о назначении опорного уровня (inter_layer_pred_layer_idc[i]) в качестве информации, относящейся к межуровневому прогнозированию.
На этапе S285 модуль 272 определения типа среза и модуль 273 определения уровня анализируют информацию об уровне (Layer_id) и тип среза (slice_type) для текущего среза, входящую в состав заголовка среза, и определяют, является ли уровень текущего среза расширительным уровнем, и является ли текущий срез Р-срезом или В-срезом. Если определено, что уровень текущего среза является расширительным уровнем (Layer_id>0), и что текущий срез является Р-срезом или В-срезом (slice_type=Ρ||slice_type==В), процедура переходит к этапу S286.
На этапе S286 модуль 281 анализа информации о межуровневой прогнозируемости анализирует информацию о межуровневой прогнозируемости (inter_layer_pred_enabled_flag), входящую в состав заголовка среза, и получает эту информацию о межуровневой прогнозируемости (inter_layer_pred_enabled_fiag) в качестве информации, относящейся к межуровневому прогнозированию. Затем модуль 275 определения межуровневой прогнозируемости определяет, может ли быть осуществлено межуровневое прогнозирование, в соответствии с синтаксисом набора параметров видео (VPS) для текущего среза на основе информации о межуровневой прогнозируемости (inter_layer_pred_enabled_flag). Если определено, что межуровневое прогнозирование может быть осуществлено, процедура переходит к этапу S287.
На этапе S287 модуль 276 определения набора опорных кадров при межуровневом прогнозировании определяет, произведено ли прогнозирование согласно параметрам из состава набора параметров последовательности (SPS), другими словами, набор опорных кадров при межуровневом прогнозировании на основе информации о наборе опорных кадров при межуровневом прогнозировании (inter_layer_ref_pic_set_sps_flag), входящей в состав заголовка среза. Если определено, что прогнозирование произведено, процедура переходит к этапу S288.
На этапе S288 модуль 277 определения числа наборов определяет, имеются ли несколько наборов опорных кадров при межуровневом прогнозировании, на основе числа наборов (num_inter_layer_ref_pic_sets), полученного на этапе S281. Если определено, что имеются несколько наборов опорных кадров при межуровневом прогнозировании (num_inter_layer_ref_pic_sets>1), процедура переходит к этапу S289.
На этапе S289 модуль 280 анализа индекса осуществляет анализ индекса (inter_layer_ref_pic_set_idx), входящего в состав заголовка среза, и получает этот индекс. Модуль 280 анализа индекса указывает набор опорных кадров при межуровневом прогнозировании с использованием этого индекса (inter_layer_ref_pic_set_idx). Когда завершается выполнение процесса на этапе S289, процедура переходит к этапу S292.
С другой стороны, на этапе S288, если определено, что число наборов опорных кадров при межуровневом прогнозировании равно единице, процедура переходит к этапу S290.
На этапе S290 модуль 280 анализа индекса не производит анализа индекса (inter_layer_ref_pic_set_idx). В этом случае, даже без какого-либо индекса, поскольку присутствует только один набор параметров, имеющий нулевой номер (набор опорных кадров при межуровневом прогнозировании), модуль 280 анализа индекса указывает этот, имеющий нулевой номер набор опорных кадров при межуровневом прогнозировании без использования индекса. Когда завершается выполнение процесса на этапе S290, процедура переходит к этапу S292.
Кроме того, на этапе S287, если определено, что параметры из состава набора параметров последовательности (SPS), другими словами, набор опорных кадров при межуровневом прогнозировании использовать не нужно, процедура переходит к этапу S291.
На этапе S291 модуль 279 анализа набора параметров получает набор параметров (набор опорных кадров при межуровневом прогнозировании, предназначенный для текущего кадра) (inter_layer_ref_pic_set (num_inter_layer_ref_pic_sets)), предназначенный для текущего кадра и входящий в состав текущего среза. Когда завершается выполнение процесса на этапе S291, процедура переходит к этапу S292.
На этапе S292 модуль 252 управления прогнозированием осуществляет управление межуровневым прогнозированием на основе набора параметров (набор опорных кадров при межуровневом прогнозировании), заданного, как описано выше. Когда завершается выполнение процесса на этапе S292, происходит завершение осуществления процедуры анализа информации заголовка, относящейся к межуровневому прогнозированию.
Кроме того, на этапе S285, если модуль 273 определения уровня определит, что уровень текущего среза является базовым уровнем, или определит, что текущий срез является I-срезом, или если будет определено, что межуровневое прогнозирование не может быть осуществлено, из синтаксиса набора параметров видео (VPS) для текущего среза на этапе S286, межуровневое прогнозирование не производится, и соответственно, завершается выполнение процедуры генерирования информации заголовка, относящейся к межуровневому прогнозированию.
Путем выполнения каждого процесса, как описано выше, устройство 200 декодирования изображения может предотвратить ненужные передачи информации, относящейся к межуровневому прогнозированию и не допустить снижения эффективности кодирования.
В примере, представленном на фиг. 52, сравнение между числами опорных уровней, как на этапе S267, показанном на фиг. 51, осуществляется с использованием семантики, вследствие чего описание этой операции здесь приведено не будет. Очевидно, что аналогично примеру, представленному на фиг. 52, это сравнение может быть осуществлено с использованием синтаксиса.
Если способ, описанный в разделе Управление в соответствии с типом среза, исключен, процесс на этапе S285, представленном на фиг. 52, может быть опущен. Кроме того, если способ, описанный в разделе Управление в соответствии с числом опорных уровней, исключен, процесс на этапе S284 или S291, представленном на фиг. 52, может быть конфигурирован таким образом, чтобы не осуществлять сравнение между числами опорных уровней, как на этапе S267, показанном на фиг. 51.
Конфигурация устройства 200 декодирования изображения и содержание процессов в рамках процедуры декодирования изображения не ограничиваются приведенными выше примерами в тех пределах, в каких передачей информации, относящейся к межуровневому прогнозированию, можно управлять, как было описано применительно к первому варианту.
Что касается диапазона применимости предлагаемой технологии, эта технология может быть применена ко всем устройствам кодирования изображения и ко всем устройствам декодирования изображения, основанным на системах масштабируемого кодирования и декодирования.
Кроме того, предлагаемая технология может, например, быть применена к устройству кодирования изображения и устройству декодирования изображения, используемым, когда информацию изображения (поток битов данных), сжатую с применением ортогонального преобразования, такого как дискретное косинусное преобразование, и компенсации движения, как это делается в стандартах MPEG, H. 26х или других аналогичных стандартах, принимают через сеть связи, такую как система спутникового вещания, кабельное телевидение, Интернет или сеть мобильной телефонной связи. Кроме того, предлагаемая технология может быть применена в устройстве кодирования изображения и устройстве декодирования изображения, используемых при обработке информации на носителе записи, таком как оптический диск, магнитный диск или флэш-память.
4. Четвертый вариант
Применение кодирования многопроекционного изображения и декодирования многопроекционного изображения
Ряд процедур, описанных выше, могут быть применены к кодированию/декодированию многопроекционного изображения. На фиг. 53 представлена схема, иллюстрирующая пример системы кодирования многопроекционного изображения.
Как показано на фиг. 53 многопроекционное изображение содержит множество изображений (видов). Это множество видов многопроекционного изображения конфигурированы в виде базовой проекции, кодируемого и декодируемого с использованием только изображения базовой проекции и без использования информации других проекций, и небазовых проекций, кодируемых и декодируемых с использованием информации других проекций. Кодирования/декодирования небазовой проекции можно использовать информацию базовой проекции или информацию какой-либо другой небазовой проекции.
Другими словами, соотношение между проекцией и опорной проекцией при кодировании/декодировании многопроекционного изображения аналогично соотношению между уровнем и опорным уровнем при кодировании/декодировании иерархического изображения. Таким образом, применение предлагаемой технологии к кодированию/декодированию многопроекционного изображения, показанному на фиг. 53, аналогично применению этой технологии к иерархическому кодированию/декодированию, описанному выше со ссылками на фиг. 1-52, и при этом могут быть получены такие же преимущества, как описано выше со ссылками на фиг. 1-52.
Устройство кодирования многопроекционного изображения
На фиг. 54 представлена схема, иллюстрирующая устройство кодирования многопроекционного изображения, реализующее способ кодирования, как описано выше. Как показано на фиг. 54, устройство 600 кодирования многопроекционного изображения содержит: кодирующий модуль 601; кодирующий модуль 602; и мультиплексорный модуль 603.
Кодирующий модуль 601 осуществляет кодирование изображения базовой проекции и генерирование в результате кодированного потока данных изображения базовой проекции. Кроме того, кодирующий модуль 602 осуществляет кодирование изображения небазовой проекции и генерирование в результате кодированного потока данных изображения небазовой проекции. Мультиплексорный модуль 603 осуществляет мультиплексирование кодированного потока данных изображения базовой проекции, генерируемого кодирующим модулем 601, и кодированного потока данных изображения небазовой проекции, генерируемого кодирующим модулем 602, и генерирует в результате кодированный поток данных многопроекционного изображения.
Применив предлагаемую технологию к устройству 600 кодирования многопроекционного изображения аналогично ее применению к процедуре иерархического кодирования, описанной выше со ссылками на фиг. 1-52, можно получить преимущества, аналогичные тем, которые были описаны выше со ссылками на фиг. 1-52.
Устройство декодирования многопроекционного изображения
На фиг. 55 представлена схема, иллюстрирующая устройство декодирования многопроекционного изображения, реализующее способ декодирования, как описано выше. Как показано на фиг. 55, устройство 610 декодирования многопроекционного изображения содержит: демультиплексорный модуль 611, декодирующий модуль 612; и декодирующий модуль 613.
Демультиплексорный модуль 611 осуществляет демультиплексирование кодированного потока данных многопроекционного изображения, полученного в результате мультиплексирования кодированного потока данных изображения базовой проекции и кодированного потока данных изображения небазовой проекции, выделяя тем самым кодированный поток данных изображения базовой проекции и кодированный поток данных изображения небазовой проекции. Декодирующий модуль 612 осуществляет декодирование кодированного потока данных изображения базовой проекции, выделенного демультиплексором 611, и получает в результате изображение базовой проекции. Декодирующий модуль 613 осуществляет декодирование кодированного потока данных изображения небазовой проекции, выделенного демультиплексором 611, и получает в результате изображение небазовой проекции.
Применив предлагаемую технологию к устройству 610 декодирования многопроекционного изображения аналогично ее применению к процедуре иерархического декодирования, описанной выше со ссылками на фиг. 1-52, можно получить преимущества, аналогичные тем, которые были описаны выше со ссылками на фиг. 1-52.
5. Пятый вариант
Компьютер
Последовательность процедур, описанная выше, может быть выполнена аппаратно или с использованием программного обеспечения. При выполнении этих процедур посредством программного обеспечения программы, составляющие это программное обеспечение, инсталлируют в компьютере. Здесь понятие компьютера охватывает компьютер, встроенный в специализированную аппаратуру, персональный компьютер общего назначения, способный выполнять разнообразные функции посредством инсталлирования различных программ, или другой подобный компьютер.
На фиг. 56 представлена блок-схема, иллюстрирующая пример конфигурации аппаратуры компьютера, выполняющего ряд процедур, описанных выше, в соответствии с программой.
В компьютере 800, показанном на фиг. 56, центральный процессор (CPU) 801, а постоянное запоминающее устройство (ROM) 802, и запоминающее устройство 803 с произвольной выборкой (RAM) соединены шиной 804.
Кроме того, с шиной 804 соединен интерфейс 810 ввода/вывода. С этим интерфейсом 810 ввода/вывода соединены модуль 811 ввода, модуль 812 вывода, запоминающее устройство 813, модуль 814 связи и привод 815 накопителя.
Модуль 811 ввода конфигурирован, например, посредством клавиатуры, мыши, микрофона, сенсорной панели, входного терминала и других подобных устройств. Модуль 812 вывода конфигурирован, например, посредством устройства отображения, громкоговорителя, выходного терминала и других подобных устройств. Запоминающее устройство 813 конфигурировано, например, посредством жесткого диска, диска RAM, энергонезависимого запоминающего устройства и других подобных устройств. Модуль 814 связи конфигурирован, например, посредством сетевого интерфейса. Привод 815 накопителя приводит в действие магнитный диск, оптический диск, магнитооптический диск или сменный носитель 821 записи, такой как полупроводниковое запоминающее устройство.
В компьютере, конфигурированном, как описано выше, процессор CPU 801, например, загружает программу, хранящуюся в запоминающем устройстве 813, в RAM 803 через интерфейс 810 ввода/вывода и шину 804 и выполняет загруженную программу, осуществляя тем самым ряд процедур, описанных выше. Кроме того, данные, необходимые процессору CPU 801 для осуществления разнообразных процедур и других подобных целей, подходящим образом сохраняют в RAM 803.
Программа, выполняемая компьютером (процессором CPU 801) может быть, например, записана на сменном носителе 821, как на пакетном носителе или аналогичным образом. В таком случае, загрузив носитель 821 в привод 815 накопителя, можно инсталлировать программу в запоминающем устройстве 813 через интерфейс 810 ввода/вывода.
Кроме того, программа может быть предоставлена через кабельные или беспроводные средства связи, такие как локальная сеть связи, Интернет или система цифрового спутникового вещания, В таком случае программа может быть принята модулем 814 связи и инсталлирована в запоминающем устройстве.
Более того, программа может быть инсталлирована в ROM 802 или в запоминающем устройстве 813 заранее.
Кроме того, программа, выполняемая компьютером, может осуществлять различные процедуры в такой временной последовательности, как это указано в настоящем описании, либо она может осуществлять эти процедуры параллельно, либо в нужные моменты времени в ответ на соответствующие вызовы.
Более того, в настоящем описании, этап, описываемый программой, записанной на сменном носителе, может содержать не только процедуру, выполняемую в описанной здесь временной последовательности, но и процессы, выполняемые параллельно или индивидуально без необходимости следования какой-либо временной последовательности.
Кроме того, в настоящем описании система представляет собой совокупность из нескольких составляющих элементов (устройство, модуль (компонент) и т.п.), причем все составляющие элементы не обязательно должны быть расположены в одном и том же корпусе. Таким образом, множество устройств, расположенных в разных корпусах и соединенных одно с другими через сеть связи, или одно устройство, в котором множество модулей расположены в одном корпусе, также являются системами.
Более того, конфигурация, описанная выше в виде одного устройства (или одного рабочего модуля) может быть разбита на части и конфигурирована в виде множества устройств (или рабочих модулей). Напротив, конфигурация, описанная выше в виде множества устройств (или рабочих модулей), может быть реорганизована и конфигурирована в виде одного устройства (или одного рабочего модуля). Кроме того, к конфигурации каждого устройства (или каждого рабочего модуля) может быть добавлена конфигурация, которая не была описана выше. В тех пределах, пока общая конфигурация и общая работа системы остаются по существу теми же самыми, часть конфигурации какого-либо конкретного устройства (или конкретного рабочего модуля) может быть реконфигурирована для включения в состав конфигурации другого устройства (или другого рабочего модуля).
Хотя предпочтительные варианты настоящего изобретения были рассмотрены подробно со ссылками на прилагаемые чертежи, технический объем настоящего изобретения этими примерами не ограничивается. Очевидно, что даже рядовой специалист в области техники, к которой относится настоящее изобретение, может представить себе разнообразные изменения или модификации в пределах объема технических идей, указанных в Формуле изобретения, и, естественно, должно быть понятно, что такие изменения и модификации принадлежат техническому объему настоящего изобретения.
Например, предлагаемая технология может иметь конфигурацию вычислительного облака, в котором одна функция разделена и осуществляется кооперативно множеством устройств через сеть связи.
Кроме того, каждый этап, описываемый в каждой логической схеме, рассмотренной выше, может выполняться либо одним устройством, либо множеством устройств в режиме совместного использования.
Более того, если один этап содержит несколько процессов, эти процессы может выполнять одно устройство, либо множество устройств в режиме совместного использования.
Устройство кодирования изображения и устройство декодирования изображения согласно вариантам, описываемым выше, могут быть применены в различной электронной аппаратуре, такой как передатчик или приемник для кабельного вещания, такого как спутниковое вещание или кабельное телевидение, передач через Интернет, передач терминалу через сеть сотовой связи и т.п., записывающее устройство, которое записывает изображение на носителе записи, таком как оптический диск, магнитный диск или флэш-память, или устройство воспроизведения изображения с носителя записи. Далее будут рассмотрены четыре примера применения настоящей технологии.
6. Шестой вариант
Первый пример применения: Телевизионный приемник
Фиг. 57 иллюстрирует пример упрощенной конфигурации телевизионного устройства, в котором применен описанный выше вариант. Телевизионное устройство 900 содержит антенну 901, тюнер 902, демультиплексор 903, декодер 904, модуль 905 обработки видеосигнала, модуль 906 отображения, модуль 907 обработки аудиосигнала, громкоговоритель 908, модуль 909 внешнего (ввод/вывод) интерфейса, модуль 910 управления, интерфейс 911 пользователя и шину.
Тюнер 902 выделяет сигнал нужного канала из вещательного сигнала, принимаемого через антенну 901, и демодулирует выделенный сигнал. Затем тюнер 902 передает кодированный поток битов данных, полученный в результате демодуляции, демультиплексору 903. Другими словами, тюнер 902 служит модулем связи телевизионного устройства 900, который принимает кодированный поток битов данных, несущий кодированное изображение.
Демультиплексор 903 выделяет видеопоток и аудиопоток просматриваемой программы из кодированного потока битов данных и передает каждый выделенный поток декодеру 904. Кроме того, демультиплексор 903 выделяет вспомогательные данные, такие как электронная программа передач (Electronic Program Guide (EPG)) из кодированного потока битов данных и передает выделенные данные в модуль 910 управления. Более того, демультиплексор 903 может осуществлять дескремблирование, если кодированный поток битов данных скремблирован.
Декодер 904 осуществляет декодирование видеопотока и аудиопотока, поступающих от демультиплексора 903. Затем декодер 904 передает видеоданные, полученные в результате декодирования, в модуль 905 обработки видеосигнала. Кроме того, декодер 904 передает аудиоданные, полученные в результате декодирования, в модуль 907 обработки аудиосигнала.
Модуль 905 обработки видеосигнала воспроизводит видеоданные, поступившие от декодера 904, и передает модулю 906 отображения для представления видео. Модуль 905 обработки видеосигнала может также инициировать представление модулем 906 отображения экрана приложения, поступившего через сеть связи. Кроме того, модуль 905 обработки видеосигнала может осуществить дополнительные процедуры, такие как устранение шумов видеоданных в соответствии с настройками. Более того, модуль 905 обработки видеосигнала может генерировать изображение графического интерфейса пользователя (Graphical User Interface (GUI)), такое как меню, кнопки и курсор, и накладывать сгенерированное изображение интерфейса на выходное изображение.
Модулем 906 отображения управляет управляющий сигнал, поступающий от модуля 905 обработки видеосигнала, для представления видеопрограммы или изображения на видеоэкране устройства отображения (например, жидкокристаллический дисплей, плазменный дисплей, органический электролюминесцентный дисплей OELD (органический EL дисплей) или другой подобный дисплей).
Модуль 907 обработки аудиосигнала осуществляет процедуру воспроизведения, такую как цифро-аналоговое преобразование и усиление, для аудиоданных, поступающих от декодера 904, и инициирует воспроизведение звукового сопровождения громкоговорителем 908. Кроме того, модуль 907 обработки аудиосигнала может осуществлять дополнительные процедуры, такие как устранение шумов аудиоданных.
Модуль 909 внешнего интерфейса представляет собой интерфейс для соединения телевизионного устройства 900 с внешним устройством или с сетью связи. Например, видеопоток или аудиопоток, принимаемый модулем 909 внешнего интерфейса, может быть декодирован посредством декодера 904. Другими словами, модуль 909 внешнего интерфейса служит также средствами связи для телевизионного устройства 900, принимающими кодированный поток битов данных, несущий кодированное изображение.
Модуль 910 управления содержит процессор, такой как процессор CPU, и память, такую как RAM или ROM. Память сохраняет программу, выполняемую процессором CPU, данные программ, данные электронной программы передач (EPG), данные, поступающие через сеть связи, и другую подобную информацию. Программа, хранящаяся в памяти, считывается, например, процессором CPU при включении телевизионного устройства 900 и выполняется. Процессор CPU управляет работой телевизионного устройства 900 посредством выполнения программы в соответствии с операционным сигналом, поступающим от модуля 911 интерфейса пользователя.
Модуль 911 интерфейса пользователя соединен с модулем 910 управления. Этот модуль 911 интерфейса пользователя содержит, например, кнопку и переключатель, позволяющие пользователю управлять телевизионным устройством 900, приемник сигнала дистанционного управления и другие подобные элементы. Модуль 911 интерфейса пользователя определяет операции пользователя посредством таких компонентов, генерирует операционный сигнал и передает сформированный операционный сигнал модулю 910 управления.
Шина 912 соединяет тюнер 902, демультиплексор 903, декодер 904, модуль 905 обработки видеосигнала, модуль 907 обработки аудиосигнала, модуль 909 внешнего интерфейса и модуль 910 управления одно с другим.
В телевизионном устройстве 900, конфигурированном таким образом, декодер 904 имеет функции устройства 200 декодирования изображения согласно описанному выше варианту. Соответственно, можно не допустить снижения эффективности кодирования.
Второй пример приложения: мобильный телефон
Фиг. 58 иллюстрирует пример упрощенной конфигурации мобильного телефона, к которому применен описанный выше вариант. Мобильный телефон 920 содержит антенну 921, модуль 922 связи, аудиокодек 923, громкоговоритель 924, микрофон 925, модуль 926 видеокамеры, модуль 927 обработки изображения, модуль 928 мультиплексирования/разделения, модуль 929 записи/воспроизведения, модуль 930 дисплея, модуль 931 управления, операционный модуль 932 и шину 933.
Антенна 921 соединена с модулем 922 связи. Громкоговоритель 924 и микрофон 925 соединены с аудиокодеком 923. Операционный модуль 932 соединен с модулем 931 управления. Шина 933 соединяет модуль 922 связи, аудиокодек 923, модуль 926 видеокамеры, модуль 927 обработки изображения, модуль 928 мультиплексирования/разделения, модуль 929 записи/воспроизведения, модуль 930 дисплея и модуль 931 управления одно с другим.
Мобильный телефон 920 осуществляет операции, такие передача/прием аудиосигнала, передача/прием сообщений электронной почты или данных изображения, считывание изображения и запись данных в различных режимах работы, таких как режим голосового вызова (разговора), режим передачи данных, режим считывания (съемки) изображения и режим видеотелефона.
В режиме голосового вызова аналоговый аудиосигнал, генерируемый микрофоном 925, поступает в аудиокодек 923. Это аудиокодек 923 преобразует аналоговый аудиосигнал в аудиоданные, осуществляет аналого-цифровое преобразование этих аудиоданных и сжимает полученные аудиоданные. Затем аудиокодек 923 передает сжатые аудиоданные модулю 922 связи. Модуль 922 связи кодирует и модулирует аудиоданные для генерирования передаваемого сигнала. Затем модуль 922 связи передает сформированным им передаваемый сигнал в адрес базовой станции (не показана) через антенну 921. Кроме того, модуль 922 связи усиливает радиосигнал, принимаемый через антенну 921, и осуществляет преобразование частоты радиосигнала, получая в результате принятый сигнал. Затем модуль 922 связи генерирует аудиоданные посредством демодуляции и декодирования принятого сигнала и передает сформированные аудиоданные аудиокодеку 923. Аудиокодек 923 осуществляет расширение и цифроаналоговое преобразование аудиоданных, генерируя в результате аналоговый аудиосигнал. Затем аудиокодек 923 передает сформированный им аудиосигнал громкоговорителю 924 для воспроизведения звука.
В режиме передачи данных, например, модуль 931 управления генерирует символьные данные, конфигурирующие сообщение электронной почты в соответствии с операцией пользователя, выполненной посредством операционного модуля 932. Кроме того, модуль 931 управления осуществляет управление модулем 930 дисплея для представления символов на экране. Модуль 931 управления генерирует данные электронной почты в соответствии с командами передачи, введенными пользователем через операционный модуль 932, и передает сформированные им данные электронной почты модулю 922 связи. Этот модуль 922 связи кодирует и модулирует данные электронной почты, генерируя тем самым передаваемый сигнал. Затем модуль 922 связи передает сформированный им передаваемый сигнал в адрес базовой станции (не показана) через антенну 921. Кроме того, модуль 922 связи осуществляет усиление и преобразование частоты радиосигнала, принимаемого через антенну 921, получая в результате принятый сигнал. Далее, модуль 922 связи демодулирует и декодирует принятый сигнал для восстановления данных электронной почты и передает восстановленные данные электронной почты модулю 931 управления. Модуль 931 управления дает команду модулю 930 дисплея представить содержание данных электронной почты на экране и передает эти данные электронной почты в модуль 929 записи/воспроизведения, чтобы записать эти данные электронной почты на носителе записи.
Модуль 929 записи/воспроизведения содержит произвольный читаемый и записываемый носитель записи. Например, это может быть встроенный носитель записи, такой как ЗУПВ или флэш-память, либо это может быть устанавливаемый снаружи носитель записи, такой как жесткий диск, магнитный диск, магнитооптический диск, оптический диск, память с входом/выходом через универсальную последовательную шину (USB) или карта памяти.
В режиме считывания изображения, например, модуль 926 видеокамеры считывает изображение объекта для генерирования данных изображения и передает сформированные им данные изображения в модуль 927 обработки изображения. Этот модуль 927 обработки изображения кодирует данные изображения, поступившие от модуля 926 видеокамеры, и передает кодированный поток битов данных в модуль 929 записи/воспроизведения, чтобы записать кодированный поток битов данных на носителе записи в этом модуле.
В режиме представления изображения на дисплее модуль 929 записи/воспроизведения считывает кодированный поток битов данных, записанный на носителе записи, и передает этот кодированный поток в модуль 927 обработки изображения. Модуль 927 обработки изображения декодирует кодированный поток битов данных, поступающий от модуля 929 записи/воспроизведения, и передает данные изображения модулю 930 дисплея, чтобы представить изображение на экране.
Кроме того, в режиме видеотелефонной связи, например, модуль 928 мультиплексирования/разделения мультиплексирует поток видеоданных, кодированный посредством модуля 927 обработки изображения, и поток аудиоданных, поступающий от аудиокодека 923, и передает полученный в результате мультиплексированный поток данных модулю 922 связи. Модуль 922 связи кодирует и модулирует полученный им поток данных и генерирует в результате передаваемый сигнал. Далее модуль 922 связи передает этот сформированный им передаваемый сигнал в адрес базовой станции (не показана) через антенну 921. Кроме того, модуль 922 связи осуществляет усиление и преобразование частоты радиосигнала, принимаемого через антенну 921, получая принятый сигнал. И передаваемый сигнал, и принятый сигнал содержат кодированные потоки битов данных. Затем модуль 922 связи восстанавливает поток данных посредством демодуляции и декодирования принятого сигнала и передает восстановленный поток данных в модуль 928 мультиплексирования/разделения. Этот модуль 928 мультиплексирования/разделения выделяет поток видеоданных и поток аудиоданных из входного потока данных и передает поток видеоданных и поток аудиоданных соответственно в модуль 927 обработки изображения и в аудиокодек 923. Модуль 927 обработки изображения декодирует поток видеоданных для генерирования видеоданных. Эти видеоданные поступают в модуль 930 дисплея, которые представляет на экране последовательность изображений. Аудиокодек 923 осуществляет расширение и цифро-аналоговое преобразование потока аудиоданных для генерирования аналогового аудиосигнала. Затем аудиокодек 923 передает сформированный им аналоговый аудиосигнал громкоговорителю 924 для воспроизведения звука.
В мобильном телефоне 920, конфигурированном таким образом, модуль 927 обработки изображения имеет функции устройства 100 кодирования изображения и устройства 200 декодирования изображения в соответствии с описанными выше вариантами. Соответственно можно избежать снижения эффективности кодирования.
Третий пример приложения: устройство записи и воспроизведения
На фиг. 59 представлена блок-схема, иллюстрирующая пример упрощенной конфигурации устройства записи/воспроизведения, в котором применен описанный выше вариант. Это устройство 940 записи/воспроизведения, например, кодирует аудиоданные и видеоданные принимаемой программы вещания и записывает кодированные данные на носителе записи. Кроме того, устройство 940 записи/воспроизведения может, например, кодировать аудиоданные и видеоданные, полученные от другого устройства, и записывать кодированные данные на носителе записи. Более того, устройство 940 записи/воспроизведения, например, воспроизводит данные, записанные на носителе записи, с использованием монитора и громкоговорителя в соответствии с командами пользователя. В этот момент устройство 940 записи/воспроизведения декодирует аудиоданные и видеоданные.
Устройство 940 записи/воспроизведения содержит тюнер 941, модуль внешнего интерфейса 942, кодирующий модуль 943, накопитель 944 на жестком диске (HDD), дисковод 945, селектор 946, декодер 947, модуль 948 экранного меню (On-Screen Display (OSD)) модуль 949 управления и модуль 950 интерфейса пользователя.
Тюнер 941 выделяет сигнал нужного канала из сигнала вещания, принимаемого через антенну (не показана), и демодулирует выделенный сигнал. Затем тюнер 941 передает полученный в результате демодуляции кодированный поток битов данных селектору 946. Другими словами, тюнер 941 служит устройством связи для устройства 940 записи/воспроизведения.
Модуль 942 внешнего интерфейса представляет собой интерфейс, используемый для соединения устройства 940 записи/воспроизведения с внешним устройством или сетью связи. Этот модуль 942 внешнего интерфейса может, например, представлять собой интерфейс согласно стандарту Института инженеров по электротехнике и электронике (IEEE) 1394, сетевой интерфейс, USB-интерфейс, интерфейс флэш-памяти или какой-либо другой подобный интерфейс. Например, видеоданные и аудиоданные, принимаемые через модуль 942 внешнего интерфейса, поступают в кодирующий модуль 943. Другими словами, модуль 942 внешнего интерфейса служит средством связи для устройства 940 записи/воспроизведения.
Если видеоданные и аудиоданные, поступающие через модуль 942 внешнего интерфейса, не кодированы, кодирующий модуль 943 осуществляет кодирование этих видеоданных и аудиоданных, когда они приходят от модуля 942 внешнего интерфейса. Затем этот кодирующий модуль 943 передает кодированный поток битов данных селектору 946.
Накопитель HDD 944 записывает кодированный поток битов данных, в котором данные контента, такие как видеоданные и аудиоданные, присутствуют в сжатом виде, различные программы и другие данные на встроенном жестком диске. При воспроизведении видео- и аудиоданных накопитель HDD 944 считывает данные с жесткого диска.
Дисковод 945 записывает и считывает данные на/с загруженного в дисковод носителя записи. Такой носитель записи, загружаемый в дисковод 945, может представлять собой, например, цифровой универсальный диск (Digital Versatile Disc (DVD)) (DVD-Video, DVD-RAM (DVD - запоминающее устройство с произвольной выборкой), записываемый диск DVD - Recordable (DVD-R), перезаписываемый диск DVD - Rewritable (DVD-RW), записываемый диск DVD+Recordable (DVD+R), перезаписываемый диск DVD+Rewritable (DVD+RW) или другой подобный диск), диск Блю-рей (Blu-ray) (зарегистрированная торговая марка) или другой подобный диск.
При записи видеоданных и аудиоданных селектор 946 выбирает кодированный поток битов данных, поступающий от тюнера 941 или от кодирующего модуля 943, и передает выбранный кодированный поток битов данных накопителю HDD 944 или дисководу 945. Кроме того, при воспроизведении видеоданных и аудиоданных селектор 946 передает кодированный поток битов данных, поступающий от накопителя HDD 944 или от дисковода 945 декодеру 947.
Декодер 947 осуществляет декодирование кодированного потока битов данных для генерирования видеоданных и аудиоданных. Затем декодер 947 передает полученные в результате декодирования видеоданные модулю OSD 948. Кроме того, декодер 947 передает полученные в результате декодирования аудиоданные внешнему громкоговорителю.
Модуль OSD 948 воспроизводит видеоданные, поступившие от декодера 947, представляя видео на экране дисплея. Этот модуль OSD 948 может накладывать изображение графического интерфейса пользователя (GUI), такое как меню, кнопки, курсор, поверх представляемого на экране дисплея видео.
Модуль 949 управления содержит процессор, такой как процессор CPU, и память, такую как RAM или ROM. Память хранит программу, выполняемую процессором CPU, данные программы и другую подобную информацию. Программы, сохраняемые в памяти процессор CPU, например, считывает и выполняет при включении устройства 940 записи/воспроизведения. Процессор CPU управляет работой устройства 940 записи/воспроизведения, например, в соответствии с операционным сигналом, поступившим от модуля 950 интерфейса пользователя, выполняя программу.
Модуль 950 интерфейса пользователя соединен с модулем 949 управления. Этот модуль 950 интерфейса пользователя содержит, например, кнопку или переключатель, позволяющие пользователю управлять работой устройства 940 записи/воспроизведения, и модуль для приема сигнала дистанционного управления. Модуль 950 интерфейса пользователя определяет выполненную пользователем операцию посредством составляющих элементов для генерирования операционного сигнала и передает этот операционный сигнал в модуль 949 управления.
В устройстве 940 записи/воспроизведения, конфигурированном таким способом, кодирующий модуль 943 имеет функцию устройства 100 кодирования изображения в соответствии с описанным выше вариантом. Кроме того, декодер 947 имеет функцию устройства 200 декодирования изображения в соответствии с описанным выше вариантом. Соответственно можно предотвратить снижение эффективности кодирования.
Четвертый пример приложения: устройство считывания изображения
На фиг. 60 показан пример упрощенной конфигурации устройства считывания изображения, в котором применен рассмотренный выше вариант. Это устройство 960 считывания изображения осуществляет считывание изображения объекта для генерирования изображения, кодирует данные этого изображения и записывает кодированные данные изображения на носителе записи.
Устройство 960 считывания изображения содержит оптический блок 961, модуль 962 считывания изображения, модуль 963 обработки сигнала, модуль 964 обработки изображения, модуль 965 дисплея, модуль 966 внешнего интерфейса, запоминающее устройство 967, привод 968 носителя записи, модуль 969 экранного меню (OSD), модуль 970 управления, модуль 971 интерфейса пользователя и шину 972.
Оптический блок 961 соединен с модулем 962 считывания изображения. Этот модуль 962 считывания изображения соединен с модулем 963 обработки сигнала. Модуль 965 дисплея соединен с модулем 964 обработки изображения. Модуль 971 интерфейса пользователя соединен с модулем 970 управления. Шина 972 соединяет перечисленные модуль 964 обработки изображения, модуль 966 внешнего интерфейса, запоминающее устройство 967, привод 968 носителя записи, модуль OSD 969 и модуль 970 управления одного с другими.
Оптический блок 961 содержит фокусирующую линзу, механизм диафрагмы и другие подобные элементы. Оптический блок 961 формирует изображение объекта на входной считывающей поверхности модуля 962 считывания изображения. Этот модуль 962 считывания изображения содержит формирователь сигналов изображения, такой, как прибор с зарядовой связью (Charge Coupled Device (CCD)) или структура на основе комплементарных МОП-транзисторов (КМОП) (Complementary Metal Oxide Semiconductor (CMOS)), и преобразует оптическое изображение, сформированное на его входной считывающей поверхности, в сигнал изображения, такой как электрический сигнал, посредством фотоэлектрического преобразования. Затем модуль 962 считывания изображения передает сигнал изображения в модуль 963 обработки сигнала.
Модуль 963 обработки сигнала осуществляет разнообразную обработку сигнала видеокамеры, такую как коррекция изгиба характеристики, гамма-коррекция, цветовая коррекция или какая-либо другая коррекция, применительно к сигналу изображения, поступающему от модуля 962 считывания изображения. Модуль 963 обработки сигнала передает данные изображения после обработки сигнала видеокамеры в модуль 964 обработки изображения.
Модуль 964 обработки изображения кодирует данные изображения, поступающие от модуля 963 обработки сигнала для генерирования кодированных данных. Затем этот модуль 964 обработки изображения передает сгенерированные им кодированные данные модулю 966 внешнего интерфейса или приводу 968 носителя записи. Кроме того, модуль 964 обработки изображения декодирует кодированные данные, поступающие от модуля 966 внешнего интерфейса или от привода носителя записи, для генерирования данных изображения. Затем модуль 964 обработки изображения передает сгенерированные им данные изображения модулю 965 отображения. Кроме того, модуль 964 обработки изображения может передать данные изображения, поступившие от модуля 963 обработки сигнала, модулю 965 отображения для представления изображения на экране отображения. Более того, модуль 964 обработки изображения может накладывать данные для представления на дисплее, поступившие от модуля OSD 969 экранного меню, на изображение, передаваемое модулю 965 отображения.
Модуль OSD 969 экранного меню, например, генерирует изображение интерфейса GUI, такое как меню, кнопки, курсор и т.п., и передает это сгенерированное изображение в модуль 964 обработки изображения.
Модуль 966 внешнего интерфейса конфигурирован, например, в качестве терминала с USB-портом ввода/вывода. Этот модуль 966 внешнего интерфейса соединяет, например, устройство 960 считывания изображения с принтером для печати изображения. Кроме того, с модулем 966 внешнего интерфейса может быть соединен, при необходимости, привод носителя записи. Сменный носитель записи, такой как, например, магнитный диск или оптический диск, загружают в привод носителя записи, а программу, считываемую с этого сменного носителя записи, можно инсталлировать в устройстве 960 считывания изображения. Более того, модуль 966 внешнего интерфейса может быть конфигурирован в качестве сетевого интерфейса для соединения с сетью связи, такой как локальная сеть связи (LAN), сеть Интернет или какая-либо другая сеть связи. Иными словами, модуль 966 внешнего интерфейса служит средством связи для устройства 960 считывания изображения.
Таким носителем записи, загружаемым в привод 968 носителя записи, может быть, например, произвольный считываемый и записываемый сменный носитель записи, такой как магнитный диск, магнитооптический диск, оптический диск или полупроводниковое запоминающее устройство. Кроме того, носитель записи может быть постоянно установлен в приводе 968 носителя записи, составляя непереносной модуль памяти, такой как встроенный накопитель на жестком магнитном диске или твердотельный накопитель (SSD).
Модуль 970 управления содержит процессор, такой как процессор CPU, и запоминающее устройство, такое как RAM или ROM. Запоминающее устройство сохраняет программу, выполняемую процессором CPU, данные для этой программы и другие подобные данные. Процессор CPU считывает и исполняет программу, хранящуюся в запоминающем устройстве, например, при включении устройства 960 считывания изображения. Исполняя указанную программу, процессор CPU управляет работой устройства 960 считывания изображения в соответствии с операционным сигналом, поступившим от модуля 971 интерфейса пользователя, например.
Модуль 971 интерфейса пользователя соединен с модулем 970 управления. Этот модуль 971 интерфейса пользователя содержит, например, кнопки, переключатели и другие подобные компоненты, применяемые пользователем для работы с устройством 960 считывания изображения. Модуль 971 интерфейса пользователя определяет операции пользователя с этими составляющими элементами, генерирует операционный сигнал и передает этот операционный сигнала в модуль 970 управления.
В устройстве 960 считывания изображения, конфигурированном таким образом, модуль 964 обработки изображения имеет функции устройства 100 кодирования изображения и устройства 200 декодирования изображения согласно описанным выше вариантам. Следовательно, можно предотвратить снижение эффективности кодирования.
7. Седьмой вариант
Пример применения для масштабируемого кодирования: первая система
Далее будет рассмотрен конкретный пример данных, подвергнутых масштабируемому кодированию (иерархическое кодирование (изображения)). Такое масштабируемое кодирование, например, аналогичное примеру, представленному на фиг. 61, используется с целью выбора данных для передачи.
В системе 1000 передачи данных, показанной на фиг. 61, сервер 1002 распределения считывает масштабируемые кодированные данные, хранящиеся в запоминающем устройстве 1001 масштабируемых кодированных данных, и распределяет считываемые кодированные данные терминалам, таким как персональный компьютер 1004, аудио-видео (AV) аппаратура 1005, планшетное устройство 1006 и/или мобильный телефон 1007, через сеть 1003 связи.
В этот момент сервер 1002 распределения выбирает кодированные данные подходящего качества на основе возможностей терминала, среды связи и других подобных факторов. Даже если сервер 1002 распределения передает данные слишком высокого, ненужно высокого качества, в терминале не удастся получить высококачественное изображение, но при этом возникает опасность возможной задержки или переполнения. Кроме того, есть опасения, что будет необоснованно занят диапазон связи, либо сверх необходимого возрастет нагрузка на терминал. Напротив, если сервер 1002 распределения передает данные слишком (без необходимости) низкого качества, есть опасность, что в терминале не удастся получить изображение достаточного качества. Соответственно, сервер 1002 распределения считывает масштабируемые кодированные данные, хранящиеся в запоминающем устройстве 1001, в виде кодированных данных подходящего качества с точки зрения возможностей терминала, среды связи и других подобных факторов и передает прочитанные масштабируемые кодированные данные.
Например, запоминающее устройство 1001 для хранения масштабируемых кодированных данных сохраняет такие масштабируемые кодированные данные 1011 в формате (BL+EL). Эти масштабируемые кодированные данные (BL+EL) 1011 представляют собой кодированные данные, содержащие оба уровня - и базовый уровень (BL), и расширительный уровень (EL), так что в результате декодирования этих масштабируемых кодированных данных можно получить оба изображения - и базового уровня, и расширительного уровня.
Сервер 1002 распределения выбирает подходящий уровень в соответствии с функциональными возможностями терминала, которому нужно передать данные, средой связи и другими факторами и считывает данные выбранного уровня. Например, сервер 1002 распределения считывает масштабируемые кодированные данные (BL+EL) 1011, имеющие высокое качество, из запоминающего устройства 1001 для масштабируемых кодированных данных и передает прочитанные масштабируемые данные, как они есть, персональному компьютеру 1004 или планшетному устройству 1006, обладающему большими процессорными возможностями обработки данных. В отличие от этого, сервер 1002 распределения выделяет данные базового уровня из масштабируемых кодированных данных (BL+EL) 1011 и передает выделенные данные, например, AV-аппаратуре 1005 и мобильному телефону 1007, в виде масштабируемых кодированных данных 1012 в формате (BL), представляющих собой данные того же самого содержания, как масштабируемые кодированные данные (BL+EL) 1011, но имеющие более низкое качество, чем масштабируемые кодированные данные (BL+EL) 1011.
При таком подходе, за счет использования масштабируемых кодированных данных, можно легко регулировать объем данных. Соответственно, можно избежать возникновения задержки или переполнения, либо ненужного увеличения нагрузки на терминал или линию связи. Кроме того, поскольку масштабируемые кодированные данные (BL+EL) 1011 имеют небольшую избыточность между уровнями, объем данных может быть меньше, чем в случае, когда кодированные данные каждого уровня конфигурируют в качестве индивидуальных данных. Соответственно, область хранения данных в запоминающем устройстве 1001 для масштабируемых кодированных данных можно использовать более эффективно.
В качестве терминала можно использовать разнообразные устройства, такие как персональный компьютер 1004 и мобильный телефон 1007, причем характеристики аппаратуры терминала различаются в зависимости от конкретного примененного устройства. Кроме того, терминал может выполнять разные приложения и обладать разными возможностями с точки зрения программного обеспечения. Далее, в качестве сети связи, представляющей собой средства связи, могут быть использованы сети связи любого типа, включая проводную сеть, беспроводную сеть и оба вида сетей - Интернет и локальные сети связи (LAN), так что возможности передачи данных тоже варьируются. Более того, есть опасность, что возможности передачи данных могут изменяться в соответствии с передачей других сообщений и т.п.
Таким образом, прежде чем начать передачу данных, сервер 1002 распределения может связаться с терминалом, являющимся адресатом передачи данных, чтобы получить информацию о функциональных возможностях терминала, таких как характеристики аппаратуры терминала и характеристики приложения (программного обеспечения), выполняемого терминалом, а также информации, относящейся к среде связи, такой как ширина полосы частот сети 1003 связи. Кроме того, сервер 1002 распределения может быть конфигурирован для выбора подходящего уровня на основе указанной выше информации.
Более того, выделение уровня может быть произведено терминалом. Например, персональный компьютер 1004 может декодировать переданные масштабируемые кодированные данные (BL+EL) 1011 и представить на дисплее изображение базового уровня или изображение расширительного уровня. Кроме того, персональный компьютер 1004 может выделить масштабируемые кодированные данные (BL) 1012 базового уровня из переданных масштабируемых кодированных данных (BL+EL) 1011, сохранить выделенные масштабируемые кодированные данные или передать выделенные масштабируемые кодированные данные другому устройству, декодировать выделенные масштабируемые кодированные данные и представить на дисплее изображение базового уровня.
Очевидно, что число единиц устройств каждого из типов - запоминающих устройств 1001 для хранения масштабируемых кодированных данных 1001, серверов 1002 распределения, сетей 1003 связи и терминалов, может быть произвольным. Кроме того, хотя были рассмотрены примеры, в которых сервер 1002 распределения передает данные терминалу, возможности использования изобретения этим не ограничиваются. В качестве системы 1000 передачи данных может быть использована произвольная система, выбирающая и передающая подходящий уровень в соответствии с функциональными возможностями терминала, средой связи и другими подобными факторами во время передачи масштабируемых кодированных данных терминалу.
Кроме того, в системе 1000 передачи данных, показанной на фиг. 61, в результате применения предлагаемой технологии, аналогично применению иерархического кодирования/иерархического декодирования, описанного выше со ссылками на фиг. 1-52, могут быть достигнуты преимущества, аналогичные преимуществам, описанным выше со ссылками на фиг. 1-52.
Пример применения для масштабируемого кодирования: вторая система Кроме того, масштабируемое кодирование, например, аналогичное примеру, показанному на фиг. 62, используется для передачи через множество разных средств связи.
В системе 1100 передачи данных, показанной на фиг. 62, вещательная станция 1101 передает масштабируемые кодированные данные (BL) 1121 базового уровня через сеть наземного вещания. Кроме того, эта вещательная станция 1101 передает масштабируемые кодированные данные (EL) 1122 расширительного уровня (например, данные пакетируют и передают) через произвольную сеть 1112 связи, конфигурированную на основе проводной сети связи, беспроводной сети связи или сетей связи обоих типов.
Терминал 1102 имеет функцию приема сигналов 1111 наземного вещания, передаваемых вещательной станцией 1101, и принимает масштабируемые кодированные данные (BL) 1121 базового уровня, переданные сигналами 1111 наземного вещания. Кроме того, терминал 1102 имеет также функцию связи через сеть 1112 связи и принимает масштабируемые кодированные данные (EL) 1122 расширительного уровня, переданные через эту сеть 1112 связи.
Терминал 1102, например, в соответствии с командами пользователя или аналогичными командами, декодирует масштабируемые кодированные данные (BL) 1121 базового уровня, полученные посредством сигналов 1111 наземного вещания, и получает изображение базового уровня, сохраняет это изображение или передает его другому устройству.
Кроме того, терминал 1102, например, в соответствии с командами пользователя или аналогичными командами, объединяет масштабируемые кодированные данные (BL) 1121 базового уровня, полученные через сигналы 1111 наземного вещания, и масштабируемые кодированные данные (EL) 1122 расширительного уровня, полученные через сеть 1112 связи, формируя тем самым масштабируемые кодированные данные типа (BL+EL), получает изображение расширительного уровня посредством декодирования принятых масштабируемых кодированных данных, сохраняет полученные масштабируемые кодированные данные или передает их другому устройству.
Как указано выше, масштабируемые кодированные данные для каждого уровня могут быть, например, переданы через свою среду связи, отличную от другой. Соответственно нагрузка может быть распределена, что предотвращает возникновение задержки или переполнения.
Кроме того, в зависимости от ситуации может быть конфигурирован выбор среды связи для передачи данных каждого уровня. Например, передачи данных можно конфигурировать таким образом, чтобы масштабируемые кодированные данные (BL) 1121 базового уровня, для которого объем данных относительно велик, передавать через широкополосную среду связи, а масштабируемые кодированные данные (EL) 1122 расширительного уровня, для которого объем данных относительно мал, передавать через относительно узкополосную среду связи. Кроме того, можно, например, конфигурировать среду связи для передачи масштабируемых кодированных данных (EL) 1122 расширительного уровня, чтобы переключаться между сетью 1112 связи и системой 1111 наземного вещания в зависимости от используемой полосы частот сети 1112 связи. Очевидно, что это таким же образом применимо к данным произвольного уровня.
При таком способе управления можно дополнительно предотвратить увеличение нагрузки при передаче данных.
Очевидно, что число уровней произвольно и число средств связи, используемых для передачи данных, также произвольно. Кроме того, число терминалов 1102, являющихся адресатами передачи данных, тоже произвольно. Хотя в представленном выше описании был рассмотрен в качестве примера случай вещания от вещательной станции 1101, варианты использования этим не ограничиваются. В качестве системы 1100 передачи данных может быть использована любая система, разбивающая масштабируемые кодированные данные на несколько частей в единицах уровней и передающая эти разделенные кодированные данные по нескольким линиям связи.
В результате применения предлагаемой технологии в такой системе 1100 передачи данных, аналогично применению иерархического кодирования/иерархического декодирования, описанного выше со ссылками на фиг. 1-52, могут быть достигнуты преимущества, аналогичные преимуществам, описанным выше со ссылками на фиг. 1-52.
Пример применения для масштабируемого кодирования: третья система
Масштабируемое кодирование, аналогично примеру, показанному на фиг. 63, может быть использовано для хранения кодированных данных.
В системе 1200 считывания изображения, показанной на фиг. 63, устройство 1201 считывания изображения кодирует масштабируемым способом данные изображения, полученные в результате считывания изображения объекта 1211, и передает эти данные в запоминающее устройство 1202 хранения масштабируемых кодированных данных в качестве масштабируемых кодированных данных (BL+EL) 1221.
Запоминающее устройство 1202 хранения масштабируемых кодированных данных сохраняет масштабируемые кодированные данные (BL+EL) 1221, поступающие от устройства 1201 считывания изображения, с качеством, зависящим от ситуации. Например, для обычного времени запоминающее устройство 1202 хранения масштабируемых кодированных данных выделяет данные базового уровня из масштабируемых кодированных данных (BL+EL) 1221 и сохраняет выделенные данные в качестве масштабируемых кодированных данных (BL) 1222 базового уровня, имеющих относительно небольшой объем, но низкое качество. Напротив, в интересующие периоды времени запоминающее устройство 1202 хранения масштабируемых кодированных данных сохраняет масштабируемые кодированные данные (BL+EL) 1221, имеющие больший объем, но и высокое качество.
При таком подходе запоминающее устройство 1202 хранения масштабируемых кодированных данных может сохранять изображение с высоким качеством только тогда, когда это необходимо, и соответственно можно избежать увеличения объема данных, не допустив снижения ценности изображения из-за деградации качества этого изображения, что позволяет повысить эффективность использования емкости памяти.
Например, предполагается, что устройство 1201 считывания изображения является камерой видеонаблюдения. Если объект наблюдения (например, нарушитель) не появился на считываемом изображении (в обычное время), есть высокая вероятность, что содержание этого считываемого изображения является несущественным, вследствие чего приоритетным становится уменьшение объема данных, так что данные изображения (масштабируемые кодированные данные) сохраняют с низким качеством. В отличие от этого, если на считываемом изображении появился объект наблюдения, т.е. объект 1211 (в интересующее время), имеется высокая вероятность, что содержание считываемого изображения является важным, вследствие чего приоритетным становится обеспечение высокого качестве изображения, так что данные изображения (масштабируемые кодированные данные) сохраняют с высоким качеством.
Здесь обычное время или интересующее время можно определить путем анализа изображения с использованием запоминающего устройства 1202 для хранения масштабируемых кодированных данных. В качестве альтернативы устройство 1201 считывания изображения может быть конфигурировано для такого определения времени и передачи результата этого определения в запоминающее устройство 1202 для хранения масштабируемых кодированных данных.
Здесь критерий для определения обычного времени или интересующего времени является произвольным, и содержание изображения, используемого в качестве критерия, также является произвольным. Здесь в качестве критерия определения может быть использовано условие, отличное от содержания изображения. Например, переключение между режимом обычного времени и режимом интересующего времени может быть произведено в зависимости от громкости, формы сигнала или других параметров записанного звука, в каждый заданный момент времени или в соответствии с командой извне, например, командой от пользователя.
Кроме того, хотя были описаны примеры, где переключение осуществляется между двумя состояниями - обычным временем и интересующим временем, число таких состояний может быть произвольным, так что может быть конфигурировано между тремя или более состояниями, например, обычное время, время небольшого интереса, просто интересующее время и время высокого интереса. Однако верхний предел числа переключаемых состояний зависит от числа уровней масштабируемых кодированных данных.
Кроме того, устройство 1201 считывания изображения может быть конфигурировано для определения числа уровней масштабируемого кодирования в соответствии с состояниями. Например, в обычное время устройство 1201 считывания изображения может быть конфигурировано для генерирования масштабируемых кодированных данных (BL) 1222 базового уровня, имеющий относительно небольшой объем и низкое качество, и передачи сформированных масштабируемых кодированных данных в запоминающее устройство 1202 хранения масштабируемых кодированных данных. С другой стороны, например, в интересующее время устройство 1201 считывания изображения может быть конфигурировано для генерирования масштабируемых кодированных данных (BL+EL) 1221 базового уровня, имеющий сравнительно большой объем и высокое качество, и передачи сформированных масштабируемых кодированных данных в запоминающее устройство 1202 хранения масштабируемых кодированных данных.
Хотя выше был описан случай камеры видеонаблюдения, использование системы 1200 считывания изображения является произвольным и не ограничивается камерой видеонаблюдения.
В результате применения предлагаемой технологии в такой системе 1200 считывания изображения, аналогично применению иерархического кодирования/иерархического декодирования, описанного выше со ссылками на фиг. 1-52, могут быть достигнуты преимущества, аналогичные преимуществам, описанным выше со ссылками на фиг. 1-52.
Кроме того, предлагаемая технология может быть применена к потокам данных протокола HTTP, таким как стандарты MPEG или DASH, которые выбирают и используют подходящие кодированные данные в единицах сегментов из совокупности нескольких фрагментов кодированных данных, имеющих разное разрешение и подготовленных заранее. Иными словами, информация относительно кодирования и декодирования может быть совместно использована несколькими фрагментами кодированных данных.
8. Восьмой вариант
Другие примеры
Хотя выше были рассмотрены примеры устройств, систем и т.п., к которым применима предлагаемая технология, эта-технология приведенными здесь примерами не ограничивается. Таким образом, предлагаемая технология может быть также реализована в виде одного устройства, в котором смонтированы все компоненты, или в виде устройства, конфигурирующего систему, такую как процессор, в варианте системной большой интегральной схемы (БИС (LSI)) или аналогичной конфигурации, в виде модуля, использующего несколько процессоров и подобных компонентов, в виде блока, использующего несколько модулей и других подходящих компонентов или в виде комплексного устройства, полученного путем добавления другой функции к блоку (другими словами, в виде части конфигурации устройства).
Комплексное видеоустройство
Пример реализации предлагаемой технологии в виде комплексного устройства будет рассмотрен со ссылками фиг. 64. Фиг. 64 представляет упрощенную блок-схему, иллюстрирующую пример конфигурации комплексного видеоустройства, в котором применена предлагаемая технология.
В последние годы прогрессировал процесс реализации множества функций в электронной аппаратуре и в случае, когда какой-то компонент часто используется в продаже, разработках и т.п., этот компонент, как правило, выполняет не одну какую-то функцию, а несколько функций, так что этот компонент реализован в виде комплексного многофункционального устройства путем сочетания нескольких конфигураций, имеющих взаимосвязанные функции.
Комплексное видеоустройство 1300, представленное на фиг. 64, имеет многофункциональную конфигурацию и создано путем соединения устройства, имеющего функцию, относящуюся к кодированию/декодированию (либо по отдельности кодирование или декодирование, либо и то, и другое вместе) изображения, с устройствами, имеющими другие функции, связанные с этой функцией.
Как показано на фиг. 64, комплексное видеоустройство 1300 содержит: группу модулей, таких как видеомодуль 1311, внешняя память 1312, модуль 1313 управления питанием, и входной модуль 1314, а также устройства, имеющие относящиеся к делу функции, такие как модуль 1321 соединения с внешними устройствами (соединительный модуль), видеокамера 1322 и датчик 1323.
Модуль представляет собой компонент, имеющий связанные функции, реализованные путем соединения нескольких составляющих функций, взаимосвязанных одна с другой. Конкретная физическая конфигурация может быть произвольной, и, например, можно рассматривать такую конфигурацию, в которой несколько процессоров, имеющих соответствующие функции, электронных компонентов, таких как резисторы и конденсаторы, и другие устройства могут быть собраны на печатной плате или другим подобным способом. Кроме того, можно рассмотреть возможность создания нового модуля путем соединения одного модуля с другими модулями, процессорами и т.д.
В примере, показанном на фиг. 64, видеомодуль 1311 построен посредством сочетания конфигураций, имеющих функции, относящиеся к обработке изображения, и содержит: процессор приложений, видеопроцессор, широкополосный модем 1333 и высокочастотный модуль 1334.
Процессор построен посредством интеграции конфигурации, имеющей заданную функцию, на полупроводниковом кристалле с применением технологии «система на кристалле» (System On a Chip (SoC)) и, например, он представляет собой процессор в виде так называемой большой интегральной схемы (БИС (Large Scale Integration (LSI))) или аналогичного устройства. Такая конфигурация, имеющая заданную функцию, может быть логической схемой (аппаратная конфигурация), конфигурацией, содержащей процессор CPU, ROM, RAM и другие подобные компоненты и программу (программная конфигурация), выполняемую с использованием этих компонентов, или сочетание обоих вариантов конфигураций. Например, возможна конфигурация, когда в процессоре, содержащем логические схемы, центральный процессор CPU, ROM, RAM и другие подобные компоненты, некоторые функции реализуются логическими схемами (аппаратная конфигурация), а другие функции реализуются программой (программная конфигурация), выполняемой процессором CPU.
Процессор 1331 приложений, показанный на фиг. 64, представляет собой процессор, выполняющий приложение, относящееся к обработке изображения. Для реализации заданной функции приложение, исполняемое процессором 1331 приложений, не только производит необходимые вычисления, но и может также управлять конфигурациями внутри/вне видеомодуля 1311, такими как видеопроцессор 1332 или другие подобные компоненты, по мере необходимости.
Видеопроцессор 1332 представляет собой процессор, имеющий функцию, относящуюся к кодированию/декодированию (к кодированию или декодированию, либо к обеим этим функциям) изображения.
Широкополосный модем 1333 преобразует данные (цифровой сигнал), передаваемые по проводным или беспроводным (или и проводным, и беспроводным) широкополосным линиям связи, таким как линии Интернет или коммутируемая телефонная сеть общего пользования, в аналоговый сигнал посредством цифровой модуляции или другим подобным способом, либо преобразует аналоговый сигнал, принятый по широкополосным линиям связи, в данные (цифровой сигнал) посредством демодуляции. Широкополосный модем 1333 обрабатывает произвольную информацию, такую как данные изображения, обработанные видеопроцессором 1332, поток, содержащий кодированные данные изображения, программу приложения и данные настройки.
Высокочастотный модуль 1334 представляет собой модуль, выполняющий преобразование частоты, модуляцию/демодуляцию, усиление, фильтрацию и другие подобные операции применительно к высокочастотному (RF) сигналу, передаваемому или принимаемому через антенну. Например, высокочастотный модуль 1334 осуществляет преобразование частоты и другие подобные операции применительно к сигналу выделенной системы связи, генерируемому широкополосным модемом 1333 с целью генерирования высокочастотного сигнала. Кроме того, например, высокочастотный модуль 1334 осуществляет преобразование частоты и другие подобные операции применительно к высокочастотному сигналу, принятому через входной модуль 1314 для генерирования сигнала выделенной системы связи.
Как обозначено штриховой линией 1341 на фиг. 64, процессор 1331 приложений и видеопроцессор 1332 могут быть интегрированы в одном процессоре.
Внешняя память 1312 представляет собой модуль, расположенный вне видеомодуля 1311 и содержащий запоминающее устройство, используемое видеомодулем 1311. Хотя запоминающее устройство в составе внешней памяти 1312 может быть реализовано в некоторой физической конфигурации, в общем случае это запоминающее устройство часто используется для сохранения больших объемов данных, таких как данные изображения, конфигурированные в единицах кадров. Соответственно, предпочтительно, чтобы это запоминающее устройство было реализовано посредством полупроводникового запоминающего устройства большой емкости, такого как динамическое запоминающее устройство с произвольной выборкой (Dynamic Random Access Memory (DRAM)), при относительно низкой стоимости.
Модуль 1313 управления питанием управляет подачей питания видеомодулю 1311 (каждой конфигурации, расположенной внутри видеомодуля 1311).
Входной модуль 1314 осуществляет функции сопряжения с внешними устройствами (схемы приемопередающего конца на стороне антенны) для высокочастотного модуля 1334. Как показано на фиг. 64, входной модуль 1314, например, содержит антенный модуль 1351, фильтр 1352 и усилительный модуль 1353.
Антенный модуль 1351 содержит антенну, передающую и принимающую радиосигналы, и периферийные схемы. Антенный модуль 1351 передает сигнал, поступающий от усилительного модуля 1353, в виде радиосигнала и направляет принятый радиосигнал фильтру 1352 в виде электрического сигнала (высокочастотный сигнал). Фильтр 1352 осуществляет фильтрацию и другие подобные процедуры применительно к высокочастотному сигналу, принимаемому через антенный модуль 1351, и передает этот высокочастотный сигнал после обработки высокочастотному модулю 1334. Усилительный модуль 1353 усиливает высокочастотный сигнал, поступающий от высокочастотного модуля 1334, и передает этот усиленный высокочастотный сигнал антенному модулю 1351.
Соединительный модуль 1321 для соединения с внешними устройствами представляет собой модуль, имеющий функцию связи с внешними устройствами. Соединительный модуль 1321 может иметь произвольную физическую конфигурацию. Например, этот соединительный модуль 1321 содержит конфигурацию, имеющую функцию связи в соответствии со стандартом связи, отличным от стандарта связи, применяемого широкополосным модемом 1333, внешним терминалом ввода/вывода или другим подобным устройством.
Например, соединительный модуль 1321 может быть конфигурирован с использованием модуля, имеющего функцию связи, совместимую со стандартом радиосвязи, таким как Bluetooth (зарегистрированная торговая марка), IEEE 802.11 (например, «Беспроводная достоверность» (Wireless Fidelity); зарегистрированная торговая марка (Wi-Fi)), стандартом связи в ближней зоне (Near Field Communication (NFC)) или стандартом Ассоциации по инфракрасной технологии передачи данных (InfraRed Data Association (IrDA)), антенны, передающей и принимающей сигналы в соответствии с указанным стандартом, и других подобных компонентов. Кроме того, например, соединительный модуль 1321 может быть конфигурирован с использованием модуля, имеющего функцию связи, совместимую со стандартом проводной связи, таким как стандарт универсальной последовательной шины (Universal Serial Bus (USB)) или стандарт мультимедийного интерфейса высокой четкости (High-Definition Multimedia Interface (HDMI (зарегистрированная торговая марка))), и терминалы, совместимые с этим стандартом. Более того, например, соединительный модуль 1321 может быть конфигурирован на основе какой-нибудь другой функции передачи данных (сигнала) аналогового терминала ввода/вывода или другого подобного устройства.
Кроме того, соединительный модуль 1321 может содержать устройство, являющееся адресатом передач данных (сигналов). Например, модуль для соединения с внешними устройствами может содержать привод накопителя данных (включая не только привод сменного носителя записи, но также жесткий диск, твердотельный диск (Solid State Drive (SSD)), сетевое устройство хранения данных (Network Attached Storage (NAS)) или другое подобное устройство), который считывает/записывает данные с/на сменном носителе записи, таком как магнитный диск, оптический диск, магнитооптический диск или полупроводниковое запоминающее устройство. Кроме того, соединительный модуль 1321 может быть конфигурирован с использованием устройства вывода (монитор, громкоговоритель или другое подобное устройство) изображения или голоса.
Видеокамера 1322 представляет собой модуль, имеющий функцию получения данных изображения объекта посредством считывания изображения этого объекта. Данные изображения, полученные в результате считывания изображения, выполняемого видеокамерой 1322, например, передают видеопроцессору 1332 и кодируют.
Датчик 1323 представляет собой модуль, имеющий функцию произвольного датчика, такого как звуковой датчик, ультразвуковой датчик, оптический датчик, датчик освещенности, инфракрасный датчик, датчик изображения, датчик поворота, датчик угла, датчик угловой скорости, датчик скорости, датчик ускорения, датчик наклона, магнитный идентификационный датчик, датчик удара или датчик температуры. Данные, измеренные датчиком 1323, передают, например, в процессор 1331 приложений и используются выполняемым приложением или другим способом.
Конфигурации, описанные выше в качестве модуля, могут быть реализованы в виде процессора. И напротив, конфигурации, описанные выше в виде процессора, могут быть реализованы в виде модуля.
В комплексном видеоустройстве 1300, имеющем описанную выше конфигурацию, предлагаемая технология, как будет описано позднее, может быть применена в видеопроцессоре 1332. Соответственно, комплексное видеоустройство 1300 может быть реализовано в виде устройства, в котором применена предлагаемая технология.
Пример конфигурации видеопроцессора
Фиг. 65 иллюстрирует пример упрощенной конфигурации видеопроцессора 1332 (фиг. 64), к которому применена предлагаемая технология.
В примере, показанном на фиг. 65, видеопроцессор 1332 имеет функцию приема входных видеосигнала и аудиосигнала и кодирования этих видеосигнала и аудиосигнала в соответствии с заданной системой и функцию декодирования кодированных видеоданных и кодированных аудиоданных, а также воспроизведения и передачи на выход видеосигнала и аудиосигнала.
Как показано на фиг. 65, видеопроцессор 1332 содержит: входной модуль 1401 обработки видеосигнала; первый модуль 1402 увеличения/уменьшения изображения; второй модуль 1403 увеличения/уменьшения изображения; выходной модуль 1404 обработки видеосигнала; память 1405 кадров; и модуль 1406 управления памятью. Кроме того, видеопроцессор 1332 содержит: модуль 1407 кодирования/декодирования; буферы 1408А и 1408В элементарных потоков (Elementary Stream (ES)) видео; буферы 1409А и 1409В потоков ES аудио. Более того, видеопроцессор 1332 содержит: аудио кодирующий модуль 1410; аудиодекодер 1411; мультиплексорный модуль (Multiplexer (MUX)) 1412; демультиплексорный модуль (Demultiplexer (DMUX)) 1413 и потоковый буфер 1414.
Входной модуль 1401 обработки видеосигнала, например, получает видеосигнал от соединительного модуля 1321 (Фиг. 64) или подобного модуля и преобразует этот видеосигнал в цифровые данные изображения. Первый модуль 1402 увеличения/уменьшения изображения осуществляет преобразование формата, процедуру увеличения/уменьшения изображения и другие подобные операции применительно к данным изображения. Второй модуль 1403 увеличения/уменьшения изображения осуществляет процедуру увеличения/уменьшения и преобразование формата в соответствии с форматом адресата выходных данных через выходной модуль 1404 обработки видеосигнала, аналогичное преобразованию формата в первом модуле 1402 увеличения/уменьшения изображения, процедуру увеличения/уменьшения изображения и другие подобные операции применительно к данным изображения. Выходной модуль 1404 обработки видеосигнала осуществляет преобразование формата, преобразование в аналоговый сигнал и другие подобные операции применительно к данным изображения и передает полученный в результате сигнал, например, в соединительный модуль 1321 (Фиг. 64) или в другой подобный модуль в качестве воспроизведенного видеосигнала.
Память 1405 кадров представляет собой запоминающее устройство для записи данных изображения, используемое совместно входным модулем 1401 обработки видеосигнала, первым модулем 1402 увеличения/уменьшения изображения, вторым модулем 1403 увеличения/уменьшения изображения, выходным модулем 1404 обработки видеосигнала и модулем 1407 кодирования/декодирования. Память 1405 кадров реализована, например, посредством полупроводникового запоминающего устройства, такого как динамическое DRAM.
Модуль 1406 управления памятью принимает синхросигнал от модуля 1407 кодирования/декодирования и управляет доступом к памяти 1405 кадров для записи/чтения в соответствии с графиком доступа к памяти 1405 кадров, записанным в таблице 1406А управления доступом. Эта таблица 1406А управления доступом обновляется модулем 1406 управления памятью в соответствии с процедурами, выполняемыми модулем 1407 кодирования/декодирования, первым модулем 1402 увеличения/уменьшения изображения, вторым модулем 1403 увеличения/уменьшения изображения и другими подобными модулями.
Модуль 1407 кодирования/декодирования осуществляет кодирование данных изображения и декодирование видеопотока, представляющего собой поток данных, полученных в результате кодирования данных изображения. Например, модуль 1407 кодирования/декодирования осуществляет кодирование данных изображения, считываемых из памяти 1405 кадров, и последовательно записывает данные изображения в буфер 1408А потока ES видео в качестве видеопотока. Кроме того, например, модуль 1407 кодирования/декодирования последовательно считывает и декодирует видеопотоки, поступающие из буфера 1408В потока ES видео, и последовательно записывает декодированные видеопотоки в память 1405 кадров в качестве данных изображения. Модуль 1407 кодирования/декодирования использует память 1405 кадров в качестве рабочей области в процессе кодирования и декодирования. Кроме того, модуль 1407 кодирования/декодирования передает синхросигнал в модуль 1406 управления памятью, например, в моменты, когда начинается обработка каждого макроблока.
Буфер 1408А потока ES видео осуществляет буферизацию видеопотока, генерируемого модулем 1407 кодирования/декодирования, и передает буферизованный видеопоток в мультиплексорный модуль (MUX) 1412. Буфер 1408В потока ES видео осуществляет буферизацию видеопотока, поступающего от демультиплексорного модуля (DMUX) 1413, и передает буферизованный видеопоток в модуль 1407 кодирования/декодирования.
Буфер 1409А потока ES аудио осуществляет буферизацию аудиопотока, генерируемого аудио кодирующим модулем 1410, и передает буферизованный аудиопоток в мультиплексорный модуль (MUX) 1412. Буфер 1409 В потока ES аудио осуществляет буферизацию аудиопотока, поступающего от демультиплексорного модуля (DMUX) 1413, и передает буферизованный аудиопоток в аудиодекодер 1411.
Аудио кодирующий модуль 1410, например, преобразует аудиосигнал, поступающий, например, от соединительного модуля 1321 или аналогичного модуля, в цифровой сигнал и кодирует преобразованный цифровой сигнал в соответствии с заданной системой, такой как аудиосистема MPEG или система Аудио кода 3 (Audio Code number 3 (АС3)). Аудио кодирующий модуль 1410 последовательно записывает аудиопотоки, каждый из которых содержит данные, полученные в результате кодирования аудиосигнала, в буфер 1409А потока ES аудио. Аудиодекодер 1411 осуществляет декодирование аудиопотока, поступающего из буфера 1409 В потока ES аудио, и, например, преобразует его в аналоговый сигнал и выполняет другие подобные операции применительно к декодированным аудиопотокам, а также передает полученный в результате сигнал, например, в соединительный модуль 1321 или в другой подобный модуль в качестве воспроизведенного аудиосигнала.
Мультиплексорный модуль (MUX) 1412 осуществляет мультиплексирование видеопотока и аудиопотока. Способ этого мультиплексирования (другими словами, формат потока битов, генерируемого в процессе мультиплексирования) является произвольным. Кроме того, в процессе мультиплексирования указанный мультиплексорный модуль (MUX) 1412 может добавить заданную информацию заголовка и другую подобную информацию к потоку битов. Другими словами, мультиплексорный модуль (MUX) 1412 может преобразовывать формат потока в процессе мультиплексирования. Например, посредством мультиплексирования видеопотока и аудиопотока мультиплексорный модуль (MUX) 1412 преобразует эти потоки в транспортный поток, иными словами в поток битов в формате для передачи. Кроме того, например, путем мультиплексирования видеопотока и аудиопотока мультиплексорный модуль (MUX) 1412 преобразует эти потоки в данные (файловые данные) в формате записи файла.
Демультиплексорный модуль (DMUX) 1413 осуществляет демультиплексирование потока битов, в котором мультиплексированы видеопоток и аудиопоток, с использованием способа, соответствующего способу мультиплексирования, осуществляемого мультиплексорным модулем (MUX) 1412. Другими словами, демультиплексорный модуль (DMUX) 1413 выделяет видеопоток и аудиопоток из потока битов, считываемого из потокового буфера 1414 (отделяет видеопоток и аудиопоток один от другого). Другими словами, демультиплексорный модуль (DMUX) 1413 может преобразовывать формат потока посредством демультиплексирования (преобразование, обратное преобразованию, осуществляемому мультиплексорным модулем (MUX) 1412). Например, демультиплексорный модуль (DMUX) 1413 получает транспортный поток, поступающий, например, от соединительного модуля 1321, широкополосного модема 1333 или другого подобного модуля через потоковый буфер 1414, и демультиплексирует поступивший транспортный поток, преобразуя этот транспортный поток в видеопоток и аудиопоток. Кроме того, например, демультиплексорный модуль (DMUX) 1413 получает файловые данные, считываемые с различных носителей записи посредством соединительного модуля 1321, через потоковый буфер 1414 и демультиплексирует полученные файловые данные в видеопоток и аудиопоток.
Потоковый буфер 1414 осуществляет буферизацию потока битов данных. Например, потоковый буфер 1414 осуществляет буферизацию транспортного потока, поступающего от мультиплексорного модуля (MUX) 1412, и передает буферизованный транспортный поток, например, в соединительный модуль 1321, широкополосный модем 1333 или аналогичное устройство в заданные моменты времени или на основе запроса от внешнего устройства или другим подобным способом.
Кроме того, например, потоковый буфер 1414 осуществляет буферизацию файловых данных, поступающих от мультиплексорного модуля (MUX) 1412, и передает буферизованные файловые данные, например, в соединительный модуль 1321 или в аналогичный модуль в заданные моменты времени или на основе запроса от внешнего устройства или аналогичным способом для записи на различных носителях записи.
Более того, потоковый буфер 1414 осуществляет буферизацию транспортного потока, например, полученного через соединительный модуль 1321, широкополосный модем или аналогичный модуль, и передает буферизованный транспортный поток демультиплексорному модулю (DMUX) 1413 в заданные моменты времени или на основе запроса от внешнего устройства или аналогичным способом.
Кроме того, потоковый буфер 1414 осуществляет буферизацию файловых данных от разнообразных носителей записи, поступающих через соединительный модуль 1321 или аналогичный модуль, и передает буферизованные файловые данные в демультиплексорный модуль (DMUX) 1413 в заданные моменты времени или на основе запроса от внешнего устройства или аналогичным способом.
Далее будет рассмотрен пример работы видеопроцессора 1332, имеющего такую конфигурацию. Например, видеосигнал, поступивший от соединительного модуля 1321 или от аналогичного устройства в видеопроцессор 1332, преобразуют в цифровые данные изображения в заданной системе, такой как система 4:2:2 Y/Cb/Cr, посредством входного модуля 1401 обработки видеосигнала и последовательно записывают в память 1405 кадров. Эти цифровые данные изображения считывают посредством первого модуля 1402 увеличения/уменьшения или второго модуля 1403 увеличения/уменьшения, преобразуют формат в заданную систему, такую как система 4:2:0 Y/Cb/Cr, и осуществляют увеличение/уменьшение применительно к считываемым цифровым данным изображения, после чего снова записывают полученные в результате цифровые данные изображения в память 1405 кадров. Эти данные изображения кодируют посредством модуля 1407 кодирования/декодирования и записывают в буфер 1408А потока ES видео в качестве видеопотока.
Кроме того, аудиосигнал, поступающий от соединительного модуля 1321 или другого подобного модуля, в видеопроцессор 1332, кодируют посредством аудио кодирующего модуля 1410 и записывают в буфер 1409А потока ES аудио в качестве аудиопотока.
Далее мультиплексорный модуль (MUX) 1412 считывает видеопоток из буфера 1408А потока ES видео и аудиопоток из буфера 1409А аудио и мультиплексирует эти потоки, преобразуя их в транспортный поток, файловые данные или аналогичную структуру. Транспортный поток, генерируемый мультиплексорным модулем (MUX) 1412, записывают в потоковый буфер 1414 и затем передают во внешнюю сеть связи, например, через соединительный модуль 1321, широкополосный модем 1333 или аналогичное устройство. Кроме того, файловые данные, генерируемые мультиплексорным модулем (MUX) 1412, записывают в потоковый буфер 1414 и затем передают из буфера, например, в соединительный модуль 1321 или аналогичный модуль и записывают на различные носители записи.
Кроме того, транспортный поток, поступающий в видеопроцессор 1332 из внешней сети связи, например, через соединительный модуль 1321, широкополосный модем 1333 или аналогичное устройство, записывают в потоковый буфер 1414 и затем демультиплексируют посредством демультиплексорного модуля (DMUX) 1413. Кроме того, файловые данные, считываемые с различных носителей записи и поступающие на вход видеопроцессора 1332, например, через соединительный модуль 1321 или аналогичное устройство, записывают в потоковый буфер 1414 и затем демультиплексируют посредством демультиплексорного модуля (DMUX) 1413. Другими словами, транспортный поток или файловые данные, поступающие на вход видеопроцессора 1332, разделяют на видеопоток и аудиопоток посредством демультиплексорного модуля (DMUX) 1413.
Аудиопоток через буфер 1409 В потока ES аудио поступает в аудиодекодер 1411, где его декодируют, после чего воспроизводят аудиосигнал. Кроме того, видеопоток записывают в буфер 1408В потока ES видео и затем последовательно считывают и декодируют посредством модуля 1407 кодирования/декодирования и записывают в память 1405 кадров. Декодированные данные изображения обрабатывают для увеличения или уменьшения изображения посредством второго модуля 1403 увеличения/уменьшения изображения и записывают в память 1405 кадров. Затем декодированные данные изображения считывают посредством выходного модуля 1402 обработки видеосигнала, преобразуют в другой формат в соответствии с заданной системой, такой как система 4:2:2 Y/Cb/Cr или подобная система, и далее преобразует в аналоговый сигнал, после чего воспроизводят видеосигнал и передают на выход.
При применении предлагаемой технологии в видеопроцессоре 1332, конфигурированном таким образом, технология, относящаяся к каждому из описанных выше вариантов, может быть применена в модуле 1407 кодирования/декодирования. Другими словами, например, модуль 1407 кодирования/декодирования может быть конфигурирован для осуществления функций устройства 100 кодирования изображения и устройства 200 декодирования изображения, описанных выше. При таком конфигурировании видеопроцессор 1332 может обладать такими же преимуществами, какие описаны выше со ссылками на фиг. 1-52.
Кроме того, в модуле 1407 кодирования/декодирования предлагаемая технология (другими словами, функции устройства кодирования изображения и устройства декодирования изображения в соответствии с каждым из описанных выше вариантов) может быть реализована аппаратно - в виде логических схем, или программно - в виде встроенных программ, либо может быть реализована с применением и аппаратных, и программных средств.
Другой пример конфигурации видеопроцессора
На фиг. 66 показан другой пример упрощенной конфигурации видеопроцессора 1332 (Фиг. 64), к которому применена настоящая технология. В примере, показанном на фиг. 66, видеопроцессор 1332 имеет функцию кодирования и декодирования видеоданных в соответствии с заданной системой.
Более конкретно, как показано на фиг. 66, видеопроцессор 1332 содержит: модуль 1511 управления; интерфейс 1512 отображения; модуль 1513 отображения; модуль 1514 обработки изображения; и внутреннюю память 1515. Кроме того, видеопроцессор 1332 содержит: модуль 1516 кодека; интерфейс 1517 памяти; модуль 1518 мультиплексирования/демультиплексирования (MUX DMUX); сетевой интерфейс 1519; и видеоинтерфейс 1520.
Модуль 1511 управления осуществляет управление операциями каждого рабочего модуля, расположенного в видеопроцессоре 1332, такого как интерфейс 1512 отображения, модуль 1513 отображения, модуль 1514 обработки изображения и модуль 1516 кодека.
Как показано на фиг. 66, модуль 1511 управления содержит, например, главный процессор CPU 1531, вспомогательный процессор CPU 1532, и системный контроллер 1533. Главный процессор CPU 1531 выполняет программу, используемую для управления каждым рабочим модулем в составе видеопроцессора 1332 и другими подобными компонентами. Главный процессор CPU 1531 генерирует сигнал управления в соответствии с этой программой или другими подобными программами и передает этот сигнал управления каждому рабочему модулю (другими словами, управляет работой каждого такого рабочего модуля). Вспомогательный процессор CPU 1532 играет вспомогательную роль для главного процессора CPU 1531. Например, вспомогательный процессор CPU 1532 осуществляет «дочерний» процесс, подпрограмму или другую подобную операцию для программы, выполняемой главным процессором CPU 1531. Системный контроллер 1533 управляет операциями главного процессора CPU 1531 и вспомогательного процессора CPU 1532 путем назначения программ, которые должны выполнять главный процессор CPU 1531 и вспомогательный процессор CPU 1532 и другие подобные компоненты.
Интерфейс 1512 отображения передает данные изображения, например, соединительному модулю 1321 и подобным компонентам по командам модуля 1511 управления. Например, интерфейс 1512 отображения преобразует данные изображения, являющиеся цифровыми данными, в аналоговый сигнал и передает этот аналоговый сигнал в качестве воспроизведенного видеосигнала или данные изображения, являющиеся цифровыми данными, монитору соединительного модуля 1321 или подобному компоненту.
Модуль 1513 отображения по командам модуля 1511 управления осуществляет различные операции преобразования, такие как преобразование формата, преобразование размера, преобразование цветовой гаммы, применительно к данным изображения, чтобы согласовать эти характеристики с техническими параметрами аппаратуры монитора, представляющего это изображение на экране, и других подобных устройств.
Модуль 1514 обработки изображения осуществляет заданную обработку изображения, такую как фильтрация, используемая для повышения качества изображения, и другие подобные операции, применительно к данным изображения по командам модуля 1511 управления.
Внутренняя память 1515 представляет собой запоминающее устройство, совместно используемое модулем 1513 отображения, модулем 1514 обработки изображения и модулем 1516 кодека, и располагается внутри видеопроцессора 1332. Внутренняя память 1515 используется, например, для передачи данных между модулем 1513 отображения, модулем 1514 обработки изображения и модулем 1516 кодека. Например, внутренняя память 1515 сохраняет данные, поступающие от модуля 1513 отображения, модуля 1514 обработки изображения или модуля 1516 кодека, и передает эти данные модулю 1513 отображения, модулю 1514 обработки изображения или модулю 1516 кодека при необходимости (например, по запросу). Эта внутренняя память 1515 может быть реализована с использованием запоминающего устройства любого типа. Однако в общем случае внутренняя память часто используется для сохранения данных небольшого объема, таких как данные изображения в единицах блоков и параметров, вследствие чего предпочтительно реализовать внутреннюю примять с использованием полупроводникового запоминающего устройства сравнительно небольшой емкости (по сравнению с внешней памятью 1312), но с высокой скоростью отклика, такого как статическое запоминающее устройство с произвольной выборкой (Static Random Access Memory (SRAM)).
Модуль 1516 кодека осуществляет операции, относящиеся к кодированию и декодированию данных изображения. Модуль кодека 1516 может соответствовать произвольной системе кодирования, причем число таких систем кодирования/декодирования может быть больше единицы. Например, модуль 1516 кодека можно конфигурировать так, чтобы он имел функцию кодека для нескольких систем кодирования/декодирования, либо его можно конфигурировать кодирования данных изображения или декодирования кодированных данных с использованием выбранной одной системы кодирования/декодирования.
В примере, показанном на фиг. 66, модуль 1516 содержит функциональные блоки кодирования/декодирования данных в соответствии со стандартами MPEG-2 Video (1541), AVC/H.264 (1542), HEVC/H.265 (1543), HEVC/H.265 (масштабируемый) (1544), HEVC/H.265 (многовидовый) (1545) и MPEG-DASH (1551).
Модуль MPEG-2 Video 1541 представляет собой функциональный блок, кодирующий или декодирующий данные изображения в соответствии с системой MPEG-2. Модуль AVC/H.264 1542 представляет собой функциональный блок, кодирующий или декодирующий данные изображения в соответствии с системой AVC. Модуль HEVC/H.265 1543 представляет собой функциональный блок, кодирующий или декодирующий данные изображения в соответствии с системой HEVC. Модуль HEVC/H.265 (масштабируемый) 1544 представляет собой функциональный блок, осуществляющий масштабируемое кодирование или масштабируемое декодирование данных изображения в соответствии с системой HEVC. Модуль HEVC/H. 265 (многопроекционный) 1545 представляет собой функциональный блок, осуществляющий многопроекционное (для нескольких точек зрения) кодирование или декодирование данных изображения в соответствии с системой HEVC.
Модуль MPEG-DASH 1551 представляет собой функциональный блок, осуществляющий передачу и прием данных изображения в соответствии с разработанной группой MPEG системой динамически адаптивной потоковой передачи по протоколу HTTP (MPEG-Dynamic Adaptive Streaming over HTTP (MPEG-DASH)). Система MPEG-DASH представляет собой технологию для осуществления потоковой передачи видео с использованием протокола передачи гипертекста (HyperText Transfer Protocol (HTTP)), и одна из особенностей этой технологии состоит в том, что из совокупности подготовленных заранее нескольких фрагментов кодированных данных, каждый из которых имеет свое, отличное от других сегментов разрешение, выбирают подходящие кодированные данные и передают в единицах сегментов. Модуль MPEG-DASH 1551 генерирует поток данных, соответствующий указанному стандарту, управляет передачей этого потока и выполняет другие подобные операции с использованием перечисленных выше модулей от модуля MPEG-2 Video 1541 до модуля HEVC/H.265 (многовидовый) 1545 включительно кодирования и декодирования данных изображения.
Интерфейс 1517 памяти представляет собой интерфейс для сопряжения с внешней памятью 1312. Данные, поступающие от модуля 1514 обработки изображения или модуля 1516 кодека, передают во внешнюю память 1312 через интерфейс 1517 памяти. Кроме того, данные, считываемые из внешней памяти 1312, передают в видеопроцессор 1332 (модуль 1514 обработки изображения или модуль 1516 кодека) через интерфейс 1517 памяти.
Модуль (MUX DMUX) 1518 мультиплексирования/демультиплексирования осуществляет мультиплексирование и демультиплексирование разного рода данных, относящихся к изображению, таких как поток битов кодированных данных, данные изображения и видеосигнал. Способ мультиплексирования/демультиплексирования является произвольным. Например, во время мультиплексирования модуль (MUX DMUX) 1518 мультиплексирования/демультиплексирования может не только собирать из нескольких фрагментов данных один поток, но также добавлять к этим данным заданную информацию заголовка или другую подобную информацию. Кроме того, при выполнении демультиплексирования модуль (MUX DMUX) 1518 мультиплексирования/демультиплексирования может не только разбивать один фрагмент данных на несколько частей, но также добавлять к каждой из этих частей заданную информацию заголовка или другую подобную информацию. Другими словами, модуль (MUX DMUX) 1518 мультиплексирования/демультиплексирования может преобразовывать формат данных посредством мультиплексирования/демультиплексирования. Например, модуль (MUX DMUX) 1518 мультиплексирования/демультиплексирования может преобразовать поток битов данных в транспортный поток, представляющий собой поток битов данных в транспортном формате, или в данные (файловые данные) в формате для записи файла посредством мультиплексирования такого потока битов данных. Очевидно, что при демультиплексировании может быть произведено обратное преобразование.
Сетевой интерфейс 1519 представляет собой интерфейс, например, специально построенный для широкополосного модема 1333, соединительного модуля 1321 или другого подобного компонента. Видеоинтерфейс 1520 представляет собой интерфейс, например, специально выделенный для соединительного модуля 1321, видеокамеры 1322 или другого подобного компонента.
Далее будет рассмотрен пример работы такого видеопроцессора 1332. Например, при приеме транспортного потока из внешней сети связи через соединительный модуль 1321, широкополосный модем 1333 или аналогичный компонент этот транспортный поток поступает через сетевой интерфейс 1519 в модуль (MUX DMUX) 1518 мультиплексирования/демультиплексирования, где его демультиплексируют, после чего этот поток декодируют посредством модуля 1516 кодека. Для данных изображения, полученных в результате декодирования, выполненного модулем 1516 кодека, осуществляют заданную обработку изображения, например, посредством модуля 1514 обработки изображения, и затем выполняют заданное преобразование в модуле 1513 дисплея. Далее, полученные в результате данные изображения передают, например, в соединительный модуль 1321 или другой подобный компонент через интерфейс 1512 дисплея и представляют изображение, соответствующее этим данным, на экране монитора. Кроме того, данные изображения, полученные, например, посредством декодирования, выполненного модулем 1516 кодека, вновь кодируют в этом модуле 1516 кодека, мультиплексируют посредством модуля (MUX DMUX) 1518 мультиплексирования/демультиплексирования, преобразуют в файловые данные, передают, например, соединительному модулю 1321 или другому подобному компоненту через видеоинтерфейс 1520 и записывают на различных носителях записи.
Кроме того, файловые данные на основе кодированных данных, полученных путем кодирования данных изображения, считываемых с непоказанного носителя записи, например, посредством соединительного модуля 1521 или подобного компонента, передают в модуль (MUX DMUX) 1518 мультиплексирования/демультиплексирования через видеоинтерфейс 1520, демультиплексируют и декодируют в модуле 1516 кодека. Для данных изображения, полученных в результате декодирования, выполненного модулем 1516 кодека, модуль 1514 обработки изображения осуществляет заданную обработку, а модуль 1513 отображения выполняет заданное преобразование. Затем полученные в результате этого данные изображения направляют, например, в соединительный модуль 1321 или другой подобный модуль через интерфейс 1512 отображения, и представляют соответствующее этим данным изображение на экране монитора. Кроме того, данные изображения, например, полученные путем декодирования, осуществленного в модуле 1516 кодека, вновь кодируют в этом модуле 1516 кодека, мультиплексируют посредством модуля (MUX DMUX) 1518 мультиплексирования/демультиплексирования, преобразуют в транспортный поток, передают, например, в соединительный модуль 1321, широкополосный модем 1333 или в другой подобный модуль через сетевой интерфейс 1519 и передают другому непоказанному устройству.
Здесь передача/прием данных изображения и других данных между рабочими модулями внутри видеопроцессора 13332, осуществляется, например, с использованием внутренней памяти 1515 или внешней памяти 1312. Кроме того, модуль 1313 управления питанием, например, управляет питанием модуля 1511 управления.
В случае применения предлагаемой технологии к видеопроцессору 1332, конфигурированному, как указано выше, эта технология в каждом из описанных выше вариантов может быть применена к модулю 1516 кодека. Другими словами, например, модуль 1516 кодека может быть конфигурирован, чтобы содержать функциональные блоки, реализующие устройство 100 кодирования изображения и устройство 200 декодирования изображения в соответствии с описанными выше вариантами. При таком конфигурировании видеопроцессор 1332 может получить преимущества, аналогичные преимуществам, описанным выше со ссылками на фиг. 1-52.
Кроме того, в модуле 1516 кодека предлагаемая технология (другими словами, функции устройства кодирования изображения и устройства декодирования изображения в соответствии с каждым из вариантов, описанных выше) могут быть реализованы аппаратно, например, в виде логических схем, или программно, например, посредством встроенной программы, либо с применением и аппаратных средств, и программного обеспечения.
Хотя выше были рассмотрены два варианта конфигурации видеопроцессора 1332, в целом конфигурация этого видеопроцессора 1332 является произвольной и может отличаться от двух рассмотренных выше примеров. Здесь видеопроцессор 1332 может быть конфигурирован в виде по меньшей мере одного полупроводникового кристалла или нескольких полупроводниковых кристаллов. Например, видеопроцессор может быть конфигурирован в виде трехмерной БИС (LSI) этажерочного типа. Кроме того, этот видеопроцессор может быть реализован в виде нескольких БИС (LSI).
Пример применения к аппаратуре
Комплексное видеоустройство 1300 может быть встроено в самую разнообразную аппаратуру, обрабатывающую данные изображения. Например, это видеоустройство может быть встроено в телевизионное устройство 900 (фиг. 57), в мобильный телефон 920 (фиг. 58), в устройство 940 записи/воспроизведения (фиг. 59), в устройство 960 считывания изображения (фиг. 60) или другое подобное устройство. В результате встраивания комплексного видеоустройства 1300 такая аппаратура сможет получить преимущества, аналогичные преимуществам, описанным выше со ссылками на фиг. 1-52.
Кроме того, например, комплексное видеоустройство 1300 может быть встроено в терминалы, такие как персональный компьютер 1004, AV-аппаратура 1005, планшетное устройство 1006 и мобильный телефон 1007, в системе 1000 передачи данных, представленной на фиг. 61, в вещательную станцию 1101 и терминал 1102 в системе 1100 передачи данных, представленной на фиг. 62, в устройство 1201 считывания изображения и в запоминающее устройство 1202 для хранения масштабируемых кодированных данных в системе 1200 считывания изображения, представленной на фиг. 63, и в другую подобную аппаратуру. Благодаря встраиванию комплексного видеоустройства 1300 аппаратура сможет получить преимущества, аналогичные преимуществам, описанным выше со ссылками на фиг. 1-52.
Кроме того, если часть каждой из описанных выше конфигураций комплексного видеоустройства 300 содержит видеопроцессор 1332, эта часть конфигурации может быть реализована в виде конфигурации, к которой применена предлагаемая технология. Например, даже только видеопроцессор 1332 может быть выполнен в виде устройства, в котором применена предлагаемая технология. В дополнение к этому, например, как описано выше, процессор 1341, очерченный пунктирной линией, видеомодуль 1311 и другой подобный компонент могут быть выполнены в качестве процессора, модуля и другого компонента, в которых применена предлагаемая технология. Более того, например, видеомодуль 1311, внешняя память 1312, модуль 1313 управления питанием и входной модуль 1314 могут быть объединены и реализованы в виде видеомодуля 1461, в котором применена предлагаемая технология. В любой из этих конфигураций могут быть получены преимущества, аналогичные преимуществам, описанным выше со ссылками на фиг. 1-52.
Другими словами, любая конфигурация может быть встроена в разнообразную аппаратуру, обрабатывающую данные изображения, аналогично случаю комплексного видеоустройства 1300, до тех пор, пока эта конфигурация содержит видеопроцессор 1332. Например, такие видеопроцессор 1332, процессор 1341, очерченный пунктирной линией, видеомодуль 1311 или видеомодуль 1361 может быть встроен в телевизионное устройство 900 (фиг. 57), мобильный телефон 920 (фиг. 58), устройство 940 записи/воспроизведения (фиг. 59), устройство 960 считывания изображения (фиг. 60), в терминалы, такие как персональный компьютер 1004, AV-аппаратура 1005, планшетное устройство 1006 и мобильный телефон 1007, в системе 1000 передачи данных, представленной на фиг. 61, в вещательную станцию 1101 и терминал 1102 в системе 1100 передачи данных, представленной на фиг. 62, в устройство 1201 считывания изображения и в запоминающее устройство 1202 для хранения масштабируемых кодированных данных в системе 1200 считывания изображения, представленной на фиг. 63, и в другую подобную аппаратуру. Благодаря встраиванию любой конфигурации, в которой желательно применение предлагаемой технологии, в аппаратуру аналогично случаю комплексного видеоустройства 1300 такая аппаратура сможет получить преимущества, аналогичные преимуществам, описанным выше со ссылками на фиг. 1-52.
9. Девятый вариант
Пример применения в системе стандарта MPEG-DASH
Кроме того, предлагаемая технология может быть также применена в системе воспроизведения контента потока согласно протоколу HTTP, такой как система согласно стандарту MPEG DASH, которая будет описана позднее и которая выбирает и использует подходящие кодированные данные в единицах сегментов из совокупности нескольких фрагментов кодированных данных, имеющих разное разрешение и другие подобные характеристики и подготовленных заранее.
Общий обзор системы воспроизведения контента
Сначала система воспроизведения контента, в которой может быть применена предлагаемая технология, будет схематично описана со ссылками на фиг. 67-69.
В дальнейшем, сначала базовая конфигурация, общая для каждого такого варианта, будет рассмотрена со ссылками на фиг. 67 и 68.
Фиг. 67 представляет пояснительную схему, иллюстрирующую конфигурацию системы воспроизведения контента. Как показано на фиг. 67, система воспроизведения контента содержит: серверы 1610 и 1611 контента; сеть 1612 связи; и аппаратуру 1620 воспроизведения контента (клиентскую аппаратуру).
Серверы 1610 и 1611 и аппаратура 1620 воспроизведения контента соединены одни с другими через сеть 1612 связи. Эта сеть 1612 содержит проводные или беспроводные линии передачи информации от аппаратуры, соединенной с сетью 1612.
Например, сеть 1612 связи может представлять собой Интернет, телефонную сеть, общественную сеть, такую как сеть спутниковой связи, разнообразные локальные сети связи (Local Area Network (LAN)), включая Ethernet (зарегистрированная торговая марка), глобальную сеть связи (Wide Area Network (WAN)) и другие подобные сети. Кроме того, сеть 1612 связи может представлять собой специальную сеть, такую как виртуальную частную сеть связи по Интернет-протоколу (Internet Protocol-Virtual Private Network (IP-VPN)).
Сервер 1610 контента кодирует данные контента, а также генерирует и сохраняет файл данных, содержащий кодированные данные и мета информацию относительно кодированных данных. Если сервер 1610 контента генерирует файл данных в формате МР4, кодированные данные соответствуют "mdat", а мета информация соответствует "moov".
Здесь данные контента могут представлять собой музыкальные данные - музыку, лекцию, радиопрограмму или другие подобные данные, видеоданные, такие как кинофильм, телевизионную программу, видеопрограмму, фотографию, документ, картину или карту, игру, программное обеспечение.
Здесь сервер 1610 контента генерирует несколько файлов с различными скоростями передачи данных для одного и того же контента. Кроме того, в ответ на запрос воспроизведения контента, поступивший от аппаратуры 1620 для воспроизведения контента, сервер 1611 контента вставляет в информацию адреса URL ресурса для сервера 1610 контента параметры, добавляемые к этому адресу URL аппаратурой 1620 для воспроизведения контента, и передает полученную в результате информацию аппаратуре 1620 для воспроизведения контента. В дальнейшем соответствующие вопросы будут описаны более конкретно со ссылками на фиг. 68.
На фиг. 68 представлена пояснительная схема, иллюстрирующая потоки данных в системе воспроизведения контента, показанной на фиг. 67. Сервер 1610 контента кодирует одни и те же данные контента с разными скоростями передачи данных и, как показано на фиг. 68, например, генерирует в результате файл А со скоростью 2 Мбит/с, файл В со скоростью 1.5 Мбит/с и файл С со скоростью 1 Мбит/с. Если сравнивать, файл А имеет высокую скорость передачи данных, файл В - стандартную скорость передачи данных и С - низкую скорость передачи данных.
Как показано на фиг. 68, кодированные данные каждого файла разбивают на несколько сегментов. Например, кодированные данные файла А разбивают на сегменты "A1", "А2", "A3", …, "An", кодированные данные файла В разбивают на сегменты "В1", "В2", "В3", ···, "Bn", и кодированные данные файла С разбивают на сегменты "C1", "С2", "С3", …, "Cn".
Кроме того, каждый сегмент может быть конфигурирован в виде единицы конфигурации с использованием двух или более фрагментов кодированных видеоданных и кодированных аудиоданных, начиная от маркера синхронизации (например, IDR-кадра при видеокодировании в стандарте AVC/H.264) в формате МР4, которая может быть воспроизведена независимо. Например, если видеоданные со скоростью 30 кадров/с кодированы с группой изображений (GOP), имеющей фиксированную длину 15 кадров, каждый сегмент может содержать кодированные видео- и аудиоданные протяженностью 2 с, что соответствует 4 группам GOP, или кодированные видео и аудиоданные протяженностью 10 с, что соответствует 20 группам GOP.
Кроме того, диапазоны воспроизведения (диапазон позиций во времени от начала контента) для сегментов, имеющих одинаковый порядок расположения в каждом файле, являются одинаковыми. Например, диапазоны воспроизведения для сегмента "А2", сегмента "В2" и сегмента "С2" являются одинаковыми. Кроме того, если каждый сегмент содержит отрезок кодированных данных протяженностью две секунды, диапазон воспроизведения каждого из сегментов - сегмента "А2", сегмента "В2" и сегмента "С2", составляет от двух до четырех секунд соответствующего контента.
При генерировании файлов А-С, каждый из которых конфигурирован в виде такой совокупности сегментов, сервер 1610 контента сохраняет эти файлы А-С. Затем сервер 1610 контента, как показано на фиг. 68, последовательно передает сегменты, конфигурирующие разные файлы, аппаратуре 1620 для воспроизведения контента, а эта аппаратура 1620 для воспроизведения контента осуществляет потоковое воспроизведение принятых сегментов.
Здесь сервер 1610 контента согласно рассматриваемому варианту передает файл списка воспроизведения (далее именуемый «описанием презентации медиа» (Media Presentation Description (MPD))), содержащий информацию о скорости передачи и информацию доступа для каждых кодированных данных, в адрес устройства 1620 воспроизведения контента, а это устройство 1620 воспроизведения контента выбирает одну скорость передачи данных из совокупности нескольких скоростей передачи данных на основе файла MPD и запрашивает у сервера 1610 контента передачу сегментов, соответствующих выбранной скорости передачи данных.
Хотя на фиг. 67 показан только один сервер 1610 контента, очевидно, что настоящее изобретение этим примером не ограничивается.
На фиг. 69 представлена пояснительная схема, иллюстрирующая конкретный пример файла MPD. Как показано на фиг. 69, в файл MPD входит информация, относящаяся к нескольким фрагментам кодированных данных, имеющих отличные один от другого скорости передачи данных (ПОЛОСА (BANDWIDTH)). Например, файл MPD, показанный на фиг. 69, представляет присутствие кодированных данных с каждой из скоростей - 256 кбит/с, 1.024 Мбит/с, 1.384 Мбит/с, 1.536 Мбит/с и 2.048 Мбит/с, и содержит информацию доступа к каждому из этих фрагментов кодированных данных. Аппаратура 1620 для воспроизведения контента может динамически изменять скорость передачи кодированных данных, воспроизводимых в потоковом режиме, на основе файла MPD.
Хотя на фиг. 67 в качестве примера устройства 1620 воспроизведения контента показан мобильный терминал, варианты устройства 1620 воспроизведения контента этим примером не ограничиваются. Например, устройство 1620 воспроизведения контента может представлять собой устройство обработки информации, такое как персональный компьютер (PC), бытовая видеоаппаратура (устройство записи DVD, видеодека или другое подобное устройство), персональные цифровые помощники (Personal Digital Assistant (PDA)), домашнее игровое устройство или бытовая электроаппаратура. Кроме того, устройство 1620 воспроизведения контента может представлять собой устройство обработки информации, такое как мобильный телефон, персональный миниатюрный радиотелефон (Personal Handyphone System (PHS)), мобильное устройство для воспроизведения музыки или мобильное игровое устройство.
Конфигурация сервера 1610 контента
Выше был приведен общий обзор систем воспроизведения контента со ссылками на фиг. 67-69. Далее конфигурация сервера 1610 контента будет рассмотрена со ссылками на фиг. 70.
На фиг. 70 представлена функциональная блок-схема, иллюстрирующая конфигурацию сервера 1610 контента. Как показано на фиг. 70, сервер 1610 контента содержит: модуль 1631 генерирования файлов; запоминающее устройство 1632; и модуль 1633 связи.
Модуль 1631 генерирования файлов содержит кодирующий модуль 1641, осуществляющий кодирование данных контента и генерирующий множество фрагментов кодированных данных, имеющих отличные один от другого скорости передачи данных, с использованием одного и того же контента и описанного выше файла MPD. Например, в случае генерирования кодированных данных с каждой из скоростей 256 кбит/с, 1.024 Мбит/с, 1.384 Мбит/с, 1.536 Мбит/с и 2.048 Мбит/с модуль 1631 генерирования файлов генерирует файл MPD, показанный на фиг. 69.
Запоминающее устройство 1632 сохраняет множество фрагментов данных с отличными один от другого скоростями и файл MPD, сгенерированные модулем 1631 генерирования файлов. Это запоминающее устройство 1632 может представлять собой носитель записи, такой как энергонезависимая память, магнитный диск, оптический диск или магнитооптический (МО) диск. Среди примеров энергонезависимой памяти можно указать электрически стираемое программируемое постоянное запоминающее устройство (Electrically Erasable Programmable Read-Only Memory (EEPROM)) и стираемое программируемое (Erasable Programmable ROM (EPROM)). Кроме того, в качестве примеров магнитных дисков можно указать жесткий диск и диск из магнитного материала. К примерам оптических дисков относятся компакт-диск (Compact Disc (CD)), записываемый цифровой универсальный диск (Digital Versatile Disc Recordable (DVD-R)), и диск блю-рей (Blu-Ray Disc (BD (зарегистрированная торговая марка))).
Модуль 1633 связи представляет собой интерфейс для сопряжения с устройством 1620 воспроизведения контента и осуществляет связь с этим устройством 1620 воспроизведения контента через сеть 1612 связи. Более подробно, модуль 1633 связи имеет функции HTTP-сервера, осуществляющего связь с устройством 1620 воспроизведения контента в соответствии с протоколом HTTP. Например, модуль 1633 связи передает файл MPD устройству 1620 воспроизведения контента, вызывает из запоминающего устройства 1632 кодированные данные, запрошенные по протоколу HTTP устройством 1620 воспроизведения контента на основе файла MPD, и передает эти кодированные данные устройству 1620 воспроизведения контента в качестве ответа по протоколу HTTP.
Конфигурация устройства 1620 воспроизведения контента
Выше была описана конфигурация сервера 1610 контента в соответствии с настоящим вариантом. Далее конфигурация устройства 1620 воспроизведения контента будет рассмотрена со ссылками на фиг. 71.
На фиг. 71 представлена функциональная блок-схема, иллюстрирующая конфигурацию устройства 1620 воспроизведения контента. Как показано на фиг. 71, устройство 1620 воспроизведения контента содержит: модуль 1651 связи; запоминающее устройство 1652; модуль 1653 воспроизведения; селекторный модуль 1654; и модуль 1656 определения текущего местонахождения.
Модуль 1651 связи представляет собой интерфейс для сопряжения с сервером 1610 контента, который запрашивает данные от сервера 1610 контента и получает данные от этого сервера 1610 контента. Более подробно, модуль 1651 связи имеет функцию HTTP-клиента, осуществляющего связь с устройством 1620 воспроизведения контента в соответствии с протоколом HTTP. Например, с использованием функции HTTP Range модуль 1651 связи может избирательно получать файл MPD и сегменты кодированных данных от сервера 1610 контента.
Запоминающее устройство 1652 сохраняет разного рода информацию, относящуюся к воспроизведению контента. Например, это запоминающее устройство 1652 осуществляет последовательную буферизацию сегментов, получаемых модулем 1651 связи от сервера 1610 контента. Эти сегменты кодированных данных, буферизованные в запоминающем устройстве 1652, последовательно передают в модуль 1653 воспроизведения по принципу «первый пришел - первый вышел» (First In First Out (FIFO)).
Кроме того, запоминающее устройство 1652 на основе команды добавить параметр к адресу URL контента, описываемого в файле MPD, запрашиваемом от сервера 1611 контента, как будет описано позднее, добавляет параметр к адресу URL с использованием модуля 1651 связи и сохраняет дефиницию для доступа к адресу URL.
Модуль 1653 воспроизведения последовательно воспроизводит сегменты, поступающие из запоминающего устройства 1652. Более конкретно, модуль 1653 воспроизведения осуществляет декодирование, цифро-аналоговое преобразование, отображение и другие подобные операции применительно к сегментам.
Селекторный модуль 1654 последовательно выбирает сегменты кодированных данных, соответствующие одной и той же скорости передачи данных, указанной в файле, который должен быть получен, в рамках одного и того же контента. Например, когда селекторный модуль 1654 последовательно выбирает сегменты "A1", "В2" и "A3" в соответствии с шириной полосы сети 1612 связи, как показано на фиг. 68, модуль 1651 последовательно получает сегменты "A1", "В2" и "A3" от сервера 1610 контента.
Модуль 1656 определения текущего местонахождения получает информацию о текущем местонахождении устройства 1620 воспроизведения контента и, например, может быть конфигурирован на основе модуля получающего информацию о текущем местоположении от приемника системы глобального местоопределения (Global Positioning System (GPS)) или аналогичного устройства. Кроме того, модуль 1656 определения текущего местоположения может быть конфигурирован для получения информации о текущем местоположении устройства 1620 воспроизведения контента с использованием сети радиосвязи.
Конфигурация сервера 1611 контента
На фиг. 72 представлена функциональная блок- схема, иллюстрирующая пример конфигурации сервера 1611 контента. Как показано на фиг. 72, сервер 1611 контента содержит запоминающее устройство 1671 и модуль 1672 связи.
Запоминающее устройство 1671 сохраняет информацию адреса URL файла MPD. Эту информацию адреса URL в файле MPD передают от сервера 1611 контента устройству 1620 воспроизведения контента в ответ на запрос от этого устройства 1620 воспроизведения контента, запрашивающего воспроизведение контента. Кроме того, когда информация адреса URL в файле MPD предоставлена устройству 1620 воспроизведения контента, запоминающее устройство 1671 сохраняет информацию дефиниции в момент добавления параметра к адресу URL, описываемому в файле MPD, для устройства 1620 воспроизведения контента.
Модуль 1672 связи представляет собой интерфейс для сопряжения с устройством 1620 воспроизведения контента и осуществляет связь с этим устройством 1620 воспроизведения контента через сеть 1612 связи. Другими словами, модуль 1672 связи принимает запрос на информацию адреса URL в файле MPD от устройства 1620 воспроизведения контента, запрашивающей воспроизведение контента, и передает информацию адреса URL из файла MPD этому устройству 1620 воспроизведения контента. В этот адрес URL из файла MPD, переданный от модуля 1672 связи, входит информация, использованная для добавления параметра с применением устройства 1620 воспроизведения контента.
Параметр, добавленный к адресу URL в файле MPD посредством устройства 1620 воспроизведения контента, может быть по разному задан в информации дефиниции, совместно используемой сервером 1611 контента и устройством 1620 воспроизведения контента. Например, устройство 1620 воспроизведения контента может добавить к адресу URL в файле MPD информацию о текущем местонахождении этого устройства 1620 воспроизведения контента, идентификатор ID пользователя, использующего устройство 1620 воспроизведения контента, размер памяти устройства 1620 воспроизведения контента, возможности хранения информации в устройстве 1620 воспроизведения контента и другую подобную информацию.
В системе воспроизведения контента, имеющей описанную выше конфигурацию, в результате применения предлагаемой технологии, рассмотренной выше со ссылками на фиг. 1-52, можно получить такие же преимущества, которые были описаны выше со ссылками на эти фиг. 1-52.
Другими словами, кодирующий модуль 1641 в составе сервера 1610 контента имеет функции устройства 100 кодирования изображения согласно рассмотренному выше варианту. Кроме того, модуль 1653 воспроизведения в составе устройства 1620 воспроизведения контента имеет функции устройства 200 декодирования изображения 200 согласно рассмотренному выше варианту. Соответственно можно повысить эффективность кодирования при внутрикадровом прогнозировании для изображения, в котором цветоразностный сигнал имеет формат 4:2:2.
Кроме того, в системе воспроизведения контента за счет передачи и приема данных в соответствии с предлагаемой технологией можно повысить эффективность кодирования при внутрикадровом прогнозировании для изображения, в котором цветоразностный сигнал имеет формат 4:2:2.
10. Десятый вариант
Пример применения в системе радиосвязи по стандарту Wi-Fi
Кроме того, предлагаемая технология может быть также применена в системе радиосвязи по стандарту Wi-Fi, выбирающей и использующей подходящие кодированные данные в единицах сегментов из совокупности нескольких подготовленных заранее фрагментов кодированных данных, каждый из которых имеет свое, отличное от других фрагментов разрешение, и т.п.
Пример базовых операций устройства радиосвязи
Далее будет рассмотрен пример базовых операций устройства радиосвязи в системе радиосвязи, к которой можно применить предлагаемую технологию.
Сначала устанавливают одноранговое (Peer to Peer (Р2Р)) соединение и передают и принимают по радио пакеты данных до тех пор, пока не начнет работать конкретное приложение.
Далее, до установления соединения на втором уровне и после того, как будет обозначено конкретное приложение, которое должно быть использовано, устанавливают одноранговое (Р2Р) соединение и передают и принимают по радио пакеты данных до тех пор, пока не начнет работать указанное конкретное приложение. Затем, после установления соединения на втором уровне, передают и принимают по радио пакеты данных, если активизировано указанное конкретное приложение.
Пример связи во время начала работы конкретного приложения
Фиг. 73 и 74 показывают пример передачи/приема по радио пакетов данных до тех пор, пока не будет установлено одноранговое (Р2Р) соединение и не начнет работать конкретное приложение, и представляют собой диаграммы последовательности операций, иллюстрирующие пример процедуры связи, осуществляемой каждым устройством, составляющим базу радиосвязи. Более конкретно, показан пример последовательности установления прямого соединения, ведущего к установлению соединения согласно стандарту Wi-Fi Direct (может также именоваться Wi-Fi Р2Р), разработанному альянсом Wi-Fi Alliance.
Здесь, согласно стандарту Wi-Fi Direct, несколько устройств радиосвязи соответственно определяют присутствие других устройств (обнаружение устройств, обнаружение сервисов). Затем, когда выбрано устройство для соединения, осуществляют процедуру аутентификации между выбранными устройствами с использованием WPS (защищенное установление соединения Wi-Fi (Wi-Fi Protected Setup)), вследствие чего происходит установление прямого соединения. Кроме того, согласно стандарту Wi-Fi Direct каждое из участвующих устройств радиосвязи принимает на себя роль лидера («владельца», ведущей станции) группы или роль клиента группы, в результате чего образуется группа связи.
Однако в рассматриваемом примере процедуры связи некоторые процессы передачи/приема пакетов данных не показаны. Например, во время установления первого соединения обмен пакетами необходим для использования режима WPS, а также обмен пакетами необходим при обмене аутентификационными запросами/ответами и во время других подобных операций. Однако на фиг. 73 и 74 этот обмен пакетами не показан, а представлен только обмен пакетами во время второго и последующих соединений.
Хотя на фиг. 73 и 74 показан только пример связи между первым устройством 1701 радиосвязи и вторым устройством 1702 радиосвязи, процедура связи между другими устройствами радиосвязи аналогична этой.
Сначала выполняется операция обнаружения устройств между первым устройством 1701 радиосвязи и вторым устройством 1702 радиосвязи (1711). Например, первое устройство 1701 радиосвязи передает зондирующий запрос (сигнал запроса отклика) и принимает зондирующий отклик (сигнал ответа) на этот зондирующий запрос от второго устройства 1792 радиосвязи. Соответственно одно из этих первого 1701 и второго 1702 устройств радиосвязи может обнаружить присутствие другого устройства. Кроме того, в ходе обнаружения устройства можно узнать название и тип (телевизор, персональный компьютер, смартфон и т.п.) устройства-партнера.
После этого, между первым устройством 1701 радиосвязи и вторым устройством 1702 радиосвязи выполняется операция обнаружения сервисов (1712). Например, первое устройство 1701 радиосвязи передает запрос обнаружения сервиса, чтобы определить сервис, поддерживаемый вторым устройством 1702 радиосвязи, обнаруженным посредством операции обнаружения устройств. Затем первое устройство 1701 радиосвязи принимает ответ обнаружения сервиса от второго устройства 1702 радиосвязи, получая в результате информацию о сервисе, поддерживаемом вторым устройством 1702 радиосвязи. Другими словами, процедура обнаружения сервиса позволяет определить, какой сервис поддерживает партнер, и другую подобную информацию. Примеры сервисов, которые может поддерживать партнер, содержат сервис и протокол (альянс цифровых сетей для дома (Digital Living Network Alliance (DLNA)), рендерер цифрового мультимедиа (Digital Media Renderer (DMR)) и т.п.).
После этого пользователь выполняет операцию выбора партнера по соединению (операция выбора партнера по соединению) (1713). Эта операция выбора партнера по соединению может быть выполнена только в одном из устройств - первом устройстве 1701 радиосвязи или втором устройстве 1702 радиосвязи. Например, на дисплее первого устройства 1701 радиосвязи появится экран выбора партнера по соединению, а пользователь устройства своей операцией на этом экране выберет второе устройство 1702 радиосвязи в качестве партнера по соединению.
Когда пользователь выполнил операцию выбора партнера по соединению (1713), осуществляется согласование лидера группы между первым устройством 1701 радиосвязи и вторым устройством 1702 радиосвязи (1714). На фиг. 73 и 74 показан пример, когда в результате согласования лидера группы первое устройство 1701 радиосвязи становится лидером 1715 группы, а второе устройство 1702 радиосвязи становится клиентом 1716.
После этого, в результате выполнения ряда операций (1717-1720) между первым устройством 1701 радиосвязи и вторым устройством 1702 радиосвязи устанавливается прямое соединение. Другими словами, последовательно осуществляются ассоциация (установление соединения L2 (второй уровень)) (1717) и установление защищенного соединения (1718). Кроме того, последовательно выполняют операции установление соединения L4 (1720) поверх соединения L3 в соответствии с назначением IP-адреса (1719), реализуется простой протокол обнаружения сервисов Simple Service Discovery Protocol (SSDP) и другие подобные операции. Здесь, L2 (уровень 2) представляет второй уровень (уровень канала передачи данных), L3 (уровень 3) представляет третий уровень (сетевой уровень) и L4 (уровень 4) представляет четвертый уровень (транспортный уровень).
После этого пользователь выполняет процедуру указания/активизации конкретного приложения (операция указания/активизации приложения) (1721). Эта операция указания/активизации приложения может быть выполнена только в одном из устройств - первом устройстве 1701 радиосвязи или втором устройстве 1702 радиосвязи. Например, на дисплее первого устройства 1701 радиосвязи появится экран операции указания/активизации приложения, а пользователь устройства своей операцией на этом экране выберет конкретное приложение.
Когда пользователь осуществит операцию указания/активизации приложения (1721), между первым устройством 1701 радиосвязи и вторым устройством 1702 радиосвязи выполняется конкретное приложение, соответствующее этой операции указания/активизации (1722).
Здесь будет рассмотрен случай, когда соединение между точкой доступа (Access Point (АР)) и станцией (Station (STA)) осуществляется в рамках стандарта (стандарт IEEE 802.11), предшествовавшего стандарту Wi-Fi Direct. В этом случае прежде, чем будет установлено соединение на втором уровне (прежде ассоциации по терминологии стандарта IEEE 802.11), устройство, с которым должно быть установлено соединение, не может быть известно заранее.
В отличие от этого, как показано на фиг. 73 и 74, при использовании стандарта Wi-Fi Direct, при осуществлении поиска кандидата на роль партнера по соединению в процессе обнаружения устройства или обнаружения сервиса (опция) может быть получена информация о партнерах по соединению. Эта информация о партнерах по соединению может, например, содержать указание базового типа устройства, конкретное приложение, с которым совместим каждый партнер по соединению и другую подобную информацию. Затем пользователь может выбрать партнера по соединению, опираясь на полученную информацию о партнерах-кандидатах.
При использовании расширения этой структуры может быть реализована система радиосвязи, в которой прежде установления соединения на втором уровне осуществляет указание конкретного приложения и производится выбор партнера по соединению, а после такого выбора происходит автоматический запуск конкретного приложения. Пример последовательности операций вплоть до установления соединения в таком случае показан на фиг. 76. Кроме того, пример конфигурации формата кадров, передаваемых и принимаемых в процессе связи, представлен на фиг. 75.
Пример конфигурации формата кадров
На фиг. 75 представлена схема, упрощенно иллюстрирующая пример конфигурации формата кадра, передаваемого и принимаемого в ходе процедуры связи, осуществляемой каждым устройством в системе радиосвязи. Другими словами, фиг. 75 иллюстрирует пример формата кадра запроса/ответа ассоциации (1787), используемого при выполнении последовательности операций, показанной на фиг. 76.
Здесь заголовок управления доступом к среде (МАС-заголовок) конфигурирован из нескольких полей - от поля управления кадром (1751) до поля управления последовательностью (1756) включительно. Для передачи запроса ассоциации задают В3В2="0b00" и В7В6В5В4="0b0000" в поле управления кадром (1751). Кроме того, для инкапсуляции ответа ассоциации задают В3В2="0b00" и В7В6В5В4="0b0001" в поле управления кадром (1751). Здесь, "0b00" представляет двоичное "00", "0b0000" представляет двоичное "0000" и "0b0001" представляет двоичное "0001".
Здесь МАС-кадр, показанный на фиг. 75, в основном имеет формат кадра запроса/отве5 та ассоциации, описанного в разделах 7.2.3.4 и 7.2.3.5 спецификаций стандарта IEEE 802.11-2007. Однако этот МАС-кадр содержит не только информационный элемент (в дальнейшем, сокращенно IE), определенный в спецификации стандарта IEEE 802.11, но и расширенный элемент IE, отличный от того, что определено в спецификации.
Кроме того, для представления элемента IE, специфичного для поставщика (1760), в поле типа IE задано десятинное число "127" (информационный элемент ID (1761)). В этом случае согласно разделу 7.3.2.26 спецификаций IEEE 802.11-2007 после поля типа элемента IE следуют поле длины (1762) и поле OUI (1763), а далее расположен контент, специфичный для поставщика (1764).
В качестве содержания специфичного для поставщика контента (1764), сначала располагается поле типа элемента IE (1765), представляющее тип специфичного для поставщика элемента IE. После этого можно рассматривать конфигурацию, в которой могут храниться несколько подэлементов (1766).
Подэлемент (1766) может содержать имя (1767) конкретного приложения, которое должно быть использовано, и роль (1768) рассматриваемого устройства во время работы этого конкретного приложения. Кроме того, сюда может входить информация (информация, используемая для установления соединения L4) (1769), такая как номер порта, используемого для конкретного приложения или управления этим приложением, и информация (информация о возможностях), относящаяся к возможностям в рамках рассматриваемого конкретного приложения. Здесь, например, если конкретное приложение является приложением по стандарту DLNA, информация о возможностях указывает на совместимость с передачей/воспроизведением аудиосигналов, совместимость с передачей/воспроизведением видеопрограмм или другие подобные характеристики.
В системе радиосвязи, имеющей описанную выше конфигурацию, применение предлагаемой технологии, как описано выше со ссылками на фиг. 1-52, позволяет получить преимущества аналогичные тем, которые описаны выше со ссылками на фиг. 1-52. Другими словами можно повысить эффективность кодирования при внутрикадровом прогнозировании в случае, когда цветоразностный сигнал изображения имеет формат 4:2:2.
В настоящем описании был рассмотрен пример, в котором разного рода информацию мультиплексируют в виде одного кодированного потока данных и передают от кодирующей стороны декодирующей стороне. Однако возможные способы передачи такой информации этим примером не ограничиваются. Например, такая информация может быть передана или записана в виде отдельных данных, ассоциированных с кодированным потоком битов данных, без мультиплексирования в этом кодированном потоке. Здесь термин «ассоциированные» представляет, что изображение (это может быть часть изображения, такая как срез, блок и т.п.), входящее в поток битов данных, и информацию, соответствующую этому изображению, получают во взаимосвязанном одно с другим состоянии в момент декодирования изображения и информации. Другими словами, информация может быть передана по линии передачи, отличной от линии, по которой передают изображение (или поток битов данных). Кроме того, информация может быть записана на носителе записи, отличном от того, на котором записано изображение (или поток битов данных) (или в другой области записи того же самого носителя записи). Более того, информация и изображение (или поток битов данных) могут быть, например, ассоциированы одно с другим в единицах произвольных частей, таких как нескольких кадров, один кадр или часть кадра.
Настоящая технология может иметь конфигурацию, как описано ниже.
(1) Устройство кодирования изображения, содержащее: модуль генерирования информации о назначении опорного уровня для генерирования информации о назначении опорного уровня, указывающей уровень, являющийся опорным уровнем при межуровневом прогнозировании, в случае, когда максимальный номер другого уровня, служащего опорным во время межуровневого прогнозирования, и номер другого уровня, служащего опорным во время межуровневого прогнозирования, заданные для данных всего изображения, конфигурированного в виде множества уровней, не совпадают один с другим; и кодирующий модуль для осуществления кодирования данных изображения.
(2) Устройство кодирования изображения по (1), дополнительно содержащее модуль управления прогнозированием, выполненный с возможностью управления межуровневым прогнозированием на основе информации о назначении опорного уровня, сформированной модулем генерирования информации о назначении опорного уровня.
(3) Устройство кодирования изображения по (1) или (2), дополнительно содержащее передающий модуль, выполненный с возможностью передачи информации о назначении опорного уровня вместе с заголовком среза.
(4) Устройство кодирования изображения по любому из (1)-(3), в котором модуль генерирования информации о назначении опорного уровня выполнен с возможностью генерирования информации о назначении опорного уровня, когда текущий уровень не является уровнем 0, и когда число опорных уровней не равно "0".
(5) Устройство кодирования изображения по (4), дополнительно содержащее модуль генерирования информации о межуровневой прогнозируемости, выполненный с возможностью генерирования информации о межуровневой прогнозируемости, представляющей, разрешено ли межуровневое прогнозирование.
(6) Устройство кодирования изображения по (5), в котором модуль генерирования информации о назначении опорного уровня дополнительно выполнен с возможностью генерирования информации о назначении опорного уровня, при указании информацией о межуровневой прогнозируемости, что межуровневое прогнозирование разрешено и когда имеется множество опорных уровней для текущего уровня.
(7) Устройство кодирования изображения по (6), дополнительно содержащее модуль генерирования информации о номере опорного уровня, выполненный с возможностью генерирования информации о числе опорных уровней, представляющей номер другого уровня, служащего опорным во время межуровневого прогнозирования.
(8) Устройство кодирования изображения по (7), в котором модуль генерирования информации о номере опорного уровня выполнен с возможностью генерирования информации о числе опорных уровней, когда число опорных уровней при межуровневом прогнозировании не ограничивается одним.
(9) Способ кодирования изображения, содержащий этапы, на которых: формируют информацию о назначении опорного уровня, указывающую уровень, являющийся опорным при межуровневом прогнозировании, в случае, когда максимальный номер другого уровня, являющегося опорным при выполнении межуровневого прогнозирования, и номер другого уровня, являющегося опорным при выполнении межуровневого прогнозирования, заданные для данных всего изображения, конфигурированного в виде множества уровней, не совпадают один с другим; и кодируют данные изображения.
Список позиционных обозначений
100 Устройство кодирования изображения
101 Модуль кодирования изображения базового уровня
102 Модуль кодирования изображения расширительного уровня
103 Мультиплексорный модуль
104 Модуль управления
151 Модуль генерирования информации заголовка
152 Модуль управления прогнозированием
161 Модуль генерирования заголовка среза
162 Модуль генерирования набора параметров последовательности
163 Модуль генерирования набора опорных кадров при межуровневом прогнозировании
171 Модуль определения зависимости
172 Модуль определения типа среза
173 Модуль определения уровня
174 Модуль определения числа опорных уровней
175 Модуль определения межуровневой прогнозируемости
176 Модуль определения набора опорных кадров при межуровневом прогнозировании
177 Модуль определения числа наборов
178 Модуль генерирования синтаксиса, относящегося к межуровневому прогнозированию
179 Модуль генерирования набора параметров
180 Модуль генерирования индекса
181 Модуль генерирования информации о межуровневой прогнозируемости
182 Модуль генерирования информации о номере опорного уровня
183 Модуль генерирования информации о назначении опорного уровня
184 Модуль генерирования информации о межкадровой прогнозируемости
185 Модуль генерирования информации о числе наборов
186 Модуль генерирования набора параметров
187 Модуль генерирования информации о номере опорного уровня
188 Модуль генерирования информации о назначении опорного уровня
200 Устройство декодирования изображения
201 Демультиплексорный модуль
202 Модуль декодирования изображения базового уровня
203 Модуль декодирования изображения расширительного уровня
251 Модуль анализа информации заголовка
252 Модуль управления прогнозированием
261 Модуль анализа заголовка среза
262 Модуль анализа набора параметров последовательности
263 Модуль анализа набора опорных кадров при межуровневом прогнозировании
271 Модуль определения зависимости
272 Модуль определения типа среза
273 Модуль определения уровня
274 Модуль определения числа опорных уровней
275 Модуль определения межуровневой прогнозируемости
276 Модуль определения набора опорных кадров при межуровневом прогнозировании
277 Модуль определения числа наборов
278 Модуль анализа синтаксиса, относящегося к межуровневому прогнозированию
279 Модуль анализа набора параметров
280 Модуль анализа индекса
281 Модуль анализа информации о межуровневой прогнозируемости
282 Модуль анализа информации о числе опорных уровней
283 Модуль анализа информации о назначении опорного уровня
284 Модуль анализа информации о межкадровой прогнозируемости
285 Модуль анализа информации о числе наборов
286 Модуль анализа набора параметров
287 Модуль анализа информации о числе опорных уровней
288 Модуль анализа информации о назначении опорного уровня