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

Область техники, к которой относится изобретение
Настоящее раскрытие относится к устройству обработки изображений и к способу обработки изображений, и более конкретно, к устройству обработки изображений и к способу обработки изображений, которое позволяет уменьшить нагрузку, связанную с обработкой, требуемую, когда генерируют поток, используемый во время передачи, или поток, используемый во время сохранения данных в файле.
Уровень техники
В H.264/AVC, который представляет собой одно из описаний стандарта системы кодирования изображения, определены два вида набора параметров, называемые набором параметров последовательности (SP) и набором параметров изображения (PPS), которые используются для сохранения параметров для кодирования и декодирования изображения. Данные изображения каждого среза классифицируют в модулях VCL (уровень кодирования видеоданных) NAL (уровень абстракции сети), и эти наборы параметров классифицируют на модули, не являющиеся VCL NAL. В общем, в случае, когда кодированный поток, который кодируют, используя систему H.264/AVC, сохраняют в файле, включающем в себя область заголовка и область данных, SPS и PPS вставляют в область заголовка, и данные изображения вставляют в область данных.
При стандартизации операции HEVC (кодирование видеоданных высокой эффективности), которая представляет собой систему кодирования изображения следующего поколения, следующую после H.264/AVC, было предложен ввод набора параметра адаптации (APS), который представляет собой новый набор параметров, чем SPS и PPS (см. Непатентные документы 1 и 2, описанные ниже).
APS также представляет собой один вид набора параметров. Таким образом, в соответствии с существующей технологией, аналогично SPS и PPS, APS также вставляют в область заголовка файла. Примеры формата файла, включающие в себя область заголовка и область данных, включают в себя формат MPEG 4 Часть 14 (IS(MEC 14496-14: 2003, ниже называется МР4) и формат MPEG 4 Часть 15 (ISO/IEC 14496-15: 2004, файл AVC).
Список литературы
Непатентный документ
Непатентный документ 1: Stephan Wenger, Jill Boyce, Yu-Wen Huang, Chia-Yang Tsai, Ping Wu, Ming Li, "Adaptation Parameter Set (APS)", JCTVC-F747r3, July 2011
Непатентный документ 2: Benjamin Bross, Woo-Jin Han, Jens-Rainer Ohm, Gary J. Sullivan, Thomas Wiegand, "High efficiency video coding (HEVC) text specification draft 6", JCTVC-H1003 ver20, February 2012
Сущность изобретения
Задачи, решаемые изобретением
Однако, в случае, когда генерируют поток, используемый для передачи, или поток, используемый для сохранения данных в файле, существует формат, в котором данные, такие как начальный код и данные заполнения, не разрешено включать в поток. Таким образом, когда считывают данные потока, это приводит к увеличению нагрузки, связанной с обработкой.
Настоящее раскрытие составлено с учетом таких ситуаций и уменьшает нагрузку, связанную с обработкой, требуемой, когда генерируют поток, используемый во время передачи, или поток, используемый во время сохранения данных в файле.
Решение задачи
В соответствии с первым аспектом настоящего раскрытия, предусмотрено устройство обработки изображений, включающее в себя: модуль установки, который устанавливает начальный код, и данные заполнителя для файла, включающие в себя поток битов, полученный путем кодирования изображения; и модуль управления, который выполняет управление модулями установки таким образом, что начальный код и данные заполнителя, установленные модулем установки, составляют файл с характеристикой параметра, управляющего буфером декодера, который поддерживается в мультимедийных данных файла.
Параметр, управляющий буфером декодера, представляет собой параметр, включенный в VUI (информация об удобстве использования видеоданных), параметр, включенный в SEI периода буферизации (дополнительная информация расширения), или параметр, включенный в SEI синхронизации изображения.
Модуль установки может устанавливать данные заполнителя, как данные VCL.
В соответствии с первым аспектом настоящего раскрытия, предусмотрен способ обработки изображений, использующий устройство обработки изображений. Способ обработки изображений включает в себя: устанавливают начальный код и данные заполнителя для файла, включающего в себя поток битов, полученный путем кодирования изображения; и выполняют управление установкой начального кода и данными заполнителя таким образом, что начальный код и данные заполнителя, которые устанавливают, составляют файл с характеристикой параметра, управляющего буфером декодера, который поддерживается в мультимедийных данных файла.
В соответствии со вторым аспектом настоящего раскрытия, предусмотрено устройство обработки изображений, включающее в себя: модуль приема, который принимает файл, включающий в себя поток битов, полученный в результате кодирования изображения, и которым управляют, и который устанавливают таким образом, что начальный код и данные заполнителя составляют файл с характеристикой параметра, управляющим буфером декодера, который поддерживается в мультимедийных данных файла; и модуль декодирования, который считывает начальный код и данные заполнителя из файла, принятого модулем приема, и декодирует поток битов, используя параметр, управляющий буфером декодера.
Параметр, управляющий буфером декодера, представляет собой параметр, включенный в VUI (информация об удобстве использования видеоданных), параметр, включенный в SEI периода буферизации (дополнительная информация расширения), или параметр, включенный в SEI синхронизации изображения.
Данные заполнителя устанавливают, как данные VCL.
В соответствии со вторым аспектом настоящего раскрытия, предусмотрен способ обработки изображений, использующий устройство обработки изображений. Способ обработки изображений включает в себя: принимают файл, включающий в себя поток битов, полученный путем кодирования изображения, и которым управляют, и который устанавливают, таким образом, что начальный код и данные заполнителя составляют файл с характеристикой параметра, управляющего буфером декодера, который поддерживают в мультимедийных данных файла; и считывают начальный код и данные заполнителя из принятого файла и декодируют поток битов, используя параметр, управляющий буфером декодера.
В соответствии с третьим аспектом настоящего раскрытия, предусмотрено устройство обработки изображений, включающее в себя: модуль установки, который устанавливает характеристику параметра, управляющего буфером декодера, в случае, когда начальный код и данные заполнителя удаляют из потока битов в мультимедийных данных файла, включающего в себя поток битов, полученный путем кодирования изображения; и модуль генерирования, который генерирует файл, используя характеристику, установленную модулем установки.
Модуль установки может устанавливать параметры установки, идентифицирующие, что характеристика параметра, управляющего буфером декодера, изменилась.
Модуль установки может устанавливать параметры идентификации, как необязательное поле во вводе выборки файла.
В соответствии с третьим аспектом настоящего раскрытия, предусмотрен способ обработки изображений, использующий устройство обработки изображений. Способ обработки изображений включает в себя: устанавливают характеристику параметра, управляющего буфером декодирования, в случае, когда начальный код и данные заполнителя удалены из потока битов в мультимедийных данных файла, включающего в себя поток битов, полученный в результате кодирования изображения; и генерируют файл, используя установленные характеристики.
В соответствии с четвертым аспектом настоящего раскрытия, предусмотрено устройство обработки изображений, включающее в себя: модуль приема, который принимает файл, генерируемый, используя установленные характеристики параметра, управляющего буфером декодирования, который установлен в случае, когда начальный код и данные заполнителя удалены из мультимедийных данных файла, включающих в себя поток битов, полученный путем кодирования изображения; и модуль декодирования, который считывает параметр, управляющий буфером декодера, из файла, принятого модулем приема, и декодирует поток битов путем использования считанного параметра.
В файле устанавливают параметр идентификации, идентифицирующий, что характеристика параметра, управляющего буфером декодирования, была изменена.
В соответствии с четвертым аспект настоящего раскрытия, предусмотрен способ обработки изображений, использующий устройство обработки изображений. Способ обработки изображений включает в себя: принимают файл, сгенерированный с использованием установленной характеристики параметра, управляющего буфером декодера, который устанавливают в случае, когда начальный код и данные заполнителя удалены из мультимедийных данных файла, включающих в себя поток битов, полученный путем кодирования изображения; и считывают параметр, управляющий буфером декодера из принятого файла, и декодируют поток битов, используя считанный параметр.
В соответствии с первым аспектом настоящего раскрытия, начальный код и данные заполнителя устанавливают для файла, включающего в себя поток битов, полученный в результате кодирования изображения. Затем установкой начального кода и данных заполнителя управляют таким образом, что начальный код и установленные данные заполнителя конфигурируют файл с характеристикой параметра, управляющего буфером декодера, который поддерживают в мультимедийных данных файла.
В соответствии со вторым аспектом настоящего раскрытия, принимают файл, включающий в себя поток битов, полученный в результате кодирования изображения и которым управляют, и устанавливают таким образом, что начальный код и данные заполнителя конфигурируют файл с характеристикой параметра, управляющего буфером декодера, который поддерживают в мультимедийных данных файла. Затем начальный код и данные заполнителя считывают из принятого файла, и поток битов декодируют, используя параметр, управляющий буфером декодера.
В соответствии с третьим аспектом настоящего раскрытия, характеристику параметра, управляющего буфером декодера, устанавливают в случае, когда начальный код и данные заполнителя удалены из потока битов в мультимедийных данных файла, включающего в себя поток битов, полученный в результате кодирования изображения. Затем файл генерируют, используя установленные характеристики.
В соответствии с четвертым аспектом настоящего раскрытия, принимают файл, генерируемый при использовании установленной характеристики параметра, управляющего буфером декодера, который устанавливают в случае, когда начальный код и данные заполнителя удалены из мультимедийных данных файла, включающего в себя поток битов, полученный в результате кодирования изображения. Затем параметр, управляющий буфером декодера, считывают из принятого файла, и поток битов декодируют, используя считанный параметр.
Здесь описанное выше устройство обработки изображений может представлять собой независимое устройство или внутренний блок, который конфигурирует устройство кодирования изображения или устройство декодирования изображения.
Эффекты изобретения
В соответствии с первым и третьим аспектами настоящего раскрытия, изображение может быть кодировано. В частности, нагрузка на обработку может быть уменьшена, когда генерируют поток, используемый во время передачи потока битов, или поток, используемый во время сохранения данных в файле.
Кроме того, в соответствии со вторым и четвертым аспектами настоящего раскрытия, изображение может декодировано. В частности, нагрузка на обработку может быть уменьшена, когда декодируют поток, используемый во время передачи, или поток, используемый во время сохранения данных в файле.
Краткое описание чертежей
На фиг. 1 показана блок-схема, которая иллюстрирует пример конфигурации устройства кодирования, в котором применяется настоящая технология, в соответствии с первым вариантом осуществления.
На фиг. 2 показана блок-схема, которая иллюстрирует пример конфигурации кодера.
На фиг. 3 показана блок-схема, которая иллюстрирует пример конфигурации модуля генерирования файла.
На фиг. 4 показана блок-схема последовательности операций, иллюстрирующая обработку генерирования файла.
На фиг. 5 показана блок-схема последовательности операций, которая иллюстрирует другой пример обработки генерирования файла.
На фиг. 6 показана блок-схема последовательности операций, иллюстрирующая обычную обработку генерирования данных mdat.
На фиг. 7 показана блок-схема последовательности операций, иллюстрирующая обработку генерирования данных mdat в соответствии с настоящей технологией.
На фиг. 8 показана блок-схема, иллюстрирующая пример конфигурации устройства декодирования, в котором применяется настоящая технология, в соответствии с первым вариантом осуществления.
На фиг. 9 показана блок-схема, которая иллюстрирует пример конфигурации модуля считывания файла.
На фиг. 10 показана блок-схема, которая иллюстрирует пример конфигурации декодера.
На фиг. 11 показана блок-схема последовательности операций, иллюстрирующая обработку декодирования файла.
На фиг. 12 показана блок-схема последовательности операций, которая иллюстрирует другой пример обработки декодирования файла.
На фиг. 13 показана блок-схема, иллюстрирующая пример конфигурации устройства кодирования, в котором применяется настоящая технология, в соответствии со вторым вариантом осуществления.
На фиг. 14 показана блок-схема, иллюстрирующая пример конфигурации устройства декодирования, в котором применяется настоящая технология, в соответствии со вторым вариантом осуществления.
На фиг. 15 показана схема, иллюстрирующая пример обычной структуры выборки МР4 Video.
На фиг. 16 показана схема, иллюстрирующая пример конфигурации одного устройства доступа потока AVC.
На фиг. 17 показана схема, иллюстрирующая пример структуры выборки МР4 Video в соответствии с настоящей технологией.
На фиг. 18 показана схема, иллюстрирующая другой пример структуры выборки МР4 Video в соответствии с настоящей технологией.
На фиг. 19 показана схема, иллюстрирующая пример расширения блока соответствия HRD.
На фиг. 20 показана схема, иллюстрирующая еще один другой пример структуры выборки МР4 Video в соответствии с настоящей технологией.
На фиг. 21 показана схема, иллюстрирующая пример блока, добавленного к таблице выборки.
На фиг. 22 показана схема, иллюстрирующая другой пример структуры выборки МР4 Video, показанных на фиг. 20.
На фиг. 23 показана схема, иллюстрирующая еще один другой пример структуры выборки МР4 Video, показанных на фиг. 20.
На фиг. 24 показана схема, иллюстрирующая пример формата функции вспомогательной информации выборки.
На фиг. 25 показана схема, иллюстрирующая другой пример формата функции вспомогательной информации выборки.
На фиг. 26 показана схема для сравнения примеров структуры выборки МР4 Video в соответствии с настоящей технологией.
На фиг. 27 показана схема, иллюстрирующая другой пример структуры выборки МР4 Video, показанных на фиг. 23.
На фиг. 28 показана схема, иллюстрирующая пример блока информации формата потока байтов.
На фиг. 29 показана схема, иллюстрирующая другой пример блока информации формата потока байтов.
На фиг. 30 показана схема, иллюстрирующая пример структуры данных блока информации формата потока байтов, сохраненной в каждом вводе выборки.
На фиг. 31 показана схема, иллюстрирующая пример структуры выборки МР4 Video в случае Структуры 1.
На фиг. 32 показана схема, иллюстрирующая пример структуры выборки МР4 Video в случае Структуры 2.
На фиг. 33 показана схема, иллюстрирующая пример структуры выборки МР4 Video в случае Структуры 3.
На фиг. 34 показана схема, иллюстрирующая другой пример структуры данных информации формата потока байтов, сохраненной в каждом вводе выборки.
На фиг. 35 показана схема, иллюстрирующая пример конфигурации устройства преобразования файла, в котором применяется настоящая технология.
На фиг. 36 показана блок-схема последовательности операций, иллюстрирующая обработку преобразования файла.
На фиг. 37 показана блок-схема, иллюстрирующая пример конфигурации устройства кодирования, в котором применяется настоящая технология, в соответствии с третьим вариантом осуществления.
На фиг. 38 показана блок-схема, которая иллюстрирует пример конфигурация кодера.
На фиг. 39 показана блок-схема, иллюстрирующая пример конфигурации устройства декодирования, в котором применяется настоящая технология, в соответствии с третьим вариантом осуществления.
На фиг. 40 показана блок-схема, которая иллюстрирует пример конфигурации декодера.
На фиг. 41 показана блок-схема, которая иллюстрирует пример конфигурации компьютера.
На фиг. 42 показана блок-схема, которая иллюстрирует пример конфигурации схемы телевизионного устройства.
На фиг. 43 показана блок-схема, которая иллюстрирует пример конфигурации схемы мобильного телефона.
На фиг. 44 показана блок-схема, которая иллюстрирует пример конфигурации схемы устройства записи/воспроизведения.
На фиг. 45 показана блок-схема, которая иллюстрирует пример конфигурации схемы устройства формирования изображения.
На фиг. 46 показана блок-схема, которая иллюстрирует пример конфигурации схемы видеонабора.
На фиг. 47 показана блок-схема, которая иллюстрирует пример конфигурации схемы видеопроцессора.
На фиг. 48 показана блок-схема, которая иллюстрирует другой пример конфигурации схемы видеопроцессора.
Подробное описание изобретения
Далее будут описаны варианты осуществления для выполнения настоящего раскрытия (ниже называются вариантами осуществления). Описание будет представлено в следующем порядке.
1. Первый вариант осуществления (Устройство кодирования и устройство декодирования системы HEVC)
2. Второй вариант осуществления (Устройство кодирования и устройство декодирования изображения),
3. Третий вариант осуществления (Структура выборки МР4 Video)
4. Четвертый вариант осуществления (Блок информации формата потока байтов)
5. Пятый вариант осуществления (Устройство преобразования файла)
6. Шестой вариант осуществления (Устройство кодирования и устройство декодирования в системе AVC)
7. Пример применения
8. Седьмой вариант осуществления (набор/модуль/блок/процессор)
1. Первый вариант осуществления
Пример конфигурации устройства кодирования в соответствии с первым вариантом осуществления
На фиг. 1 показана блок-схема, которая иллюстрирует пример конфигурации устройства кодирования, в соответствии с первым вариантом осуществления, как устройства обработки изображений, в котором применяется настоящая технология.
Устройство кодирования, представленное на фиг. 1, выполнено, как кодер 1 и модуль 2 генерирования файла, и генерирует файл, в котором сохраняют кодированный поток, путем кодирования изображения, такого как снятое изображение, используя систему HEVC.
Более конкретно, изображение, такое как снятое изображение, сконфигурированное в модулях в виде кадров, подают в кодер 1 устройства кодирования, в качестве входного сигнала. Кроме того, в него подают SPS (набор параметров последовательности) и PPS (набор параметров изображения), установленные на предыдущем этапе кодера 1, не представлены на чертеже, VUI (информация об удобстве использования видеоданных), которая представляет характеристику (удобство использования) изображения, соответствующего кодированным данным для каждой последовательности, SEI (Дополнительная информация о расширении), и т.п.
Кодер 1 кодирует входной сигнал, используя параметры, включенные в SPS, PPS, VUI и SEI, используя систему HEVC. Затем кодер 1 генерирует кодированный поток, такой как MPEG 2 TS (транспортный поток) на основе SPS, PPS, VUI и SEI, и кодированные данные, полученные в результате обработки кодирования, и подает сгенерированный кодированный поток в модуль 2 генерирования файла. Кодер 1 будет подробно описан ниже со ссылкой на фиг. 2.
Модуль 2 генерирования файла генерирует файл (например, файл MPEG 4 Часть 14 (ISO/IEC14496-14:2003, ниже называется МР4), содержащий кодированный поток (последовательность кодированных данных изображения), подаваемый из кодера 1. Модуль 2 генерирования файла будет описан подробно ниже со ссылкой на фиг. 3. Пример конфигурации кодера
На фиг. 2 показана блок-схема, которая иллюстрирует пример конфигурации кодера 1, показанного на фиг. 1. Каждый модуль кодера 1 кодирует изображение, которое представляет собой входной сигнал, используя параметры, включенные в SPS, PPS, VUI и SEI, подаваемые с предыдущего этапа, который не показан на чертеже, генерируя, таким образом, кодированный поток.
Кодер 1, показанный на фиг. 2, сконфигурирован так, что он включает в себя: A/D преобразователь 11; буфер 12 изменения компоновки экрана; модуль 13 расчета; модуль 14 ортогонального преобразования; модуль 15 квантования; модуль 16 кодирования без потерь; буфер 17 накопления; модуль 18 обратного квантования; модуль 19 обратного ортогонального преобразования; модуль 20 суммирования; фильтр 21 удаления блоков; запоминающее устройство 22 кадра; переключатель 23; модуль 24 прогнозирования внутри кадра; модуль 25 прогнозирования/компенсации движения; модуль 26 выбора прогнозируемого изображения; и модуль 27 управления скоростью.
Кроме того, между фильтром 21 удаления блоков и запоминающим устройством 22 кадра предусмотрены фильтр 41 адаптивного смещения и адаптивный фильтр 42 контура.
Более конкретно, A/D преобразователь 11 кодера 1 выполняет A/D преобразование изображения, которое представлено в модулях кадров, вводится, как входной сигнал, и выводит преобразованное изображение в буфер 12 изменения компоновки экрана для сохранения в нем. Буфер 12 изменения компоновки экрана изменяет компоновку сохраненного изображения, которое сконфигурировано в модулях кадров, в порядке отображения, для кодирования в соответствии со структурой GOP (группа изображений), и выводит изображение с измененной компоновкой в модуль 13 расчета, модуль 24 прогнозирования внутри кадра и модуль 25 прогнозирования/компенсации движения.
Модуль 13 расчета выполняет кодирование путем расчета разности между прогнозируемым изображением, подаваемым из модуля 26 выбора прогнозируемого изображения, и текущим изображением кодирования, выводимым из буфера 12 изменения компоновки экрана. Более конкретно, модуль 13 расчета вычитает прогнозируемое изображение, подаваемое из модуля 26 выбора прогнозируемого изображения, из текущего изображения кодирования, выводимого из буфера 12 изменения компоновки экрана. Модуль 13 расчета выводит изображение, полученное в результате его обработки, в модуль 14 ортогонального преобразования, как дифференциальную информацию. Кроме того, в случае, когда прогнозируемое изображение не подают из модуля 26 выбора прогнозируемого изображения, модуль 13 расчета выводит изображение, считанное из буфера 12 изменения компоновки экрана, в модуль 14 ортогонального преобразования, в том виде, как оно есть, как дифференциальную информацию.
Модуль 14 ортогонального преобразования выполняет ортогональное преобразование для дифференциальной информации, подаваемой из модуля 13 расчета, и подает коэффициенты, полученные в результате ортогонального преобразования, в модуль 15 квантования.
Модуль 15 квантования квантует коэффициенты, подаваемые из модуля 14 ортогонального преобразования. Квантованные коэффициенты подают в модуль 16 кодирования без потерь.
Модуль 16 кодирования без потерь получает информацию (ниже называется информацией режима прогнозирования внутри кадра), представляющую оптимальный режим прогнозирования внутри кадра, из модуля 24 прогнозирования внутри кадра. Кроме того, модуль 16 кодирования без потерь получает информацию, представляющую оптимальный режим прогнозирования между кадрами (ниже называется информацией режима прогнозирования между кадрами), вектор движения, информацию, используемую для установления опорного изображения, и т.п., из модуля 25 прогнозирования/компенсации движения. Кроме того, модуль 16 кодирования без потерь получает сохраненные флаги, индекс или значение смещения и информацию типа из фильтра 41 адаптивного смещения, как информацию фильтра смещения, и получает коэффициенты фильтра из адаптивного фильтра 42 контура.
Модуль 16 кодирования без потерь выполняет кодирование без потерь, такое как кодирование переменной длины (например, CAVLC (Адаптивное к контексту кодирование переменной длины) и т.п.), арифметическое кодирование (например, САВАС (Адаптивное к контексту двоичное арифметическое кодирование) и т.п.) для квантованных коэффициентов, подаваемых из модуля 15 квантования.
Кроме того, модуль 16 кодирования без потерь выполняет кодирование без потерь информации режима прогнозирования внутри кадра или информации режима прогнозирования между кадрами, вектора движения, информации, устанавливающей опорное изображение, информации фильтра смещения, коэффициентов фильтра и т.п., как информации кодирования, относящейся к кодированию. Модуль 16 кодирования без потерь генерирует кодированный поток на основе информации кодирования и коэффициентов, которые были кодированы без потерь, и подает сгенерированный кодированный поток в буфер 17 накопления, для накопления в нем. Здесь информация кодирования, которую кодируют без потерь, может рассматриваться, как информация заголовка коэффициентов, которые кодируют без потерь.
Буфер 17 накопления временно содержит кодированный поток, подаваемый из модуля 16 кодирования без потерь. Кроме того, буфер 17 накопления подает сохраненный кодированный поток в модуль 2 генерирования файла, показанный на фиг. 1.
Кроме того, квантованные коэффициенты, выводимые из модуля 15 квантования, вводят также в модуль 18 обратного квантования, подвергают обратному квантованию и затем подают в модуль 19 обратного ортогонального преобразования.
Модуль 19 обратного ортогонального преобразования выполняет обратное ортогональное преобразование для коэффициентов, поданных из модуля 18 обратного квантования, и подает дифференциальную информацию, полученную, как результат его обработки, в модуль 20 суммирования.
Модуль 20 суммирования суммирует вместе дифференциальную информацию, как текущее изображение декодирования, подаваемое из модуля 19 обратного ортогонального преобразования, и прогнозируемое изображение, поданное из модуля 26 выбора прогнозируемого изображения, получая, таким образом, локально декодируемое изображение. Кроме того, в случае, когда прогнозируемое изображение не подают из модуля 26 выбора прогнозируемого изображения, модуль 20 суммирования устанавливает дифференциальную информацию, подаваемую из модуля 19 обратного ортогонального преобразования, как локально декодируемое изображение. Модуль 20 суммирования подает локально декодируемое изображение в фильтр 21 удаления блоков и подает локально декодируемое изображение в запоминающее устройство 22 кадра, для накопления в нем.
Фильтр 21 удаления блоков фильтрует изображение, которое было локально декодировано, переданное из модуля 20 суммирования, удаляя, таким образом, искажения блока. Фильтр 21 удаления блоков подает изображение, полученное в результате его обработки, в фильтр 41 адаптивного смещения.
Фильтр 41 адаптивного смещения выполняет обработку фильтра адаптированного смещения (SAO: адаптивное смещение выборки), состоящую, в основном, из удаления затухающих колебаний изображения, в котором была выполнена обработка фильтра адаптивного удаления блоков с помощью фильтра 21 удаления блоков.
При более подробном описании, фильтр 41 адаптивного смещения определяет тип обработки фильтра адаптивного смещения для каждого LCU (наибольший модуль кодирования), который представляет собой максимальный модуль кодирования, и получает смещение, которое используется для обработки фильтра адаптивного смещения. Фильтр 41 адаптивного смещения выполняет обработку фильтра адаптивного смещения определенного типа для изображения, полученного после обработки фильтра адаптивного удаления блоков, используя полученное смещение. Затем фильтр 41 адаптивного смещения подает изображение, полученное после обработки фильтра адаптивного смещения, в адаптивный фильтр 42 в контуре.
Кроме того, фильтр 41 адаптивного смещения включает в себя буфер, в котором содержится смещение. Фильтр 41 адаптивного смещения определяет, было или нет значение смещения, используемое для обработки адаптивного фильтра удаления блоков, уже сохранено в буфере для каждого LCU.
В случае, когда будет определено, что значение смещение, используемое для обработки адаптивного фильтра удаления блоков, уже сохранено в буфере, в фильтре 41 адаптивного смещения устанавливают флаг сохранения, представляющий, сохранено ли смещение в буфере, в значение (в данном случае 1), представляющее, что смещение сохранено в буфере.
Затем фильтр 41 адаптивного смещения подает флаг сохранения, установленный в "1", индекс, представляющий положение сохранения смещения в буфере, и информацию типа, представляющую тип выполненной обработки фильтра адаптивного смещения, в модуль 16 кодирования без потерь для каждого LCU.
С другой стороны, в случае, когда смещение, используемое для обработки адаптивного фильтра удаления блоков, еще не сохранено в буфере, фильтр 41 адаптивного смещения последовательно сохраняет значение смещения в буфере. Кроме того, фильтр 41 адаптивного смещения устанавливает флаг сохранения в значение (в данном случае, "0"), представляющее, что значение смещения не сохранено в буфере. Затем фильтр 41 адаптивного смещения подает флаг сохранения, установленный в "0", значение смещения, и информацию типа в модуль 16 кодирования без потерь для каждого LCU.
Адаптивный фильтр 42 контура, например, выполняет обработку адаптивного фильтра контура (ALF) для изображения, которое получают после обработки фильтра адаптивного смещения, передаваемого из фильтра 41 адаптивного смещения, для каждого LCU. При обработке адаптивного фильтра в контуре, например, используется обработка, использующая двумерный фильтр Винера. Очевидно, что можно использовать другой фильтр, помимо фильтра Винера.
Более конкретно, адаптивный фильтр 42 в контуре рассчитывает коэффициенты фильтра, используемые для обработки адаптивного процесса фильтра в контуре для каждого LCU таким образом, что разность между оригинальным изображением, которое представляет собой изображение, выводимое из буфера 12 изменения компоновки экрана, и изображением, полученным после обработки адаптивного фильтра в контуре, будет сведена к минимуму. Затем адаптивный фильтр 42 в контуре выполняет обработку адаптивного фильтра в контуре для изображения, полученного после обработки фильтра адаптивного смещения, используя рассчитанные коэффициенты фильтра для каждого LCU.
Адаптивный фильтр 42 в контуре подает изображение, полученное после обработки адаптивного фильтра в контуре в запоминающее устройство 22 кадра. Кроме того, адаптивный фильтр 42 в контуре подает коэффициенты фильтра в модуль 16 кодирования без потерь.
Здесь, в то время как обработка адаптивного фильтра в контуре выполняется для каждого LCU, модуль обработки для обработки адаптивного фильтра в контуре не ограничен LCU. Однако, в результате сопоставления модуля обработки фильтра 41 адаптивного смещения и адаптивного фильтра 42 в контуре, обработка может быть эффективно выполнена.
Изображение, накопленное в запоминающем устройстве 22 кадра, выводят в модуль 24 прогнозирования внутри кадра или в модуль 25 прогнозирования/компенсации движения через переключатель 23, как опорное изображение.
Модуль 24 прогнозирования внутри кадра выполняет обработку прогнозирования внутри кадра каждого из всех режимов прогнозирования внутри кадра, которые представляют собой кандидатов в модулях мозаичного изображения и срезов, используя опорное изображение, которое не было отфильтровано фильтром 21 удаления блоков, считанное из запоминающего устройства 22 кадра, через переключатель 23.
Кроме того, модуль 24 прогнозирования внутри кадра рассчитывает значения функции стоимости (которая будет описана подробно ниже) для всех режимов прогнозирования внутри кадра, которые представляют собой кандидатов, на основе изображения, считанного из буфера 12 изменения компоновки экрана, и прогнозируемое изображение, генерируемое, как результат обработки прогнозирования внутри кадра. Затем модуль 24 прогнозирования внутри кадра определяет режим прогнозирования внутри кадра, в котором значение функции стоимости является наименьшим, как оптимальный режим прогнозирования внутри кадра.
Модуль 24 прогнозирования внутри кадра подает прогнозируемое изображение, генерируемое в оптимальном режиме прогнозирования внутри кадра, и соответствующее значение функции стоимости в модуль 26 выбора прогнозируемого изображения. В случае, когда модуль 24 прогнозирования внутри кадра уведомляют о выборе прогнозируемого изображения, сгенерированного в режиме оптимального прогнозирования внутри кадра, из модуля 26 выбора прогнозируемого изображения, модуль 24 прогнозирования внутри кадра подает информацию о режиме прогнозирования внутри кадра в модуль 16 кодирования без потерь.
Значение функции стоимости также называется стоимостью RD (искажение скорости) и, например, рассчитывают, используя технологию одного из режима высокой сложности и режима низкой сложности, как определено в JM (Объединенной модели), которая представляет собой опорное программное обеспечение в системе H.264/AVC.
Более конкретно, в случае, когда используется режим высокой сложности, как технология для расчета значения функции стоимости, для всех режимов прогнозирования, которые представляют собой кандидатов, временно выполняется обработка вплоть до кодирования без потерь, и значение функции стоимости, представленное в следующем Уравнении (1), рассчитывают для каждого режима прогнозирования.
Здесь D представляет собой разность между исходным изображением и декодированным изображением, R представляет сгенерированную величину кодирования, включающую в себя вплоть до коэффициентов ортогонального преобразования, и λ представляет собой множитель Лагранжа, который задан, как функция параметра QP квантования.
С другой стороны, в случае, когда используется режим низкой сложности, в качестве технологии для расчета значения функции стоимости, для каждого из всех режимов прогнозирования, которые представляют собой кандидатов, генерируют декодированное изображение, и рассчитывают бит заголовка, такой как информация, представляющая режим прогнозирования, и значение функции стоимости, представленное в следующем Уравнении (2), рассчитывают для каждого режима прогнозирования.
Здесь D представляет собой разность (искажение) между оригинальным изображением и декодированным изображением, Header_Bit представляет собой бит заголовка для режима прогнозирования, и QPtoQuant представляет собой функцию, заданную, как функция параметра QP квантования.
В режиме малой сложности, только декодированные изображения могут быть сгенерированы для всех режимов прогнозирования, и кодирование без потерь не требуется выполнять, в результате чего, уменьшается объем расчетов.
Модуль 25 прогнозирования/компенсации движения выполняет обработку прогнозирования/компенсации движения в каждом из всех режимов прогнозирования между кадрами, которые являются кандидатами, в модулях мозаичного изображения и срезов. Более конкретно, модуль 25 прогнозирования/компенсации движения детектирует вектор движения каждого из всех режимов прогнозирования между кадрами, которые представляют собой кандидатов, в модулях мозаичного изображения и срезов на основе изображения, подаваемого из буфера 12 изменения компоновки экрана, и опорного отфильтрованного изображения, считанного из запоминающего устройства 22 кадра через переключатель 23. Затем модуль 25 прогнозирования/компенсации движения выполняет обработку компенсации для опорного изображения на основе вектора движения в модулях мозаичного изображения и срезов, генерируя, таким образом, прогнозируемое изображение.
В это время модуль 25 прогнозирования/компенсации движения рассчитывает значение функции стоимости для каждого из всех из режимов прогнозирования между кадрами, которые являются кандидатами, на основе изображения, подаваемого из буфера 12 изменения компоновки экрана, и прогнозируемого изображения, и определяет режим прогнозирования между кадрами, значение функции стоимости которого является наименьшим, в качестве оптимального режима прогнозирования между кадрами. Затем модуль 25 прогнозирования/компенсации движения передает значение функции стоимости оптимального режима прогнозирования между кадрами и соответствующим прогнозируемым изображением в модуль 26 выбора прогнозируемого изображения. Кроме того, в случае, когда модуль 25 прогнозирования/компенсации движения уведомляет о выборе прогнозируемого изображения, сгенерированного в оптимальном режиме прогнозирования между кадрами, из модуля 26 выбора прогнозируемого изображения, модуль 25 прогнозирования/компенсации движения выводит информацию режима прогнозирования между кадрами, соответствующий вектор движения, информацию, устанавливающую опорное изображение, и т.п. в модуль 16 кодирования без потерь.
Модуль 26 выбора прогнозируемого изображения определяет один из оптимального режима прогнозирования внутри кадрами и оптимального режима прогнозирования между кадрами, который имеет наименьшее значение функции стоимости, в качестве оптимального режима прогнозирования на основе значения функции стоимости, подаваемого из модуля 24 прогнозирования внутри кадров и модуля 25 прогнозирования/компенсации движения. Затем модуль 26 выбора прогнозируемого изображения подает прогнозируемое изображение оптимального режима в модуль 13 расчета прогнозирования и в модуль 20 суммирования. Кроме того, модуль 26 выбора прогнозируемого изображения уведомляет модуль 24 прогнозирования внутри кадра или модуль 25 прогнозирования/компенсации движения о выборе прогнозируемого изображения оптимального режима прогнозирования.
Модуль 27 управления скоростью выполняет управление операцией квантования, выполняемой модулем 15 квантования, на основе кодированных данных, накопленных в буфере 17 накопления, таким образом, чтобы не возникало переполнение или недозаполнение.
Общее описание и задача
В формате файла AVC, определенном в ISO/IEC 14496-15, не разрешено включать начальный код и данные заполнителя в поток битов (элементарный поток). Однако, нагрузка обработки во время обработки данных формата мультимедийного файла, основанного на ISO, MPEG - 2 TS (транспортный поток) и т.п. увеличивается.
Кроме того, при генерировании (преобразовании) MPEG-2 TS из потока битов (элементарного потока), возникают случаи, когда значение параметра, который управляет буфером декодера, становится отличным из-за удаления начального кода и данных заполнителя (фиктивные данные, используемые для регулирования размера данных). В соответствии с этим, например, необходимо выполнить сброс периода SEI буферизации (дополнительная информация расширения), что приводит к увеличению нагрузки на обработку во время преобразования потока битов.
Операция модуля генерирования файла
Таким образом, в случае, когда генерируют поток, используемый во время передачи, или поток, используемый во время сохранения данных в файле, модуль 2 генерирования файла устанавливает начальный код и данные заполнителя для файла, включающего в себя поток битов, полученный путем кодирования изображения, и выполняет управление установки начального кода и данных заполнителя таким образом, что начальный код и данные заполнителя, которые были установлены, конфигурируют файл с характеристикой параметра, управляющего буфером декодера, который содержится в мультимедийных данных файла.
Кроме того, в случае, когда начальный код и данные заполнителя удаляют из мультимедийных данных файла, включающего в себя поток битов, полученный в результате кодирования изображения, модуль 2 генерирования файла устанавливает характеристику параметра, управляющего буфером декодера, и генерирует файл, используя установленные характеристики.
Здесь, параметр, управляющий буфером декодера, представляет собой параметр HRD (гипотетический опорный параметр декодера), другими словами, параметр, который управляет виртуальным опорным декодером. Этот параметр, который управляет буфером декодера, представляет собой параметр, включенный в VUI, параметр, включенный в период SEI буферизации, или параметр, включенный в SEI синхронизации изображения.
В результате использования представленной выше конфигурации, в случае, когда генерируют (преобразуют) поток во время передачи или во время сохранения данных в файле, нет необходимости выполнять сброс начального кода и данных заполнителя, и нагрузка на обработку может быть уменьшена.
Кроме того, ответ на данные заполнителя может быть таким, как представлено ниже. Другими словами, в системе AVC или HEVC, данные заполнителя не являются VCL, которые находятся в таблице кодов типа модуля NAL и классов типа модуля NAL. Более конкретно, когда nal_unit_type равен 31, наименование nal_unit_type представляет собой FD_NUT, и содержание модуля NAL и структура синтаксиса RBSP представляют собой данные заполнителя и filler_data_rbsp (), класс типа модуля NAL не является VCL. В результате замены таких данных, не являющихся VCL, на данные VCL, данные заполнителя могут быть включены в мультимедийные данные файла, и, соответственно, может быть предотвращено удаление данных заполнителя во время преобразования в потоке передачи.
Более конкретно, модуль 2 генерирования файла выполняет установку начального кода и данных заполнителя, как описано ниже.
- Начальный код и данные заполнителя
Таким образом, данный вклад предлагает разрешить включить начальный код и данные заполнителя в элементарные потоки только для новых продуктов.
В оригинальной версии ISO/IEC 14496-15 SPS/PPS не могут быть включены в элементарный поток. В ISO/IEC 14496-16 PDAM2 теперь разрешено включать SPS/PPS. Если разрешено включать начальный код и данные заполнителя в элементарный поток, тогда нагрузка для преобразователя потока битов существенно уменьшается. Перезапись параметров HRD, например, SEI периода буферизации и SEI синхронизации изображения не является обязательной в этом случае.
Для обеспечения обратной совместимости такое изменение требуется применять для новых продуктов (новый продукт AVC и HEVC)
- Показатель того, что параметры HRD являются неправильными
Когда начальный код, данные заполнителя и т.д. удалены из элементарного потока, для сохранения ISOMFF, параметры HRD, например, SEI периода буферизации, SEI синхронизации изображения и т.д. являются некорректными. Однако, декодер не может знать, являются ли параметры HRD в элементарном потоке корректными. Должен присутствовать ID для обозначения того, что параметры HRD в элементарном потоке могут быть неправильными.
- В HEVC или AVC изменение данных заполнителя, как данных VCL
В настоящее время в HEVC и AVC данные заполнителя разделяют на категории, как не являющиеся VCL. Это означает, что бит для данных заполнителя подсчитывается, как не являющийся VCL (информация заголовка). Однако, если установить данные заполнителя, как данные VCL, бит для заполнителя учитывается, как сам поток битов видеоданных. В этом случае данные заполнителя не обязательно удалять из элементарного потока, и параметры HRD не меняются. Таблица для HEVC приложена.
Кроме того, в случае, когда параметр, который управляет буфером декодера, является другим (неправильным), декодер не может определить, является ли параметр, управляющий буфером декодера таким же (правильным). Таким образом, в случае, когда начальный код и данные заполнителя удаляют из потока битов, устанавливают параметр идентификации, используемый для идентификации, изменилась ли характеристика параметра управления буфером декодера. В качестве примера, будет представлен случай, в котором параметр идентификации сохранен в необязательном блоке формата файла.
Например, в случае AVC, такой ID может быть определен, как необязательный блок в AVCSampleEntry следующим образом. (Тот же подход можно применять для других входов в выборку AVC и в HEVCSampleEntry.)
AVCSampleEntry () расширяет VisualSampleEntry (type') {
//type is 'avc1' or 'avc3'
AVCConfigurationBox config;
MPEG4BitRateBox(); //Optional
MPEG4ExtensionDescriptorsBox(); //Optional
HRDConformanceBox(); //Optional
}
Add HRDConformanceBox into AVCSampleEntry and AVC2SVVSampleEntry in 5.4.2.1
Add HRDConformanceBox into AVCSVCSampleEntry, AVC2SVCSampleEntry and SVCSampleEntry in 6.5.3.1.
Add HRDConformanceBox into AVCMVCSampleEntry, AVC2MVCSampleEntry and MVCSampleEntry in section7.6.3.3.
Add HRDConformanceBox into HEVC SampleEntry in section 8.4.1.1.
HRDConformanceBox can be defined as follows.
class HRDConformanceBox extends Box('hrdc') {
HRDConformanceData() HRDConformance;
}
aligned(8) class HRDConformanceData {
unsigned int(7) reserved=0;
unsigned int(l) HRDConformanceFlag;
unsigned int (24) reserved;
Box[] any_box;//Optional
}
Параметры идентификации, например, устанавливают так, как представлено ниже.
HRDConformanceFlag представляет собой идентификатор, если характеристики HRD изменились в результате удаления начального кода, данных заполнителя и т.д. из элементарного потока. Когда HRDConformanceFlag равен 1, параметры HRD, например, период SEI буферизации, SEI синхронизации изображения изменились в результате удаления начального кода, данных заполнителя и т.д. из элементарного потока.
Модуль 2 генерирования файла, который показан на фиг. 1, выполняющий обработку, описанную выше, сконфигурирован так, как представлено на фиг. 3.
Пример конфигурации модуля генерирования файла
На фиг. 3 показана блок-схема, которая иллюстрирует пример конфигурации модуля генерирования файла, который выполняет обработку, описанную выше.
В примере, представленном на фиг. 3, модуль 2 генерирования файла сконфигурирован так, что он включает в себя модуль 31 управления, модуль 32 установки и модуль 33 записи файла.
Модуль 31 управления управляет обработкой генерирования данных mdat, которые представляют собой часть данных VCL файла, которую выполняют путем установки модуля 32 на основе того, следует или нет поддерживать характеристику параметра HRD, который представляет собой параметр, управляющий буфером декодера. Кроме того, модуль 31 управления управляет установкой характеристики параметра HRD или установкой параметра идентификации HRD в moov, который представляет собой часть информации управления файла, на основе, удалены или нет начальный код и данные заполнителя из данных mdat, установленных модулем 32 установки.
Модуль 32 установки генерирует данные mdat файла, используя кодированный поток, подаваемый из кодера 1, под управлением модуля 31 управления, и подает генерируемые данные mdat в модуль 33 записи файла. В то время как начальный код и данные заполнителя удаляют, в соответствии с обычной технологией, в соответствии с настоящей технологией, данные mdat генерируют, используя начальный код и данные заполнителя в кодированном потоке, который устанавливают.
Кроме того, модуль 32 установки выполняет сброс характеристики параметра HRD или устанавливает параметры идентификации HRD в moov файла под управлением модуля 31 управления. Затем, модуль 32 установки генерирует moov файла и подает сгенерированный moov в модуль 33 записи файла.
Модуль 33 записи файла записывает moov, подаваемый из модуля 32 установки, в файл, и записывает mdat в файл. Файл МР4, записанный модулем 33 записи файла, передают в устройство декодирования, которое будет описано ниже, и т.п., и считывают, и декодируют с помощью устройства декодирования.
Пример обработки генерирования файла
Затем, со ссылкой на блок-схему последовательности операций, представленную на фиг. 4, будет описана обработки генерирования файла, выполняемая модулем 2 генерирования файла.
На этапе S1, модуль 31 управления определяет, следует или нет поддерживать характеристику параметра HRD, которая представляет собой параметр, управляющий буфером декодера. На этапе S1, в случае, когда характеристика параметра HRD определена, как характеристика, которую не требуется поддерживать, обработка переходит на этап S2. На этапе S2, модуль 32 установки выполняет обычную обработку генерирования данных mdat под управлением модуля 31 управления. Эта обработка будет описана ниже со ссылкой на фиг. 6.
При обработке на этапе S2 детектируют начальный код, получают данные NAL, и удаляют начальный код. Затем выполняют добавление размера модуля, накопление данных в буфере или отбрасывание данных на основе, являются ли полученные данные данными VCL, данными заполнителя, информацией управления и т.п., в результате чего, генерируют данные mdat. Сгенерированные данные mdat подают в модуль 33 записи файла, и обработка переходит на этап S4.
С другой стороны, на этапе S1, в случае, когда характеристику параметра HRD определяют, как поддерживающуюся, обработка переходит на этап S3. На этапе S3, модуль 32 установки выполняет обработку генерирования данных mdat, в соответствии с настоящей технологией, под управлением модуля 31 управления. Эта обработка будет описана ниже со ссылкой на фиг. 7.
При обработке на этапе S3 детектируют начальный код, данные NAL, полученные данные устанавливают, как данные VCL, добавляют размер модуля, и полученные данные накапливают в буфере, в результате чего, генерируют данные mdat. Сгенерированные данные mdat подают в модуль 33 записи файла, и обработка переходит на этап S4.
На этапе S4, модуль 31 управления определяет, были или удалены начальный код и данные заполнителя из данных mdat, сгенерированных на этапе S2 или S3.
На этапе S4, в случае, когда определяют, что начальный код и данные заполнителя были удалены, обработка переходит на этап S5. На этапе S5, модуль 32 установки устанавливает характеристику параметра HRD. Другими словами, поскольку характеристика параметра HRD является отличной, характеристику параметра HRD повторно рассчитывают и снова устанавливают. Затем SEI и VUI данных mdat перезаписывают путем установки параметра HRD.
На этапе S4, в случае, когда определяют, что начальный код и данные заполнителя были удалены, обработку на этапе S5 пропускают, и обработка переходит на этап S6.
На этапе S6, модуль 32 установки генерирует moov файла, используя информацию размера данных, которые были получены в результате обработки на этапе S2 или S3. Кроме того, в случае, когда выполняют обработку на этапе S3, также используется информация управления и т.п., накопленная в буфере для moov. Сгенерированный moov подают в модуль 33 записи файла.
На этапе S7, модуль 33 записи файла записывает moov, сгенерированный на этапе S6, в файл.
На этапе S8, модуль 33 записи файла записывает в файл mdat, сгенерированный на этапе S2 или S3.
Файл МР4, записанный модулем 33 записи файла, как описано выше, передают в устройство декодирования, которое будет описано ниже и т.п., и считывают и декодируют с помощью устройства декодирования. Затем файл генерируют без изменения характеристики параметра HRD. Кроме того, даже когда начальный код и данные заполнителя были удалены, параметры HRD снова устанавливают, и, соответственно, путем ссылки на параметр HRD, обработка декодирования может быть правильно выполнена.
При описании со ссылкой на фиг. 4, в то время как был описан пример, в котором характеристику параметра HRD снова устанавливают в случае, когда начальный код и данные заполнителя удалены, как будет описано далее, могут быть установлены параметры идентификации, которые представляют, является ли характеристика параметра HRD правильной или другой.
Другой пример обработки генерирования файла
Далее обработка генерирования файла, выполняемая модулем 2 генерирования файла, будет описана со ссылкой на блок-схему последовательности операций, представленную на фиг. 5.
На этапе S11, модуль 31 управления определяет, следует или нет поддерживать характеристику параметра HRD, которая представляет собой параметр, управляющий буфером декодера. На этапе S11, в случае, когда определяют, что характеристику параметра HRD не следует поддерживать, обработка переходит на этап S12. На этапе S12, модуль 32 установки выполняет обычную обработку генерирования данных mdat под управлением модуля 31 управления. Эта обработка будет описана ниже со ссылкой на фиг. 5.
При обработке на этапе S12 выбирают начальный код, получают данные NAL, и начальный код удаляют. Затем выполняют добавление размера модуля, накопление данных в буфере или отбрасывание данных на основе того, являются ли полученные данные данными VCL, данными заполнителя, информацией управления и т.п., в результате чего, генерируют данные mdat. Сгенерированные данные mdat подают в модуль 33 записи файла, и обработка переходит на этап S14.
С другой стороны, на этапе S11, в случае, когда характеристику параметра HRD определяют, как поддерживаемую, обработка переходит на этап S13. На этапе S13, модуль 32 установки выполняет обработку генерирования данных mdat, в соответствии с настоящей технологией, под управлением модуля 31 управления. Такая обработка будет описана ниже со ссылкой на фиг. 6.
При обработке на этапе S13 детектируют начальный код, получают данные NAL, полученные данные устанавливают, как данные VCL, добавляют размер модуля, и полученные данные накапливают в буфере, в результате чего, генерируют данные mdat. Генерируемые данные mdat подают в модуль 33 записи файла, и обработка переходит на этап S14.
На этапе S14, модуль 31 управления определяет, были ли удалены начальный код и данные заполнителя из данных mdat, сгенерированных на этапе S12 или S13.
На этапе S14, в случае, когда определяют, что начальный код и данные заполнителя не были удалены, обработка переходит на этап S15. На этапе S15, модуль 32 установки устанавливает в "1" параметры идентификации HRD moov, и обработка переходит на этап S17. В соответствии с этим, на стороне декодирования может быть определено, что параметр HRD является правильным.
На этапе S14, в случае, когда определяют, что начальный код и данные заполнителя были удалены, обработка переходит на этап S16. На этапе S16 модуль 32 установки устанавливает параметры идентификации HRD moov в "0", и обработка переходит на этап S17. В соответствии с этим, на стороне декодирования можно определить, что параметр HRD является ошибочным (неправильным).
На этапе S17, модуль 32 установки генерирует moov файла, используя информацию размера данных, которая была получена при обработке на этапе S12 или S13. Кроме того, в случае, когда выполняется обработка на этапе S13, также используется информация управления и т.п., накопленная в буфере для moov. Сгенерированный moov подают в модуль 33 записи файла.
На этапе S18, модуль 33 записи файла записывает moov, сгенерированный на этапе S17, в файл.
На этапе S19 модуль 33 записи файла записывает mdat, сгенерированные на этапе S12 или S13, в файл.
Файл МР4, записанный модулем 33 записи файла, как описано выше, передают в устройство декодирования, которое будет описано ниже и т.п., и считывают и декодируют с помощью устройства декодирования. Затем файл генерируют, без изменения характеристики параметра HRD. Кроме того, поскольку установлен параметр идентификации, используемый для идентификации, является ли параметр HRD правильным или нет, путем ссылки на параметр HRD, можно уверенно определить, выполняется или нет декодирование.
Пример обычной обработки генерирования данных mdat
Далее, со ссылкой на блок-схему последовательности операций, показанную на фиг. 6, будет описана обычная обработка генерирования данных mdat, выполняемая на этапе S2 (этап S12, представленный на фиг. 5), представленном на фиг. 4
Модуль 32 установки детектирует начальный код из кодированного потока, подаваемого из кодера 1 на этапе S21, и получает данные NAL из начального кода, детектированного на этапе S21, до следующего начального кода на этапе S22.
На этапе S23, модуль 32 установки удаляет начальный код, который был детектирован на этапе S21. На этапе S24 определяют, являются или данные, полученные на этапе S22, данными VCL.
На этапе S24, в случае, когда определяют, что данные, полученные на этапе S22, представляют собой данные VCL, обработка переходит на этап S25. На этапе S25, модуль 32 установки добавляет соответствующий размер модуля к данным, полученным на этапе S22, и устанавливает полученные данные, как модуль доступа. Затем, на этапе S26, модуль 32 установки накапливает модуль доступа, к которому был добавлен размер модуля, во встроенном буфере mdat, и обработка переходит на этап S30.
С другой стороны, на этапе S24, в случае, когда определяют, что данные, полученные на этапе S22, не являются данными VCL, обработка переходит на этап S27. На этапе S27, модуль 32 установки определяет, являются или нет данные, полученные на этапе S22, данными заполнителя.
На этапе S27, в случае, когда определяют, что данные, полученные на этапе S22, представляют собой данные заполнителя, обработка переходит на этап S28. На этапе S28 модуль 32 установки отбрасывает данные заполнителя, и обработка переходит на этап S30.
С другой стороны, на этапе S27, в случае, когда определяют, что данные, полученные на этапе S22, не являются данными заполнителя, обработка переходит на этап S29. В таком случае, поскольку полученные данные представляют собой информацию управления, такую как SPS, PPS и т.п., на этапе S29 модуль 32 установки накапливает полученные данные во встроенном буфере moov, и обработка переходит на этап S30.
На этапе S30, модуль 32 установки детектирует начальный код из кодированного потока, подаваемого из кодера 1.
На этапе S31, модуль 32 установки определяет, являются или нет текущие данные конечными данными файла. В случае, когда начальный код не детектируется на этапе S30, на этапе S31, текущие данные определяют, как конечные данные файла, обработка генерирования данных mdat закачивается, и обработка возвращается на этап S2 (или этап S12, представленный на фиг. 5), показанный на фиг. 4.
С другой стороны, в случае, когда начальный код детектируют на этапе S30, на этапе S31, в случае, когда конечные данные определяют, как данные, не являющиеся конечными данными файла, обработка переходит на этап S22, и обработка этапов S22 и следующих после него повторяется.
Пример обработки генерирования данных mdat в соответствии с настоящей технологией
В отличие от этого, обработка генерирования данных mdat, в соответствии с настоящей технологией, которая выполняется на этапе S3 (этап S13, представленный на фиг. 5), представленной на фиг. 4, будет описана со ссылкой на блок-схему последовательности операций, показанную на фиг. 7.
Модуль 32 установки детектирует начальный код из кодированного потока, подаваемого из кодера 1, на этапе S41, и получает данные NAL из начального кода, детектированного на этапе S41 до следующего начального кода на этапе S42. В примере, показанном на фиг. 7, начальный код не удален.
На этапе S43, модуль 32 установки определяет, являются или нет данные, полученные на этапе S42, данными заполнителя. На этапе S43, в случае, когда определяют, что данные полученные на этапе S42, представляют собой данные заполнителя, обработка переходит на этап S44. На этапе S44, модуль 32 установки устанавливает данные заполнителя, как данные VCL.
С другой стороны, на этапе S43, в случае, когда определяют, что данные, полученные на этапе S42, не являются данными заполнителя, обработку на этапе S44 пропускают, и обработка переходит на этап S45.
На этапе S45, соответствующий размер модуля добавляют к данным, полученным на этапе S42, полученные в результате данные устанавливают, как модуль доступа, и модуль доступа, к которому был добавлен размер модуля на этапе S46, накапливают во встроенном буфере mdat. Здесь, в случае, когда полученные данные представляют собой информацию управления, такую как SPS или PPS, данные также накапливают во встроенном буфере moov и сохраняют в описании выборки moov, как принятые по умолчанию SPS или PPS на этапе S6, представленном на фиг. 4 или этапе S17, представленном на фиг. 5.
Здесь, в случае, когда полученные данные представляют собой информацию управления, такую как SPS или PPS, аналогично обычному случаю, полученные данные могут быть сохранены не в буфере mdat, но только во встроенном буфере moov.
На этапе S47, модуль 32 установки детектирует начальный код из кодированного потока, подаваемого из кодера 1.
На этапе S48, модуль 32 установки определяет, являются или ли нет текущие данные конечными данными файла. В случае, когда начальный код не детектируется на этапе S47, на этапе S48 текущие данные определяют, как конечные данные файла, обработка генерирования данных mdat заканчивается, и обработка возвращается на этап S3 (этап S13, представленный на фиг. 5), представленный на фиг. 4.
В случае, когда детектируют начальный код на этапе S47, на этапе S48, в случае, когда определяют, что текущие данные не являются конечными данными файла, обработка переходит на этап S42, и обработка на этапах S42 и последующих этапах повторяется.
Как отмечено выше, в соответствии с настоящей технологией, установкой начального кода и данными заполнителя управляют таким образом, что файл конфигурируют с характеристикой параметра, которой управляют поддерживаемым буфером декодера. Другими словами, начальный код и данные заполнителя не удаляют, и файл конфигурируют так, что он включает в себя начальный код и данные заполнителя, и, в соответствии с этим, может поддерживаться характеристика параметра, управляющего буфером декодера.
Кроме того, поскольку данные заполнителя изменяются на данные VCL, данные заполнителя могут быть включены в мультимедийные данные файла, и может предотвращаться удаление данных заполнителя во время преобразования в поток передачи.
Кроме того, в случае, когда начальный код и данные заполнителя удаляют из мультимедийных данных файла, устанавливают характеристику параметра, управляющего буфером декодера, и файл генерируют, используя установленный параметр. В соответствии с этим, декодирование может быть правильно выполнено.
В качестве альтернативы, в случае, когда начальный код и данные заполнителя удаляют из мультимедийных данных файла, параметр идентификации, идентифицирующий, что характеристика параметра была изменена, устанавливают, и файл генерируют, используя установленный параметр идентификации. В соответствии с этим, декодирование может быть правильно выполнено.
Пример конфигурации устройства декодирования в соответствии с первым вариантом осуществления
На фиг. 8 показана блок-схема, которая иллюстрирует пример конфигурации устройства декодирования, которое декодирует кодированный поток, передаваемый из устройства кодирования, представленного на фиг. 1, в соответствии с первым вариантом осуществления, в качестве устройства обработки изображений, в котором применяется настоящая технология.
Устройство декодирования, представленное на фиг. 8, сконфигурировано из модуля 51 считывания файла и декодера 52.
Модуль 51 считывания файла устройства декодирования принимает файл МР4, генерируемый устройством кодирования, представленным на фиг. 1 и считывает SPS, PPS, VUI, SEI, кодированные данные и т.п., конфигурирующие кодированный поток, который кодирован кодером 1, представленный на фиг. 1, из принимаемого файла. Модуль 51 считывания файла подает SPS, PPS, VUI, SEI и кодированные данные в декодер 52.
Более конкретно, модуль 51 считывания файла принимает файл, которым управляют так, чтобы его установить так, что начальный код и данные заполнителя конфигурируют файл с характеристикой параметра, управляющего буфером декодера, который поддерживается в мультимедийных данных файла, который включает в себя поток битов, полученный путем кодирования изображения. В качестве альтернативы, в случае, когда начальный код и данные заполнителя удаляют из мультимедийных данных файла, включающих в себя поток битов, полученный путем кодирования изображения, модуль 51 считывания файла принимает файл, который генерируют, используя набор характеристик параметра, управляющего установленным буфером декодера. Затем модуль 51 считывания файла считывает принятый файл и обеспечивает декодирование декодером 52 кодированных данных потока битов.
Декодер 52, под управлением модуля 51 считывания файла, обращается к SPS, PPS, VUI, SEI и т.п. (в частности, характеристике параметра HRD), подаваемым из модуля 51 считывания файла, и декодирует кодированные данные, подаваемые из модуля 52 считывания файла, используя систему HEVC. Декодер 52 подает изображение, полученное в результате обработки декодирования, на следующий этап, как выходной сигнал.
Пример конфигурации модуля считывания файла
На фиг. 9 показана блок-схема, которая иллюстрирует пример конфигурации модуля 51 считывания файла.
В примере, показанном на фиг. 9, модуль 51 считывания файла выполнен так, что он включает в себя: модуль 71 приема файла; модуль 72 получения параметра; модуль 73 управления декодированием и модуль 74 считывания данных.
Модуль 71 приема файла принимает файл МР4, генерируемый модулем 2 генерирования файла, представленным на фиг. 1, и подает принятый файл в модуль 72 получения параметра.
Модуль 72 получения параметра получает moov, который представляет собой информацию управления, из файла МР4, и подает полученный moov в модуль 74 считывания данных. Кроме того, модуль 72 получения параметра обеспечивает считывание данных модулем 74 считывания данных из mdat на основе полученного moov.
Кроме того, в случае файла, сгенерированного обработкой генерирования файла, показанной на фиг. 5, модуль 72 получения параметра получает параметр идентификации, используемый для определения из moov, является или нет характеристика параметра HRD правильной, и подает параметр идентификации в модуль 73 управления декодированием.
В случае, когда присутствует параметр идентификации HRD, подаваемый из модуля 72 получения параметра, модуль 73 управления декодированием определяет, требуется ли следовать параметру HRD на основе параметра идентификации HRD, и управляет декодером 52, выполняя, таким образом, обработку декодирования.
В то же время, в случае файла, генерируемого при обработке генерирования файла, представленного на фиг. 4, в то время как параметр идентификации HRD не присутствует в moov, даже когда начальный код и данные заполнителя файла МР4 удалены, характеристика параметра HRD устанавливается снова, и, соответственно, эта характеристика является правильной. Таким образом, в этом случае, в частности, модуль 73 управления декодированием не выполняет какую-либо операцию.
Модуль 74 считывания данных, под управлением модуля 72 получения параметра, считывает SPS, PPS, VUI, SEI и т.п. из moov или mdat файла и считывает кодированные данные из mdat файла. Затем модуль 74 считывания данных подает SPS, PPS, VUI, SEI, кодированные данные и т.п., которые были считаны, в декодер 52.
Пример конфигурации модуля декодирования
На фиг. 10 показана блок-схема, которая иллюстрирует пример конфигурации декодера 52, представленного на фиг. 8. Каждый модуль декодера 52 декодирует кодированные данные, используя параметры, включенные в SPS, PPS, VUI и SEI, подаваемые из модуля 51 считывания файла, генерируя, таким образом, изображение.
Декодер 52, представленный на фиг. 10, сконфигурирован из: буфера 101 накопления; модуля 102 декодирования без потерь; модуля 103 обратного квантования; модуля 104 обратного ортогонального преобразования; модуля 105 суммирования; фильтра 106 удаления блоков; буфера 107 изменения компоновки экрана; D/A преобразователя 108; запоминающего устройства 109 кадра; переключателя 110; модуля 111 прогнозирования внутри кадра; модуля 112 компенсации движения; и переключателя 113.
Кроме того, между фильтром 106 удаления блоков и буфером 107 изменения компоновки экрана, и заминающим устройством 109 кадра, предусмотрены фильтр 141 адаптивного смещения и адаптивный фильтр 142 в контуре.
Буфер 101 накопления декодера 52 принимает кодированные данные из модуля 51 считывания файла, представленного на фиг. 8, и накапливает принятые кодированные данные. Буфер 101 накопления подает накопленные кодированные данные в модуль 102 декодирования без потерь.
Модуль 102 декодирования без потерь выполняет обработку декодирования без потерь, такую как декодирование переменной длины или арифметическое декодирование, для кодированных данных, подаваемых из буфера 101 накопления, получая, таким образом, квантованные коэффициенты и информацию кодирования. Модуль 102 декодирования без потерь передает квантованные коэффициенты в модуль 103 обратного квантования. Кроме того, модуль 102 декодирования без потерь передает информацию о режиме прогнозирования внутри кадра и т.п., как информацию кодирования, в модуль 111 прогнозирования внутри кадра, и подает вектор движения, информацию, используемую для установления опорного изображения, информацию о режиме прогнозирования между кадрами и т.п., в модуль 112 компенсации движения. Кроме того, модуль 102 декодирования без потерь подает информацию о режиме прогнозирования внутри кадра или информацию о режиме прогнозирования между кадрами, как информацию кодирования, в переключатель 113.
Модуль 102 декодирования без потерь передает информацию фильтра смещения, как информацию кодирования, в фильтр 141 адаптивного смещения, и подает коэффициенты фильтра в адаптивный фильтр 142 в контуре.
Модуль 103 обратного квантования, модуль 104 обратного ортогонального преобразования, модуль 105 суммирования, фильтр 106 удаления блоков, запоминающее устройство 109 кадра, переключатель 110, модуль 111 прогнозирования внутри кадра и модуль 112 компенсации движения, соответственно, выполняют обработку, аналогичную выполняемой модулем 18 обратного квантования, модулем 19 обратного ортогонального преобразования, модулем 20 суммирования, фильтром 21 удаления блоков, запоминающим устройством 22 кадра, переключателем 23, модулем 24 прогнозирования внутри кадра, и модулем 25 прогнозирования/компенсации движения, представленными на фиг. 2, в результате чего декодируется изображения.
Более конкретно, модуль 103 обратного квантования выполняет обратное квантование квантованных коэффициентов, передаваемых из модуля 102 декодирования без потерь, и подает коэффициенты, полученные в результате его обработки, в модуль 104 обратного ортогонального преобразования.
Модуль 104 обратного ортогонального преобразования выполняет обратное ортогональное преобразование для коэффициентов, подаваемых из модуля 103 обратного квантования, и передает дифференциальную информацию, полученную в результате его обработки, в модуль 105 суммирования.
Модуль 105 суммирования суммирует вместе дифференциальную информацию, как текущее декодируемое изображение, передаваемое из модуля 104 обратного ортогонального преобразования, и прогнозируемое изображение, передаваемое из переключателя 113, выполняя, таким образом, обработку декодирования. Модуль 105 суммирования подает изображение, полученное в результате обработки декодирования, в фильтр 106 удаления блоков и в запоминающее устройство 109 кадра. Кроме того, в случае, когда прогнозируемое изображение не поступает из переключателя 113, модуль 105 суммирования подает изображение, которое представляет собой дифференциальную информацию, переданную из модуля 104 обратного ортогонального преобразования, как изображение, полученное в результате обработки декодирования, в фильтр 106 удаления блоков, и подает изображение в запоминающее устройство 109 кадра, для накопления в нем.
Фильтр 106 удаления блоков фильтрует изображение, переданное из модуля 105 суммирования, удаляя, таким образом, искажение блоков. Фильтр 106 удаления блоков передает изображение, полученное в результате его обработки, в фильтр 141 адаптивного смещения.
Фильтр 141 адаптивного смещения включает в себя буфер, который последовательно сохраняет смещения, передаваемые из модуля 102 декодирования без потерь. Кроме того, фильтр 141 адаптивного смещения выполняет обработку фильтра адаптивного смещения для изображения, полученного после обработки адаптивного фильтра удаления блоков, выполняемого фильтром 106 удаления блоков для каждого LCU на основе информации фильтра смещения, передаваемой из модуля 102 декодирования без потерь.
Более конкретно, в случае, когда флаг сохранения, включенный в информацию фильтра смещения, установлен в "0", фильтр 141 адаптивного смещения выполняет обработку фильтра адаптивного смещения такого типа, который представлен информацией типа путем использования значения смещения, включенного в информацию фильтра смещения для изображения, полученного после обработки фильтра удаления блоков в модулях LCU.
С другой стороны, в случае, когда флаг сохранения, включенный в информацию фильтра смещения, установлен в "1", фильтр 141 адаптивного смещения, для изображения, полученного после обработки фильтра удаления блоков в модулях LCU, считывает значение смещения, которое сохранено в положении, представленном индексом, включенным в информацию фильтра смещения. Затем фильтр 141 адаптивного смещения выполняет обработку фильтра адаптивного смещения такого типа, который представлен информацией типа, используя считанное значение смещения. Фильтр 141 адаптивного смещения передает изображение, полученное после обработки фильтра адаптивного смещения, в адаптивный фильтр 142 контура.
Адаптивный фильтр 142 контура выполняет обработку адаптивного фильтра контура для изображения, передаваемого из фильтра 141 адаптивного смещения, для каждого LCU, используя коэффициент фильтра, переданный из модуля 102 декодирования без потерь. Адаптивный фильтр 142 контура подает изображение, полученное в результате его, в запоминающее устройство 109 кадра и в буфер 107 изменения компоновки экрана.
Изображение, накопленное в запоминающем устройстве 109 кадра, считывают, как опорное изображение, через переключатель 110, и подают в модуль 112 компенсации движения или в модуль 111 прогнозирования внутри кадра.
В буфере 107 изменения компоновки экрана содержится изображение, подаваемое из фильтра 106 удаления блоков, в модулях кадров. Буфер 107 изменения компоновки экрана изменяет компоновку сохраненного изображения, которое сконфигурировано в модулях кадров, размещенного в порядке кодирования, в оригинальном порядке отображения, и подает изображение с измененной компоновкой в D/A преобразователь 108.
D/A преобразователь 108 выполняет D/A преобразование изображения, сконфигурированного в модулях кадров, подаваемого из буфера 107 изменения компоновки экрана, и выводит преобразованное изображение на следующий этап, который не представлен на чертеже, как выходной сигнал.
Модуль 111 прогнозирования внутри кадра выполняет обработку прогнозирования внутри кадра режима прогнозирования внутри кадра, представленного информацией режима прогнозирования внутри кадра, которая поступает из модуля 102 декодирования без потерь, используя опорное изображение, которое не было отфильтровано фильтром 106 удаления блоков, считанное из запоминающего устройства 109 кадра, через переключатель 110 в модулях мозаичного изображения и срезов. Модуль 111 прогнозирования внутри кадра передает прогнозируемое изображение, сгенерированное в результате этого, на переключатель 113.
Модуль 112 компенсации движения считывает опорное изображение, которое было отфильтровано фильтром 106 удаления блоков, из запоминающего устройства 109 кадра через переключатель 110 на основе информации, используемой для установления опорного изображения, которое поступает из модуля 102 декодирования без потерь, в модулях мозаичного изображения и срезов. Модуль 112 компенсации движения выполняет обработку компенсации движения оптимального режима прогнозирования между кадрами, представленного информацией режима прогнозирования между кадрами, используя вектор движения и опорное изображение. Модуль 112 компенсации движения подает прогнозируемое изображение, сгенерированное как результат его обработки, на переключатель 113.
В случае, когда информация режима прогнозирования внутри кадра поступает из модуля 102 декодирования без потерь, переключатель 113 подает прогнозируемое изображение, поступающее из модуля 111 прогнозирования внутри кадра, в модуль 105 суммирования. С другой стороны, в случае, когда информация режима прогнозирования между кадрами поступает из модуля 102 декодирования без потерь, переключатель 113 подает прогнозируемое изображение, передаваемое из модуля 112 компенсации движения, в модуль 105 суммирования.
Пример обработки декодирования файла
Далее, со ссылкой на блок-схему последовательности операций, представленную на фиг. 11, будет описана обработка декодирования кадра, выполняемая устройством декодирования, представленным на фиг. 8. Такая обработка декодирования файла представляет собой обработку для файла, который генерируется в ходе обработки генерирования файла, представленной на фиг. 4. Другими словами, даже когда начальный код и данные заполнителя удаляют, характеристика параметра HRD устанавливается снова в этом файле.
На этапе S71, модуль 71 приема файла принимает файл МР4 и подает принятый файл в модуль 72 получения параметра.
На этапе S72, модуль 72 получения параметра получает moov, который представляет собой информацию управления, из файла МР4, и подает полученный moov в модуль 74 считывания данных. Модуль 74 считывания данных получает SPS и PPS из moov на этапе S73. На этапе S74 модуль 72 получения параметра получает размер модуля текущего mdat декодирования на основе moov, полученного на этапе S72.
На этапе S75 модуль 72 получения параметра детектирует NAL на основе размера модуля, полученного на этапе S74. В это время, например, начальный код также получают и ссылаются на него, в соответствии со структурой файла, которая будет описана ниже со ссылкой на фиг. 17 и 18.
На этапе S76, модуль 74 считывания данных считывает данные из NAL, детектируемого на этапе S75, и подает считанные данные в декодер 52. Здесь, в случае, когда NAL представляет собой SPS или PPS, SPS или PPS в moov, который был получен на этапе S73, имеет принятое по умолчанию значение, и используются SPS или PPS NAL.
На этапе S77, декодер 52 выполняет обработку декодирования. В это время декодер 52 выполняет обработку декодирования на основе параметра HRD.
Здесь, в соответствии с настоящей технологией, файл конфигурируют, используя начальный код и данные заполнителя, установленные без их удаления, таким образом, что поддерживается характеристика параметра HRD, и, соответственно, обработка декодирования может быть правильно выполнена.
Кроме того, даже когда начальный код и данные заполнителя удалены, параметры HRD устанавливают снова при обработке генерирования файла, представленного на фиг. 4, и, соответственно, может быть выполнена правильная обработка декодирования.
Например, в случае файла МР4, присутствует обозначение скорости передачи VBR или CBR, предоставляемое извне. В то время как поток выводят в декодер 52 из модуля 74 считывания данных, в том виде, как он есть в случае VBR, в случае CBR, добавляют данные заполнителя или бит заполнителя для формирования CBR с помощью модуля 74 считывания данных, и параметр HRD перезаписывают. Также в это время, параметр HRD файла МР4 является нормальным и может быть перезаписан, так, чтобы он был нормальным, также на стороне декодирования.
Другой пример обработки декодирования файла
Далее, со ссылкой на блок-схему последовательности операций, представленную на фиг. 12, будет описана обработка декодирования файла, выполняемая устройством декодирования, представленным на фиг. 8. Такая обработка декодирования файла представляет собой обработку файла, генерируемого при обработке генерирования файла, представленного на фиг. 5. Другими словами, в moov этого файла, установлен параметр идентификации, идентифицирующий является ли характеристика параметра HRD правильной или другой.
На этапе S91, модуль 71 приема файла принимает файл МР4 и подает принятый файл в модуль получения параметра 72.
На этапе S92, модуль 72 получения параметра получает moov, который представляет собой информацию управления, из файла МР4 и подает полученный moov в модуль 74 считывания данных. Модуль 74 считывания данных получает SPS и PPS из moov на этапе S93. На этапе S94, модуль 72 получения параметра получает параметр идентификации HRD из moov, который был получен на этапе S92, и подает полученный параметр идентификации HRD в модуль 73 управления декодированием. На этапе S95, модуль 72 получения параметра получает размер модуля текущего mdat декодирования на основе moov, полученного на этапе S92.
На этапе S96, модуль 72 получения параметра детектирует NAL на основе размера модуля, полученного на этапе S95. В это время, например, начальный код также получают и обращаются к нему, в соответствии со структурой файла, которая будет описана ниже со ссылкой на фиг. 17 и 18.
На этапе S97, модуль 74 считывания данных считывает данные из NAL, детектированного на этапе S96, и подает считанные данные в декодер 52. Здесь, в случае, когда NAL представляет собой SPS или PPS, SPS или PPS moov, полученный на этапе S93, имеет принятое по умолчанию значение, и используются SPS или PPS NAL.
На этапе S98, модуль 73 управления декодированием определяет, установлен ли параметр идентификации HRD, переданный из модуля 72 получения параметра, в "1". В случае, когда определяют, что параметр идентификации HRD равен "1" на этапе S98, обработка переходит на этап S99.
На этапе S99, декодер 52 выполняет обработку декодирования, в соответствии с параметром HRD, под управлением модуля 73 управления декодированием.
С другой стороны, в случае, когда определяют, что параметр идентификации HRD не равен "1" на этапе S98, обработка переходит на этап S100.
На этапе S100, декодер 52 выполняет обработку декодирования, игнорируя параметр HRD, под управлением модуля 73 управления декодированием.
Здесь, в соответствии с настоящей технологией, файл конфигурируют таким образом, что начальный код и данные заполнителя устанавливают, без их удаления, таким образом, что поддерживается характеристика параметра HRD, и, соответственно, обработка декодирования может быть правильно выполнена.
Кроме того, даже когда начальный код и данные заполнителя удалены, при обработке генерирования файла, представленной на фиг. 5, устанавливают параметр идентификации, идентифицирующий, является или нет правильным этот параметр HRD, и соответственно, обработку декодирования можно правильно выполнить.
2. Второй вариант осуществления
Пример конфигурации кодера
На фиг. 13 показана блок-схема, которая иллюстрирует пример конфигурации устройства 201 кодирования изображения, в соответствии с вариантом осуществления, для генерирования описанного выше файла МР4. Как представлено на фиг. 13, устройство 201 кодирования изображения включает в себя: модуль 211 кодирования; буфер 212 VCL; буфер 213, не являющийся VCL; модуль 214 генерирования файла; и модуль 215 управления.
Модуль 211 кодирования, представленный на фиг. 13, соответствует кодеру 1, представленному на фиг. 1. Кроме того, в буфер 212 VCL, буфер 213 не являющийся VCL, модуль 214 генерирования файла и модуль 215 управления, показанные на фиг. 13, соответствуют модулю 2 генерирования файла, представленному на фиг. 1.
Модуль 211 кодирования представляет собой кодер, который работает в соответствии с системой HEVC. Модуль 211 кодирования последовательно получает изображения, которые должны быть кодированы, из источника видеоданных, такого как камера, или телевизионный тюнер, подключенный к устройству 201 кодирования изображения. Затем модуль 211 кодирования кодирует полученные изображения, используя параметры, включенные в SPS, PPS и APS, генерируя, таким образом, поток битов данных изображения. Кроме того, модуль 211 кодирования генерирует SPS и PPS, как модуль, не являющийся VCL NAL. С другой стороны, модуль 211 кодирования генерирует данные заполнителя и поток битов данных изображения как модуль VCL NAL. Модуль 211 кодирования выводит данные заполнителя и поток битов данных изображения в модуль 214 генерирования файла через буфер 212 VCL. Кроме того, модуль 211 кодирования выводит SPS и PPS в модуль 214 генерирования файла через буфер 213, который не является VCL. Буфер 212 VCL помещает в буфер модуль VCL NAL. Буфер 213, который не является VCL помещает в буфер модуль, который не является VCL NAL. Модуль 214 генерирования файла генерирует файл 151 HEVC, который содержит последовательность кодированных данных изображения. Более конкретно, модуль 214 генерирования файла вставляет данные заполнителя и поток битов данных изображения в область данных (например, mdat box) файла 151 HEVC в порядке декодировании, как модуль VCL NAL. Кроме того, модуль 214 генерирования файла вставляет SPS и PPS в область заголовка (например, блок moov) файла 151 HEVC, как модуль, не являющийся VCL NAL. Модуль 215 управления управляет обработкой кодирования, выполняемой устройством 201 кодирования изображения.
Кроме того, модуль 215 управления может управлять генерированием кодированного потока, используя виртуальную модель декодера, называемого HRD (гипотетический опорный декодер: виртуальный опорный декодер), таким образом, что буфер декодера не совершает ошибку. В системе HEVC, в качестве точек соответствия (точек проверки для стандартного соответствия), которые должны удовлетворять кодированным потоком, определены два вида точек соответствия, включающие в себя Тип 1 и Тип 2. Точка соответствия Типа 1 применяется для модуля VCL NAL и модуля NAL данных фильтра, но не применяется для модуля, не являющегося VCL NAL. Точка соответствия Типа 2 применяется для модуля VCL NAL, модуля NAL данных фильтра, и модуля, не являющегося VCL NAL. В этом варианте осуществления данные заполнителя определяют не как модуль, не являющийся VCL NAL, но как модуль VCL NAL. Таким образом, модуль 215 управления может выполнять управление генерированием кодированного потока таким образом, что не только поток битов данных изображения, но также и данные заполнителя удовлетворяют точке соответствия Типу 1.
Пример конфигурации декодера
На фиг. 14 показана блок-схема, которая иллюстрирует пример конфигурации устройства декодирования изображения, в соответствии с вариантом осуществления, предназначенного для декодирования изображения из файла МР4, описанного выше. Как представлено на фиг. 14, устройство 251 декодирования изображения включает в себя: буфер 261 VCL; буфер 262 не являющийся VCL, запоминающее устройство 263 параметра; модуль 264 декодирования; и модуль 265 управления.
Здесь буфер 261 VCL, буфер 262, не являющийся VCL, запоминающее устройство 263 параметра и модуль 265 управления, представленные на фиг. 14, соответствуют модулю 51 считывания файла, который представлен на фиг. 8. Кроме того, модуль 264 декодирования, представленный на фиг. 14, соответствует декодеру 52, показанному на фиг. 8.
В буфер 261 VCL помещают поток битов данных изображения и данных заполнителя, считанных из области данных (например, блока mdat) файла. В буфере 262, не являющемся VCL, размещают установленные параметры, считанные из области заголовка (например, модуля moov) файла. В запоминающем устройстве 263 параметра содержатся все наборы параметров, размещенные в области заголовка файла, получаемого через буфер 262, не являющийся VCL. Модуль 264 декодирования представляет собой декодер, который работает в соответствии с системой HEVC. Модуль 264 декодирования декодирует изображения из потоков битов, которые последовательно получают из области данных файла через буфер 261 VCL. Когда декодируют изображение, модуль 264 декодирования использует параметры, размещенные в SPS и PPS, сохраненные в запоминающем устройстве 263 параметра. Модуль 265 управления управляет обработкой декодирования, выполняемой устройством 251 декодирования изображения.
3. Третий вариант осуществления
Обычная структура выборки МР4 video
На фиг. 15 показана схема, которая иллюстрирует пример обычной структуры выборки МР4 video. Модуль NAL, который конфигурируют в выборку видеоданных, определен, как представлено на фиг. 15.
В примере, показанном на фиг. 15, представлен поток AVC, который сконфигурирован множеством модулей NAL. В потоке AVC одно изображение сконфигурировано одним модулем доступа. В качестве типов модулей NAL, конфигурирующих модуль доступа, присутствуют модули, такие как SPS, PPS, ограничитель модуля доступа, SEI, изображение IDR, изображение, не являющееся IDR, конец последовательности и данные заполнителя.
В обычной спецификации МР4 один модуль доступа содержится в одной выборке видеоданных. Другими словами, размер модуля добавляют к каждому модулю NAL, который конфигурирует один модуль доступа, и полученный в результате модуль NAL сохраняют в одной выборке видеоданных. Однако, в случае, когда модуль NAL SPS, PPS или данные заполнителя присутствуют в модуле NAL, конфигурирующем модуль доступа, модуль NAL SPS, PPS, или данные заполнителя исключают из выборки видеоданных.
Например, в то время как модуль доступа, расположенный первым слева, сконфигурирован из модулей NAL ограничителя модуля доступа, SPS, PPS, SEI и изображения IDR, модули NAL SPS и PPS исключаются, когда модуль доступа содержится в выборке.
В то время как модуль доступа, расположенный вторым с левой стороны, сконфигурирован из модулей NAL ограничителя модуля доступа, SPS, SEI, изображения, не являющегося IDR, и данных заполнителя, модули NAL, SPS и данные заполнителя исключаются, когда модуль доступа сохранен в выборке.
В то время как модуль доступа, расположенный третьим с левой стороны, сконфигурирован из модулей NAL ограничителя модуля доступа, SPS, SEI и изображением, не являющимся IDR, модули NAL, SPS, исключенные из модуля доступа, сохраняют в выборке.
Пример конфигурации одного модуля доступа потока AVC
На фиг. 16 показана схема, которая иллюстрирует пример конфигурации одного модуля доступа потока AVC.
Как представлено на фиг. 16, фактически, идентификатор (начальный код) добавлен перед модулем NAL в одном модуле доступа потока AVC, обычно такие идентификаторы также исключены, когда модуль доступа содержится в выборке.
Когда модули NAL в соответствии с этим идентификатором (начальным кодом) и данными заполнителя исключены, как описано выше, характеристика параметра HRD не поддерживается. Таким образом, в соответствии с настоящей технологией, модуль доступа сохранен в выборке МР4, в том виде, как он есть.
Пример сохранения модуля доступа в соответствии с настоящей технологией
На фиг. 17 и 18 показаны схемы, которые иллюстрируют примеры структуры выборки МР4 video, в соответствии с настоящей технологией.
В примере А на фиг. 17 размер модуля, описывающий размер модуля доступа, добавлен к началу модуля доступа, и модуль доступа сохранен в выборке МР4 в том виде, как он есть. Здесь, "в том виде, как есть" представляет состояние, в котором начальный код прикреплен, и в случае, когда данные заполнителя присутствуют, эти данные заполнителя не удалены. Другими словами, "в том виде, как есть" представляет состояние, в котором начальный код и данные заполнителя установлены.
В случае А на фиг. 17, на этапе S75 представленном на фиг. 11, или этапе S96, представленном на фиг. 12, описанных выше, детектируют модуль доступа, соответствующий размеру модуля, и NAL детектируют на основе начального кода, включенного в модуль доступа. Затем, на этапе S76, представленном на фиг. 11, или этапе S97, представленном на фиг. 12, получают данные NAL, вплоть до следующего начального кода. Случай А на фиг. 17 представляет очень простую структуру.
В случае В на фиг. 17 размер модуля, описывающий размер каждого модуля NAL, включающий в себя начальный код, добавлен к началу каждого модуля NAL, конфигурирующего модуль доступа, и модуль доступа сохранен в выборке МР4 в том виде, как он есть.
В случае В на фиг. 17, на этапе S75, представленном на фиг. 11, или этапе S96, представленном на фиг. 12, описанных выше, детектируют начальный код и NAL, соответствующие размеру модуля. Затем, на этапе S76, представленном на фиг. И, или на этапе S97, представленном на фиг. 12, помимо них, начальный код отбрасывают, и получают данные NAL. В этом случае, в то время как структура близка к обычной структуре "размера+данные", и внедрение является таким же, как использовалось для них, необходимо анализировать начальный код на основе полученной структуры данных.
В случае С на фиг. 18 размер модуля, описывающий размер каждого модуля NAL, добавлен к началу каждого модуля NAL, конфигурирующего модуль доступа, и добавлен размер начального кода, включающий в себя 0 данных, другими словами, размер смещения, вплоть до NAL. Затем модуль NAL, в котором добавлен размер модуля и размер смещения, сохранен в том виде, как он есть в выборке МР4.
В случае С на фиг. 18, на этапе S75, представленном на фиг. 11, или этапе S96, представленном на фиг. 12, описанных выше, получают размер смещения, и NAL детектируют из положения, полученного в результате выполнения пропуска соответствующего смещения. Затем, на этапе S76, представленном на фиг. 11, или этапе S97, представленном на фиг. 12, получают данные NAL, соответствующие размеру модуля.
Кроме того, в позиции С на фиг. 18 представлен пример случая, когда FixedStartCodeSizeFlag блока соответствия HRD, представленного на фиг. 19, который будет описан ниже, установлен в "0". В случае, когда FixedStartCodeSizeFlag установлен в "0", поскольку размер начального кода не фиксирован, размер начального кода содержится в поле размера смещения.
В отличие от этого, в случае, когда FixedStartCodeSizeFlag блока соответствия HRD установлен "1", выборка МР4 иллюстрирует структуру, представленную в позиции С на фиг. 18.
В примере С', представленном на фиг. 18, размер модуля, описывающий размер каждого модуля NAL, добавлен к началу каждого модуля NAL, который конфигурирует модуль доступа, и модуль NAL сохранен в выборке МР4 в том виде, как он есть.
Другими словами, в случае, когда FixedStartCodeSizeFlag равен "1", поскольку размер начального кода является фиксированным, как размер начального кода = 4 байта, поле размера смещения не требуется размещать перед начальным кодом.
В этом случае, формируется новая структура анализа.
В случае D на фиг. 18, размер модуля, описывающий размер каждого модуля NAL, размер начального кода и начальный код добавляют к началу каждого модуля NAL, который конфигурирует модуль доступа, и добавляют размер начального кода, включающий в себя 0 данных, другими словами, размер смещения вплоть до NAL. Затем модуль NAL, к которому добавлены размер модуля и размер смещения, сохраняют в выборке МР4 в том виде, как он есть.
В случае D на фиг. 18, на этапе S75 представленном на фиг. 11, или этапе S96, представленном на фиг. 12, описанных выше, детектируют "размер смещения + начальный код + NAL", соответствующие размеру модуля, получают размер смещения, и NAL детектируют от положения, полученного в результате выполнения пропуска соответствующего смещения. Затем, на этапе S76, представленном на фиг. 11, или этапе S97, представленном на фиг. 12, получают данные NAL, соответствующие "размер модуля - (размер смещения + начальный код)".
Кроме того, в позиции D на фиг. 18 представлен пример случая, когда FixedStartCodeSizeFlag блока соответствия HRD установлен в "0". В этом случае, когда FixedStartCodeSizeFlag установлен в "0", поскольку размер начального кода не является фиксированным, размер начального кода сохраняют в поле размера смещения.
В отличие от этого, в случае, когда FixedStartCodeSizeFlag блока соответствия HRD установлен в "1", выборка МР4 имеет структуру, представленную в D' на фиг. 18.
В примере D', представленном на фиг. 18, размер модуля, описывающий размер каждого модуля NAL, включающего в себя начальный код, добавляют к началу каждого модуля NAL, который конфигурирует модуль доступа, и модуль NAL сохраняют в выборке МР4 в том виде, как он есть.
Другими словами, в случае, когда FixedStartCodeSizeFlag равен "1", поскольку размер начального кода является фиксированным, как размер начального кода = 4 байта, поле размера смещения не требуется размещать перед начальным кодом, и структура D' на фиг. 18 аналогична В на фиг. 17, описанной выше.
В этом случае, в то время как внедрение является таким же, как и внедрение на основе обычной структуры "размер+данные", формируется структура анализа, в которой выполняют пропуск, соответствующий размеру смещения, размещенному в начале полученной структуры данных. Кроме того, в этом случае, необходимо анализировать начальный код.
Пример расширения блока соответствия HRD
На фиг. 19 показана схема, которая иллюстрирует пример расширения блока соответствия HRD. Ниже будет просто представлен пример расширения блока соответствия HRD.
AVCSampleEntry() extends VisualSampleEntry('type') {
// тип представляет собой 'avc3' или 'avc4', (и все hevc)
AVeConfigurationBox config;
MPEG4BitRateBox(); //Optional
MPEG4ExtensionDescriptorsBox(); //Optional
HRDConformanceBox(); //Optional
}
Add HRDConformanceBox into AVCSampleEntry and AVC2SVVSampleEntry in 5.4.2.1
Add HRDConformanceBox into AVCSVCSampleEntry, AVC2SVCSampleEntry and SVCSampleEntry in 6.5.3.1.
Add HRDConformanceBox into AVCMVCSampleEntry, AVC2MVCSampleEntry and MVCSampleEntry in section7.6.3.3.
Add HRDConformanceBox into HEVC SampleEntry in section 8.4.1.1.
Вход в выборку без HRDConformanceBox используется только для выборок без начальных кодов и без заполнителей.
HRDConformanceBox может быть определен следующим образом.
класс HRDConformanceBox расширяет блок ('hrdc') {
HRDConformanceData() HRDConformance;
}
aligned(8) class HRDConformanceData {
unsigned int(1) HRDConformanceFlag;
unsigned int(1) FixedStartCodeSizeFlag;
unsigned int(2) OffsetSizeMinusOne;
unsigned int(4) reserved = 0;
unsigned int(24) reserved;
Box[] any_box; //Optional
}
HRDConformanceFlag представляет собой идентификатор, если характеристики HRD изменились в результате удаления начального кода, данных заполнителя и т.д. из элементарного потока. Когда HRDConformanceFlag равен 1, параметры HRD, например, SEI периода размещения в буфере, SEI синхронизации изображения изменились, в результате удаления начального кода, данных заполнителя и т.д. из элементарного потока.
FixedStartCodeSizeFlag представляет собой идентификатор, когда начальный код в каждом NAL имеет фиксированный размер 4 байта. Когда FixedStartCodeSizeFlag равен 1, не установлено поле смещения для каждого NAL в данных выборки, для обозначения размера начального кода.
OffsetSizeMinusOne обозначает длину в байтах поля StartcodeLength в выборке видеоданных минус один. Например, размер одного байта обозначен значением 0. Значение этого поля должно быть одним из 0, 1 или 3, соответствующего длине, кодированной 1, 2 или 4 байтами, соответственно.
HRDConformanceBox используется для обозначения статуса соответствия HRD даже в других вариантах выбора.
На фиг. 19 и в примере, описанном выше, FixedStartCodeSizeFlag, который представляет собой флаг, идентифицирующий, присутствует или информация размера начального кода, дополнительно определен в HRDConformanceBox. Таким образом, как представлено в позиции в С' на фиг. 18 и в D' на фиг. 18, в случае, когда размер начального кода является фиксированным, структура файла может быть сконфигурирована просто.
Пример сохранения модуля доступа, в соответствии с настоящей технологией
На фиг. 20 показана схема, которая иллюстрирует другой пример структуры выборки МР4 video, в соответствии с настоящей технологией.
В примере, показанном в позиции Е на фиг. 20, размер модуля удален из mdat, и сохранен элементарный поток, в который включен начальный код (зарезервирован) без изменения.
В случае Е на фиг. 20, новый блок, используемый для поддержания смещения каждого модуля доступа, как представлено на фиг. 21, и как описано ниже, добавлен к таблице выборки.
sample_count представляет собой целое число, которое задает количество входов в следующей таблице.
offset_count представляет собой целое число, которое задает количество входов в следующей подтаблице.
offset_size представляет собой целое число, которое задает размер в байтах поля смещения в следующей подтаблице.
смещение представляет собой целое число, которое задает смещение начала модуля NAL в содержащей его выборке.
Кроме того, вместо примера, представленного в позиции Е на фиг. 20, как представлено в примере Е' на фиг. 22, может быть сконфигурирован список смещений, который будет включен в начало каждой выборки, вместо дополнительного блока, описанного выше.
В примере, представленном в позиции Е1 на фиг. 22, например, список из пяти смещений, представляющий пять модулей доступа, включен в начало выборки.
Файлы выборок МР4 video, представленные на фиг. 17 и 18, генерируют с помощью модуля 2 генерирования файла, имеющего конфигурацию, представленную на фиг. 3, описанную выше, в ходе обработки генерирования файла, показанного на фиг. 4 или 5, описанных выше. Кроме того, файлы выборки МР4 video, представленные на фиг. 20 и 22, генерируют с помощью модуля 2 генерирования файла, имеющего конфигурацию, представленную на фиг. 3, описанной выше, через обработку генерирования файла, показанную на фиг. 4 или 5, описанных выше.
Кроме того, файлы выборки МР4 video, представленные на фиг. 17 и 18, декодируют с помощью модуля 51 считывания файла, имеющего конфигурацию, представленную на фиг. 9, описанную выше, в ходе обработки декодирования файла, представленного на фиг. 11 или 12, описанных выше. Кроме того, файлы среди файлов выборки МР4 video, представленных на фиг. 20 и 22, декодируют с помощью модуля 51 считывания файла, имеющего конфигурацию, показанную на фиг. 9, описанную выше в ходе обработки декодирования файла, показанного на фиг. 11 или 12, описанных выше.
Дополнительный другой пример сохранения модуля доступа в соответствии с настоящей технологией
На фиг. 23 показана схема, которая иллюстрирует дополнительно другой пример структуры выборки МР4 video, в соответствии с настоящей технологией.
В примере, представленном в позиции F на фиг. 23, размер модуля удаляют из mdat, и элементарный поток, в который включен начальный код, сохраняют (резервируют) в том виде, как он есть, без каких-либо изменений. Кроме того, для сохранения длины каждого начального кода (startcode) и модуля NAL, применяется функция вспомогательной информации выборки, определенная в КОЛЕС 14496-12.
Что касается длины каждого начального кода и модуля NAL, aux_info_type="nalz" и aux_info_type_parameter = 0 заданы, как функция вспомогательной информации выборки. Функция вспомогательной информации выборки обозначается, как "saiz", которая представляет собой использованный блок размера функции вспомогательной информации выборки (SampleAuxiliarylnformationSizesBox) и "saio", который представляет собой блок смещения функции вспомогательной информации выборки.
Пример формата функции вспомогательной информации выборки
На фиг. 24 показана схема, которая иллюстрирует пример формата функции вспомогательной информации выборки. Ниже пример формата функции вспомогательной информации выборки будет представлен аналогично.
StartcodeSizeMinusOne обозначает длину в байтах поля размера начального кода минус единица. Например, размер один байт обозначен значением 0. Значение этого поля должно быть равно одному из 0, 1 или 3, в соответствии с длиной, кодированной 1, 2 или 4 байтами, соответственно.
NALUnitSizeMinusOne обозначает длину в байтах поля размера NALUnit минус единица. Например, размер одного байта обозначен значением 0. Значение этого поля должно представлять собой одно из 0, 1 или 3, соответствующее длине, кодированной 1, 2 или 4 байтами, соответственно.
StartcodeSizeMinusOne обозначает длину в байтах начального кода подвыборки в sampleNALUnitSize обозначает длину в байтах начального кода подвыборки в выборке.
StartcodeSizeMinusOne представляет значение, полученное путем вычитания единицы из длины байта поля размера начального кода (поле размера startcode). Например, в случае, когда длина байта поля размера начального кода равна одному байту, значение StartcodeSizeMinusOne равно "0". Значение StartcodeSizeMinusOne равно 0, 1 или 3, в соответствии с длиной кода в один байт, два байта или четыре байта.
NALUnitSizeMinusOne представляет значение, которое получают путем вычитания единицы из длины байта поля размера модуля NAL (поле размера NALUnit). Например, в случае, когда длина байта поля размера модуля NAL составляет один байт, значение NALUnitSizeMinusOne равно "0". Значение NALUnitSizeMinusOne равно 0, 1 или 3, в соответствии с длиной кода один байт, два байта или четыре байта.
StartcodeSize представляет длину в байтах начального кода (Startcode) подвыборки в пределах выборки.
NALUnitSize представляет длину в байтах модуля NAL подвыборки в пределах выборки.
Формат может быть сконфигурирован, как описано выше. Кроме того, формат функции вспомогательной информации выборки может быть сконфигурирован, как описано ниже.
Другой пример формата функции вспомогательной информации выборки
На фиг. 25 показана схема, которая иллюстрирует другой пример формата функции вспомогательной информации выборки. Ниже будет аналогично представлен другой пример формата функции вспомогательной информации выборки.
FixedStartCodeSizeFlag представляет собой идентификатор, когда начальный код перед каждым модулем NAL имеет фиксированный размер 4 байта. Когда FixedStartCodeSizeFlag равен 1.
StartcodeSizeMinusOne обозначает длину в байтах поля размера начального кода минус единица. Например, размер один байта обозначается значением 0. Значение в этом поле должно представлять одно из 0, 1 или 3, в соответствии с длиной, кодированной с использованием 1, 2 или 4 байта, соответственно.
NALUnitSizeMinusOne обозначает длину в байтах поля NALUnitSize минус единица. Например, размер один байт обозначен значением 0. Значение в этом поле должно составлять одно из 0, 1 или 3, соответствующее длине, кодированной 1, 2 или 4 байтами, соответственно.
StartcodeSizeMinusOne обозначает длину в байтах начального кода подвыборки в выборке.
NALUnitSize обозначает длину в байтах начального кода подвыборки в выборке.
FixedStartCodeSizeFlag представляет собой информацию флага. FixedStartCodeSizeFlag представляет собой информацию флага, которая представляет, равен или нет размер начального кода (startcode), расположенный перед каждым модулем NAL, четырем байтам. Значение FixedStartCodeSizeFlag устанавливается в "1" в случае, когда размер начального кода (startcode), расположенного перед каждым модулем NAL, составляет четыре байта, и устанавливается в "0" в противном случае. Другими словами, в случае, когда значение FixedStartCodeSizeFlag равно "1", это представляет, что размер начального кода (startcode), расположенного перед каждым модулем NAL, равен четыре байта. С другой стороны, в случае, когда значение FixedStartCodeSizeFlag равно "0", это представляет, что размер начального кода (startcode), расположенного перед каждым модулем NAL, не равен четырем байтам.
Каждый параметр StartcodeSizeMinusOne, NALUnitSizeMinusOne, и StartcodeSize, и NALUnitSize аналогичны случаю, представленному на фиг. 24.
В случае, когда FixedStartCodeSizeFlag блока HRDConformanceData установлено в "1", когда размер каждого из начальных кодов включен, существует вероятность того, что количество данных нежелательно увеличится. Таким образом, путем конфигурирования, как и в примере, представленном на фиг. 25, в этом случае может быть сформирована структура, имеющая размер только модулей NAL, в результате чего можно предотвратить ненужное увеличение количества данных. Кроме того, в этом случае, HRDConformanceBox имеет только HRDConformanceFlag.
Кроме того, файл выборки МР4 video, представленный на фиг. 23, генерируют в модуле 2 генерирования файла в конфигурации, показанной на фиг. 3, описанной выше в ходе обработки генерирования файла, представленного на фиг. 4 или 5.
Кроме того, файл выборки МР4 video, представленный на фиг. 23, декодируют с помощью модуля 51 считывания файла в конфигурации, показанной на фиг. 9, описанной выше при обработке декодирования файла, показанного на фиг. 11, или 12, описанных выше.
В таком варианте выбора размер модуля удаляют из mdat, и элементарный поток, включающий в себя начальный код, просто сохраняют без модификации. И для сохранения длины каждого начального кода и модуля NAL мы предлагаем использовать функцию вспомогательной информации выборки, определяемую в ISO/IEC 14496-12. На фиг. 23 показан пример выборки, в соответствии с таким вариантом выбора.
Для каждой длины начального кода и модуля NAL, которые предусмотрены, как вспомогательная информация выборки, предусмотрен aux_info_type, равный 'nalz' и aux_info_type_parameter, равный 0 вспомогательной информации выборки, которая обозначает использование SampleAuxiliarylnformationSizesBox ('saiz') и SampleAuxiliarylnformationOffsetsBox ('saio').
Формат вспомогательной информации выборки для выборок этого типа должен представлять собой:
FixedStartCodeSizeFlag представляет собой идентификатор, когда начальный код перед каждым модулем NAL имеет фиксированный размер 4 байта. Когда FixedStartCodeSizeFlag равен 1.
StartcodeSizeMinusOne обозначает длину в байтах поля размера начального кода минус единица. Например, размер один байт обозначен значением 0. Значение этого поля должно быть одним из 0, 1 или 3, соответствующим длине, кодированной с использованием 1, 2 или 4 байта, соответственно.
NALUnitSizeMinusOne обозначает длину в байтах поля NALUnitSize минус единица. Например, размер один байт обозначен значением 0. Значение этого поля должно быть равно одному из 0, 1 или 3, в соответствии с длиной, кодированной 1, 2 или 4 байтами, соответственно.
StartcodeSize обозначает длину в байтах начального кода подвыборки в выборке.
NALUnitSize обозначает длину в байтах модуля NAL выборки подвыборки в выборке.
Сравнение структуры выборки МР4 video, в соответствии с настоящей технологией
В примере, показанном на фиг. 26, представлена таблица, используемая для сравнения структуры выборки МР4 video, описанной выше.
В примере сохранения модуля доступа, показанном в позиции В на фиг. 17, существует преимущество того, что он близок к обычной (используемой в настоящее время) структуре "размер+данные".
В примере сохранения модуля доступа, представленного в позиции С на фиг. 18 или в позиции С' на фиг. 18, присутствуют преимущества того, чтобы они близки к обычной (используемой в настоящее время) структуре "размер + данные" и не меняют семантику размера модуля. Кроме того, в случае, когда размер начального кода является фиксированным, существует преимущество, состоящее в том, что структура данных аналогична обычной (используемой в настоящее время) конструкции формата файла.
В примере сохранения модуля доступа, представленного в позиции D на фиг. 18 или в позиции D' на фиг. 18, существует преимущество того, что она близка к обычной (используемой в настоящее время) структуре "размер+данные".
В примере сохранения модуля доступа, представленного в позиции Ε на фиг. 20 или позиции Е' на фиг. 22, существует преимущество того, что сохранение модуля доступа в элементарном потоке выполняется просто (другими словами, начальный код не требуется удалять, и этот размер модуля и размер начального кода не требуется суммировать).
В случае, когда соответствие конструкции выборки является существенным фактором, наилучший выбор представляет собой позиция С на фиг. 18, или С' на фиг. 18. Однако, позиция Ε на фиг. 20 или позиция Е' на фиг. 22 представляют собой наилучший способ сохранения элементарного потока без каких-либо изменений.
Все описанные выше примеры сохранения модуля доступа были предложены для сохранения начального кода в mdat (в данном материале следующие варианты выбора предложены для сохранения начального кода в mdat (как для формата файла AVC, так и для формата файла HEVC)).
Кроме того, структура выборки МР4 video, представленная на фиг. 23, описанная выше, может быть выполнена, как представлено на следующей фиг. 27.
Другой пример сохранения модуля доступа в соответствии с настоящей технологией
На фиг. 27 показана схема, которая иллюстрирует другой пример структуры выборки МР4 video, представленной на фиг. 23.
В примере G на фиг. 27, аналогично примеру, показанному в позиции F на фиг. 23, размер модуля удаляют из mdat, и элементарный поток, в который включен начальный код, сохраняют (резервируют), в том виде, как он есть, без каких-либо изменений. Однако, в отличие от примера, представленного в позиции F на фиг. 23, в элементарном потоке, каждый начальный код (startcode) включен в модуль NAL, и для сохранения длины модуля NAL, включающего в себя начальный код, применяется функция вспомогательной информации выборки, определенная в ISO/IEC 14496-12.
Что касается длины каждого модуля NAL, aux_info_type = "nalz" и aux_info_type_parameter = 0 заданы, как функция вспомогательной информации выборки. Функция вспомогательной информации выборки обозначается, как "saiz", то есть, используется блок размера функции вспомогательной информации выборки (SampleAuxiliaiylnformationSizesBox), и "saio", то есть блок смещения функции вспомогательной информации выборки.
Другими словами, в примере, представленном в позиции G на фиг. 27, в качестве функции вспомогательной информации выборки, не сохранена длина начального кода, и сохранена только длина модуля NAL, включающая в себя начальный код. В соответствии с этим, пример в позиции G на фиг. 27 является таким же, как и пример, показанный в позиции F на фиг. 23, за исключением того, что длина начального кода не сохранена.
Файл выборки МР4 video, представленный на фиг. 27, генерируют с помощью модуля 2 генерирования файла, в конфигурации, показанной на фиг. 3, описанной выше, при обработке генерирования файла, представленной на фиг. 4 или 5, описанных выше.
Кроме того, файл выборки МР4 video, представленный на фиг. 27, декодируют с помощью модуля 51 считывания файла, в конфигурации, показанной на фиг. 9, описанной выше при обработке декодирования файла, представленной на фиг. 11 или 12, описанной выше.
4. Четвертый вариант осуществления
Здесь обычно, когда элементарный поток МР4 должен быть сохранен в MPEG2-PS, необходимо выделить размер модуля и вставить начальный код. И, наоборот, когда элементарный поток MPEG2-PS должен быть сохранен в МР4, необходимо выделить начальный код и вставить размер модуля. Другими словами, по меньшей мере, два типа потоков присутствуют, и когда поток формируют как файл, поток должен быть изменен, и требуется флаг, представляющий соответствие/отсутствие соответствия, пригодного для HRD.
Кроме того, в случае, когда существуют различные вариации в потоке, в соответствии с присутствием/отсутствием начального кода, возникает опасность потери совместимости.
В отличие от этого, определен формат потока байтов, который представляет собой поток, включающий в себя исходный код, который должен быть сохранен в файле MPEG2-PS. Благодаря обеспечению возможности сохранения потока в файле МР4, улучшается совместимость между двумя файлами.
В соответствии с настоящей технологией, в выборке, для того, чтобы идентифицировать, присутствует или нет поток байтов, определен блок информации формата потока байтов, используемый для сохранения информация в формате потока байтов.
Блок информации формата потока байтов
Далее, со ссылкой на фиг. 28, будет описан блок информации формата потока байтов.
Блок информации формата потока байтов определен, как не обязательный для ввода выборки, в которой может быть вставлен набор параметров и т.п. Ввод выборки, в которой набор параметров и т.п. может быть вставлен, может быть сохранен также, как поток байтов. Кроме того, в это время, для того, чтобы сигнализировать о том, что ввод выборки представляет собой поток байтов, сохраняют этот блок.
В примере, показанном на фиг. 28, представлена спецификация блока информации формата потока байтов.
Блок информации формата потока байтов может быть сохранен, как ввод выборки 'avc3', 'avc4', 'mvc3', 'mvc4' или 'hev1' (в блоке ввода выборки дорожки носителя мультимедийных данных).
Такой блок должен быть сохранен, когда данные выборки структурированы, в соответствии с форматом потока байтов, как определено в ISO/IEC 14496-10.
Блок информации подвыборки в выборке может использоваться для сохранения одного или больше размера модуля непрерывного потока байтов NAL.
Подвыборка определена, как один или больше модулей непрерывного потока байтов NAL, как определено в ISO/IEC 14496-10.
Box Type: 'bsfi'
Container: Sample Entry ('avc3', 'avc4', 'mvc3', 'mvc4' or 'hev1')Mandatory: No
Quantity: Zero or one
Class ByteStreamFormatInformationBox extends Box('bsfi') {
ByteStreamFormatInformation() ByteStreamInformation;
}
Блок информации формата потока байтов сохраняют (размещают) по тому же входу, что и "avc3", "avc4", "mvc3", "mvc4" или "hevc1" в блоке ввода выборки дорожки носителя мультимедийных данных. Ввод выборки "avc3", "avc4", "mvc3", "mvc4" или "hevc1" представляет собой ввод выборки, в который может быть вставлен набор параметров и т.п.
Такой блок сохраняют (размещают), когда данные выборки сконфигурирован в формате потока байтов, определенном в ISO/IEC 14496-10.
Блок информации подвыборки может использоваться для сохранения размера модуля NAL, включающего в себя один или больше непрерывных начальных кодов.
Подвыборка определена, как один или больше модулей непрерывного потока байтов NAL, определенных в ISO/IEC 14496-10.
Тип блока (Box Туре) представляет собой "bsfi", и вход (контейнер), включенный в него, представляет собой вход для выборки "avc3", "avc4", "mvc3", "mvc4" или "hevc1". При этом отсутствует обязательный (существенный элемент), и количество (объем) равно "0" или "1".
Блок информации формата потока байтов расширяет блок "bsfi", в котором описана информация формата потока байтов.
В блоке информации формата потока байтов, сконфигурированном, как описано выше, как представлено на фиг. 29, в результате вставки только ввода выборки "avc5", "avc6", "mvc5", "mvc6" или "hevc2", которые представляют собой новые форматы, можно расширить ввод выборки.
На фиг. 29 показана схема, которая иллюстрирует другой пример блока информации формата потока байтов.
Блок информации формата потока байтов должен быть сохранен во вводе выборки 'avc5', 'avc6', 'mvc5', 'mvc6' или 'hev2' (в блоке ввода выборки дорожки носителя мультимедийных данных).
Этот блок должен быть сохранен, когда данные выборки структурированы форматом потока байтов, как определено в ISO/IEC 14496-10.
Блок информации подвыборки может использоваться для сохранения одного или больше размера модуля непрерывного потока байтов NAL
Подвыборка определена, как один или больше модулей непрерывного потока байтов NAL, как определено в ISO/IEC 14496-10.
Box Type: 'bsfi'
Container: Sample Entry ('avc5', 'avc6', 'mvc5', 'mvc6' or 'hev2')Mandatory: No
Quantity: Zero or one
Class ByteStreamFormatInformationBox extends Box('bsfi') {
ByteStreamFormatInformation() ByteStreamInformation;
}
В то время как "avc3", "avc4", "mvc3", "mvc4" или "hevc1" представляют собой тип кодека, в котором можно вставить установленный параметр, в случае "avc3", "avc4", "mvc3", "mvc4" или "hevc1", возникает момент времени, когда начальный код вставлен в него, и момент времени, когда начальный код не вставлен.
В отличие от этого, как представлено на фиг. 29, путем расширения ввода выборки "avc5", "avc6", "mvc5", "mvc6", "hev2" и т.п., например, как тип кодека, в который вставлен начальный код, и ссылки на этот ввод выборки, можно идентифицировать, присутствует или нет поток байтов в выборке.
Кроме того, в случае, когда ввод выборки представляет собой "avc3", "avc4", "mvc3", "mvc4" или "hevc1", в результате конфигурирования информации формата потока байтов, как описано ниже, можно идентифицировать, присутствует или нет поток байтов в выборке (другими словами, вставлен ли в него начальный код или нет).
Кроме того, может быть представлена структура потока байтов подвыборки.
Кроме того, в случае "avc5", "avc6", "mvc5", "mvc6" или "hev2", в результате конфигурирования информации формата потока байтов, как описано ниже, может быть представлена структура потока байтов подвыборки.
Пример структуры данных информации формата потока байтов
На фиг. 30 показана схема, которая иллюстрирует пример структуры данных информации формата потока байтов, сохраненной в каждом вводе выборки.
aligned(8) class ByteStreamFormatInformation {
unsigned int(1) StartcodePresentFlag;
unsigned int(1) ZeroBytePresentFlag;
unsigned int(1) LeadingZeroBytesPresentFlag;
unsigned int(1) TrailingZeroBytesPresentFlag;
unsigned int(4) reserved=0;
unsigned int(24) reserved;
Box[] any_box; //Optional
}
StartcodePresentFlag представляет собой флаг, который представляет присутствие/отсутствие начального кода в выборке. В случае, когда каждая из всех подвыборок, которые включены в выборку, включает в себя начальный код из трех байтов перед модулем NAL, StartcodePresentFlag равен "1". ZeroBytePresentFlag представляет собой флаг, который представляет присутствие/отсутствие нулевых данных размером один байт перед начальным кодом, и, в случае, когда этот флаг установлен в "1", он представляет, что начальный код состоит из четырех байтов.
Кроме того, вместо StartcodePresentFlag и ZeroBytePresentFlag, начальный код может быть представлен, как состоящий из трех байтов или четырех байтов, используя флаг из двух битов.
LeadingZeroBytePresentFlag представляет собой флаг, который представляет присутствие/отсутствие нулевых данных в выборке. Среди подвыборок, включенных в выборку, в случае, когда множество 0x00 из одного байта включено перед тремя байтами или четырьмя байтами, по меньшей мере, одной подвыборки, LeadingZeroBytePresentFlag установлен в "1". В случае, когда LeadingZeroBytePresentFlag установлен в "0", можно определить, что начало подвыборки представляет собой начальный код фиксированной длины.
TrailingZeroBytePresentFlag представляет собой флаг, который представляет присутствие/отсутствие нулевых данных в выборке. Среди подвыборок, включенных в выборку, в случае, когда множество 0x00 размером в один байт включено после модуля NAL размером три байта, по меньшей мере, одной подвыборки, TrailingZeroBytePresentFlag установлен в "1".
Кроме того, среди таких флагов, в то время как все флаги могут быть размещены, все флаги не являются существенными, и любой другой флаг может быть добавлен.
Пример сохранения модуля NAL, в соответствии с настоящей технологией
Далее будет описан пример сохранения модуля NAL в случае, когда используется описанная выше информация формата потока байтов. На фиг. 31 показана схема, которая иллюстрирует пример структуры выборки МР4 video для случая структуры 1, в котором 0x00 (нулевые данные) присутствуют перед и после модуля NAL. Другими словами, пример, показанный на фиг. 31, представляет собой пример структуры выборки МР4 video для случая, когда все StartcodePresentFlag, ZeroBytePresentFlag, LeadingZeroBytePresentFlag, и TrailingZeroBytePresentFlag, которые представляют собой флаги информации формата потока байтов, описанные выше, установлены в "1".
В случае примера, представленного на фиг. 31, иллюстрируется пример, в котором выборка сконфигурирована из пяти подвыборок, и размер этих пяти подвыборок сохранен в блоке размера выборки, как размер выборки.
Подвыборка сконфигурирована из ведущих нулевых данных (LeadingZeroBytes), начального кода (4 байта), модуля NAL, и завершающих нулевых данных (TrailingZeroBytes), и размер от ведущих нулевых данных до оконечных нулевых данных сохранен в блоке информации подвыборки, как размер этой подвыборки. Другими словами, поскольку размер подвыборки присутствует в блоке информации подвыборки, может быть получена граница подвыборки.
Вместо блока информации подвыборки, также можно использовать структуру, такую, как показано в примере, в позиции G на фиг. 27. В качестве функции вспомогательной информации выборки заданы aux_info_type="bsfi" и aux_irifo_type_parameter=0. Та же функция вспомогательной информации выборки обозначена, как "saiz", то есть, представляет собой блок размера функции вспомогательной информации используемой выборки (SampleAuxiliaryInfoimationSizesBox) и "saio", который представляет собой блок смещения функции вспомогательной информации выборки.
Кроме того, возникают случаи, когда такая операция выполняется в CBR (постоянная скорость передачи битов: постоянная скорость передачи битов) для бизнеса. В соответствии с этим, такая структура 1, например, соответствует случаю, когда все выборки для бизнеса используются для потоков, сконфигурированных изображениями внутри кадра.
Кроме того, граница между LeadingZeroBytes и TrailingZeroBytes, например, может быть установлена операцией приложения.
На фиг. 32 показана схема, которая иллюстрирует пример структуры выборки МР4 video в случае структуры 2, в которой подвыборка начинается с начального кода, и 0x00 (нулевые данные) не присутствуют. Другими словами, пример, показанный на фиг. 32, иллюстрирует пример структуры выборки МР4 video для случая, когда StartcodePresentFlag и ZeroBytePresentFlag установлены в 1, и LeadingZeroBytePresentFlag, и TrailingZeroBytePresentFlag установлены в 0.
В случае примера, показанного на фиг. 32, иллюстрируется пример, в котором выборка сконфигурирована пятью подвыборками, и размер этих пяти подвыборок сохранен в блоке размера выборки, как размер выборки.
Подвыборка сконфигурирована по начальному коду (четыре байта) и модулю NAL, и размер от начального кода до модуля NAL сохранен в блоке информации подвыборки, как размер подвыборки. Другими словами, поскольку размер подвыборки присутствует в блоке информации подвыборки, может быть получена граница подвыборки.
Такая структура 2 представляет самый простой пример.
На фиг. 33 показана схема, которая иллюстрирует пример структуры выборки МР4 video, в случае структуры 3, в которой подвыборка начинается с начального кода, и 0x00 (нулевые данные) представлены после NAL. Другими словами, пример, показанный на фиг. 33, иллюстрирует пример структуры выборки МР4 video для случая, когда StartcodePresentFlag, ZeroBytePresentFlag и TrailingZeroBytePresentFlag установлены в 1, и LeadingZeroBytePresentFlag установлен в 0.
В случае примера, представленного на фиг. 33, иллюстрируется пример, в котором выборка сконфигурирована из пяти подвыборок, и размер этих пяти подвыборок сохранен в блоке размера выборки, как размер выборки.
Подвыборка сконфигурирована по начальному коду (четыре байта), модулем NAL и завершающими нулевыми данными (TrailingZeroBytes), и размер от начального кода до завершающий нулевых данных сохранен в блоке информации подвыборки, как размер подвыборки. Другими словами, поскольку размер подвыборки присутствует в блоке информации подвыборки, может быть получена граница подвыборки.
Кроме того, в случае такой структуры 3, например, в редакторе потоков, в котором все выборки для бизнеса сконфигурированы изображениями внутри кадра, может быть известно, что фиксированная длина установлена по TrailingZero, и, в соответствии с этим, возникает преимущество, состоящее в том, что поток может быть легко отредактирован. Кроме того, возникают случаи, когда начальный код размером три байта также используется для системы телевизионной конференций и т.п.
Таким образом, информация формата потока байтов определена путем формирования информации формата потока байтов, в качестве блока. Например, поскольку подвыборка сконфигурирована, как одна из структур 1-3, описанных выше со ссылкой на фиг. 31-33, может быть идентифицировано, включен или нет поток байтов в выборку.
Файлы выборок МР4 video, представленные на фиг. 31-33, генерируют с помощью модуля 2 генерирования файла, имеющего конфигурацию, представленную на фиг. 3, описанную выше, используя обработку генерирования файла, представленную на фиг. 4 или 5, описанных выше.
Кроме того, файлы выборки МР4 video, показанные на фиг. 31-33, декодируют с помощью модуля 51 считывания файла, имеющего конфигурацию, показанную на фиг. 9, описанную выше, при обработке декодирования файла, иллюстрируемого на фиг. 11 или 12, описанных выше.
Другой пример структуры данных информации формата потока байтов
На фиг. 34 показана схема, которая иллюстрирует пример структуры данных информации формата потока байтов, сохраненной в каждом вводе выборки. Другими словами, в примере, показанном на фиг. 34, представлен другой пример структуры данных, описанной выше со ссылкой на фиг. 30.
aligned(8) class ByteStreamFormatInformation {
unsigned int(2) StartcodePresentFlag;
unsigned int(1) LeadingZeroBytesPresentFlag;
unsigned int(l) TrailingZeroBytesPresentFlag;
unsigned int(4) reserved=0;
unsigned int(24) reserved;
Box[] any_box; //Optional
}
StartcodePresentFlag представляет собой двухбитный флаг, который иллюстрирует структуру начального кода каждой из всех подвыборок.
"StartcodePresentFlag = 00b" представляет "зарезервировано".
"StartcodePresentFlag = 01b" представляет, что трехбайтный начальный код включен перед модулем NAL в каждой из всех подвыборок, включенных в выборку.
"StartcodePresentFlag = 10b" представляет, что трехбайтный начальный код и однобайтные данные ZeroByte (другими словами, конфигурирующие четыре байта), включены перед модулем NAL в каждой из всех подвыборок, включенных в выборку.
"StartcodePresentFlag = 11b" представляет, что перед модулем NAL в каждой из всех подвыборок, включенных в выборку, включен трехбайтный начальный код, и могут быть включены однобайтные данные ZeroByte. Другими словами, в этом случае, поскольку существует возможность того, что трехбайтный начальный код и четырехбайтный начальный код будут смешаны, невозможно гарантировать, составляет ли StartcodePresentFlag 01b или 10b.
Этот пример представляет собой другой пример структуры, описанной со ссылкой на фиг. 30, и представляет собой пример, в котором может быть получен размер начального кода. Кроме того, в результате двухбитного флага, появляются три байта, четыре байта или их смесь.
LeadingZeroBytePresentFlag представляет, что среди подвыборок, включенных в выборку перед начальным кодом из трех байтов или четырех байтов, по меньшей мере, одной выборки,, может быть включено множество 0x00, каждый из которых сконфигурирован одним байтом.
TrailingZeroBytePresentFlag представляет, что среди подвыборок, включенных в выборку, множество 0x00 размером один байт может быть включено после модуля NAL, по меньшей мере, одной из подвыборок.
Кроме того, также в примере, показанном на фиг. 34, в то время как все такие флаги могут присутствовать, флаги являются не существенными, и другой флаг может быть добавлен.
5. Пятый вариант осуществления
Пример конфигурации устройства преобразования файла
На фиг. 35 показана блок-схема, которая иллюстрирует пример конфигурации устройства преобразования файла, в качестве устройства обработки изображений, в котором применяется настоящая технология. Устройство 300 преобразования файла, показанное на фиг. 35, например, преобразует MPEG 2 TS в файл МР4.
В примере, представленном на фиг. 35, устройство 300 преобразования файла выполнено так, что оно включает в себя модуль 311 анализа видеопотока и модуль 2 генерирования файла, показанный на фиг. 1.
Модуль 311 анализа видеопотока анализирует формат входного видеопотока. В случае, когда формат анализируется, как MPEG 2 TS, модуль 311 анализа видеопотока подает видеопоток в модуль 2 генерирования файла.
Модуль 2 генерирования файла выполняет обработку преобразования MPEG 2 TS в файл МР4. Другими словами, модуль 2 генерирования файла, аналогично примеру, показанному на фиг. 1, генерирует файл МР4, в котором сохранен MPEG 2 TS.
Пример обработки преобразования файла
Далее, со ссылкой на блок-схему последовательности операций, представленную на фиг. 36, будет описана обработка преобразования файла, выполняемая в устройстве 300 преобразования файла, представленном на фиг. 35.
Модуль 311 анализа видеопотока, на этапе S311, анализирует формат входного видеопотока и, в случае, когда анализируют, что формат представляет собой MPEG 2 TS, передает видеопоток в модуль 2 генерирования файла.
На этапе S312, модуль 2 генерирования файла генерирует файл МР4, в котором содержится MPEG 2 TS. Эта обработка генерирования файла является такой же, как и обработка генерирования файла, описанная выше со ссылкой на фиг. 5, и, таким образом, двойное ее описание здесь не будет представлено.
Устройство 300 преобразования файла может быть выполнено, как описано выше.
В то время как устройство кодирования и устройство декодирования, использующее систему HEVC, были описаны выше, настоящая технология, как описано ниже, может быть применяться также в устройстве кодирования и устройстве декодирования, использующих систему AVC.
6. Шестой вариант осуществления
Пример конфигурации устройства кодирования
На фиг. 37 показана блок-схема, которая иллюстрирует другой пример конфигурации устройства кодирования, в качестве устройства обработки изображений, в котором применяется настоящая технология.
В конфигурации, показанной на фиг. 37, теми же номерами ссылочных позиций обозначены такие же конфигурации, как представлены на фиг. 1. Кроме того, двойное их описание здесь не представлено, соответственно.
Конфигурация устройства кодирования, представленная на фиг. 37, отличается от конфигурации, показанной на фиг. 1 тем, что кодер 401 установлен вместо кодера 1. Конфигурация устройства кодирования, показанная на фиг. 37, является общей с конфигурацией, представленной на фиг. 1 в том, что установлен модуль 2 генерирования файла.
Другими словами, изображение, такое как снятое изображение, сконфигурированное в виде модулей, представляющий собой кадры, подают в кодер 401, как входной сигнал. Кроме того, в него вводят SPS, установленный на предыдущем этапе кодера 401, не показан на чертеже, VUI, который представляет характеристику изображения, соответствующего кодированным данным для каждой последовательности, SEI и т.п.
Кодер 401 кодирует входной сигнал, используя параметры, включенные в SPS, PPS, VUI и SEI, используя систему AVC. Затем кодер 401 генерирует кодированный поток, такой как MPEG 2 TS, на основе SPS, PPS, VUI и SEI и кодированных данных, полученных в результате обработки кодирования, и подает сгенерированный кодированный поток в модуль 2 генерирования файла. Кодер 401 будет подробно описан ниже со ссылкой на фиг. 38.
Модуль 2 генерирования файла генерирует файл, содержащий кодированный поток (последовательность кодированных данных изображения), подаваемый из кодера 401.
Другими словами, устройство кодирования, показанное на фиг. 36, отличается от устройства кодирования, представленного на фиг. 1 только тем, что выполняется обработка кодирования, используя систему AVC.
Пример конфигурации модуля кодирования
На фиг. 38 показана блок-схема, которая иллюстрирует пример конфигурация кодера 401, показанного на фиг. 37.
В конфигурации, показанной на фиг. 38, тем же номерам ссылочных позиции назначены такие же конфигурации, как показано на фиг. 2. Кроме того, двойное описание не будет представлено, соответственно.
Кодер 401, показанный на фиг. 38, выполнен так, что включает в себя: A/D преобразователь 11; буфер 12 изменения компоновки экрана; модуль 13 расчетов; модуль 14 ортогонального преобразования; модуль 15 квантования; модуль 16 кодирования без потерь; буфер 17 накопления; модуль 18 обратного квантования; модуль 19 обратного ортогонального преобразования; модуль 20 суммирования; фильтр 21 удаления блоков; запоминающее устройство 22 кадра; переключатель 23; модуль 24 прогнозирования внутри кадра; модуль 25 прогнозирования/компенсации движения; модуль 26 выбора прогнозируемого изображения и модуль 27 управления скоростью.
Другими словами, конфигурация кодера 401, показанная на фиг. 38, отличается от конфигурации, показанной на фиг. 2 только тем, что фильтр 141 адаптивного смещения и адаптивный фильтр 142 контура исключены, и модуль 16 кодирования без потерь выполняет кодирование, используя не систему HEVC, а систему AVC. В соответствии с этим, кодер 401 выполняет обработку кодирования не в модулях CU, а в модулях блоков.
Цель обработки кодирования, выполняемой модулем 16 кодирования без потерь, в принципе, является такой же, как и у модуля 16 кодирования без потерь, показанного на фиг. 2, за исключением параметров фильтра адаптивного смещения и адаптивного фильтра контура. Другими словами, модуль 16 кодирования без потерь, аналогично модулю 16 кодирования без потерь, представленному на фиг. 2, получает информацию режима прогнозирования внутри кадра из модуля 24 прогнозирования внутри кадра. Кроме того, модуль 16 кодирования без потерь получает информацию режима прогнозирования между кадрами, вектор движения, информацию, используемую для установления опорного изображения, и т.п. из модуля 25 прогнозирования/компенсации движения.
Модуль 16 кодирования без потерь, аналогично модулю 16 кодирования без потерь, показанному на фиг. 2, выполняет кодирование без потерь, такое как кодирование переменной длины (например, CAVLC и т.п.), арифметическое кодирование (например, САВАС и т.п.) для квантованных коэффициентов, передаваемых из модуля 15 квантования.
Кроме того, модуль 16 кодирования без потерь, аналогично модулю 16 кодирования без потерь, представленному на фиг. 2, выполняет кодирование без потерь информации режима прогнозирования внутри кадра или информации режима прогнозирования между кадрами, вектора движения, информации, определяющей опорное изображение, информации фильтра смещения, коэффициентов фильтра и т.п., в качестве информации кодирования, относящейся к кодированию. Модуль 16 кодирования без потерь подает информацию кодирования и коэффициенты, которые были кодированы без потерь, в буфер 17 накопления, как кодированные данные, для накопления в нем. Здесь информация кодирования, которую кодируют без потерь, рассматривается, как информация заголовка коэффициентов, которые кодированы без потерь.
Фильтр 21 удаления блоков фильтрует изображение, которое было локально декодировано, переданное из модуля 20 суммирования, удаляя, таким образом, искажения блоков. Фильтр 21 удаления блоков подает изображение, полученное в результате его обработки, в запоминающее устройство 22 кадра для накопления в нем.
Изображение, накопленное в запоминающем устройстве 22 кадра, выводят в модуль 24 прогнозирования внутри кадра или в модуль 25 прогнозирования/компенсации движения, через переключатель 23, как опорное изображение.
Настоящая технология может применяться для устройства кодирования системы AVC.
Пример конфигурации устройства декодирования
На фиг. 39 показана блок-схема, которая иллюстрирует другой пример конфигурации устройства декодирования, в котором применяется настоящая технология, которая считывает и декодирует файл, генерируемый устройством кодирования, представленным на фиг. 37.
В конфигурации, показанной на фиг. 39, те же номера ссылочных позиций назначены для такой же конфигурации, как представлена на фиг. 8. Кроме того, дублированное описание не будет представлено, соответственно.
Конфигурация устройства 251 декодирования изображения, представленная на фиг. 39, отличается от конфигурации, показанной на фиг. 8 тем, что декодер 451 установлен вместо декодера 52. Конфигурация устройства 251 декодирования изображения является общей с конфигурацией, показанной на фиг. 8 в том, что установлен модуль 51 считывания файла.
Модуль 51 считывания файла устройства декодирования принимает файл МР4, сгенерированный устройством кодирования, показанным на фиг. 37, и считывает SPD, PPS, VUI, SEI, кодированные данные и т.п., конфигурирующие кодированный поток, который кодирует кодер 401, представленный на фиг. 37, из принятого файла. Модуль 51 считывания файла подает SPS, PPS, VUI, SEI и кодированные данные в декодер 451.
Декодер 451, под управлением модуля 51 считывания файла, обращается к SPS, PPS, VUI, SEI и т.п., передаваемым из модуля 51 считывания файла, и декодирует кодированные данные, переданные из модуля 51 считывания файла, используя систему AVC. Декодер 451 подает изображение, полученное в результате обработки декодирования, на последующий этап, как выходной сигнал.
Другими словами, устройство декодирования, представленное на фиг. 39, отличается от устройства декодирования, представленного на фиг. 8 только тем, что выполняется обработка декодирования с использованием системы AVC.
Пример конфигурации модуля декодирования
На фиг. 40 показана блок-схема, которая иллюстрирует пример конфигурации декодера 451, представленного на фиг. 39.
В конфигурации, показанной на фиг. 40, те же номера ссылочных позиций назначены для такой же конфигурации, как представлена на фиг. 10. Кроме того, двойное описание не будет представлено, соответственно.
Декодер 451, показанный на фиг. 40, сконфигурирован из: буфера 101 накопления; модуля 102 декодирования без потерь; модуля 103 обратного квантования; модуля 104 обратного ортогонального преобразования; модуля 105 суммирования; фильтра 106 удаления блоков; буфера 107 изменения компоновки экрана; D/A преобразователя 108; запоминающего устройства 109 кадра; переключателя 110; модуля 111 прогнозирования внутри кадра; модуля 112 компенсации движения; и переключателя 113.
Конфигурация 451 декодера, представленная на фиг. 40, отличается от конфигурации, показанной на фиг. 10 только тем, что фильтр 141 адаптивного смещения и адаптивный фильтр 142 контура исключены, и модуль 102 декодирования без потерь выполняет декодирование, используя не систему HEVC, а систему AVC. В соответствии с этим, декодер 451 выполняет обработку декодирования не в модулях CU, а в модулях блоков.
Цель для обработки декодирования, выполняемой модулем 102 декодирования без потерь, в принципе, является такой же, как и в случае модуля 102 декодирования без потерь, представленного на фиг. 10, за исключением параметров фильтра адаптивного смещения и адаптивного фильтра контура. Другими словами, модуль 102 декодирования без потерь, аналогично модулю 102 декодирования без потерь, показанному на фиг. 10, выполняет декодирование без потерь, такое как декодирование переменной длины или арифметическое декодирование, для кодированных данных, подаваемых из буфера 101 накопления, в результате чего получают квантованные коэффициенты и информацию кодирования. Модуль 102 декодирования без потерь подает квантованные коэффициенты в модуль 103 обратного квантования.
Кроме того, модуль 102 декодирования без потерь, аналогично модулю 102 декодирования без потерь, представленному на фиг. 10, подает информацию режима прогнозирования внутри кадра и т.п., как информацию кодирования, в модуль 111 прогнозирования внутри кадра и передает вектор движения, информацию, используемую для установления опорного изображения, информацию режима прогнозирования между кадрами и т.п., в модуль 112 компенсации движения. Кроме того, модуль 102 декодирования без потерь подает информацию режима прогнозирования внутри кадра или информацию режима прогнозирования между кадрами, как информацию кодирования, на переключатель 113.
Фильтр 106 удаления блоков фильтрует изображение, подаваемое из модуля 105 суммирования, удаляя, таким образом, искажение блоков. Фильтр 106 удаления блоков передает изображение, полученное в результате его обработки, в запоминающее устройство 109 кадра и в буфер 107 изменения компоновки экрана.
Настоящая технология может также применяться для устройства декодирования системы AVC.
В описании, представленном выше, в то время как был описан пример формата файла МР4, формат файла не ограничен форматом файла МР4 или форматом файла AVC. В случае, когда цель и преимущество в соответствии с настоящей технологией являются одинаковыми, настоящая технология может аналогично применяться для другого формата файла, потока, используемого во время передачи, или потока, используемого во время сохранения в файле.
Кроме того, настоящее раскрытие, например, может применяться в устройстве кодирования изображения и в устройстве декодирования изображения, которые используются, когда информацию изображения (поток битов), сжатую, используя ортогональное преобразование, такое как дискретное косинусное преобразование, и компенсация движения, как в системе HEVC и т.п., принимают через сетевую среду передачи данных, такую как спутниковая широковещательная передача, кабельное телевидение, Интернет или мобильный телефон. Кроме того, настоящее раскрытие может применяться в устройстве кодирования изображения и в устройстве декодирования изображения, которые используются, когда информация обрабатывается на носителе записи, таком как оптический диск, магнитный диск или запоминающее устройство флэш.
Последовательность обработки, описанная выше, может выполняться либо в аппаратных средствах, или программными средствами. В случае, когда последовательность обработки выполняется программными средствами, программу, конфигурирующую программное средство, устанавливают в компьютер. Здесь компьютер включает в себя компьютер, который встроен в специализированные аппаратные средства, компьютер, такой как персональный компьютер общего назначения, который может выполнять различные функции путем установки в него различных программ и т.п.
На фиг. 41 показана блок-схема, которая иллюстрирует пример конфигурации аппаратных средств компьютера, который выполняет последовательность обработки, описанную выше, используя программу.
В компьютере 800 CPU (центральное процессорное устройство) 801, ROM (постоянное запоминающее устройство) 802 и RAM (оперативное запоминающее устройство) 803 взаимно соединены через шину 804.
Кроме того, интерфейс 805 ввода-вывода соединен с шиной 804. Модуль 806 ввода, модуль 807 вывода, модуль 808 накопителя, модуль 809 передачи данных и привод 810 соединены с интерфейсом 805 ввода-вывода.
Модуль 806 ввода выполнен, как клавиатура, мышь, микрофон и т.п. Модуль 807 вывода выполнен, как дисплей, громкоговоритель и т.п. Модуль 808 накопителя выполнен, как жесткий диск, энергонезависимое запоминающее устройство и т.п. Модуль 809 передачи данных выполнен, как сетевой интерфейс и т.п. Привод 810 осуществляет привод магнитного диска, оптического диска, магнитооптического диска или съемного носителя 811 информации, такого как полупроводниковое запоминающее устройство.
В компьютере, выполненном, как описано выше, CPU 801, например, загружает программу, сохраненную в модуле 808 сохранения, в RAM 803 через интерфейс 805 ввода-вывода и тину 804, и выполняет загруженную программу, исполняя, таким образом, последовательность обработки, описанную выше.
Программа, исполняемая компьютером 800 (CPU 801), например, может быть предоставлена в виде записи на съемный носитель 811 информации, как пакетный носитель информации, и т.п. Кроме того, программа может быть предусмотрена через проводную или беспроводную среду передачи данных, такую как локальная вычислительная сеть, Интернет или цифровая спутниковая широковещательная передача.
В результате загрузки съемного носителя 811 информации в привод 810, программа может быть установлена в модуле 808 накопителя через интерфейс 805 ввода-вывода. Кроме того, программа может быть принята модулем 809 передачи данных через проводную или беспроводную среду передачи данных и может быть установлена в модуле 808 накопителя. Кроме того, программа может быть заранее установлена в ROM 802 или в модуле 808 накопителя.
Кроме того, программа, исполняемая компьютером, может представлять собой программу, которая выполняет обработку во временной последовательности в соответствии с последовательностью, описанной в этом описании, или программу, которая выполняет обработку параллельно или в необходимые моменты времени, такие как моменты времени вызова.
Кроме того, в данном описании этап описания программы, записанной на носителе записи, включает в себя не только обработку, выполняемую во временной последовательности, в соответствии с описанной последовательностью, но также и обработку, которая выполняется параллельно или индивидуально, без необходимости обработки во временной последовательности.
Кроме того, в этом описании, система представляет все устройство, которое сконфигурировано из множества устройств (устройства).
Кроме того, конфигурация, описанная выше, как одно устройство (или модуль обработки) может быть разделено так, что оно будет сконфигурировано, как множество устройств (или модулей обработки). И, наоборот, конфигурация, описанная выше, как множество устройств (или модулей обработки) может быть размещена в конфигурации одного устройства (или модуля обработки). Кроме того, конфигурация, которая не была описана выше, может быть добавлена к конфигурации каждого устройства (или каждого модуля обработки). Поскольку общая конфигурация и общая работа системы, по существу, являются одинаковыми, часть конфигурации определенного устройства (или определенного модуля обработки) может быть сконфигурирована так, что она будет включена в конфигурацию другого устройства (или другого модуля обработки). Другими словами, настоящая технология не ограничена описанными выше вариантами осуществления, и различные изменения могут быть выполнены в диапазоне, который не выходит за пределы концепции настоящей технологии.
Другими словами, настоящая технология не ограничена описанными выше вариантами осуществления, и различные изменения могут быть выполнены в ней, так, что они не выходят за пределы концепции настоящей технологии.
Например, настоящая технология может принимать конфигурацию "облачных" вычислений, в которых одна функция разделена и обрабатывается совместно множеством устройств по сети.
Кроме того, каждый этап, описанный в каждой блок-схеме последовательности операций, описанной выше, может быть либо исполнен одним устройством, или может исполняться множеством устройств с использованием разделенной обработки.
Кроме того, в случае, когда множество обработок включено в один этап, множество обработок, включенных в один этап, могут либо исполняться одним устройством, или могут исполняться множеством устройств с разделением обработки.
Устройство кодирования изображения и устройство декодирования изображения, в соответствии с вариантами осуществления, описанными выше, можно применять в различных электронных устройствах, таких как передатчик или приемник для проводной широковещательной передачи, такой как спутниковая широковещательная передача или кабельное телевидение, доставка по Интернет, доставка в терминал через сотовую среду передачи данных, и т.п., устройство записи, которое записывает изображение на носителе информации, таком как оптический диск, магнитный диск или запоминающее устройство типа флэш, или устройство воспроизведения, которое воспроизводит изображение с носителя записи. Ниже будут описаны четыре примера применения.
7. Пример применения
Первый пример применения: телевизионный приемник
На фиг. 42 иллюстрируется пример схематичной конфигурации телевизионного устройства, в котором применяется описанный выше вариант осуществления. Телевизионное устройство 900 включает в себя антенну 901, тюнер 902, демультиплексор 903, декодер 904, модуль 905 обработки видеосигнала, модуль 906 дисплея, модуль 907 обработки аудиосигнала, громкоговоритель 908, внешний интерфейс 909, модуль 910 управления, интерфейс 911 пользователя и шину 912.
Тюнер 902 выделяет сигнал требуемого канала из сигнала широковещательной передачи, принятого через антенну 901, и демодулирует выделенный сигнал. Затем тюнер 902 выводит кодированный поток битов, полученный в результате демодуляции, в демультиплексор 903. Другими словами, тюнер 902 используется средством передачи телевизионного устройства 900, которое принимает кодированный поток, в котором кодировано изображение.
Демультиплексор 903 разделяет видеопоток и аудиопоток программы, которая должна быть просмотрена, из кодированного потока битов, и выводит каждый разделенный поток в декодер 904. Кроме того, демультиплексор 903 выделяет вспомогательные данные, такие как EPG (электронная программа передач) из кодированного потока битов, и подает выделенные данные в модуль 910 управления. Кроме того, демультиплексор 903 может выполнять дескремблирование, в случае, когда кодированный поток битов скремблирован.
Декодер 904 декодирует видеопоток и аудиопоток, выводимые из демультиплексора 903. Затем декодер 904 выводит видеоданные, сгенерированные при обработке декодирования в модуле 905 обработки видеосигнала. Кроме того, декодер 904 выводит аудиоданные, сгенерированные путем обработки декодирования, в модуль 907 обработки аудиосигнала.
Модуль 905 обработки видеосигнала воспроизводит видеоданные, вводимые из декодера 904, и обеспечивает отображение модулем 906 дисплея видеоизображения. Модуль 905 обработки видеосигнала может также обеспечить отображение модулем 906 дисплея экрана приложения, передаваемого через сеть. Кроме того, модуль 905 обработки видеосигнала может выполнять дополнительную обработку, такую как удаление шумов, для видеоданных, в соответствии с установкой. Кроме того, модуль 905 обработки видеосигнала может генерировать изображение GUI (графический интерфейс пользователя), такое как меню, кнопка и курсор, и накладывать сгенерированное изображение на выходное изображение.
Модулем 906 дисплея управляют в соответствии с сигналом управления, передаваемым из модуля 905 обработки видеосигнала, для отображения видеоизображения или изображения на видеоэкране устройства дисплея (например, жидкокристаллического дисплея, плазменного дисплея, дисплея OELD (органической электролюминесценции (дисплей органической EL), и т.п.).
Модуль 907 обработки аудиосигнала выполняет обработку воспроизведения, такую как D/А преобразование и усиление для аудиоданных, вводимых из декодера 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 имеет функцию устройства декодирования изображения (например, устройства декодирования, выполненного с использованием модуля 51 считывания файла и декодера 52, представленного на фиг. 8), в соответствии с описанным выше вариантом осуществления. В соответствии с этим, при декодировании изображения, которое выполняется телевизионным устройством 900, может быть уменьшена нагрузка на обработку, требуемая, когда декодируют поток, используемый во время передачи, или поток, используемый во время его сохранения в файле.
Второй пример применения: мобильный телефон
На фиг. 43 представлен пример схематичной конфигурации мобильного телефона, в котором применяется описанный выше вариант осуществления. Мобильный телефон 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 преобразует аналоговый аудиосигнал в аудиоданные, выполняет A/D преобразование преобразованных аудиоданных и сжимает аудиоданные. Затем аудиокодек 923 выводит сжатые аудиоданные в модуль 922 передачи данных. Модуль 922 передачи данных кодирует и модулирует аудиоданные для генерирования сигнала передачи. Затем модуль 922 передачи данных передает сгенерированный сигнал передачи в базовую станцию (не показана на чертеже) через антенну 921. Кроме того, модуль 922 передачи данных усиливает беспроводный сигнал, принятый через антенну 921, и выполняет преобразование частоты беспроводного сигнала, получая, таким образом, сигнал приема. Затем модуль 922 передачи данных генерирует аудиоданные, путем демодулирования и декодирования сигнала приема, и выводит сгенерированные аудиоданные в аудиокодек 923. Аудиокодек 923 выполняет разворачивание и D/A преобразование аудиоданных, генерируя, таким образом, аналоговый аудиосигнал. Затем аудиокодек 923 подает сгенерированный аудиосигнал в громкоговоритель 924 для обеспечения вывода звука.
В режиме передачи данных, например, модуль 931 управления генерирует данные знака, конфигурирующие электронную почту, в соответствии с операцией пользователя, выполняемой через модуль 932 операций. Кроме того, модуль 931 управления обеспечивает отображение знаков модулем 930 дисплея. Модуль 931 управления генерирует данные электронной почты в соответствии с инструкцией передачи, от пользователя через модуль 932 операций и выводит сгенерированные данные электронной почты в модуль 922 передачи данных. Модуль 922 передачи данных кодирует и модулирует данные электронной почты, генерируя, таким образом, сигнал передачи. Затем модуль 922 передачи данных передает сгенерированный сигнал передачи в базовую станцию (не показана на чертеже) через антенну 921. Кроме того, модуль 922 передачи данных выполняет усиление и преобразование частоты беспроводного сигнала, принимаемого через антенну 921, получая, таким образом, сигнал приема. Затем модуль 922 передачи данных демодулирует и декодирует сигнал приема для восстановления данных электронной почты и выводит восстановленные данные электронной почты в модуль 931 управления. Модуль 931 управления обеспечивает отображение модулем 930 дисплея содержания электронной почты и сохраняет данные электронной почты на носителе сохранения информации модулем 929 записи/воспроизведения.
Модуль 929 записи/воспроизведения включает в себя произвольный накопитель для сохранения информации, выполненной с возможностью считывания и записи. Например, носитель сохранения может представлять собой встроенный носитель сохранения, такой как RAM и запоминающее устройство флэш, или может представлять собой внешний устанавливаемый носитель сохранения, такой как жесткий диск, магнитный диск, магнитооптический диск, оптический диск, запоминающее устройство USB (универсальная последовательная шина) или карту памяти.
В режиме формирования изображения, например, модуль 926 камеры формирует изображение объекта, для генерирования данных изображения и выводит сгенерированные данные изображения в модуль 927 обработки изображений. Модуль 927 обработки изображений кодирует данные изображения, вводимые из модуля 926 камеры, и сохраняет кодированный поток на носителе сохранения модуля 929 записи/воспроизведения.
Кроме того, в режиме приема телевидения через телефон, например, модуль 928 мультиплексирования/разделения мультиплексирует видеопоток, кодированный модулем 927 обработки изображения и аудиопоток, вводимый из аудиокодека 923, и выводит полученный в результате мультиплексированный поток в модуль 922 передачи данных. Модуль 922 передачи данных кодирует и модулирует поток, генерируя, таким образом, сигнал передачи. Затем модуль 922 передачи данных передает сгенерированный сигнал передачи в базовую станцию (не показана на чертеже) через антенну 921. Кроме того, модуль 922 передачи данных выполняет усиление и преобразование частоты беспроводного сигнала, принятого через антенну 921, получая, таким образом, сигнал приема. Сигнал передачи и сигнал приема получают с кодированным потоком битов, который включен в него. Затем модуль 922 передачи данных восстанавливает поток путем демодуляции и декодирования принимаемого сигнала и выводит восстановленный поток в модуль 928 мультиплексирования/разделения. Модуль 928 мультиплексирования/разделения отделяет видеопоток и аудио поток от входного потока и выводит видеопоток и аудиопоток, соответственно, в модуль 927 обработки изображения и в аудиокодек 923. Модуль 927 обработки изображений декодирует видеопоток для генерирования видеоданных. Видеоданные подают в модуль 930 дисплея, и последовательность изображений отображают с помощью модуля 930 дисплея. Аудиокодек 923 выполняет разворачивание и D/A преобразование аудиопотока, генерируя, таким образом, аналоговый аудиосигнал. Затем модуль 923 аудиокодека подает сгенерированный аудиосигнал в громкоговоритель 924 для обеспечения вывода звука.
В мобильном телефоне 920, сконфигурированном таким образом, модуль 927 обработки изображений имеет функцию устройства кодирования изображения (например, устройство кодирования, выполненное с использованием кодера 1 и модуля 2 файла генерирования, представленных на фиг. 1) и устройство декодирования изображения (например, устройство декодирования, сконфигурировано модулем 51 считывания файла и декодером 52, представленными на фиг. 8), в соответствии с описанными выше вариантами осуществления. В соответствии с этим, при кодировании/декодировании изображения, которое выполняется мобильным телефоном 920, может быть уменьшена нагрузка, связанная с обработкой, требуемая, когда декодируют поток, используемый во время передачи, или поток, используемый во время сохранения в файле.
Третий пример применения: устройство записи/воспроизведения
На фиг. 44 показана блок-схема, которая иллюстрирует пример схематичной конфигурации устройства записи/воспроизведения, которое применяется в описанном выше варианте осуществления. Устройство 940 записи/воспроизведения, например, кодирует аудиоданные и видеоданные принятой программы широковещательной передачи и записывает кодированные данные на носителе записи. Кроме того, устройство 940 записи/воспроизведения, например, может кодировать аудиоданные и видеоданные, полученные из другого устройства, и записывать кодированные данные на носителе записи. Кроме того, устройство 940 записи/воспроизведения, например, воспроизводит данные, записанные на носителе записи, используя монитор и громкоговоритель, в соответствии с инструкцией пользователя. В это время устройство 940 записи/воспроизведения декодирует аудиоданные и видеоданные.
Устройство 940 записи/воспроизведения включает в себя тюнер 941, внешний интерфейс 942, кодер 943, HDD (привод жесткого диска) 944, привод 945 диска, селектор 946, декодер 947, OSD (отображение на экране) 948, модуль 949 управления и интерфейс 950 пользователя.
Тюнер 941 выделяет сигнал требуемого канала из сигнала широковещательной передачи, принятого через антенну (не представлена на чертеже), и демодулирует выделенный сигнал. Затем тюнер 941 выводит кодированный поток битов, полученный в результате обработки демодуляции, в селектор 946. Другими словами, тюнер 941 используется, как средство передачи устройства 940 записи/воспроизведения.
Внешний интерфейс 942 представляет собой интерфейс, используемый для соединения устройства записи/воспроизведения 940 и внешнего устройства или сети. Внешний интерфейс 942, например, может представлять собой интерфейс IEEE 1394, сетевой интерфейс, интерфейс USB, интерфейс запоминающего устройства флэш и т.п. Например, видеоданные и аудиоданные, принятые через внешний интерфейс 942, вводят в кодер 943. Другими словами, внешний интерфейс 942 используется, как средство передачи устройства 940 записи/воспроизведения.
В случае, когда видеоданные и аудиоданные, вводимые из внешнего интерфейса 942, являются некодированными, кодер 943 кодирует видеоданные и аудиоданные. Затем кодер 943 выводит кодированный поток битов в селектор 946.
HDD 944 записывает кодированный поток битов, в котором данные содержания, такие как видеоданные и аудиоданные сжаты, различные программы и другие данные на внутренний жесткий диск. Когда воспроизводят видео- и аудиоданные, HDD 944 считывает эти данные с жесткого диска.
Привод 945 диска записывает и считывает данные на/с загруженного носителя записи. Носитель записи, загруженный в привод 945 диска, например, может представлять собой диск DVD (Видео DVD, DVD-RAM, DVD-R, DVD-RW, DVD+R, 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 имеет функцию устройства кодирования изображения (например, устройства кодирования, сконфигурированного кодером 1 и модулем 2 генерирования файла, представленным на фиг. 1), в соответствии с описанным выше вариантом осуществления. Кроме того, декодер 947 имеет функцию устройства декодирования изображения (например, устройства декодирования, сконфигурированного модулем 51 считывания файла и декодером 52, представленным на фиг. 8), в соответствии с описанным выше вариантом осуществления. В соответствии с этим, при кодировании/декодировании изображения, которое выполняется устройством 940 записи/воспроизведения, может быть уменьшена нагрузка на обработку, требуемая, когда декодируют поток, используемый во время передачи, или поток, используемый во время сохранения в файле.
Четвертый пример варианта применения: Устройство формирования изображения
На фиг. 45 иллюстрируется пример схематичной конфигурации устройства формирования изображения, в котором применяется описанный выше вариант осуществления. Устройство 960 формирования изображения формирует изображение объекта для генерирования изображения, кодирует данные изображения и записывает кодированные данные изображения на носителе записи.
Устройство 960 формирования изображения включает в себя оптический блок 961, модуль 962 формирования изображения, модуль 963 обработки сигналов, модуль 964 обработки изображения, модуль 965 дисплея, внешний интерфейс 966, запоминающее устройство 967, привод 968 носителя записи, OSD 969, модуль 970 управления, интерфейс 971 пользователя и шину 972.
Оптический блок 961 соединен с модулем 962 формирования изображения. Модуль 962 формирования изображения соединен с модулем 963 обработки сигналов. Модуль 965 дисплея соединен с модулем 964 обработки изображения. Интерфейс 971 пользователя соединен с модулем 970 управления. Шина 972 соединяет модуль 964 обработки изображения, внешний интерфейс 966, запоминающее устройство 967, привод 968 носителя записи, OSD 969 и модуль 970 управления друг с другом.
Оптический блок 961 включает в себя линзу фокусирования, механизм диафрагмы и т.п. Оптический блок 961 формирует оптическое изображение объекта на поверхности формирования изображения модуля 962 формирования изображения. Модуль 962 формирования изображения включает в себя датчик изображения, такой как CCD (прибор с зарядовой связью) и CMOS (комплементарный металлооксидный проводник), и преобразует оптическое изображение, формируемое на поверхности формирования изображения, в сигнал изображения, как электрический сигнал, используя фотоэлектрическое преобразование. Затем модуль 962 формирования изображения выводит сигнал изображения в модуль 963 обработки сигналов.
Модуль 963 обработки сигналов выполняет различную обработку сигнала камеры, такую как коррекция изгиба характеристики передачи уровня яркости, гамма-коррекция, коррекция цветов и т.п.для сигнала изображения, подаваемого из модуля 962 формирования изображения. Модуль 963 обработки сигналов выводит данные изображения после обработки сигнала камеры в модуль 964 обработки изображения.
Модуль 964 обработки изображения кодирует данные изображения, вводимые из модуля 963 обработки сигналов, для генерирования кодированных данных. Затем модуль 964 обработки изображения выводит сгенерированные кодированные данные во внешний интерфейс 966 или в привод 968 носителя записи. Кроме того, модуль 964 обработки изображения декодирует кодированные данные, вводимые из внешнего интерфейса 966 или привода 968 носителя записи, для генерирования данных изображения. Затем модуль 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 обработки изображения имеет функции устройства кодирования изображения (например, устройства кодирования, выполненного на основе кодера 1 и модуля 2 генерирования файла, который представлен на фиг. 1) и устройства декодирования изображения (например, устройства декодирования, выполненного на основе модуля 51 считывания файла 51 и декодера 52, представленных на фиг. 8), в соответствии с описанными выше вариантами осуществления. В соответствии с этим, при кодировании/декодировании изображения, которое выполняется устройством 960 формирования изображения, может быть уменьшена нагрузка, связанная с обработкой, требуемая, когда декодируют поток, используемый во время передачи, или поток, используемый во время сохранения в файле.
8. Седьмой вариант осуществления
Другие примеры
В то время как примеры устройства, система и т.п., в которой применяется настоящая технология, были описаны выше, настоящая технология не ограничена этим. Таким образом, настоящая технология также может быть воплощена, как вариант, когда все компоненты, установлены в устройстве или устройстве, конфигурирующем систему, таком как процессор, в виде системы LSI (большая интегральная схема) и т.п., модуля, использующего множество процессоров и т.п., модуля, использующего множество модулей и т.п., и набора, полученного в результате добавления других функций к модулю (другими словами, части конфигурации устройства).
Видеонабор
Пример случая, в котором настоящая технология воплощена, как набор, будет описана со ссылкой на фиг. 46. На фиг. 46 иллюстрируется пример схематичной конфигурации видеонабора, в котором применяется настоящая технология.
В последнее время вариант воплощения множества функций в электронных устройствах становится все более распространенным, и, при разработке или производстве каждого электронного устройства, в случае, когда часть конфигурации исполняется для продажи, поставки и т.п., часто рассматривается не только случай, в котором часть исполняется, как конфигурация, имеющая одну функцию, но также и случай, в котором часть исполняется, как один набор, имеющий множество функции, путем комбинирования множества конфигураций, имеющих соответствующие функции.
Видеонабор 1300, показанный на фиг. 46, имеет такую конфигурацию, что он имеет множество функций, и его получают путем комбинирования устройства, имеющего функции, относящиеся к кодированию/декодированию (одному из кодирования и декодирования или обоим из них) изображения с помощью устройств, имеющих другие функции, относящиеся к функции.
Как представлено на фиг. 46, видеонабор 1300 включает в себя: группу модуля, такую как видеомодуль 1311, внешнее запоминающее устройство 1312, модуль 1313 управления питанием, и входной модуль 1314, и устройство, имеющее связанные с ними функции, такие как модуль 1321 соединения, камера 1322 и датчик 1323.
Модуль представляет собой компонент, который имеет функции, имеющие связь, полученные в результате соединения нескольких составляющих функций, связанных друг с другом. Конкретная физическая конфигурация является произвольной, и, например, можно рассмотреть конфигурацию, в которой множество процессоров, имеющих соответствующие функции, компонентов электронной цепи, таких как резистор и конденсатор, и других устройств размещены, будучи объединенными друг с другом на монтажной плате и т.п. Кроме того, можно рассмотреть возможность формирования нового модуля путем комбинирования модуля с другими модулями, процессором и т.п.
В случае примера, показанного на фиг. 46, видеомодуль 1311 формируют путем комбинирования конфигураций, имеющих функции, относящиеся к обработке изображений, и он включает в себя: процессор приложения, видеопроцессор, широкополосный модем 1333 и RF модуль 1334.
Процессор сформирован путем объединения конфигурации, имеющей заданную функцию, на полупроводниковой микросхеме через SoC (система на кристалле) и, например, существует процессор, называемый LSI (большая интегральная схема) и т.п. Конфигурация, имеющая заданную функцию, может представлять собой логическую схему (аппаратную конфигурацию), конфигурацию, включающую в себя CPU, ROM, RAM и т.п., и программу (программную конфигурацию), исполняемую, используя компоненты, или конфигурацию, полученную путем комбинирования их обоих. Например, она может быть сконфигурирована таким образом, что процессор включает в себя логические схемы, CPU, ROM, RAM и т.п., некоторые его функции реализуется с помощью логических цепей (аппаратной конфигурации), и другие функции реализуются с помощью программы (программной конфигурации), исполняемой CPU.
Процессор 1331 приложения, показанный на фиг. 46, представляет собой процессор, который исполняет приложение, относящееся к обработке изображений. Для реализации заданной функции, приложение, исполняемое процессором 1331 приложения, не только исполняет обработку расчета, но также управляет конфигурациями внутри/снаружи видеомодуля 1311, такого как видеопроцессор 1332 и т.п., если необходимо.
Видеопроцессор 1332 представляет собой процессор, который имеет функцию, относящуюся к кодированию/декодированию (одному из кодирования и декодирования или обоим кодированию и декодированию) изображения.
Широкополосный модем 1333 представляет собой процессор (или модуль), который выполняет обработку, относящуюся к проводной или беспроводной (или проводной и беспроводной) широкополосной передаче данных, которая выполняется через широкополосные линии передачи данных, такие как Интернет, или общедоступная коммутируемая телефонная сеть. Например, широкополосный модем 1333 преобразует данные (цифровой сигнал), предназначенный для передачи, в аналоговый сигнал посредством обработки цифровой модуляции и т.п., или преобразует принятый аналоговый сигнал в данные (цифровой сигнал) в ходе обработки демодуляции. Например, широкополосный модем 1333 может выполнять цифровую модуляцию/демодуляцию произвольной информации, такой как данные изображения, обработанные видеопроцессором 1332, поток, в котором кодированы данные изображения, программа приложения и данные установки.
RF модуль 1334 представляет собой модуль, который выполняет преобразование частоты, модуляцию/демодуляцию, усиление, обработку фильтра и т.п. для RF (радиочастотного) сигнала, который передают или принимают через антенну. Например, RF модуль 1334 выполняет преобразование частоты и т.п. для сигнала в основной полосе пропускания, генерируемого широкополосным модемом 1333, генерируя, таким образом, RF сигнал. Кроме того, например, RF модуль 1334 выполняет преобразование частоты и т.п. для RF сигнала, принимаемого через входной модуль 1314, генерируя, таким образом, сигнал в основной полосе пропускания.
Как обозначено пунктирной линией 1341 на фиг. 46, процессор 1331 приложения и видеопроцессор 1332 могут быть интегрированы так, что они будут сконфигурированы, как один процессор.
Внешнее запоминающее устройство 1312 представляет собой модуль, который расположен за пределами видеомодуля 1311 и имеет запоминающее устройство, используемое видеомодулем 1311. В то время, как запоминающее устройство внешнего запоминающего устройства 1312 может быть реализовано с использованием определенной физической конфигурации, в общем, запоминающее устройство часто используется для сохранения данных большого объема, таких как данные изображения, сконфигурированные в модулях кадров. В соответствии с этим, предпочтительно, чтобы запоминающее устройство было реализовано на основе полупроводникового запоминающего устройства большой емкости, такого как DRAM (динамическое оперативное запоминающее устройство) с относительно низкой стоимостью.
Модуль 1313 управления питанием управляет и администрирует подачей питания в видеомодуль 1311 (каждая конфигурация размещена в видеомодуле 1311).
Входной модуль 1314 представляет собой модуль, который обеспечивает функцию входного интерфейса (схема на стороне передачи/приема антенны) для RF модуля 1334. Как показано на фиг. 46, входной модуль 1314, например, включает в себя антенный модуль 1351, фильтр 1352 и модуль 1353 усиления.
Антенный модуль 1351 включает в себя антенну, которая передает и принимает беспроводные сигналы, и периферийные конфигурации. Антенный модуль 1351 передает сигнал, подаваемый из модуля 1353 усиления, как беспроводный сигнал, и подает принятый беспроводный сигнал в фильтр 1352, как электрический сигнал (RF сигнал). Фильтр 1352 выполняет обработку фильтра и т.п. для RF сигнала, принятого через антенный модуль 1351, и подает RF сигнал после обработки в RF модуль 1334. Модуль 1353 усиления усиливает RF сигнал, переданный из RF модуля 1334, и подает усиленный RF сигнал в антенный модуль 1351.
Модуль 1321 соединения представляет собой модуль, который имеет функцию, относящуюся к соединению с внешней стороной. Физическая конфигурация модуля 1321 соединения является произвольной. Например, модуль 1321 соединения включает в себя конфигурацию, имеющую функцию передачи данных, в соответствии с другим стандартом передачи данных, чем стандарт передачи данных, которому соответствует широкополосный модем 1333, внешний разъем ввода-вывода и т.п.
Например, модуль 1321 соединения может быть выполнен так, что он будет включать в себя модуль, который имеет функцию передачи данных, соответствующую стандарту радиопередачи данных, такому как Bluetooth (зарегистрированный товарный знак), IEEE 802.11 (например, Wi-Fi (беспроводная достоверность; зарегистрированный товарный знак)), NFC (передача данных в ближнем поле) или IrDA (Ассоциация инфракрасной передачи данных), антенну, которая передает и принимает сигналы, соответствующие стандарту и т.п. Кроме того, например, модуль 1321 соединения может быть выполнен так, что он включает в себя модуль, который имеет функцию передачи данных, соответствующую стандарту проводной передачи данных, такому как USB (универсальная последовательная шина) или HDMI (зарегистрированный товарный знак) (мультимедийный интерфейс высокой четкости) в качестве разъемов, соответствующих стандарту. Кроме того, например, модуль 1321 соединения может быть выполнен с возможностью иметь другую функцию передачи данных (сигнала) аналогового разъема ввода/вывода и т.п.
Кроме того, модуль 1321 соединения может быть выполнен так, что он включает в себя устройство места назначения передачи данных (сигнала). Например, модуль 1321 соединения может быть выполнен так, что он включает в себя привод (включающий в себя не только привод съемного носителя информации, но также и жесткий диск SSD (твердотельный привод), NAS (накопитель, подключаемый по сети), и т.п.), который считывает/записывает данные с носителя записи/на носитель записи, такой как магнитный диск, оптический диск, магнитооптический диск или полупроводниковое запоминающее устройство. Кроме того, модуль 1321 соединения может быть выполнен так, что он включает в себя выходное устройство (монитор, громкоговоритель и т.п.) для вывода изображения или голоса.
Камера 1322 представляет собой модуль, который имеет функцию получения данных изображения субъекта путем формирования изображения субъекта. Данные изображения, полученные в процессе формирования изображений, выполняемом камерой 1322, например, подают в видеопроцессор 1332 и кодируют.
Датчик 1323 представляет собой модуль, который имеет функцию произвольного датчика, такого как датчик звука, ультразвуковой датчик, оптический датчик, датчик освещения, инфракрасный датчик, датчик изображения, датчик вращения, датчик угла, датчик угловой скорости, датчик скорости, датчик ускорения, датчик наклона, датчик магнитной идентификации, датчик удара или датчик температуры. Данные, детектированные датчиком 1323, например, подают в процессор 1331 приложения и используется датчиком приложения, и т.п.
Конфигурация, описанная выше, в качестве модуля, может быть реализована, как процессор. И, наоборот, конфигурация, описанная выше, как процессор, может быть реализована, как модуль.
В видеонаборе 1300, имеющем описанную выше конфигурацию, как будет описано ниже, может применяться настоящая технология для видеопроцессора 1332. В соответствии с этим, видеонабор 1300 может быть выполнен, как набор, в котором применяется настоящая технология.
Пример конфигурации видеопроцессора
На фиг. 47 иллюстрируется пример схематичной конфигурации видеопроцессора 1332 (фиг. 46), в котором применяется настоящая технология.
В случае примера, показанного на фиг. 47, видеопроцессор 1332 имеет функцию приема входных сигналов, таких как видеосигнал и аудиосигнал, и кодирования видеосигнала и аудиосигнала, в соответствии с заданной системой и функцией, для декодирования кодированных видеоданных и кодированных аудиоданных, и воспроизведения и вывода видеосигнала и аудиосигнала.
Как представлено на фиг. 47, видеопроцессор 1332 включает в себя: модуль 1401 обработки ввода видеоданных; первый модуль 1402 увеличения/уменьшения изображения; второй модуль 1403 увеличения/уменьшения изображения; модуль 1404 обработки вывода видеоданных; запоминающее устройство 1405 кадра; и модуль 1406 управления запоминающим устройством. Кроме того, видеопроцессор 1332 включает в себя: механизм 1407 кодирования/декодирования; буферы 1408А и 1408В ES (элементарного потока) видеоданных; и буферы 1409А и 1409В ES аудиоданных. Кроме того, видеопроцессор 1332 включает в себя: аудиокодер 1410; аудиодекодер 1411; мультиплексор (MUX (мультиплексор)) 1412; демультиплексор (DMUX (демультиплексор)) 1413 и буфер 1414 потока.
Модуль 1401 обработки ввода видеоданных, например, получает видеосигнал, вводимый из модуля 1321 соединения (фиг. 46) и т.п., и преобразует этот видеосигнал в цифровые данные изображения. Первый модуль 1402 увеличения/уменьшения изображения выполняет преобразование формата при обработке увеличения/уменьшения изображения и т.п. для данных изображения. Второй модуль 1403 увеличения/уменьшения изображения выполняет обработку увеличения/уменьшения изображения, в соответствии с форматом места назначения вывода через модуль 1404 обработки вывода видеоданных, такое же преобразование формата, как и в первом модуле 1402 увеличения/уменьшения изображения, при обработке увеличения/уменьшения изображения и т.п. для данных изображения. Модуль 1404 обработки вывода видеоданных выполняет преобразование формата, преобразование в аналоговый сигнал и т.п. для данных изображения, и выводит полученный в результате сигнал, например, в модуль 1321 соединения (фиг. 46) и т.п., как воспроизводимый видеосигнал.
Запоминающее устройство 1405 кадра представляет собой запоминающее устройство для данных изображения, которое совместно используется модулем 1401 обработки ввода видеоданных, первым модулем 1402 увеличения/уменьшения изображения, вторым модулем 1403 увеличения/уменьшения изображения, модулем 1404 обработки вывода видеоданных, и механизмом 1407 кодирования/декодирования. Запоминающее устройство 1405 кадра, например, реализуется на основе полупроводникового запоминающего устройства, такого как DRAM.
Модуль 1406 управления запоминающим устройством принимает сигнал синхронизации из механизма 1407 кодирования/декодирования и управляет доступом к запоминающему устройству 1405 кадра, для записи/считывания, в соответствии с планом доступа, для доступа к запоминающему устройству 1405 кадра, который записан в таблице 1406А управления доступом. Таблица 1406А управления доступом обновляется модулем 1406 управления запоминающим устройством, в соответствии с обработкой, выполняемой механизмом 1407 кодирования/декодирования, первым модулем 1402 увеличения/уменьшения изображения, вторым модулем 1403 увеличения/уменьшения изображения и т.п.
Механизм 1407 кодирования/декодирования выполняет обработку кодирования данных изображения и обработку декодирования видеопотока, который представляет собой данные, полученные путем кодирования данных изображения. Например, механизм 1407 кодирования/декодирования кодирует данные изображения, считанные из запоминающего устройства 1405 кадра, и последовательно записывает данные изображения в видеобуфер 1408A ES, как видеопоток. Кроме того, например, механизм 1407 кодирования/декодирования последовательно считывает и декодирует видеопотоки, переданные из видеобуфера 1408В ES, и последовательно записывает декодированные видеопотоки в запоминающее устройство 1405 кадра, как данные изображения. Механизм 1407 кодирования/декодирования использует запоминающее устройство 1405 кадра, как рабочую область при такой обработке кодирования и декодирования. Кроме того, механизм 1407 кодирования/декодирования выводит сигнал синхронизации в модуль 1406 управления запоминающим устройством, например, в момент времени, когда начинается обработка для каждого макроблока.
Видеопоток, генерируемый механизмом 1407 кодирования/декодирования, размещается в видеобуфере 1408A ES, этот размещенный в буфере видеопоток поступает в мультиплексор (MUX) 1412. Видеопоток, поступающий из демультиплексора (DMUX) 1413, размещается в видеобуфере 1408В ES, и этот размещенный в буфере видеопоток, поступает в механизм 1407 кодирования/декодирования.
Аудиопоток, генерируемый аудиодекодером 1410, размещается в буфере 1409A ES аудиоданных, и этот размещенный в буфере аудиопоток, поступает в мультиплексор (MUX) 1412. Аудиопоток, поступающий из демультиплексора (DMUX) 1413, размещается в буфере 1409В ES аудиоданных, и этот аудиопоток, размещенный в буфере, поступает в декодер 1411.
Аудиокодер 1410, например, преобразует аудиосигнал, например, подаваемый из модуля 1321 соединения (фиг. 46) и т.п. в цифровой сигнал, и кодирует преобразованный цифровой сигнал, в соответствии с заданной системой, такой как аудиосистема MPEG, или системой АС3 (AudioCode номер 3). Аудиокодер 1410 последовательно записывает аудиопотоки, каждый из которых представляет собой данные, получаемые в результате кодирования аудиосигнала в буфер 1409A ES аудиоданных. Аудиодекодер 1411 декодирует аудиопоток, подаваемый из буфера 1409В ES аудиоданных и, например, выполняет преобразование в аналоговый сигнал и т.п. декодированного аудиопотока и подает полученный в результате сигнал, например, в модуль 1321 соединения (фиг. 46) и т.п., как воспроизводимый аудиосигнал.
Мультиплексор (MUX) 1412 мультиплексирует видеопоток и аудиопоток. Способ такой обработки мультиплексирования (другими словами, формат потока битов, генерируемого в результате обработки мультиплексирования), является произвольным. Кроме того, при обработке мультиплексирования, мультиплексор (MUX) 1412 может добавлять заданную информацию заголовка и т.п. в поток битов. Другими словами, мультиплексор (MUX) 1412 может преобразовывать формат потока в ходе обработки мультиплексирования. Например, путем мультиплексирования видеопотока и аудиопотока, мультиплексор (MUX) 1412 преобразует потоки в поток транспортирования, который представляет собой поток битов формата передачи. Кроме того, например, путем мультиплексирования видеопотока и аудиопотока, мультиплексор (MUX) 1412 преобразует потоки в данные (данные файлов) принимаемого формата файла.
Демультиплексор (DMUX) 1413 демультиплексирует поток битов, в котором видеопоток и аудиопоток мультиплексируют, используя способ, соответствующий обработке мультиплексирования, выполняемой мультиплексором (MUX) 1412. Другими словами, демультиплексор (DMUX) 1413 выделяет видеопоток и аудиопоток из потока битов, считываемого из буфера 1414 потока (разделяет видеопоток и аудиопоток друг от друга). Другими словами, демультиплексор (DMUX) 1413 может преобразовывать формат потока в ходе обработки демультиплексирования (обратное преобразование для преобразования, выполняемого мультиплексором (MUX) 1412). Например, демультиплексор (DMUX) 1413 получает транспортный поток, подаваемый, например, из модуля 1321 соединения (фиг. 46), широкополосного модема 1333 (фиг. 46) и т.п. через буфер 1414 потока, и демультиплексирует переданный транспортный поток, преобразуя, таким образом, транспортный поток в видеопоток и аудиопоток. Кроме того, например, демультиплексор (DMUX) 1413 получает данные файла, например, считанные с различных носителей записи, используя модуль 1321 соединения (фиг. 46) через буфер 1414 потока, и демультиплексирует полученные данные файла, преобразуя, таким образом, данные файла в видеопоток и аудиопоток.
Буфер 1414 потока размещает в буфере поток битов. Например, транспортный поток, подаваемый из мультиплексора (MUX) 1412, размещается в буфере 1414 потока, и этот размещенный в буфере транспортный поток поступает, например, в модуль 1321 соединения (фиг. 46), широкополосный модем 1333 (фиг. 46) и т.п. в заданные моменты времени или на основе запроса, поступающего извне, и т.п.
Кроме того, например, данные файла, подаваемые из мультиплексора (MUX) 1412, размещаются в буфере 1414 потока, и эти размещенные в буфере данные файла поступают, например, в модуль 1321 соединения (фиг. 46) и т.п. в заданные моменты времени, по запросу, поступающему извне, и т.п. так, что их записывают на различные носители записи.
Кроме того, транспортный поток, полученный, например, через модуль 1321 соединения (фиг. 46), широкополосный модем 1333 (фиг. 46) и т.п., размещается в буфере 1414 потока, этот размещенный в буфере транспортный поток поступает в демультиплексор (DMUX) 1413 в заданные моменты времени или на основе запроса, поступающего извне, и т.п.
Кроме того, данные файла, считанные с различных носителей записи модулем 1321 соединения (фиг.46) или т.п., размещают в буфере 1414 потока, и эти размещенные в буфере данные файла поступают в демультиплексор (DMUX) 1413 в заданные моменты времени или по запросу, поступающему извне и т.п.
Далее будет описан пример работы видеопроцессора 1332, имеющего такую конфигурацию. Например, видеосигнал, подаваемый из модуля 1321 соединения (фиг. 46) и т.п. в видеопроцессор 1332, преобразуется в цифровые данные изображения, в соответствии с заданной системой, такой как система 4:2:2 Y/Cb/Cr в модуле 1401 обработки входных видеоданных и последовательно записывается в запоминающее устройство 1405 кадра. Такие цифровые данные изображения считывают с помощью первого модуля 1402 увеличения/уменьшения данных изображения или второго модуля 1403 увеличения/уменьшения данных изображения, преобразуют формат в заданную систему, такую как система 4:2:0 Y/Cb/Cr, и выполняют обработку увеличения/уменьшения для считывания цифровых данных изображения, и полученные в результате цифровые данные изображения перезаписывают в запоминающее устройство 1405 кадра. Такие данные изображения кодируют с помощью механизма 1407 кодирования/декодирования и записывают в видеобуфер 1408А ES, как видеопоток.
Кроме того, аудиосигнал, подаваемый из модуля 1321 соединения (фиг. 46) и т.п. в видеопроцессор 1332, кодируют с помощью аудиокодера 1410 и записывают в буфер 1409A ES аудиоданных, как аудиопоток.
Видеопоток, размещенный в буфере 1408A ES видеоданных, и аудиопоток, размещенный в буфере 1409A ES аудиоданных, считывают и мультиплексируют с помощью мультиплексора (MUX) 1412, и преобразуют в поток транспортирования, данные файла и т.п. Поток транспортирования, генерируемый мультиплексором (MUX) 1412, размещают в буфере 1414 потока, и затем выводят во внешнюю сеть, например, через модуль 1321 соединения (фиг. 46), широкополосный модем 1333 (фиг. 46) и т.п. Кроме того, данные файла, генерируемые мультиплексором (MUX) 1412, размещают в буфере 1414 потока и затем выводят, например, в модуль 1321 соединения (фиг. 46) и т.п., и записывают на различные носители записи.
Кроме того, поток транспортирования, подаваемый в видеопроцессор 1332 из внешней сети, например, через блок 1321 соединения (фиг. 46), широкополосный модем 1333 (фиг. 46) и т.п. размещают в буфер 1414 потока и затем демультиплексируют с помощью демультиплексора (DMUX) 1413. Кроме того, данные файла, которые считывают с различных носителей записи и подают в видеопроцессор 1332, например, используя модуль 1321 соединения (фиг. 46) и т.п., помещают в буфер 1414 потока и затем демультиплексируют с помощью демультиплексора (DMUX) 1413. Другими словами, поток транспортирования или данные файла, подаваемые в видеопроцессор 1332, разделяют на видеопоток и аудиопоток с помощью демультиплексора (DMUX) 1413.
Аудиопоток подают в аудиодекодер 1411 через буфер 1409В ES аудиоданных и декодируют, и аудиосигнал воспроизводят. Кроме того, видеопоток записывают в буфер 1408 В ES видеоданных и затем последовательно считывают и декодируют, используя механизм 1407 кодирования/декодирования и записывают в запоминающее устройство 1405 кадра. Декодированные данные изображения обрабатывают для их увеличения или уменьшения с помощью второго модуля 1403 увеличения/уменьшения изображения, и записывают в запоминающее устройство 1405 кадра. Затем декодированные данные изображения считывают с помощью модуля 1404 обработки выходных видеоданных, преобразуют в другой формат, в соответствии с заданной системой, такой как система 4:2:2 Y/Cb/Cr и т.п., и дополнительно преобразуют в аналоговый сигнал, и видеосигнал воспроизводят и выводят.
В случае, когда настоящая технология применяется для видеопроцессора 1332, выполненного таким образом, настоящая технология, относящаяся к каждому варианту осуществления, описанному выше, может применяться к механизму 1407 кодирования/декодирования. Другими словами, например, механизм 1407 кодирования/декодирования может быть выполнен так, чтобы он имел функции устройства кодирования изображения (фиг. 1), сконфигурированного на основе кодера 1, и модуля 2 генерирования файла, в соответствии с первым вариантом осуществления, и устройства декодирования изображения (фиг.8), сконфигурированного на основе модуля 51 считывания файла и декодера 52. В результате такой конфигурации, видеопроцессор 1332 может иметь такие же преимущества, как и описанные выше, со ссылкой на фиг. 1-36.
Кроме того, в механизме 1407 кодирования/декодирования настоящая технология (другими словами, функции устройства кодирования изображения и устройства декодирования изображения, в соответствии с каждым вариантом осуществления, описанным выше) могут быть реализованы, используя аппаратные средства, такие как логические схемы или программное обеспечение, такое как встроенная программа, или могут быть реализованы с использованием одновременно аппаратных и программных средств.
Другой пример конфигурации видеопроцессора
На фиг. 48 иллюстрируется другой пример схематичной конфигурации видеопроцессора 1332 (фиг. 46), в котором применяется настоящая технология. В случае примера, представленного на фиг. 48, видеопроцессор 1332 имеет функцию кодирования и декодирования видеоданных, в соответствии с заданной системой.
Более конкретно, как представлено на фиг. 48, видеопроцессор 1332 включает в себя: модуль 1511 управления; интерфейс 1512 дисплея; механизм 1513 отображения; механизм 1514 обработки изображений; и внутреннее запоминающее устройство 1515. Кроме того, видеопроцессор 1332 включает в себя: механизм 1516 кодека; интерфейс 1517 запоминающего устройства; мультиплексор/демультиплексор (MUX DMUX) 1518; сетевой интерфейс 1519; и видеоинтерфейс 1520.
Модуль 1511 управления управляет операциями модулей обработки, расположенных внутри видеопроцессора 1332, таких как интерфейс 1512 дисплея, механизм 1513 отображения, механизм 1514 обработки изображений, и механизм 1516 кодека.
Как представлено на фиг. 48, модуль 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 соединения (фиг. 46) и т.п. под управлением модуля 1511 управления. Например, интерфейс 1512 дисплея преобразует данные изображения, которые представляют собой цифровые данные, в аналоговый сигнал, и выводит аналоговый сигнал, как воспроизводимый видеосигнал, или данные изображения, которые представляют собой цифровые данные, в устройство монитора модуля 1321 соединения (фиг. 46) и т.п.
Механизм 1513 отображения, под управлением модуля 1511 управления, выполняет различную обработку преобразования, такую как преобразование формата, преобразование размера и преобразование цветовой гаммы для данных изображения так, чтобы они соответствовали аппаратной спецификации устройства монитора, отображающего изображение, и т.п.
Механизм 1514 обработки изображения выполняет заданную обработку изображения, такую как обработка фильтра, используемую для улучшения качества изображения и т.п. для данных изображения под управлением модуля 1511 управления.
Внутреннее запоминающее устройство 1515 представляет собой запоминающее устройство, которое совместно используется механизмом 1513 отображения, механизмом 1514 обработки изображений, и механизмом 1516 кодека, и располагается внутри видеопроцессора 1332. Внутреннее запоминающее устройство 1515, например, используется для передачи данных между механизмом 1513 отображения, механизмом 1514 обработки изображений и механизмом 1516 кодека. Например, запоминающее устройство 1515 содержит данные, подаваемые из механизма 1513 отображения, механизма 1514 обработки изображений или механизма 1516 кодека, и подает эти данные в механизм 1513 отображения, механизм 1514 обработки изображений или механизм 1516 кодека, если необходимо (например, в соответствии с запросом). Такое внутреннее запоминающее устройство 1515 может быть реализовано путем использования запоминающего устройства любого вида. Однако, обычно, внутреннее запоминающее устройство часто используется для сохранения данных, имеющих малый объем, таких как данные изображения, в модулях блоков и параметров, и, соответственно, предпочтительно реализовать внутреннее запоминающее устройство, используя полупроводниковое запоминающее устройство, имеющее относительно малую емкость (по сравнению с внешним запоминающим устройством 1312) и имеющее высокую скорость отклика, такое как SRAM (статическое оперативное запоминающее устройство).
Механизм 1516 кодека выполняет обработку, относящуюся к кодированию и декодированию данных изображения. Система кодирования/декодирования, которой соответствует механизм 1516 кодека, является произвольной, и количество систем кодирования/декодирования может составлять одну или больше. Например, она может быть сконфигурирована таким образом, что механизм 1516 кодека может иметь функцию кодека для множества систем кодирования/декодирования и может быть выполнен с возможностью кодирования данных изображения или декодирования кодированных данных путем использования выбранной одной из систем кодирования/декодирования.
В примере, показанном на фиг. 48, механизм 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-DASH (MPEG - динамическая адаптивная потоковая передача через HTTP). MPEG-DASH представляет собой технологию для выполнения потоковой передачи видеоданных, используя 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 (фиг. 46), модуля 1321 соединения (фиг. 46) и т.п. Видеоинтерфейс 1520 представляет собой интерфейс, например, предназначенный для модуля 1321 соединения (фиг. 46), камеру 1322 (фиг. 46) и т.п.
Далее будет описан пример работы такого видеопроцессора 1332. Например, когда транспортный поток принимают из внешней сети, например, используя модуль 1321 соединения (фиг. 46), широкополосный модем 1333 (фиг. 46) и т.п., транспортный поток подают в мультиплексор/демультиплексор (MUX DMUX) 1518 через сетевой интерфейс 1519, демультиплексируют и декодируют, используя механизм 1516 кодека. Для данных изображения, полученных в результате обработки декодирования, выполняемой механизмом 1516 кодека, выполняется заданная обработка изображений, например, с помощью механизма 1514 обработки изображений, и заданное преобразование выполняют с помощью механизма 1513 отображения. Затем полученные в результате данные изображения подают, например, в модуль 1321 соединения (фиг. 46) и т.п. через интерфейс 1512 дисплея, и его изображение отображается на мониторе. Кроме того, данные изображения, например, полученные при обработке декодирования, выполняемой механизмом 1516 кодека, повторно кодируют с помощью механизма 1516 кодека, мультиплексируют с помощью мультиплексора/демультиплексора (MUX DMUX) 1518, преобразуют в данные файла, выводят, например, в модуль 1321 соединения (фиг. 46) и т.п. через видеоинтерфейс 1520, и записывают на различные носители записи.
Кроме того, данные файла кодированных данных, полученных в результате кодирования данных изображения, которые считывают с носителя записи, который не показан на чертеже, например, с помощью модуля 1321 соединения (фиг. 46) и т.п., подают в мультиплексор/демультиплексор (MUX DMUX) 1518 через видеоинтерфейс 1520, демультиплексируют и декодируют с помощью механизма 1516 кодека. Для данных изображения, полученных при обработке декодирования, выполняемой механизмом 1516 кодека, выполняют заданную обработку изображений с помощью механизма 1514 обработки изображений, и заданное преобразование выполняют с помощью механизма 1513 отображения. Затем полученные в результате данные изображения подают, например, в модуль 1321 соединения (фиг. 46) и т.п. через интерфейс 1512 дисплея, и их изображение отображают на мониторе. Кроме того, данные изображения, например, полученные при обработке декодирования, выполняемой механизмом 1516 кодека, повторно кодируют с помощью механизма 1516 кодека, мультиплексируют мультиплексором/демультиплексором (MUX DMUX) 1518, преобразуют в поток транспортирования, подают, например, в механизм 1321 соединения (фиг. 46), широкополосный модем 1333 (фиг. 46) и т.п. через сетевой интерфейс 1519, и передают в другое устройство, которое не представлено на чертеже.
Здесь передачу/прием данных изображения и другие данные между модулями обработки, расположенными внутри видеопроцессора 1332, например, выполняют, используя внутреннее запоминающее устройство 1515 или внешнее запоминающее устройство 1312. Кроме того, модуль 1313 управления питанием, например, управляет подачей питания в модуль 1511 управления.
В случае, когда настоящая технология применяется в видеопроцессоре 1332, выполненном таким образом, настоящая технология, в соответствии с каждым вариантом осуществления, описанным выше, может применяться для механизма 1516 кодека. Другими словами, например, механизм 1516 кодека может быть выполнен с возможностью включать в себя функциональные блоки, реализующие устройство кодирования изображения (фиг. 1), состоящее из кодера 1 и модуля 2 генерирования файла, в соответствии с первым вариантом осуществления, и устройство декодирования изображения (фиг. 8), выполненное на основе модуля 51 считывания файла и декодера 52. В результате выполнения такой конфигурации, видеопроцессор 1332 может иметь те же преимущества, как описано выше со ссылкой на фиг. 1-36.
Кроме того, в механизме 1516 кодека, настоящая технология (другими словами, функции устройства кодирования изображения и устройства декодирования изображения, в соответствии с каждым вариантом осуществления, описанным выше) могут быть реализованы, используя аппаратные средства, такие как логические схемы, или программные средства, такие как встроенная программа, или могут быть реализованы, используя одновременно аппаратные и программные средства.
В то время как два примера конфигурации видеопроцессора 1332 были описаны, как представлено выше, конфигурация видеопроцессора 1332 является произвольной и может представлять собой другую конфигурацию, чем в двух примерах, описанных выше. Здесь видеопроцессор 1332 может быть сконфигурирован либо как одна полупроводниковая микросхема, или как множество полупроводниковых микросхем. Например, видеопроцессор может быть выполнен, как трехмерная многоуровневая LSI. Кроме того, видеопроцессор может быть реализован, как множество LSI.
Пример применения устройства
Видеонабор 1300 может быть встроен в различные устройства, которые обрабатывают данные изображения. Например, видеонабор 1300 может быть встроен в телевизионное устройство 900 (фиг. 42), мобильный телефон 920 (фиг. 43), устройство 940 записи/воспроизведений (фиг. 44), устройство 960 формирования изображения (фиг. 45), и т.п. Благодаря встраиванию видеонабора 1300 в него, устройство может получать преимущества, аналогичные описанным выше, со ссылкой на фиг. 1-36.
Кроме того, хотя конфигурация представляет собой часть конфигураций видеонабора 1300, описанного выше, в случае, когда конфигурация включает в себя видеопроцессор 1332, конфигурация может быть выполнена, как конфигурация, в которой применяется настоящая технология. Например, только видеопроцессор 1332 может быть выполнен, как видеопроцессор, в котором применяется настоящая технология. Кроме того, например, как описано выше, процессор, обозначенный пунктирной линией 1341, видеомодуль 1311 и т.п. могут быть выполнены, как процессор, модуль и т.п., в котором применяется настоящая технология. Кроме того, например, видеомодуль 1311, внешнее запоминающее устройство 1312, модуль 1313 управления питанием, и входной модуль 1314 могут быть скомбинированы для их исполнения в виде видеомодуля 1361, в котором применяется настоящая технология. В соответствии с одной из конфигураций, могут быть получены преимущества, аналогичные описанным выше со ссылкой на фиг. 1-36.
Другими словами, любая конфигурация может быть встроена в различные устройства, которые содержат данные изображения, аналогично случаю видеонабора 1300, если только эта конфигурация включает в себя видеопроцессор 1332. Например, видеопроцессор 1332, процессор, обозначенный пунктирной линией 1341, видеомодуль 1311 или видеомодуль 1361 могут быть встроены в телевизионное устройство 900 (фиг. 42), мобильный телефон 920 (фиг. 43), устройство 940 записи/воспроизведения (фиг. 44), устройство 960 формирования изображения (фиг. 45) и т.п. Благодаря встраиванию любой одной из конфигурации, в которой требуется применять настоящую технологию, в устройство, аналогично случаю видеонабора 1300, устройство может получать преимущества, аналогичные описанным выше со ссылкой на фиг. 1-36.
В данном описании был описан пример, в котором различного вида информация, такая как начальный код, данные заполнителя, параметр, управляющий буфером декодера, идентификационный параметр и FixedStartCodeSizeFlag мультиплексируют в кодированном потоке и передают со стороны кодирования на сторону декодирования. Однако, технология для передачи такой информации не ограничена такой технологией. Например, такая информация может быть передана или записана, как отдельные данные, ассоциированные с кодированным потоком битов, без мультиплексирования в кодированном потоке. Здесь термин "ассоциированный" представляет, что изображение (оно может представлять собой часть изображения, такую как срез, блок и т.п.), включающее в себя в поток битов, и информацию, соответствующую изображению, получают так, что они соединяются друг с другом во время декодирования изображения и информации. Другими словами, информация может быть передана по другой линии передачи, чем изображение (или поток битов). Кроме того, информация может быть записана на другом носителе, чем предназначенный для изображения (или потока битов) (или в разных областях записи на том же носителе записи). Кроме того, информация и изображение (или поток битов), например, могут быть ассоциированы друг с другом в модулях произвольных частей, таких как множество кадров, один кадр или часть кадра.
В то время, как предпочтительные варианты осуществления настоящего раскрытия были подробно описаны со ссылкой на приложенные чертежи, настоящее раскрытие не ограничено такими примерами. Очевидно, что лицо, имеющее обычные знания в области техники настоящего раскрытия, может разработать различные изменения или модификации в пределах объема технической идеи, описанной в формуле изобретения, и, естественно, следует понимать, что такие изменения и модификации принадлежат техническому объему настоящего раскрытия.
Список номеров ссылочных позиций
1 Кодер
2 Модуль генерирования файла
31 Модуль управления
32 Модуль установки
33 Модуль записи файла
51 Модуль считывания файла
52 Декодер
71 Модуль приема файла
72 Модуля получения параметра
73 Модуль управления декодированием
74 Модуль считывания данных
201 Устройство кодирования изображения
251 Устройство декодирования изображения
300 Устройство преобразования файла
311 Модуль анализа видеопотока
401 Кодер
451 Декодер