СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ, СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ, КОМПОНЕНТ КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ, КОМПОНЕНТ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И КОМПОНЕНТ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ
IMAGE ENCODING METHOD, IMAGE DECODING METHOD, IMAGE ENCODING COMPONENT, IMAGE DECODING COMPONENT, AND IMAGE ENCODING/DECODING COMPONENT

Область техники
[0001] Настоящее изобретение относится к способу кодирования изображения для кодирования изображения и способу декодирования изображения для декодирования изображения.
Уровень техники
[0002] Большинство текущих стандартизированных алгоритмов видеокодирования основаны на гибридном видеокодировании. В способах гибридного видеокодирования используются несколько разных схем сжатия без потерь и сжатия с потерями, чтобы достигнуть желаемого коэффициента сжатия. Гибридное видеокодирование также является основой для стандартов ITU-T (стандарты H.26x, такие как H.261, H.263), а также стандартов ISO/IEC (стандарты MPEG-X, такие как MPEG 1, MPEG 2 и MPEG 4).
[0003] Наиболее новым и усовершенствованным стандартом видеокодирования в настоящее время является стандарт, обозначаемый как усовершенствованное видеокодирование (AVC) H.264/MPEG-4. Это результат работ по стандартизации Объединенной команды по видеокодированию (JVT), объединенной команды исследовательских групп ITU-T и MPEG ISO/IEC.
[0004] Кроме того, стандарт видеокодирования, называемый высокоэффективным видеокодированием (HEVC), рассматривает Совместная команда по видеокодированию (JCT-VC) с конкретной целью улучшения эффективности относительно видеокодирования с высокой разрешающей способностью.
Список литературы
Непатентная литература
[0005] Непатентная литература 1: Gordon, et al., "Wavefront Parallel Processing for HEVC Encoding and Decoding", JCTVC-F274-V2, from the Meeting in Torino, July 2011, Internet: http://phenix.int-evry.fr.
Непатентная литература 2: Fuldseth, et al., "Tiles", JCTVC-F355-vl, from the Meeting in Torino, July 2011, Internet: http://phenix.int-evry.fr.
Непатентная литература 3: JCTVC-J1003_d7, "High efficiency video coding (HEVC) text specification draft 8", July 2012, page 73, "dependent_slice_flag", Internet: http://phenix.IT-sudparis.eu/jct/
Сущность изобретения
Техническая проблема
[0006] Однако существует проблема, состоящая в том, что способ кодирования изображения, способ декодирования изображения и т.п. не имеют достаточной эффективности обработки.
[0007] Таким образом, настоящее изобретение обеспечивает способ кодирования изображения и способ декодирования изображения, которые способны увеличить эффективность обработки.
Решение проблемы
[0008] Способ кодирования изображения в соответствии с аспектом настоящего изобретения представляет собой способ кодирования изображения для выполнения обработки кодирования посредством разделения картинки на множество слайсов (вырезок), способ кодирования изображения содержит передачу битового потока, который включает в себя: флаг разрешения зависимого слайса, указывающий, включает ли в себя картинка зависимый слайс, над которым выполняется обработка кодирования в зависимости от результата обработки кодирования, выполненного над слайсом, отличающимся от текущего слайса; адрес слайса, указывающий начальную позицию текущего слайса; и указание зависимости, указывающее, является ли текущий слайс зависимым слайсом, при этом флаг разрешения зависимого слайса расположен в наборе параметров, общем для слайсов, адрес слайса расположен в заголовке текущего слайса, и указание зависимости расположено в заголовке слайса и расположено перед адресом слайса и после синтаксического элемента, идентифицирующего набор параметров.
[0009] Способ декодирования изображения в соответствии с аспектом настоящего изобретения представляет собой способ декодирования изображения для выполнения обработки декодирования посредством разделения картинки на множество слайсов, способ декодирования изображения содержит извлечение из кодированного битового потока флага разрешения зависимого слайса, указывающего, включает ли в себя картинка зависимый слайс, над которым обработка декодирования выполняется в зависимости от результата обработки декодирования, выполненной над слайсом, отличающимся от текущего слайса, адрес слайса, указывающий начальную позицию текущего слайса, и указание зависимости, указывающее, является ли текущий слайс зависимым слайсом, при этом флаг разрешения зависимого слайса расположен в наборе параметров, общем для слайсов, адрес слайса расположен в заголовке текущего слайса, и указание зависимости расположено в заголовке слайса и расположено перед адресом слайса и после синтаксического элемента, идентифицирующего набор параметров.
[0010] Общие и частные аспекты, раскрытые выше, могут быть реализованы с использованием системы, способа, интегральной схемы, компьютерной программы или считываемого компьютером носителя записи, такого как компакт-диск (CD-ROM), или любой комбинации систем, способов, интегральных схем, компьютерных программ или считываемых компьютером носителей записи.
Благоприятные эффекты изобретения
[0011] Способ кодирования изображения и способ декодирования изображения в соответствии с настоящим изобретением способны увеличить эффективность кодирования.
Краткое описание чертежей
[0012] Эти и другие цели, преимущества и признаки раскрытия станут очевидны из их последующего описания, которое совместно с прилагаемыми чертежами иллюстрирует конкретный вариант осуществления настоящего изобретения.
Фиг. 1 - блок-схема, показывающая пример кодера, соответствующего стандарту HEVC.
Фиг. 2 - блок-схема, показывающая пример декодера, соответствующего стандарту HEVC.
Фиг. 3 - схема, показывающая пример конфигурации изображения при волновой параллельной обработке (WPP).
Фиг. 4 - схема, показывающая пример отношения между обычным слайсом и зависимым слайсом при волновой параллельной обработке.
Фиг. 5 - схема, показывающая пример заголовка пакета.
Фиг. 6 - схема, показывающая пример заголовка слайса из энтропийного слайса или зависимого слайса.
Фиг. 7 - схема, показывающая зависимости и передачу сигналов, когда используется обычный слайс.
Фиг. 8 - схематический вид, показывающий зависимости и передачи сигналов, когда используются зависимый слайс и энтропийный слайс.
Фиг. 9А - схема, показывающая пример реализации синтаксиса зависимостей между уровнями, временных зависимостей и зависимостей между слайсами в стандарте HM8.0.
Фиг. 9B - схема для объяснения этапов анализа, которые должны быть выполнены для анализа зависимостей между уровнями в стандарте HM8.0.
Фиг. 9C - схема для объяснения этапов анализа, которые должны быть выполнены для анализа зависимостей между уровнями в стандарте HM8.0.
Фиг. 10 - схема, показывающая пример позиции флага dependent_slice_flag.
Фиг. 11 - схема, показывающая пример синтаксиса, когда условие анализа относительно флага dependent_slice_enabled_flag на фиг. 10 удалено.
Фиг. 12 - схема, показывающая пример синтаксиса, когда флаг dependent_slice_flag перемещен перед флагом first_slice_in_pic_flag.
Фиг. 13 - схема, показывающая пример синтаксиса, когда флаг dependent_slice_flag перемещен перед синтаксическим элементом slice_address.
Фиг. 14 - схема, показывающая пример синтаксиса, когда флаг dependent_slice_flag перемещен в заголовке NAL.
Фиг. 15 - схема, показывающая пример синтаксиса заголовка слайса зависимого слайса, когда к типам элемента NAL добавлен новый тип, используемым для зависимых слайсов.
Фиг. 16 - схема, показывающая пример синтаксиса заголовка слайса и заголовка элемента NAL, когда предполагается, что флаг dependent_slice_flag установлен равным 1 для некоторых типов элементов NAL (NALU).
Фиг. 17 показывает общую конфигурацию системы обеспечения контента для реализации службы распространения контента.
Фиг. 18 показывает общую конфигурацию системы цифрового вещания.
Фиг. 19 показывает блок-схему, иллюстрирующую пример конфигурации телевизора.
Фиг. 20 показывает блок-схему, иллюстрирующую пример конфигурации блока воспроизведения/записи информации, который считывает информацию с носителя записи и записывает информацию на носитель записи, являющийся оптическим диском.
Фиг. 21 показывает пример конфигурации носителя записи, являющегося оптическим диском.
Фиг. 22A показывает пример сотового телефона.
Фиг. 22B - блок-схема, показывающая пример конфигурации сотового телефона.
Фиг. 23 иллюстрирует структуру мультиплексированных данных.
Фиг. 24 схематично показывает, каким образом каждый поток мультиплексирован в мультиплексированных данных.
Фиг. 25 более подробно показывает, каким образом видеопоток сохранен в потоке пакетов PES.
Фиг. 26 показывает структуру пакетов TS и пакетов источника в мультиплексированных данных.
Фиг. 27 показывает структуру данных таблицы PMT.
Фиг. 28 показывает внутреннюю структуру информации мультиплексированных данных.
Фиг. 29 показывает внутреннюю структуру информации атрибутов потока.
Фиг. 30 показывает этапы для идентификации видеоданных.
Фиг. 31 показывает пример конфигурации интегральной схемы для реализации способа кодирования движущегося изображения и способа декодирования движущегося изображения в соответствии с каждым из вариантов осуществления.
Фиг. 32 показывает конфигурацию для переключения между частотами возбуждения.
Фиг. 33 показывает этапы для идентификации видеоданных и переключения между частотами возбуждения.
Фиг. 34 показывает пример таблицы поиска, в которой стандарты видеоданных соответствуют частотам возбуждения.
Фиг. 35A - схема, показывающая пример конфигурации для совместного использования модуля блока обработки сигналов.
Фиг. 35B - схема, показывающая другой пример конфигурации для совместного использования модуля блока обработки сигналов.
Описание вариантов осуществления
[0013] (Базовые знания для настоящего раскрытия)
Относительно способа кодирования изображения и способа декодирования изображения, описанных в разделе "Уровень техники", авторы изобретения обнаружили следующую проблему.
[0014] Сначала будут описаны устройство кодирования изображения и устройство декодирования изображения в стандарте HEVC.
[0015] Видеосигнал, введенный в устройство кодирования изображения, является последовательностью изображений, называемых кадрами (картинками). Каждый кадр включает в себя двухмерную матрицу пикселей. Все упомянутые выше стандарты, основанные на гибридном видеокодировании, включают в себя разделение каждого отдельного видеокадра на меньшие блоки, включающие в себя множество пикселей. Размер блоков может изменяться, например, в соответствии с содержимым изображения. Способ кодирования обычно может различаться для каждого блока. Самый большой размер для такого блока, например, в стандарте HEVC составляет 64×64 пикселя. Он называется наибольшим элементом кодирования (LCU). Элемент LCU может быть рекурсивно разделен на 4 элемента CU.
[0016] В стандарте H.264/MPEG-4 AVC макроблок (обычно обозначающий блок размером 16×16 пикселей) является основным элементом изображения, для которого выполняется кодирование. Макроблок может быть далее разделен на меньшие подблоки. Этапы кодирования, включенные в способ кодирования, и/или этапы декодирования, включенные в способ декодирования, выполняются для каждого подблока.
[0017] [1-1. Гибридное видеокодирование]
Далее в простой форме описано гибридное видеокодирование.
[0018] Как правило, этапы кодирования гибридного видеокодирования включают в себя пространственное и/или временное предсказание (предсказание в пространстве и/или предсказание во времени). В соответствии с этим каждый блок, который должен быть кодирован, сначала предсказывается с использованием либо блоков в его пространственном окружении, либо блоков в его временном окружении, то есть, на основе ранее кодированных видеокадров. Затем вычисляется разностный блок, который является разностью между блоком, который должен быть кодирован, и результатом его предсказания. Затем разностный блок преобразовывается из пространственной (пиксельной) области в частотную область. Преобразование нацелено на уменьшение корреляции входного блока.
[0019] Далее, коэффициенты преобразования, полученные из преобразования, подвергаются квантованию. Это квантование является (необратимым) сжатием с потерями. Обычно значения сжатых коэффициентов преобразования дополнительно подвергаются сжатию без потерь посредством энтропийного кодирования. Кроме того, вместе с кодированным видеосигналом кодируется и обеспечивается вспомогательная информация, необходимая для воссоздания кодированного видеосигнала. Например, это информация о пространственном предсказании, временном предсказании и/или квантовании.
[0020] [1-2. Конфигурация устройства кодирования изображения]
Фиг. 1 является примером типичного устройства кодирования изображения стандарта H.264/MPEG-4 AVC и/или HEVC (кодер 100).
[0021] Как показано на фиг. 1, кодер 100 включает в себя блок 105 вычитания, блок 110 преобразования, блок 120 квантования, блок 130 обратного преобразования, блок 140 суммирования, фильтр 150 удаления блочности, адаптивный контурный фильтр 160, память 170 кадров, блок 180 предсказания и энтропийный кодер 190.
[0022] Блок 180 предсказания получает сигнал s2 предсказания посредством временного предсказания или пространственного предсказания. Тип предсказания, используемого в блоке 180 предсказания, может различаться для каждого кадра или для каждого блока. Временное предсказание называется интер-предсказанием, и пространственное предсказание называется интра-предсказанием. Кодирование, использующее сигнал s2 предсказания посредством временного предсказания, называется интер-кодированием, и кодирование, использующее сигнал s2 предсказания посредством пространственного предсказания, называется интра-кодированием. При получении сигнала предсказания с использованием временного предсказания используются кодированные изображения, сохраненные в памяти. При получении сигнала предсказания с использованием пространственного предсказания используется значение граничного пикселя кодированного или декодированного соседнего блока, сохраненного в памяти. Количество направлений предсказания в интра-предсказании зависит от размера элемента кодирования (CU). Следует отметить, что подробности предсказания будут описаны позже.
[0023] Блок 105 вычитания сначала определяет разность (сигнал e ошибки предсказания) между текущим блоком, который должен быть кодирован, входного изображения (= входной сигнал s1) и соответствующим блоком предсказания (= сигнал s2 предсказания). Разность используется для предсказания текущего блока, который должен быть кодирован. Следует отметить, что сигнал e ошибки предсказания также называется разностным сигналом предсказания.
[0024] Блок 110 преобразования преобразовывает сигнал e ошибки предсказания в коэффициенты. Обычно блок 110 преобразования использует ортогональное преобразование, такое как двухмерное дискретное косинусное преобразование (DCT) или его целочисленная версия. Ортогональное преобразование может значительно уменьшить корреляцию входного сигнала s1 (видеосигнала до кодирования). После преобразования низкочастотные компоненты обычно являются более важными для качества изображения, чем высокочастотные компоненты, таким образом, может быть потрачено больше битов для кодирования низкочастотных компонентов, чем высокочастотных компонентов.
[0025] Блок 120 квантования выполняет квантование коэффициентов и получает квантованные коэффициенты.
[0026] Энтропийный кодер 190 выполняет энтропийное кодирование над квантованными коэффициентами. Посредством энтропийного кодирования квантованные коэффициенты подвергаются сжатию без потерь. Кроме того, посредством энтропийного кодирования объем данных, сохраненный в памяти, и объем данных (битовый поток), который должен быть передан, могут быть дополнительно уменьшены. Энтропийное кодирование выполняется, главным образом, посредством применения кодирования с использованием кодового слова с переменной длиной. Длина кодового слова выбирается на основе вероятности его появления.
[0027] Энтропийный кодер 190 преобразовывает двухмерную матрицу квантованных коэффициентов в одномерный массив. Как правило, энтропийный кодер 190 выполняет это преобразование посредством так называемого зигзагообразного сканирования. Зигзагообразное сканирование начинается с коэффициента DC в верхнем левом углу двухмерного массива и выполняет сканирование двухмерного массива в предопределенной последовательности, заканчивающейся коэффициентом AC в правом нижнем углу. Энергия обычно концентрируется в левой верхней части двухмерной матрицы коэффициентов. Обычно, когда коэффициенты расположены в верхнем левом углу, они являются коэффициентами низкочастотной компоненты. Когда коэффициенты расположены в правом нижнем углу, они являются коэффициентами высокочастотной компоненты. Таким образом, зигзагообразное сканирование в результате дает массив, в котором последние значения обычно являются последовательно множеством единиц или нулей. Это позволяет выполнять эффективное кодирование с использованием кодов длин серий в качестве части фактического энтропийного кодирования или до него.
[0028] Стандарты H.264/MPEG-4 AVC и HEVC используют разные типы энтропийного кодирования. Хотя некоторые синтаксические элементы кодируются с фиксированной длиной, большинство синтаксических элементов кодируется с помощью кодов с переменной длиной. В частности, среди синтаксисов для кодирования сигналов ошибки предсказания (разностных сигналов предсказания) используются контекстно-адаптивные коды с переменной длиной (CABAC). Обычно для кодирования других синтаксических элементов используются различные другие целочисленные коды, отличающиеся от контекстно-адаптивных кодов с переменной длиной. Однако может использоваться контекстно-адаптивное двоичное арифметическое кодирование.
[0029] Коды с переменной длиной позволяют выполнять сжатие без потерь кодированного битового потока. Однако, поскольку кодовые слова имеют переменную длину, декодирование должно выполняться последовательно над кодовыми словами. Другими словами, невозможно кодировать или декодировать кодовые слова до кодирования или декодирования предыдущих кодовых слов без перезапуска (инициализации) энтропийного кодирования или без отдельного указания позиции кодового слова (начальной точки), с которой следует начать при декодировании.
[0030] Арифметическое кодирование кодирует последовательность битов в одно кодовое слово на основе предопределенной вероятностной модели. Предопределенная вероятностная модель определяется в соответствии с содержимым последовательности видеокадров в случае кодирования CABAC. Арифметическое кодирование, и, таким образом, также кодирование CABAC, является тем эффективнее, чем больше длина битового потока, который должен быть кодирован. Другими словами, кодирование CABAC, примененное к последовательностям битов, является эффективным для больших блоков. В начале каждой последовательности кодирование CABAC перезапускается. Другими словами, в начале каждой последовательности видеокадров ее вероятностная модель инициализируется с помощью некоторых предопределенных значений.
[0031] Энтропийный кодер 109 передает стороне декодера битовый поток, включающий в себя кодированные квантованные коэффициенты (кодированные видеосигналы) и кодированную вспомогательную информацию.
[0032] Стандарты H.264/MPEG-4 и H.264/MPEG-4 AVC, а также стандарт HEVC включают в себя два функциональных уровня, уровень видеокодирования (VCL) и уровень сетевой абстракции (NAL). Уровень VCL обеспечивает описанную выше функциональность кодирования. Уровень NAL инкапсулирует информационный элементы в стандартизированные элементы, называемые элементами NAL, в соответствии с их последующим применением, например, передачей по каналу или сохранением в устройстве хранения. Информационные элементы, инкапсулированные посредством уровня NAL, например, представляют собой (1) закодированный сигнал ошибки предсказания (сжатые видеоданные) или (2) другую информацию, необходимую для декодирования видеосигнала, такую как тип предсказания, параметр квантования, векторы движения и т.д. Существуют элементы NAL уровня VCL, содержащие сжатые видеоданные и соответствующую информацию, а также элементы не уровня VCL, инкапсулирующие дополнительные данные, такие как набор параметров, относящихся ко всей последовательности видеокадров, или вспомогательная информация улучшения (SEI), предоставляющая дополнительную информацию, которая может использоваться для улучшения выполнения декодирования.
[0033] Некоторые элементы NAL не уровня VCL включают в себя, например, наборы параметров. Набор параметров является набором параметров, относящихся к кодированию и декодированию некоторой части последовательности видеокадров. Например, существует набор параметров последовательности (SPS), который включает в себя параметр, относящийся к кодированию и декодированию всей последовательности изображений. В частности, набор параметров последовательности является синтаксической структурой, включающей в себя синтаксические элементы. В частности, синтаксические элементы применяются к нулю или более из всех кодированных последовательностей видеокадров, как определено содержимым элемента seq_parameter_set_id. seq_parameter_set_id является синтаксическим элементом, включенным в набор параметров изображения (описано ниже), на которое ссылается элемент pic_parameter_set_id. pic_parameter_set_id является синтаксическим элементом, включенным в каждый заголовок слайса.
[0034] Набор параметров изображения (PPS) является набором параметров, который определяет параметры, применяемые к кодированию и декодированию изображения последовательности изображений (последовательности видеокадров). В частности, набор PPS является синтаксической структурой, включающей в себя синтаксические элементы. Синтаксические элементы применяются к нулю или более из всех кодированных изображений, как определено элементом pic_parameter_set_id, который является синтаксическим элементом, находящимся в каждом заголовке слайса.
[0035] В соответствии с этим более просто отслеживать набор SPS, чем наборы PPS. Это вызвано тем, что набор PPS изменяется для каждого изображения, тогда как набор SPS является постоянным для всей последовательности видеокадров, которая может длиться несколько минут или даже часов.
[0036] Кодер 100 включает в себя блок воссоздания (так называемый блок декодирования), который получает воссозданный сигнал (так называемый декодированный сигнал) s3. С помощью блока воссоздания воссозданное изображение, полученное посредством воссоздания (декодирования) кодированного изображения, формируется и сохраняется в памяти 170 кадров.
[0037] Блок воссоздания включает в себя блок 130 обратного преобразования, блок 140 суммирования, фильтр 150 удаления блочности и адаптивный контурный фильтр 160.
[0038] Блок 130 обратного преобразования в соответствии с описанными выше этапами кодирования выполняет обратное квантование и обратное преобразование. Следует отметить, что сигнал e' ошибки предсказания, полученный из блока 130 обратного преобразования, отличается от сигнала e ошибки предсказания вследствие погрешности квантования, называемой также шумом квантования.
[0039] Блок 140 суммирования получает воссозданный сигнал s' посредством добавления воссозданного сигнала e' ошибки предсказания, воссозданного блоком 130 обратного преобразования, к сигналу s2 предсказания.
[0040] Фильтр 150 удаления блочности выполняет обработку фильтра удаления блочности для уменьшения шума квантования, который накладывается на воссозданный сигнал s' вследствие квантования. При этом, поскольку описанные выше этапы кодирования выполняются для каждого блока, существует случай, в котором граница блока является видимой, когда наложен шум (характеристики блочности шума). Наложенный шум называется шумом блочности. В частности, когда блоком 120 квантования выполнено сильное квантование, в воссозданном изображении (декодированном изображении) имеются более видимые границы блоков. Такой шум блочности имеет отрицательный эффект на визуальное восприятие человека, и это означает, что человек чувствует ухудшение качества изображения. Чтобы уменьшить шум блочности, фильтр 150 удаления блочности выполняет обработку фильтра удаления блочности над каждым воссозданным сигналом s' (воссозданным блоком).
[0041] Например, при обработке фильтра удаления блочности стандарта H.264/MPEG-4 AVC для каждой области выбирается подходящая обработка фильтра. В случае высокой степени шума блочности применяется сильный (узкополосный) низкочастотный фильтр, тогда как для низкой степени шума блочности применяется более слабый (широкополосный) низкочастотный фильтр. Сила низкочастотного фильтра определяется сигналом e2 предсказания и сигналом e' ошибки предсказания. Обработка фильтра удаления блочности в целом сглаживает края блока. Это приводит к улучшенному субъективному качеству изображения декодированных сигналов. Отфильтрованное изображение используется для предсказания с компенсацией движения следующего изображения. Поскольку обработка фильтра также уменьшает ошибки предсказания, эффективность кодирования может быть улучшена.
[0042] Адаптивный контурный фильтр 160 применяет обработку адаптивного к отсчету смещения (SAO) и/или обработку адаптивного контурного фильтра (ALF) к воссозданному изображению s'' после обработки фильтра удаления блочности в фильтре 150 удаления блочности для получения воссозданного сигнала (декодированного сигнала) s3.
[0043] Обработка фильтра удаления блочности в фильтре 150 удалении блочности нацелена на улучшение субъективного качества. Между тем обработка ALF и обработка SAO в адаптивном контурном фильтре 160 нацелены на улучшение пиксельной точности ("объективного" качества). Обработка SAO используется для добавления значения смещения к пиксельному значению для каждого пикселя с использованием пиксельного значения непосредственно соседнего пикселя. Обработка ALF используется для компенсации искажения изображения, вызванного сжатием. Как правило, фильтр, используемый при обработке ALF, является фильтром Винера с коэффициентами фильтра, определенными таким образом, что среднеквадратическая погрешность (MSE) между воссозданным сигналом s' и входным сигналом s1 минимизирована. Коэффициенты фильтра обработки ALF вычисляются и передаются, например, для каждого кадра. Обработка ALF может быть применена ко всему кадру (изображению) или к локальным областям (блокам). Вспомогательная информация, указывающая, какие области должны быть отфильтрованы, может быть передана для каждого блока, для каждого кадра или для каждого дерева квадрантов.
[0044] Память 170 кадров (буфер кадров) сохраняет часть кодированного и воссозданного (декодированного) изображения (воссозданного сигнала s3). Сохраненное воссозданное изображение используется для декодирования интер-кодированного блока.
[0045] Блок 180 предсказания получает сигнал s2 предсказания с использованием (того же самого) сигнала, который может использоваться и на стороне кодера, и на стороне декодера, чтобы поддержать совместимость между стороной кодера и стороной декодера. Сигнал, который может использоваться и на стороне кодера, и на стороне декодера, является воссозданным сигналом s3 (видеосигналом после обработки адаптивным контурным фильтром 160) на стороне кодера, который кодирован и затем воссоздан (декодирован), и воссозданным сигналом s4 (видеосигналом после обработки адаптивным контурным фильтром на фиг. 2) на стороне декодера, который декодирован из битового потока.
[0046] Блок 180 предсказания при формировании сигнала s2 предсказания посредством интер-кодирования выполняет предсказание с использованием предсказания с компенсацией движения. Блок оценки движения блока 180 предсказания (не проиллюстрирован) находит наилучший соответствующий блок для текущего блока из блоков в пределах ранее кодированных и воссозданных видеокадров. Наиболее соответствующий блок затем становится сигналом предсказания. Относительное смещение (движение) между текущим блоком и его наиболее соответствующим блоком затем сообщается как данные движения, включенные во вспомогательную информацию, в виде трехмерных векторов движения. Сигнал передается вместе с кодированными видеоданными. Трехмерный вектор движения включает в себя два вектора движения пространственной размерности и один вектор движения временной размерности. Чтобы оптимизировать точность предсказания, векторы движения могут быть определены с пространственным субпиксельным разрешением, например, с разрешением в половину пикселя или с разрешением в четверть пикселя. Вектор движения с пространственным субпиксельным разрешением может указывать пространственную позицию в пределах уже воссозданного кадра, в которой нет реального доступного пиксельного значения, то есть, субпиксельную позицию. Следовательно, необходима пространственная интерполяция таких пиксельных значений, чтобы выполнить предсказание с компенсацией движения. Это может быть достигнуто посредством фильтра интерполяции (интегрированного в пределах блока 180 предсказания на фиг. 1).
[0047] [1-3. Конфигурация устройства декодирования изображения]
Конфигурация декодера (устройства декодирования изображения) будет описана со ссылкой на фиг. 2.
[0048] Фиг. 2 является блок-схемой, показывающей пример декодера 200 в соответствии со стандартом видеокодирования H.264/MPEG-4 AVC или HEVC.
[0049] Как показано на фиг. 2, декодер 200 включает в себя энтропийный декодер 290, блок 230 обратного преобразования, блок 240 суммирования, фильтр 250 удаления блочности, адаптивный контурный фильтр 260, память 270 кадров и блок 280 предсказания.
[0050] Битовый поток, введенный в декодер 200 (закодированный видеосигнал), сначала передается энтропийному декодеру 290.
[0051] Энтропийный декодер 290 извлекает кодированные квантованные коэффициенты из битового потока и кодированную вспомогательную информацию и декодирует кодированные квантованные коэффициенты и кодированную вспомогательную информацию. Вспомогательная информация, как описано выше, является информацией, необходимой для декодирования, такой как данные движения (вектор движения) и режим предсказания (тип предсказания).
[0052] Энтропийный декодер 290 преобразовывает декодированные квантованные коэффициенты в одномерном массиве в квантованные коэффициенты в двухмерном массиве посредством обратного сканирования. Энтропийный декодер 290 вводит квантованные коэффициенты в блок 230 обратного преобразования после того, как преобразовал их в двухмерный массив.
[0053] Блок 230 обратного преобразования выполняет обратное квантование и обратное преобразование над квантованными коэффициентами, преобразованными в двухмерный массив, для получения сигнала e' ошибки предсказания. Сигнал e' ошибки предсказания соответствует разностям, полученным посредством вычитания сигнала предсказания из сигнала, введенного в кодер, в случае, когда не внесен шум квантования и не возникла ошибка.
[0054] Блок 280 предсказания получает сигнал s2 предсказания посредством временного предсказания или пространственного предсказания. Такая информация, как тип предсказания, включенный во вспомогательную информацию, используется в случае интра-предсказания (пространственное предсказание). Кроме того, такая информация, как данные движения, включенные во вспомогательную информацию, используется в случае предсказания с компенсацией движения (интер-предсказание, временное предсказание).
[0055] Блок 240 суммирования складывает сигнал e' ошибки предсказания, полученный от блока 230 обратного преобразования 230, и сигнал e2 предсказания, полученный из блока 280 предсказания, для получения воссозданного сигнала s'.
[0056] Фильтр 250 удаления блочности выполняет обработку фильтра удаления блочности над воссозданным сигналом s'. Адаптивный контурный фильтр 260 применяет обработку SAO и обработку ALF к воссозданному сигналу s'', к которому применена обработка фильтра 250 удаления блочности. Декодированный сигнал S4, полученный из применения обработки SAO и обработки ALF в адаптивном контурном фильтре 260, сохраняется в памяти 270 кадров. Декодированный сигнал S4, сохраненный в памяти 270 кадров, используется в блоке 280 предсказания для предсказания следующего текущего блока, который должен быть декодирован, или текущего изображения, которое должно быть декодировано.
[0057] [1-4. Эффективность обработки]
Обычно параллелизм обработки рассматривается для увеличения эффективности обработки кодирования и обработки декодирования.
[0058] По сравнению со стандартом H.264/MPEG-4 AVC стандарт HEVC имеет функцию для поддержки параллельной обработки высокого уровня (обработка с распараллеливанием) кодирования и декодирования. В стандарте HEVC возможно разделить кадр на слайсы, так же как в стандарте H.264/MPEG-4 AVC. При этом слайсы являются группами элементов LCU в порядке сканирования. В стандарте H.264/MPEG-4 AVC слайсы могут быть декодированы независимо, и никакое пространственное предсказание между слайсами не применяется. Таким образом, параллельная обработка может быть выполнена для каждого слайса.
[0059] Однако, поскольку слайсы обладают значительно большими заголовками и отсутствуют зависимости между слайсами, эффективность сжатия уменьшается. Кроме того, кодирование CABAC теряет эффективность, когда применяется к небольшим блокам данных.
[0060] Чтобы обеспечить более эффективную параллельную обработку, предложена волновая параллельная обработка (WPP). Алгоритм WPP поддерживает постоянную зависимость, которая отличается от параллельной обработки, в которой каждый из слайсов является независимым.
[0061] Последующее описание будет сделано посредством ссылки на случай, в котором изображение содержит элементы LCU, которые в этих изображениях расположены в матрице, и каждая строка элементов LCU содержит один слайс (см. фиг. 3). В алгоритме WPP среди элементов LCU, содержащих текущую строку 32 элементов LCU, в качестве вероятностной модели кодирования CABAC для сброса состояния кодирования CABAC первого элемента LCU (головного элемента LCU) используется вероятностная модель кодирования CABAC сразу после завершения обработки над вторым элементом LCU предыдущей строки 31 элемента LCU. Поддерживаются все зависимости между блоками. Это дает возможность распараллеливания декодирования строк элементов LCU. Выбор времени для начала обработки каждой строки элементов LCU задерживается на два элемента LCU относительно предыдущего. Информация о начальных точках для начала декодирования строки элемента LCU включена в заголовок слайса. Алгоритм WPP подробно описан в непатентной литературе 1.
[0062] Другой подход для улучшения распараллеливания называется фрагментами. В соответствии с этим кадр (изображение) разделяется на фрагменты. Фрагменты являются прямоугольными группами элементов LCU. Границы между фрагментами установлены таким образом, что все изображение разделено в матрице. Фрагменты обрабатываются в порядке растровой развертки.
[0063] Все зависимости разрываются на границах фрагментов. Энтропийное кодирование, такое как кодирование CABAC, также сбрасывается в начале каждого фрагмента. Только обработка фильтра удаления блочности и обработка адаптивного к отсчету смещения могут быть применены через границы фрагментов. Таким образом, фрагменты могут кодироваться и декодироваться параллельно. Фрагменты подробно описаны в непатентной литературе 2 и непатентной литературе 3.
[0064] Кроме того, чтобы улучшить концепцию слайсов и сделать ее подходящей для параллелизма, а не для устойчивости к ошибкам, что было первоначальной целью слайсов в стандарте H.264/MPEG-4 AVC, была предложена концепция зависимых слайсов и энтропийных слайсов.
[0065] Другими словами, в стандарте HEVC существует три типа поддерживаемых слайсов: (1) обычные слайсы; (2) энтропийные слайсы; и (3) зависимые слайсы.
[0066] Обычные слайсы обозначают слайсы, уже известные из стандарта H.264/MPEG-4 AVC. Между обычными слайсами не разрешается пространственное предсказание. Другими словами, предсказание через границы слайсов не разрешается. Это означает, что обычный слайс кодирован без ссылок на какой-либо другой слайс. Чтобы обеспечить независимое декодирование таких слайсов, кодирование CABAC перезапускается в начале каждого слайса.
[0067] Когда слайс, который должен быть обработан, является обычным слайсом, перезапуск кодирования CABAC включает в себя конечную обработку арифметического кодирования или арифметического декодирования в конце предыдущего слайса и обработку инициализации контекстной таблицы (таблица вероятности) в значение по умолчанию в начале обычного слайса.
[0068] Обычные слайсы используются в начале каждого кадра. Другими словами, каждый кадр должен начинаться с обычного слайса. Обычный слайс имеет заголовок, включающий в себя параметры, необходимые для декодирования данных слайса.
[0069] Термин "энтропийные слайсы" обозначает слайсы, в которых между родительским слайсом и энтропийным слайсом разрешено пространственное предсказание. Анализ родительского слайса и энтропийного слайса выполняется независимо.
[0070] Однако родительский слайс, например, является обычным слайсом сразу перед энтропийным слайсом. Родительский слайс требуется для воссоздания пиксельных значений энтропийного слайса. Чтобы обеспечить независимый анализ энтропийных слайсов, кодирование CABAC также перезапускается в начале слайса. В качестве заголовка энтропийных слайсов возможно использовать заголовок слайса, который короче, чем заголовок обычного слайса. Заголовок энтропийных слайсов включает в себя поднабор параметров кодирования относительно информации, передаваемой в заголовке обычного слайса. Недостающие элементы в заголовке энтропийного слайса копируются из заголовка родительского слайса.
[0071] Когда слайс, который должен быть обработан, является энтропийным слайсом, перезапуск кодирования CABAC аналогично случаю обычного слайса включает в себя конечную обработку в конце предыдущего слайса и обработку инициализации контекстной таблицы (таблицы вероятности) в значение по умолчанию в начале текущего слайса.
[0072] (3) Зависимый слайс подобен энтропийному слайсу, но частично отличается обработкой, в которой перезапускается кодирование CABAC.
[0073] Когда слайс, который должен быть обработан, является зависимым слайсом, и алгоритм WPP не используется, перезапуск кодирования CABAC включает в себя конечную обработку в предыдущем слайсе и обработку инициализации контекстной таблицы в значение состояния конца предыдущего слайса. Когда слайс, который должен быть обработан, является зависимым слайсом, и алгоритм WPP не используется, перезапуск кодирования CABAC включает в себя конечную обработку в предыдущем слайсе и обработку инициализации контекстной таблицы в значение состояния после обработки элемента LCU, который принадлежит предыдущему слайсу и является вторым от левого конца в начале текущего слайса.
.
[0074] Как описано выше, перезапуск кодирования CABAC всегда включает в себя конечную обработку. С другой стороны, при перезапуске кодирования CABAC состояние кодирования CABAC часто продлевается
[0075] Зависимые слайсы не могут быть проанализированы без родительского слайса. Таким образом, зависимые слайсы не могут быть декодированы, когда родительский слайс не принят. Родительский слайс обычно является предыдущим слайсом зависимых слайсов в порядке кодирования, и слайсом, который включает в себя полный заголовок слайса. То же самое относится к родительскому слайсу энтропийного слайса.
[0076] Как описано выше, зависимые энтропийные слайсы используют заголовок слайса (в частности, информацию заголовка слайса, которая отсутствует в заголовке зависимого слайса) непосредственно предыдущего слайса в соответствии с порядком кодирования слайсов. Это правило применяется рекурсивно. Родительский слайс, от которого зависит текущий зависимый слайс, распознается как доступный для ссылки. Ссылка включает в себя использование пространственного предсказания между слайсами, совместное использование состояний кодирования CABAC и т.п. Зависимый слайс использует контекстные таблицы кодирования CABAC, которые сформированы в конце непосредственно предыдущего слайса. Таким образом, зависимый слайс не инициализирует таблицы кодирования CABAC в значения по умолчанию, а вместо этого продолжает использовать уже разработанные контекстные таблицы. Более подробная информация относительно энтропийных и зависимых слайсов может быть найдена в непатентной литературе 3.
[0077] Стандарт HEVC обеспечивает несколько профилей. Профиль включает в себя некоторые настройки устройства кодирования изображения и устройства декодирования изображения, подходящие для конкретного приложения. Например, "основной профиль" включает в себя только обычные и зависимые слайсы, но не энтропийные слайсы.
[0078] Как описано выше, кодированные слайсы далее инкапсулируются в элементы NAL, которые далее инкапсулируются, например, в протокол реального времени (RTP) и, наконец, в пакеты протокола Интернета (IP). Либо этот, либо другие стеки протоколов обеспечивают возможность передачи кодированного видео в пакетных сетях, таких как Интернет или некоторые проприетарные сети.
[0079] Сети обычно включают в себя по меньшей мере один или несколько маршрутизаторов, которые используют специальное оборудование, работающее очень быстро. Функция маршрутизатора состоит в приеме пакетов IP, анализе их заголовков пакетов IP и пересылке пакетов IP их соответствующим адресам назначения. Поскольку маршрутизаторы должны обрабатывать трафик из многих источников, логическая схема обработки пакетов должна быть максимально простой. Минимальное требование для маршрутизатора состоит в проверке поля адреса назначения в IP-заголовке, чтобы определить, какой маршрут выбрать для их пересылки. Чтобы обеспечить дополнительную поддержку качества обслуживания (QoS), интеллектуальные (осведомленные о среде) маршрутизаторы дополнительно проверяют специализированные поля в заголовках сетевого протокола, таких как IP-заголовок, RTP-заголовок и даже заголовок элемента NAL.
[0080] Как можно видеть из приведенного выше описания видеокодирования, разные типы слайсов, определенных в целях параллельной обработки, такие как зависимые слайсы и энтропийные слайсы, имеют разное значение относительно искажения качества при их повреждении. В частности, зависимые слайсы не могут быть проанализированы и декодированы без родительского слайса. Это вызвано тем, что в начале зависимого слайса энтропийный кодер или декодер не может быть перезапущен. В соответствии с этим родительский слайс является более важным для восстановления изображения или видео.
[0081] В стандарте HEVC зависимые и энтропийные слайсы вносят дополнительную размерность зависимости, а именно, зависимость между слайсами (зависимость в пределах кадра). Этот вид зависимости не учитывается маршрутизаторами.
[0082] Описанные выше зависимости и, в частности, зависимость между слайсами не учитываются на сетевом уровне. Однако было бы желательно принять описанную выше зависимость во внимание на сетевом уровне, чтобы обеспечить более хорошую поддержку качества обслуживания. В соответствии с этим необходимо улучшить гибкость пакетной обработки на сетевом уровне посредством приятия во внимание зависимости слайсов.
[0083] (Подробные сведения о проблеме)
[1-5. Алгоритм WPP и зависимый слайс]
Зависимые слайсы могут использоваться вместе с инструментами параллельной обработки, такими как волновая параллельная обработка (WPP) и фрагменты. В частности, зависимые слайсы делают волновой фронт (подпоток) способным уменьшать задержки передачи, не вызывая потери кодирования.
[0084] Кроме того, зависимые слайсы служат начальными точками для подпотоков CABAC, поскольку кодирование CABAC не перезапускается в зависимых слайсах. Кроме того, информация, указывающая начальные точки, может быть передана в битовом потоке, чтобы обеспечить начальные точки для возможно независимого анализа. В частности, если более чем два подпотока CABAC инкапсулированы в обычном или зависимом слайсе, начальные точки сообщаются явно в виде количества байтов на подпоток. При этом подпоток обозначает часть потока, который может быть проанализирован независимо благодаря начальным точкам. Кроме того, зависимые слайсы могут использоваться в качестве "маркеров" начальных точек, поскольку каждый зависимый слайс должен иметь заголовок элемента NAL. Это означает, что начальные точки могут быть сообщены относительно таких маркеров.
[0085] Совместно используются два подхода, а именно, явное сообщение начальной точки и маркировка начальных точек через зависимые слайсы.
[0086] Как правило, начальная точка каждого элемента NAL (начало каждого заголовка NAL) должна быть идентифицируемой. Нет какого-либо требования о точной операции идентификации. Например, могут быть применены следующие два способа.
[0087] Первый способ представляет собой способ помещения начального кода (например, длиной 3 байта) в начале каждого заголовка NAL. Второй способ представляет собой способ помещения каждого элемента NAL в отдельный пакет. Вследствие зависимости слайсов размер заголовка слайса может быть уменьшен.
[0088] Что касается энтропийных слайсов, способ обеспечивает возможность параллельного анализа кодирования CABAC. Это вызвано тем, что кодирование CABAC действительно перезапускается в начале энтропийных слайсов. В случае параллельной обработки кодирования CABAC кодирование CABAC представляет узкое место, которое может быть преодолено посредством параллельного анализа кодирования CABAC, за которым следуют последовательные операции восстановления пикселей. В частности, инструмент распараллеливания алгоритма WPP обеспечивает возможность декодировать каждую строку элементов LCU одним ядром обработки (код интеллектуальной собственности (ядро IP), функциональный блок). Следует отметить, что присвоение строк элементов LCU ядрам может быть разным. Например, две строки могут быть присвоены одному ядру, и одна строка может быть присвоена двум ядрам.
[0089] Фиг. 3 является схемой, показывающей пример конфигурации изображения 300. На фиг. 3 изображение 300 разделено на строки 31-3m (m - порядковый номер элемента LCU) наибольших элементов кодирования (LCU). Каждая строка 3i (i=1, ..., m) элементов LCU содержит элементы 3i1-3in LCU (n - порядковый номер столбца элементов LCU), которые расположены подряд. Строка 3i элементов LCU соответствует "волновому фронту i". Параллельная обработка может быть выполнена для волновых фронтов. Стрелка состояния кодирования CABAC на фиг. 3 обозначает отношение между элементом LCU, относящимся к состоянию кодирования CABAC, и опорным адресом назначения.
[0090] В частности, на фиг. 3 сначала среди элементов LCU, включенных в строку 31 элементов LCU, обработка (кодирование или декодирование) начинается для головного элемента 311 LCU. Обработка элементов LCU выполняется в порядке от элемента 311 LCU до элемента 31n LCU. После того как обработка первых двух элементов 311 и 312 LCU в строке 31 элементов LCU выполнена, начинается обработка строки 32 элементов LCU. При обработке первой строки 321 элементов LCU из столбца 32 элементов LCU, как показано в стрелке состояния CABAC на фиг. 3, состояние кодирования CABAC сразу после обработки элемента 312 LCU в строке 31 элементов LCU в первой строке используется в качестве начального состояния кодирования CABAC. Другими словами, между двумя параллельными обработками имеется задержка на два элемента LCU.
[0091] Фиг. 4 является схемой, показывающей пример случая, в котором используется зависимый слайс с использованием алгоритма WPP. Строки 41-43 элементов LCU соответствуют "волновому фронту 1", "волновому фронту 2" и "волновому фронту 3", соответственно. Строки 41-43 элементов LCU обрабатываются их соответствующими независимыми ядрами. На фиг. 4, строка 41 элементов LCU представляет собой обычный слайс, и строки 42-4m элементов LCU представляют собой зависимые слайсы.
[0092] Зависимые слайсы делают алгоритм WPP способным сократить задержки. Зависимые слайсы не имеют полного заголовка слайса. Кроме того, зависимые слайсы могут декодироваться независимо от других слайсов, пока известны начальные точки (или начальная точка зависимых слайсов, которая, как правило, известна, как описано выше). В частности, зависимые слайсы могут сделать алгоритм WPP подходящим также для приложений с низкой задержкой без потерь кодирования.
[0093] В обычном случае инкапсуляции подпотоков (строк элементов LCU) в слайсы является обязательным вставлять явные начальные точки в заголовок слайса для обеспечения параллельного энтропийного кодирования и декодирования. В результате слайс готов к передаче только после того, как полностью закодирован последний подпоток слайса. Заголовок слайса завершен только после того, как завершено кодирование всех подпотоков в слайсе. Это означает, что передача начала слайса не может быть начата через фрагментацию пакетов на уровне RTP/IP, пока не закончен целый слайс.
[0094] Однако, поскольку зависимые слайсы могут использоваться в качестве маркеров начальной точки, явное сообщение начальной точки не требуется. Таким образом, возможно разбить обычный слайс на несколько зависимых слайсов без потери кодирования. Зависимые слайсы могут быть переданы, как только завершено кодирование инкапсулированного подпотока (или еще раньше в случае фрагментации пакетов).
[0095] Зависимые слайсы не повреждают зависимость пространственного предсказания. Зависимые слайсы даже не повреждают зависимость анализа. Это вызвано тем, что обычно анализ текущего зависимого слайса требует состояний кодирования CABAC от предыдущего слайса.
[0096] Когда зависимые слайсы не были разрешены, тогда каждая строка элементов LCU могла быть сконфигурирована как слайс. Такая конфигурация понижает задержку передачи, но в то же время приводит к довольно высокой потере кодирования, как рассмотрено выше в разделе "Уровень техники".
[0097] В качестве альтернативы, весь кадр (изображение) инкапсулируется в единственный слайс. В этом случае начальные точки для подпотоков (строк элементов LCU) должны быть сообщены в заголовке слайса, чтобы обеспечить возможность их параллельного анализа. В результате имеется задержка передачи на уровне кадра. Другими словами, заголовок должен быть изменен после того, как кодирован весь кадр. Инкапсуляция всего изображения в единственном слайсе сама по себе не увеличивает задержку передачи. Например, передача некоторых частей слайса уже может начаться, прежде чем закончено все кодирование. Однако, если используется алгоритм WPP, то заголовок слайса должен быть изменен позже, чтобы записать начальные точки. Таким образом, передача всего слайса должна быть задержана.
[0098] Использование зависимых слайсов, таким образом, обеспечивает возможность сокращения задержки. Как показано на фиг. 4, изображение 400 разделено на строку 41 элементов LCU, которая представляет собой обычный слайс, и строки 42-4m элементов LCU, которые представляют собой зависимые слайсы. Когда каждая строка элементов LCU является одним зависимым слайсом, задержка передачи одной строки элементов LCU может быть достигнута без какой-либо потери кодирования. Это вызвано тем фактом, что зависимые слайсы не повреждают пространственной зависимости и не перезапускают механизм кодирования CABAC.
[0099] [1-6. Конфигурация пакета]
Как описано выше, сетевые маршрутизаторы должны анализировать заголовки пакетов, чтобы дать возможность обеспечения качества обслуживания. Качество обслуживания отличается в зависимости от типа приложения и/или приоритета сервиса и/или важности пакета для искажения, вызванного потерей пакетов.
[0100] Фиг. 5 является схемой, показывающей пример инкапсуляции (пакетизации) битового потока.
[0101] Обычно для пакетизации используется протокол реального времени (RTP). Протокол RTP обычно используется для оперативной передачи медиапотоков. Длины заголовков соответствующих используемых протоколов в основном фиксированы. Заголовки протокола имеют поля расширения. Поля расширения могут увеличить длину заголовков на 4 байта. Например, заголовок IP может быть расширен максимум на 20 байтов. Синтаксические элементы в заголовках протокола IP, протокола пользовательских дейтаграмм (UDP) и протокола RTP также фиксированы по их длине.
[0102] Фиг. 5 демонстрирует заголовок 500 пакета, включенный в пакет IP. Заголовок пакета, показанный на фиг. 5, включает в себя заголовок 510 IP, заголовок 530 UDP, заголовок 540 RTP, заголовок 560 полезной нагрузки RTP H264 и заголовок 570 NAL. Заголовок 510 IP является заголовком длиной 20 байтов с полем 520 расширения длиной 4 байта. Полезной нагрузкой пакета IP является пакет UDP. Пакет UDP включает в себя заголовок 530 UDP длиной 8 байтов и полезную нагрузку UDP. Полезная нагрузка UDP сформирована пакетом RTP. Пакет RTP включает в себя заголовок 540 RTP длиной начальной части 12 байтов и дополнительное поле 550 длиной 4 байтов. Пакет RTP может быть выборочно расширен посредством дополнительного поля. Полезная нагрузка пакета RTP включает в себя специальный заголовок 560 полезной нагрузки RTP H264 длиной от 0 до 3 байтов, за которым следует заголовок 570 NAL стандарта HEVC, который составляет 2 байта в длину. Полезная нагрузка элемента NAL, включающая в себя кодированный видеопакет, следует за заголовками 500 пакета (не показано на фиг. 5).
[0103] Маршрутизаторы, которые способны обеспечивать улучшенное качество обслуживания, называются осведомленными о среде сетевыми элементами (MANE). Осведомленные о среде сетевые элементы проверяют некоторые поля заголовков пакета, показанных на фиг. 5. Например, элемент MANE называется "temporal_id" и включен в заголовок 570 NAL, или номер порядка декодирования, включенный в заголовок 540 RTP, может быть проверен для обнаружения потерь и порядка представления содержимого полученного пакета. Маршрутизаторы (сетевые элементы) обрабатывают пакеты максимально быстро, чтобы обеспечить высокую пропускную способность в сети. Требуется логическая схема для простого и быстрого получения доступа к полям в заголовках пакета, чтобы поддержать низкий уровень сложности обработки сетевого элемента.
[0104] Элемент NAL инкапсулирован посредством заголовка 500. Элемент NAL может включать в себя данные слайса, когда присутствует заголовок слайса.
[0105] Фиг. 6 является схемой, показывающей пример синтаксиса 600 заголовка слайса. Синтаксический элемент 601 dependent_slice_flag является синтаксическим элементом, указывающим, является ли слайс зависимым слайсом. Этот синтаксический элемент может использоваться для определения зависимости между слайсами. Однако заголовок слайса является содержимым элемента NAL. Анализ синтаксических элементов перед элементом 601 dependent_slice_flag требует довольно сложной логической схемы. Это уровень, который не может эффективно учитываться обычными маршрутизаторами, как будет показано ниже.
[0106] Как описано выше, элемент NAL включает в себя информацию, общую для множества слайсов, такую как набор параметров, или включает в себя непосредственно кодированные слайсы с информацией, необходимой для декодирования включенного в заголовок слайса. Синтаксис заголовка слайса, используемого для энтропийного или зависимого слайса, проиллюстрирован на фиг. 6. Фиг. 6 показывает таблицу со структурой заголовка слайса. Когда синтаксический элемент "dependent_slice_flag" установлен равным 1, требуются все слайсы вплоть до первого обычного слайса (слайса, который не является энтропийным слайсом или зависимым слайсом), предшествующие текущему слайсу в порядке декодирования. Когда слайсы не декодированы, в общем случае текущий зависимый слайс не может быть декодирован. В некоторых особых случаях, например, зависимый слайс может быть декодирован, когда доступна некоторая другая вспомогательная информация, сообщенная или полученная. Синтаксический элемент 601 dependent_slice_flag включен приблизительно в середине заголовка слайса. Кроме того, заголовок слайса включает в себя количество подпотоков CABAC в текущем слайсе, сообщенное посредством информационного элемента 602 num_entry_point_offsets, и количество байтов в подпотоке, сообщенное посредством синтаксического элемента 603 entry_point_offset [i]. При этом информационный элемент 602 num_entry_point_offsets соответствует количеству входных точек. Кроме того, i - целое число и индекс, обозначающий конкретные входные точки (смещения входных точек). Количество байтов в подпотоке, обозначенное посредством элемента 603 entry_point_offset[i], обеспечивает простую навигацию в пределах битового потока.
[0107] [1-7. Зависимость изображения]
Как описано выше, имеется несколько типов зависимостей, возникающих в результате подхода кодирования стандарта HEVC.
[0108] Фиг. 7 является схемой, показывающей зависимости и их сообщение в случае, в котором используются только обычные слайсы, то есть, нет зависимых и нет энтропийных слайсов. Фиг. 7 показывает три изображения 710, 720 и 730.
[0109] Изображение 710 является изображением базового уровня, которое передается в двух элементах NAL VCL, а именно, в элементе 1 NAL VCL и элементе 2 NAL VCL. POC указывает порядок, в котором должны быть воспроизведены изображения. Элемент NAL VCL включает в себя синтаксический элемент, указывающий, принадлежит ли изображение базовому уровню или улучшающему уровню, и синтаксический элемент temporal_id. Синтаксический элемент, указывающий, принадлежит ли изображение базовому уровню или улучшающему уровню, передается в состоянии внутри заголовка 570 NAL заголовка 500 пакета, показанного на фиг. 5. Синтаксический элемент "temporal_id" также передается в состоянии внутри заголовка 570 NAL. Синтаксический элемент "temporal_id" указывает степень зависимости других изображений. Например, изображения или слайсы, кодированные с temporal_id=0, могут быть декодированы независимо от других изображений/слайсов, которые имеют более высокий temporal_id. Следует отметить, что в стандарте HEVC элемент temporal_id сообщается в заголовке NAL как элемент nuh_temporal_id_plus1 (см. фиг. 9А). В частности, следующее выражение 1 может быть применено к отношению между элементом temporal_id, используемым в этих примерах, и синтаксическим элементом nuh_temporal_id_plus1.
[0110]
temporal_id=nuh_temporal_id_plus1 - 1 (Выражение 1)
[0111] Слайсы с temporal_id=1 зависят от слайсов с temporal_id с более низким значением. Другими словами, значение temporal_id в этом случае равно 0. В частности, синтаксический элемент temporal_id относится к структуре предсказания изображения. В целом слайсы с конкретным значением temporal_id зависят только от слайсов с более низким или равным значением temporal_id.
[0112] В соответствии с этим сначала может быть декодировано изображение 710 на фиг. 7.
[0113] Изображение 720 является улучшающим уровнем для базового уровня изображения 710. Таким образом, существует зависимость, которая требует, чтобы изображение 720 было декодировано после декодирования изображения 710. Изображение 720 включает в себя два элемента NAL, а именно, элемент 3 NAL VCL и элемент 4 NAL VCL. Оба изображения 710 и 720 имеют значение POC равное 0. Это означает, что изображения 710 и 720 принадлежат одному и тому же изображению, которое будет сразу отображено. Изображения содержат базовый и улучшающий уровень.
[0114] Изображение 730 является базовым уровнем, который включает в себя два элемента NAL, а именно, элемент 5 NAL VCL и элемент 6 NAL VCL. Изображение 730 имеет значение POC равное 1. Это означает, что изображение (часть) 730 должно быть отображено после изображений 720 и 710. Кроме того, изображение 730 имеет значение temporal_id=1. Это означает, что изображение 730 по времени зависит от изображения с temporal_id=0. В соответствии с этим, на основе зависимости, сообщенной в заголовке NAL, изображение 730 зависит от изображения 710.
[0115] Фиг. 8 является схемой, показывающей зависимости (степень зависимости) и их сообщение в случае, в котором используются зависимые слайсы и не используются энтропийные слайсы. Фиг. 8 показывает три изображения 810, 820 и 830. Фиг. 8 отличается от описанной выше фиг. 7 тем, что добавлены зависимости зависимых и энтропийных слайсов, сообщенных внутри заголовка слайса.
[0116] На фиг. 7 зависимость между уровнями показана с помощью примера изображений 710 и 720. Кроме того, временная зависимость показана в примере изображений 710 и 730. Обе эти зависимости сообщены в заголовке NAL.
[0117] Зависимость между слайсами, как показано на фиг. 8, свойственна зависимым и энтропийным слоям. В частности, кадр 810 базового уровня и кадр 820 улучшающего уровня оба имеют два слайса. Из этих двух слайсов один является родительским слайсом (обычный слайс), и другой является дочерним слайсом (зависимым слайсом). В кадре 810 слайс элемента 1 NAL VCL является родительским слайсом элемента 2 NAL VCL. В кадре 820 слайс элемента 3 NAL VCL являются родительским слайсом элемента 4 NAL VCL. Как описано выше, термин "родительский слайс" зависимого слайса относится к слайсу, от которого зависимый слайс зависит, то есть, к слайсу, информация заголовка которого используется зависимым слайсом. Как правило, это первый из предыдущих слайсов, который имеет полный заголовок. Например, слайс, который имеет полный заголовок, является обычным слайсом, а не другим зависимым слайсом.
[0118] Соответствующий синтаксис заголовка элемента NAL и заголовка слайса, который в настоящее время используется в стандарте HEVC и, в частности, в стандарте HM8.0, будет описан со ссылкой на фиг. 9А.
[0119] Фиг. 9А является схемой, показывающей синтаксис заголовка 910 элемента NAL и синтаксис заголовка 920 слайса. В частности, зависимости между уровнями запланированы (в текущей стандартизации) для сообщения внутри заголовка элемента NAL с использованием синтаксического элемента nuh_reserved_zero_6bits. Временные зависимости сообщаются с использованием синтаксического элемента nuh_temporal_id_plus1. Заголовок 920 слайса включает в себя сигнал, указывающий индикатор зависимости между слайсами. Индикатор зависимости между слайсами обозначен синтаксическим элементом dependent_slice_flag. Другими словами, зависимость между слайсами (например, временная зависимость) сообщается внутри заголовка слайса, где-то в заголовке слайса.
[0120] Чтобы проанализировать этот синтаксический элемент, должны быть проанализированы все синтаксические элементы, предшествующие dependent_slice_flag, а также синтаксические элементы набора параметров, необходимые для анализа синтаксических элементов заголовка слайса, предшествующих dependent_slice_flag.
[0121] [1-8. Обработка в маршрутизаторе]
Как описано выше, при определении формирования трафика желательно учесть зависимости, вносимые зависимыми и энтропийными слайсами, в дополнение к зависимостям, сообщенным в заголовке NAL. Например, маршрутизатор может быть реализован как осведомленная о среде базовая станция мобильной связи. Пропускная способность на нисходящей линии связи очень ограничена и должна регулироваться очень тщательно. Рассмотрим следующий иллюстративный случай. Предположим, что пакет случайным образом отброшен в потоке обычным маршрутизатором. В этом случае осведомленный о среде сетевой элемент (MANE) обнаруживает потерю пакета, проверяя номер пакета. После проверки потери пакета элемент MANE отбрасывает все пакеты, которые зависят от отброшенного пакета и которые следуют за ним. Эта функциональность является желательной для осведомленных о среде сетевых элементов. Таким образом, пакеты могут быть отброшены более интеллектуально. Когда маршрутизатор решает отбросить элемент NAL, он сразу придет к выводу, что следующие зависимые слайсы также должны быть отброшены. В текущем синтаксисе, введенном на фиг. 9А, доступ к элементу dependent_slice_flag требует анализа значительного количества информации. Это не существенно для операций по маршрутизации пакетов или формированию трафика в маршрутизаторах. Вся информация, которая необходима для обнаружения отношений между уровнями и временных отношений, присутствует в наборе видеопараметров. Набор видеопараметров является набором самого высокого уровня в иерархии наборов параметров.
[0122] В соответствии с этим описанная выше информация сообщается внутри заголовка 570 NAL. Однако в случае заголовка NAL и заголовка слайса, показанного на фиг. 9А, доступ к информации зависимости слайса требует отслеживания дополнительных наборов параметров, таких как набор PPS и набор SPS. С другой стороны, это повторно использует возможность осведомленных о среде межсетевых шлюзов или маршрутизаторов. Как можно увидеть из фиг. 9А, заголовок 920 слайса должен быть проанализирован вплоть до элемента dependent_slice_flag, и проанализированные параметры бесполезны для сетевой операции.
[0123] Чтобы быть в состоянии проанализировать адрес слайса, который предшествует элементу dependent_slice_flag, требуются следующие синтаксические элементы из синтаксических элементов, включенных в набор 930 SPS, как показано на фиг. 9B. Фиг. 9B является схемой, показывающей пример синтаксиса, включенного в набор SPS.
pic_width_in_luma_samples (номер 931 на фиг. 9B)
pic_height_in_luma_samples (номер 932 на фиг. 9B)
log2_min_coding_block_size_minus3 (номер 933 на фиг. 9B)
log2_diff_max_min_coding_block_size (номер 934 на фиг. 9B)
[0124] Эти параметры показаны в таблице справа на фиг. 9B и необходимы для получения параметра slice_address. Синтаксический элемент slice_address кодируется с переменной длиной слова (как можно видеть во втором столбце по длине "v" в дескрипторе элемента slice_address и заголовка 920 слайса на фиг. 9А). Чтобы узнать длину этого кодированного с переменной длиной слова параметра, необходимы эти синтаксические элементы из набора SPS. Фактически, чтобы быть в состоянии проанализировать элемент dependent_slice_flag, фактическое значение slice_address синтаксического элемента не является необходимым. Чтобы процесс анализа мог быть продолжен, должна быть известна только длина синтаксического элемента, которая является переменной.
[0125] Таким образом, набор SPS должен быть проанализирован вплоть до точки 935 из синтаксических элементов в пределах набора 930 SPS, показанных на фиг. 9B. Эти четыре синтаксических элемента требуется сохранить. Они используются позже в формуле для вычисления длины синтаксического элемента slice_address.
[0126] Кроме того, чтобы получить доступ к элементу dependent_slice_enabled_flag, также предшествующему dependent_slice_flag, набор PPS должен быть проанализирован вплоть до точки 945 из синтаксических элементов в пределах набора PPS, показанных на фиг. 9C. Фиг. 9C является схемой, показывающей пример синтаксиса, включенного в набор PPS. Следует отметить, что синтаксические элементы, способы анализа которых описаны со ссылкой на фиг. 9А-9C, и которые расположены внутри заголовка слайса и набора SPS и набора PPS, не требуются для операций обычного маршрутизатора. Кроме того, некоторые синтаксические элементы не могут быть просто пропущены, поскольку некоторые синтаксические элементы кодированы с помощью кодов с переменной длиной. В соответствии с этим, даже если в битовом потоке выполняется переход на предопределенное количество битов, переход на dependent_slice_enabled_flag не является возможным.
[0127] Другими словами, чтобы прочитать dependent_slice_flag (указание зависимости), элемент MANE должен пойти дальше в заголовке слайса (обратиться к заголовку 920 слайса), анализ которого является довольно сложным.
[0128] В частности, должен быть проанализирован флаг first_slice_in_pic_flag. Флаг first_slice_in_pic_flag является флагом, указывающим, является ли слайс первым слайсом в пределах изображения.
[0129] Затем должен быть проанализирован флаг no_output_of_prior_pics_flag, присутствие которого зависит от типа элемента NAL.
[0130] Кроме того, должен быть декодирован кодированный с переменной длиной слова элемент pic_parameter_set_id. Синтаксический элемент pic_parameter_set_id является синтаксическим элементом, указывающим, какой из наборов параметров используется (синтаксический элемент, который определяет набор параметров). Посредством анализа элемента pic_parameter_set_id может быть определен набор параметров, который должен быть использован.
[0131] Наконец, требуется синтаксический элемент slice_address. Синтаксический элемент slice_address является синтаксическим элементом, указывающим начальную позицию слайса. Синтаксический элемент дополнительно требует анализа набора PPS и набора SPS, а также дополнительного вычисления.
[0132] В качестве последнего этапа из набора PPS должно быть получено значение элемента dependent_slice_enabled_flag (флаг разрешения зависимых слайсов), чтобы узнать, присутствует ли в битовом потоке элемент dependent_slice_flag. Когда dependent_slice_enabled_flag=0, это означает, что текущий слайс является обычным слайсом, поскольку зависимые слайсы не разрешены. Чтобы получить значение dependent_slice_enabled_flag, требуется проанализировать набор PPS приблизительно до его середины.
[0133] К сожалению, синтаксические элементы перед элементом dependent_slice_flag не могут быть пропущены и должны быть проанализированы, в отличие от случая данных заголовка RTP и NAL, в которых положение данных предопределено. Это вызвано тем фактом, что синтаксические элементы в заголовке слайса кодированы с переменной длиной слова. Таким образом, присутствие и длина элемента должны быть вычислены для каждого элемента NAL VCL. Кроме того, должны сохраняться дополнительные данные сеанса, поскольку они необходимые позже (для обращения к набору PPS и набору SPS). Кроме того, присутствие некоторых синтаксических элементов зависит от присутствия или значения других синтаксических элементов, возможно включенных в другие структуры параметров (синтаксические элементы кодированы условно).
[0134] В текущей стандартизации имеется предложение сообщать структуру зависимостей последовательности видеокадров в наборе видеопараметров (VPS), который описывает, сколько уровней содержится в битовом потоке, и индикаторы зависимости для указания различных зависимостей между уровнями. Набор VPS сообщается в самом начале видео перед первым набором SPS. Несколько наборов SPS могут относиться к одному набору VPS. Это означает, что VPS несет информацию, которая пригодна для нескольких последовательностей видеокадров. Главная цель набора VPS состоит в том, чтобы сообщить маршрутизатору или декодеру о содержимом видео, включающем в себя информацию. Сколько последовательностей видеокадров включено и как они взаимосвязаны. Набор SPS является пригодным только в пределах последовательности видеокадров, тогда как набор VPS несет информацию, относящуюся к нескольким последовательностям видеокадров.
[0135] Кроме того, характеристика информации, которую несет набор VPS, является информативной специально для маршрутизаторов. Например, набор VPS может нести информацию, которая требуется для настройки сеанса потоковой передачи, поскольку конфигурация не завершена. Маршрутизатор анализирует информацию в наборе VPS. Маршрутизатор без необходимости других наборов параметров (просто посредством просмотра заголовков NAL) может определить, какие пакеты данных следует передать декодеру, и какие пакеты отбросить.
[0136] Однако, чтобы обнаружить текущий активный набор VPS, должны быть выполнены следующие упорядоченные этапы: анализ PPS_id в заголовке слайса; анализ SPS_id в активном наборе PPS, определенном посредством PPS_id; и анализ VPS_id в активном наборе SPS, определенном посредством SPS_id.
[0137] Чтобы решить описанную выше проблему, способ кодирования изображения в соответствии с аспектом настоящего изобретения представляет собой способ кодирования изображения для выполнения обработки кодирования посредством разделения картинки на множество слайсов, способ кодирования изображения содержит передачу битового потока, который включает в себя: флаг разрешения зависимого слайса, указывающий, включает ли в себя картинка зависимый слайс, над которым выполняется обработка кодирования в зависимости от результата обработки кодирования, выполненного над слайсом, отличающимся от текущего слайса; адрес слайса, указывающий начальную позицию текущего слайса; и указание зависимости (dependent_slice_flag), указывающее, является ли текущий слайс зависимым слайсом, при этом флаг разрешения зависимого слайса расположен в наборе параметров, общем для слайсов, адрес слайса расположен в заголовке текущего слайса, и указание зависимости расположено в заголовке слайса и расположено перед адресом слайса и после синтаксического элемента (pic_parameter_set_id), идентифицирующего набор параметров.
[0138] В описанном выше способе кодирования изображения указание зависимости относительно зависимости между слайсами расположено в позиции, подходящей для анализа посредством маршрутизатора. При этом возможно кодировать синтаксис указания зависимости независимо, другими словами без условий относительно других синтаксических элементов.
[0139] Например, указание зависимости может быть включено в битовый поток, когда флаг разрешения зависимого слайса указывает включение зависимого слайса в состав.
[0140] Например, флаг разрешения зависимого слайса может быть расположен в начале набора параметров.
[0141] Например, каждый из слайсов может включать в себя набор макроблоков, и обработка кодирования текущего слайса может быть начата после того, как обработка кодирования выполнена над двумя из макроблоков, включенных непосредственно перед текущим слайсом.
[0142] Например, указание зависимости не может быть включено в заголовок слайса, который обрабатывается первым для изображения среди слайсов.
[0143] Чтобы решить описанную выше проблему, способ декодирования изображения в соответствии с аспектом настоящего изобретения представляет собой способ декодирования изображения для выполнения обработки декодирования посредством разделения картинки на множество слайсов, способ декодирования изображения содержит извлечение из кодированного битового потока флага разрешения зависимого слайса, указывающего, включает ли в себя картинка зависимый слайс, над которым обработка декодирования выполняется в зависимости от результата обработки декодирования, выполненной над слайсом, отличающимся от текущего слайса, адрес слайса, указывающий начальную позицию текущего слайса, и указание зависимости, указывающее, является ли текущий слайс зависимым слайсом, при этом флаг разрешения зависимого слайса расположен в наборе параметров, общем для слайсов, адрес слайса расположен в заголовке текущего слайса, и указание зависимости расположено в заголовке слайса и расположено перед адресом слайса и после синтаксического элемента, идентифицирующего набор параметров.
[0144] Например, указание зависимости может быть извлечен из битового потока, когда флаг разрешения зависимого слайса указывает включение зависимого слайса в состав.
[0145] Например, флаг разрешения зависимого слайса может быть расположен в начале набора параметров.
[0146] Например, каждый из слайсов может включать в себя множество макроблоков, и обработка декодирования текущего слайса может быть начат после того, как обработка декодирования выполнена над двумя из макроблоков, включенных непосредственно перед текущим слайсом.
[0147] Например, указание зависимости не может быть включен в заголовок слайса, который обрабатывается первым для изображения среди слайсов.
[0148] Чтобы решить проблему, устройство кодирования изображения в соответствии с аспектом настоящего изобретения представляет собой устройство кодирования изображения, которое выполняет обработку кодирования посредством разделения картинки на множество слайсов, устройство кодирования изображения содержит кодер, который передает битовый поток, который включает в себя: флаг разрешения зависимого слайса, указывающий, включает ли в себя картинка зависимый слайс, над которым выполняется обработка кодирования в зависимости от результата обработки кодирования, выполненного над слайсом, отличающимся от текущего слайса; адрес слайса, указывающий начальную позицию текущего слайса; и указание зависимости, указывающее, является ли текущий слайс зависимым слайсом, при этом флаг разрешения зависимого слайса расположен в наборе параметров, общем для слайсов, адрес слайса расположен в заголовке текущего слайса, и указание зависимости расположено в заголовке слайса и расположено перед адресом слайса и после синтаксического элемента, идентифицирующего набор параметров.
[0149] Чтобы решить проблему, устройство декодирования изображения в соответствии с аспектом настоящего изобретения представляет собой устройство декодирования изображения, которое выполняет обработку декодирования посредством разделения картинки на множество слайсов, устройство декодирования изображения содержит декодер, который извлекает из кодированного битового потока флаг разрешения зависимого слайса, указывающий, включает ли в себя картинка зависимый слайс, над которым обработка декодирования выполняется в зависимости от результата обработки декодирования, выполненной над слайсом, отличающимся от текущего слайса, адрес слайса, указывающий начальную позицию текущего слайса, и указание зависимости, указывающее, является ли текущий слайс зависимым слайсом, при этом флаг разрешения зависимого слайса расположен в наборе параметров, общем для слайсов, адрес слайса расположен в заголовке текущего слайса, и указание зависимости расположено в заголовке слайса и расположено перед адресом слайса и после синтаксического элемента, идентифицирующего набор параметров.
[0150] Чтобы решить описанную выше проблему, устройство кодирования и декодирования изображения в соответствии с аспектом настоящего изобретения включает в себя описанное выше устройство кодирования изображения и описанное выше устройство декодирования изображения.
[0151] В соответствии со способом кодирования изображения, способом декодирования изображения и т.п., которые описаны выше, указание относительно зависимости между слайсами расположено в пределах синтаксиса битового потока, относящегося к слайсу, независимо от других элементов. Указание зависимости расположено отдельно от других элементов без излишней необходимости анализа других элементов. В приведенных выше примерах стандарта HEVC указатель зависимости между слайсами dependent_slice_flag сообщается в местоположении, в котором нет необходимости анализировать синтаксические элементы, не важные для работы сети.
[0152] В частности, настоящее изобретение обеспечивает устройство для анализа битового потока последовательности видеокадров изображений, закодированного по меньшей мере частично с помощью кода с переменной длиной слова и включающего в себя элементы данных, несущие кодированные слайсы последовательности видеокадров. Устройство содержит синтаксический анализатор для извлечения из битового потока указания зависимости, которое является синтаксическим элементом, указывающим для слайса, зависит ли декодирование с переменной длиной слова или анализ слайса от других слайсов, причем указание зависимости извлечено из битового потока независимо от других синтаксических элементов и без необходимости их предварительного извлечения.
[0153] Такое устройство может быть включено, например, в энтропийный декодер 290 на фиг. 2. При упоминании извлечения из битового потока подразумевается извлечение и, в случае необходимости для извлечения, энтропийное декодирование. Энтропийное кодирование представляет собой кодирование с переменной длиной слова, например, арифметическое кодирование, такое как кодирование CABAC. В стандарте HEVC оно применяется к кодированию данных изображения. Элементы данных здесь относятся, например, к элементам NAL или элементам доступа. Выражение "без необходимости извлекать другие синтаксические элементы" относится к ситуации, в которой указанию зависимости предшествуют только элементы, длина которых известна и присутствие которых известно, или обусловлено уже проанализированными элементами, или не условно кодировано вообще.
[0154] Настоящее изобретение дополнительно обеспечивает устройство для формирования битового потока последовательности видеокадров, закодированного по меньшей мере частично с помощью кода с переменной длиной слова и включающего в себя элементы данных, несущие кодированные слайсы видеоизображений, устройство содержит генератор битового потока для встраивания в битовый поток указателя зависимости, который является синтаксическим элементом, указывающим для слайса, зависит ли декодирование с переменной длиной слова слайса от других слайсов, причем указатель зависимости встроен в битовый поток независимо от других синтаксических элементов и без необходимости их предварительного встраивания.
[0155] Такое устройство может быть включено, например, в энтропийный кодер 190 на фиг. 1.
[0156] В соответствии со способом кодирования изображения, способом декодирования изображения и т.п., которые описаны выше, битовый поток включает в себя кодированные данные слайса и данные заголовка относительно слайса, и указатель зависимости расположен в пределах битового потока в начале заголовка слайса. Это означает, что заголовок слайса начинается с синтаксических элементов, указывающих зависимость слайса.
[0157] Следует отметить, что указание зависимости не обязательно должно быть расположено в самом начале заголовка слайса. Однако выгодно, когда никакой другой условно кодированный синтаксический элемент и/или синтаксический элемент, кодированный с помощью кода с переменной длиной слова, не предшествует указателю зависимости в заголовке слайса.
[0158] Например, текущая позиция элемента dependent_slice_flag изменена относительно описанного выше предшествующего уровня техники и расположена в начале заголовка слайса. С помощью этого изменения достигается сокращение количества синтаксических элементов, которые должны быть проанализированы. Предотвращены сложные операции анализа у маршрутизаторов, такие как декодирование с переменной длиной слова и анализ информации, которая требует дополнительных вычислений и/или сохранения дополнительных параметров для будущего использования и/или анализа других наборов параметров. Кроме того, сокращено количество наборов параметров, которые требуется отслеживать.
[0159] Далее со ссылкой на фигуры описаны варианты осуществления. Каждый из описанных ниже вариантов осуществления демонстрирует общий или конкретный пример. Численные значения, формы, материалы, структурные элементы, размещение и соединение структурных элементов, этапов, порядок обработки этапов и т.д., показанные в последующих вариантах осуществления, являются простыми примерами, и поэтому не ограничивают объем настоящего изобретения. Таким образом, среди структурных элементов в последующих вариантах осуществления, структурные элементы, не описанные в каком-либо из независимых пунктов формулы изобретения, описаны как произвольные структурные элементы.
[0160] (Вариант осуществления 1)
Фиг. 10 показывает пример синтаксиса битового потока в соответствии с настоящим вариантом осуществления. Заголовок 1010 NAL, показанный на фиг. 10, совпадает с заголовком 910 NAL, показанным на фиг. 9А. Другими словами, нет никакого изменения.
[0161] Однако структура синтаксиса заголовка 1020 слайса отличается от структуры синтаксиса заголовка 920 слайса на фиг. 9А. В частности, в заголовке 1020 слайса элемент dependent_slice_flag перемещен вверх в заголовке слайса таким образом, что нет каких-либо синтаксических элементов, предшествующих элементу dependent_slice_flag. Элемент dependent_slice_flag кодируется условно, кодируется с использованием кода с переменной длиной слова или принимает анализ, который требует дополнительного вычисления.
[0162] Синтаксические элементы first_slice_in_pic_flag и dependent_slice_flag фактически оба определяют пространственные зависимости. Синтаксические элементы кодированы непосредственно после заголовка NAL таким образом, что не нужно анализировать никакой другой синтаксический элемент. Поскольку элемент first_slice_in_pic_flag также несет информацию, которая относится к зависимостям между слайсами, он может предшествовать элементу dependent_slice_flag. Синтаксический элемент first_slice_in_pic_flag является флагом, который установлен в соответствии с правилом, что каждый кадр должен начинаться с обычного слайса. В соответствии с этим, когда флаг first_slice_in_pic_flag установлен, это означает, что слайс является обычным слайсом и, таким образом, независимым. Таким образом, элементы dependent_slice_flag и first_slice_in_pic_flag могут быть совместно рассмотрены как указатель зависимостей между слайсами.
[0163] Другими словами, указатель зависимости может быть определен как включающий в себя указание первого слайса, указывающее, является ли слайс первым слайсом в изображении, и флаг зависимого слайса, указывающий, зависит ли декодирование с переменной длиной слова слайса от других слайсов. Первый слайс в изображении всегда является слайсом, для которого декодирование с переменной длиной слова не зависит от других слайсов.
[0164] Предпочтительно битовый поток включает в себя флаг разрешения зависимого слайса, указывающий, могут ли зависимые слайсы быть включены в битовый поток. Указание зависимости включается в битовый поток, только когда флаг разрешения зависимого слайса указывает, что зависимые слайсы могут быть включены в битовый поток. Флаг разрешения зависимого слайса расположен в битовом потоке в наборе параметров, общем для нескольких слайсов, и расположен в начале набора параметров. Набор параметров может представлять собой, например, набор параметров изображения, которое несет параметры для отдельного изображения. В качестве альтернативы, флаг разрешения зависимого слайса расположен в наборе параметров последовательности, который несет параметры для всей последовательности (видеокадров) изображений.
[0165] Однако в настоящем изобретении флаг dependent_slice_flag (указание зависимости) кодируется без условия относительно синтаксического элемента dependent_slice_enabled_flag (флага разрешения зависимого слайса). В настоящем варианте осуществления, поскольку идентификатор набора параметров изображения расположен после указания зависимости, предпочтительно избежать возможной ошибки анализа в случае, когда идентификатор набора параметров изображения сообщен в заголовке слайса.
[0166] Это изменение также может быть рассмотрено как изменение и/или интерполировано посредством изменения позиции других необходимых синтаксических элементов в наборах параметров или заголовках для сокращения количества синтаксических элементов, которые должны быть проанализированы для определения зависимостей между слайсами.
[0167] Например, синтаксический элемент dependent_slice_flag в заголовке слайса текущего синтаксиса стандарта HM8.0 присутствует, только когда значение синтаксического элемента dependent_slice_enabled_flag указывает, что разрешено использование зависимых слайсов в битовом потоке. Зависимые слайсы разрешены, и, таким образом, синтаксический элемент dependent_slice_enabled_flag также включен в набор PPS, как показано на фиг. 9C. В соответствии с этим синтаксический элемент dependent_slice_enabled_flag в наборе PPS перемещен вверх в синтаксисе наборы PPS, чтобы упростить его анализ, необходимый, чтобы проанализировать элемент dependent_slice_flag (например, в начало набора параметров). Это может быть также предпочтительно, когда элемент dependent_slice_flag кодирован после элемента pic_parameter_set_id (синтаксический элемент, определяющий набор параметров). Это вызвано тем, что при этом предотвращается ошибка анализа, даже когда флаг разрешения зависимого слайса обусловливает присутствие указания зависимости.
[0168] Вместо того, чтобы перемещать флаг dependent_slice_enabled_flag в пределах набора PPS, флаг dependent_slice_enabled_flag может быть перемещен из набора PPS в набор SPS и/или VPS, чтобы не требовалось отслеживать наборы параметров, которые находятся ниже в иерархии.
[0169] Другими словами, в соответствии с настоящим вариантом осуществления позиция необходимых синтаксических элементов изменена, чтобы уменьшить количество наборов параметров, которые должны отслеживаться. Это также уменьшает сложность анализа. "Требуемые параметры" в этом контексте означают, что подразумеваются параметры, которые способствуют определению, является ли слайс взаимозависимым слайсом. Первая возможность, применимая непосредственно к стандарту HEVC, состоит в том, чтобы обеспечить указание зависимости в начале заголовка зависимого слайса и без условия относительно флага разрешения зависимого слайса, который включен в набор параметров, отличающийся от заголовка слайса. Вторая возможность, применимая непосредственно к стандарту HEVC, состоит в том, чтобы обеспечить указание зависимости в заголовке зависимого слайса после указания набора параметров, определяющего набор параметров, в который включен флаг разрешения зависимого слайса. Указание зависимости может быть обусловлено относительно флага разрешения зависимого слайса. Перемещение вверх флага разрешения зависимого слайса в пределах набора PPS или перемещение флага разрешения зависимого слайса в набор SPS может быть предпочтительным для любой из этих возможностей. В частности, это предпочтительно для второй возможности, в которой флаг разрешения зависимого слайса необходим для анализа показателя зависимости.
[0170] Как можно видеть на фиг. 10, заголовок элемента NAL вместе с соответствующей частью заголовка слайса имеет 18 битов (14 битов заголовка элемента NAL и 2 бита заголовка слайса). В соответствии с этим примером, осведомленный о среде сетевой элемент может работать для пакета текущего слайса следующим образом. Если отброшен предыдущий слайс, который является обычным, энтропийным или зависимым слайсом, сетевой элемент проверяет первые два бита заголовка текущего слайса, которые являются флагом first_slice_in_pic_flag и (в случае, когда для битового потока разрешены зависимые слайсы) флагом dependent_slice_flag.
[0171] Когда тип элемента NAL представляет собой тип элемента NAL VCL, и последние два бита из проверенных 18 битов равны "01", элемент NAL отбрасывается. В частности, когда первый бит заголовка слайса равен "1", тогда это первый слайс в изображении, который не является (в соответствии с правилами) зависимым слайсом. Когда первый бит заголовка слайса равен "0", и следующий бит заголовка слайса также равен "0", слайс не является зависимым. В соответствии с этим, только когда два первых бита заголовка слайса равны "01", слайс является зависимым. Кроме того, слайс должен быть отброшен, поскольку он не может быть декодирован, когда родительский слайс уже был отброшен. В соответствии с этим флаги first_slice_in_pic_flag и dependent_slice_flag могут рассматриваться как расширение заголовка NAL, даже если они принадлежат синтаксису заголовка слайса.
[0172] В соответствии с этим настоящий вариант осуществления также обеспечивает в качестве одного из своих аспектов сетевой маршрутизатор для приема, анализа и перенаправления сетевых пакетов их адресам назначения. Маршрутизатор включает в себя блок приема для приема сетевого пакета, включающего в себя адрес назначения пакета и часть битового потока с кодированными видеоданными; синтаксический анализатор, включающий в себя устройство для анализа битового потока закодированной последовательности видеокадров в соответствии с любым из выше и ниже изложенных вариантов осуществления для определения зависимости кодированных видеоданных от других пакетов; и анализатор пакетов для анализа адреса назначения принятого пакета и определенной зависимости и для принятия решения, как обработать сетевой пакет.
[0173] (Вариант осуществления 2)
В соответствии с вариантом осуществления 2 флаг dependent_slice_enabled_flag отбрасывается из набора PPS. Следует отметить, что флаг dependent_slice_enabled_flag может быть перемещен в набор SPS вместо того, чтобы быть отброшенным.
[0174] Фиг. 11 показывает пример, в котором не нужно анализировать флаг dependent_slice_enabled_flag до осуществления доступа к элементам first_slice_in_pic_flag и dependent_slice_flag.
[0175] В этом примере не используется флаг dependent_slice_enabled_flag, поскольку он не обусловлен присутствием указания зависимости. Этот пример обеспечивает возможность иметь указание зависимости в начале заголовка слайса, не вызывая проблем анализа из-за неизвестной идентификации текущего набора PPS.
[0176] (Эффект варианта осуществления 2 и т.д.)
В варианте осуществления 1, чтобы проанализировать флаг dependent_slice_flag, должен быть проанализирован флаг dependent_slice_enabled_flag. Флаг dependent_slice_enabled_flag сообщен в наборе PPS. Это может вызвать некоторые накладные расходы анализа, как рассмотрено выше, когда флаг dependent_slice_enabled_flag расположен далеко от начала набора PPS, и предыдущие синтаксические элементы условно кодированы.
[0177] Кроме того, сообщение синтаксического элемента dependent_slice_flag до того, как проанализирован синтаксический элемент pic_parameter_set_id в наборе PPS, может создать ошибки анализа следующим образом. Присутствие элемента dependent_slice_flag зависит от элемента dependent_slice_enabled_flag, который сообщен в наборе PPS. Однако идентификатор текущего активного набора PPS сообщен после элемента dependent_slice_flag. Таким образом, невозможно проанализировать элемент dependent_slice_flag до осуществления доступа к предыдущим элементам.
[0178] В соответствии с этим предпочтительно удалить условие анализа относительно элемента dependent_slice_enabled_flag. Это может быть более предпочтительно, когда применяется следующее ограничение. А именно, если флаг dependent_slice_enabled_flag в наборе PPS равен нулю, то флаг dependent_slice_flag должен быть равен нулю.
[0179] Однако эти предпочтительные реализации не предназначены для ограничения объема настоящего изобретения.
[0180] (Модификация 1 вариантов осуществления 1 и 2)
В качестве альтернативы или дополнения к удалению обусловленности флагом dependent_slice_enabled_flag, флаг dependent_slice_enabled_flag может быть перемещен из набора PPS в набор SPS и/или набор VPS.
[0181] Кроме того, вместо того, чтобы просто переместить флаг dependent_slice_enabled_flag, флаг dependent_slice_enabled_flag может быть продублирован в наборе SPS. В этом случае можно потребовать, чтобы указатель в наборе SPS и наборе PPS имел одинаковое значение. Или набору PPS может быть разрешено перезаписать указатель в наборе SPS.
[0182] Например, когда флаг sps_dependent_slice_enabled_flag равен 1, тогда флаг pps_dependent_slice_enabled_flag может быть равен 0 или 1. Затем, флаг sps_dependent_slice_enabled_flag является указанием относительно разрешения зависимых слайсов для последовательности изображений, сообщенных в наборе SPS, и флаг pps_dependent_slice_enabled_flag является указанием относительно разрешения зависимых слайсов для изображения, сообщенного в наборе PPS. Однако, когда значение флага dependent_slice_enabled_flag может изменяться в наборе PPS, это означает, что анализ набора PPS по-прежнему необходим, и упущено преимущество менее частого отслеживания и анализа набора PPS.
[0183] Эти модификации обеспечивают преимущество в том, что набор VPS и набор SPS несут структуры зависимостей. Перенос структур зависимостей посредством набора VPS и набора SPS позволяет сетевым элементам формировать битовые потоки, то есть, выполнять определение для отбрасывания зависимых пакетов, которые в любом случае не могут быть декодированы, или для отбрасывания зависимых слайсов, а не независимых слайсов. Таким образом, флаг dependent_slice_enabled_flag в наборе VPS побудит маршрутизатор дополнительно проверять заголовок слайса.
[0184] Следует отметить, что эти модификации дополнительно не уменьшают сложность анализа, если применен пример на фиг. 10 и 11. Однако это обеспечивает более выгодную структуру синтаксиса для переноса структур зависимостей. В итоге, в соответствии с этим примером указатель для указания, разрешены ли зависимые слайсы для битового потока, сообщен в наборе видеопараметров. Набор видеопараметров является набором параметров, относящимся более чем к одному слайсу более чем в одном изображении.
[0185] Существует два разных преимущества сообщения флага dependent_slice_enabled_flag в наборе VPS и/или наборе SPS. Когда флаг просто перемещен или дублирован, не требуется анализировать набор PPS, и это уменьшает накладные расходы анализа. Другая выгода состоит в том, что маршрутизатору дают знать о структуре предсказания последовательности видеокадров. Это преимущество присутствует все время. Обычно маршрутизатор может проверить содержимое набора VPS/SPS, чтобы узнать, что он примет.
[0186] Набор VPS является самым верхним параметром в иерархии. Набор VPS может включать в себя информацию о нескольких последовательностях видеокадров, тогда как набор SPS и набор PPS заданы для единственной последовательности видеокадров и изображения, соответственно. Информация в наборе VPS включает в себя битрейт, структуру temporal_layering последовательностей видеокадров и т.п. Также она включает в себя информацию о зависимостях между уровнями (зависимости между разными последовательностями видеокадров). В соответствии с этим набор VPS может рассматриваться как контейнер для нескольких последовательностей видеокадров, и оно дает общий обзор о каждой последовательности.
[0187] В текущей версии стандарта HEVC зависимость между слайсами в кадре устанавливается посредством и флага dependent_slice_flag, и флага first_slice_in_pic_flag. В соответствии с текущими техническими требованиями, сетевые объекты не могут использовать зависимости между слайсами, не применяя очень сложный анализ. Если имеется потеря пакетов, обнаруженная через номер отсутствующего пакета, прямым решением было бы отбросить все пакеты вплоть до того, когда встречается флаг first_slice_in_pic_flag, который равен значению 1. Это вызвано тем, что первый слайс в изображении всегда является обычным слайсом.
[0188] Однако это решение приводит к сокращению эффективности кодирования. Таким образом, как описано выше, может использоваться сообщение зависимости между слайсами, обеспечивающее эффективный анализ. Это достигается посредством сообщения флага dependent_slice_flag и флага first_slice_in_pic_flag в заголовке слайса сразу после заголовка NAL.
[0189] В качестве альтернативы или дополнения, синтаксические элементы, относящиеся к зависимостям между слайсами, кодируются без условий, то есть, независимо от других синтаксических элементов, которые могут находиться в заголовке слайса или в наборе PPS.
[0190] (Модификация 2 вариантов осуществления 1 и 2)
Фиг. 12 иллюстрирует модификацию 2, альтернативную по отношению к рассмотренной выше модификации 1. В частности, заголовок 1210 элемента NAL совпадает с заголовком элемента NAL, показанным на фиг. 10 (заголовком 910 элемента NAL, показанным на фиг. 9А). Однако заголовок 1220 слайса и заголовок 1020 слайса, показанные на фиг. 10, отличаются тем, что порядок синтаксических элементов заголовка слайса dependent_slice_flag и first_slice_in_pic_flag изменен на обратный. В частности, заголовок 1220 слайса включает в себя синтаксический элемент флаг dependent_slice_flag в качестве первого синтаксического элемента и синтаксический элемент first_slice_in_pic_flag в качестве второго синтаксического элемента, обусловленного присутствием флага dependent_slice_flag.
[0191] Как видно из этого примера, указание первого слайса, указывающее, является ли слайс первым слайсом в изображении, включено в синтаксис. Первый слайс в изображении всегда является слайсом, для которого декодирование с переменной длиной слова не зависит от других слайсов. Кроме того, флаг зависимого слайса включен в битовый поток перед указанием первого слайса. Указание первого слайса включено в битовый поток, только когда флаг зависимого слайса не указывает зависимый слайс. Это размещение обеспечивает те же самые преимущества, как и обусловленность. Другими словами, флаг зависимости обусловлен указанием первого слайса. Как видно на фиг. 12, оба элемента могут рассматриваться как указание зависимости и включены в начало заголовка слайса.
[0192] (Вариант осуществления 3)
В варианте осуществления 3 по сравнению с вариантами осуществления 1 и 2 изменен способ расположения синтаксических элементов для сокращения анализа ненужных синтаксических элементов.
[0193] В описанных выше вариантах осуществления флаг dependent_slice_flag описан в случае, в котором флаг first_slice_in_pic_flag включен в качестве условия для присутствия флага dependent_slice_flag. Однако флаг first_slice_in_pic_flag и флаг dependent_slice_flag могут быть оба включены в битовый поток без обусловленности одного присутствием другого. Например, способ кодирования флага dependent_slice_flag изменен, чтобы быть независимым от синтаксического элемента dependent_slice_enabled_flag в соответствии с одной из описанных выше модификаций.
[0194] Фиг. 13 является схемой, показывающей пример заголовка слайса в соответствии с настоящим вариантом осуществления. Фиг. 13 иллюстрирует случай, в котором по-прежнему включена обусловленность указания зависимости флагом разрешения зависимого слайса.
[0195] В частности, в заголовке слайса в соответствии с настоящим вариантом осуществления флаг dependent_slice_flag расположен перед элементом slice_address по сравнению с существующим заголовком слайса, показанным на фиг. 6. Кроме того, в заголовке слайса в соответствии с настоящим вариантом осуществления по сравнению с примерами на фиг. 10-12 флаг dependent_slice_flag расположен после элемента pic_parameter_set_id.
[0196] В настоящем варианте осуществления, поскольку флаг dependent_slice_flag расположен перед элементом slice_address, по меньшей мере набор SPS не обязательно должен быть проанализирован для анализа флага dependent_slice_flag. Как описано выше, элемент slice_address является синтаксическим элементом, указывающим начало слайса. Кроме того, элемент slice_address может быть проанализирован только с помощью синтаксических элементов, сообщенных в наборе SPS (pic_parameter_set_id).
[0197] В качестве альтернативы или дополнения, флаг dependent_slice_enabled_flag либо перемещен вверх в пределах набора PPS, либо перемещен в набор SPS и/или набор VPS. Если флаг разрешения находится в наборе VPS и/или в наборе SPS, может не потребоваться анализировать и отслеживать набор PPS и набор SPS.
[0198] (Модификация варианта осуществления 3, эффект и т.д.)
(1) Пример на фиг. 13 может привести к обеспечению устройства для анализа битового потока последовательности видеокадров, кодированного по меньшей мере частично с помощью кода с переменной длиной слова и включающего в себя элементы данных, несущие кодированные слайсы видеоизображений. В этом случае устройство выполнено с возможностью включать в себя синтаксический анализатор, который извлекает из битового потока следующие синтаксические элементы:
указание зависимости, которое является синтаксическим элементом, указывающим для слайса в заголовке слайса, зависит ли декодирование с переменной длиной слова слайса от других слайсов;
флаг разрешения зависимого слайса, включенный в набор параметров для нескольких слайсов и указывающий, могут ли зависимые слайсы быть включены в битовый поток; и
адрес слайса, указывающий позицию в пределах битового потока, в которой начинается слайс.
[0199] (2) Кроме того, в настоящем варианте осуществления указание зависимости сообщается в заголовке слайса перед адресом слайса и после синтаксического элемента, идентифицирующего набор параметров.
[0200] С помощью этого варианта осуществления возможно без необходимости анализа ошибок задать конфигурацию, в которой указание зависимости включается в битовый поток, только когда флаг разрешения зависимого слайса указывает, что зависимые слайсы могут быть включены в битовый поток.
[0201] (3) В настоящем варианте осуществления флаг разрешения зависимого слайса расположен в битовом потоке в наборе параметров (наборе PPS), общем для нескольких слайсов, формирующих один и тот же кадр изображения, и расположен в начале набора параметров. Однако это не является ограничением.
[0202] В качестве альтернативы (или дополнения), флаг разрешения зависимого слайса расположен в битовом потоке в наборе параметров (наборе SPS), общем для нескольких слайсов, формирующих одну и ту же последовательность изображений. Также в качестве альтернативы (или дополнения), флаг разрешения зависимого слайса расположен в битовом потоке в наборе параметров (наборе VPS), общем для набора слайсов, формирующих несколько последовательностей кадров изображений.
[0203] (4), Кроме того, в настоящем варианте осуществления VPS_id и SPS_id могут быть сообщены явно в сообщении SEI. Когда флаг dependent_slice_enabled_flag сообщен в наборе SPS, флаг dependent_slice_flag по-прежнему должен следовать за элементом pic_parameter_set_id.
[0204] В ином случае вводится анализ зависимости, поскольку SPS_id сообщен в наборе PPS. С помощью сообщения идентификации текущего набора SPS или набора VPS, которые несут флаг dependent_slice_enabled_flag, указание зависимости может быть включено также перед элементом pic_parameter_set_id, поскольку анализ набора параметров изображения не является необходимым. Кроме того, такое сообщение SEI, несущее VPS_id или SPS_id, не является необходимым для операции декодирования, поскольку эти идентификаторы также определяются посредством анализа набора PPS. Сообщение SEI, таким образом, может быть отброшено без воздействия на операцию декодирования после использования сетевыми элементами.
[0205] (Вариант осуществления 4)
В варианте осуществления 4 информация зависимости между слайсами дублирована (дополнительно к информации, сообщенной в заголовке слайса и/или в наборе параметров) в другом элементе NAL, таком как сообщение SEI.
[0206] Например, может быть определено сообщение SEI, которое переносит информацию зависимости между слайсами в каждом элементе доступа или перед каждым зависимым слайсом. Термин "элемент доступа" относится к элементу данных, который состоит из набора элементов NAL. Элемент доступа включает в себя слайсы кодированного изображения, то есть, элементы NAL VCL. В частности, элементы доступа могут определить точки для произвольного доступа и могут включать в себя элементы NAL одного изображения. Однако элемент доступа не обязательно является точкой произвольного доступа.
[0207] В текущем описании стандарта HEVC элемент доступа определен как набор элементов NAL, которые являются последовательными в порядке декодирования и содержат точно одно кодированное изображение. В дополнение к элементам NAL кодированного слайса кодированного изображения элемент доступа также может содержать другие элементы NAL, не содержащие слайсы кодированного изображения. Декодирование элемента доступа всегда дает в результате декодированное изображение. Однако в будущем расширении стандарта HEVC (таком как как многоракурсное кодирование (MVC) или масштабируемое видеокодирование (SVC)) определение элемента доступа может быть смягчено или изменено. В соответствии с текущим описанием элемент доступа сформирован разделителем элемента доступа, сообщениями SEI и элементами NAL VCL.
[0208] В соответствии с настоящим вариантом осуществления указание зависимости расположено в битовом потоке вне заголовка слайса, к которому относится указание зависимости. Кроме того, может быть полезно, когда указание зависимости расположено в битовом потоке в сообщении информации дополнительного улучшения, включенном в битовый поток перед зависимым слайсом или один раз для каждого элемента доступа.
[0209] (Вариант осуществления 5)
В соответствии с вариантом осуществления 5 информация зависимости между слайсами сообщена в заголовке NAL как флаг или неявно как тип элемента NAL, с которым она связана.
[0210] Как правило анализ синтаксических элементов в заголовке NAL не зависит ни от каких других синтаксических элементов. Каждый заголовок элемента NAL может быть проанализирован независимо. Заголовок NAL является обычным местом для сообщения информации зависимости. Таким образом, в соответствии с настоящим вариантом осуществления зависимость между слайсами также сообщается в нем.
[0211] Другими словами, устройство анализа может быть принято в маршрутизаторе или в декодере. Устройство анализа дополнительно включает в себя блок уровня сетевой адаптации для добавления к слайсу кодированных видеоданных и к заголовку слайса уровня сетевой адаптации и заголовка NAL. Предпочтительно указание зависимости расположено в битовом потоке в заголовке NAL и кодировано независимо от других синтаксических элементов.
[0212] Указатель зависимости может быть помещен в заголовок NAL, поскольку заголовок NAL в текущем описании стандарта HEVC предусматривает некоторые зарезервированные биты, которые могут использоваться для этого. Чтобы сообщить указание зависимости, достаточно одного бита.
[0213] В качестве альтернативы, указание зависимости указывается посредством типа элемента NAL, и предопределенный тип элемента NAL зарезервирован для переноса информации зависимости.
[0214] (Вариант осуществления 6)
Следует отметить, что описанные выше пять вариантов осуществления могут быть произвольным образом объединены, чтобы обеспечить эффективный анализ информации зависимости в сетевых элементах. Даже когда их использование избыточно, варианты осуществления могут быть объединены. В соответствии с этим может быть применено дублирование указания зависимости, даже когда указание зависимости также сообщается в начале заголовка слайса.
[0215] Фиг. 14 показывает пример заголовка 1410 элемента NAL, в котором изменен заголовок 910 элемента NAL, показанный на фиг. 9А. Заголовок 1410 элемента NAL включает в себя флаг dependent_slice_flag.
[0216] Кроме того, чтобы переместить флаг dependent_slice_flag в заголовок NAL и сохранить размер заголовка NAL фиксированным для обратной совместимости, один бит, необходимый для флага dependent_slice_flag, взят из синтаксического элемента nuh_reserved_zero_6bit заголовка элемента NAL. В соответствии с этим синтаксический элемент nuh_reserved_zero_6bits теперь имеет только 5 битов. Синтаксический элемент nuh_reserved_zero_6bits включает в себя биты, зарезервированные для будущего использования, чтобы сокращение не вызывало проблем и не потребовало дополнительных модификаций.
[0217] В целом текущий элемент NAL VCL зависит от предыдущего элемента NAL VCL, который имеет тот же самый temporal_layer_id. Когда флаг dependent_slice_flag сообщен в заголовке NAL, один бит будет потрачен и для элементов NAL уровня VCL, и для элементов NAL не уровня VCL, поскольку каждый элемент данных, такой как слайс изображения или набор параметров, имеет один и тот же заголовок NAL. В соответствии с этим, хотя кажется, что флаг dependent_slice_flag также должен быть сообщен для наборов параметров или для сообщений SEI, это не является необходимым. Кроме того, флаг dependent_slice_flag всегда должен сообщаться, даже если зависимые слайсы не разрешены в наборе параметров последовательности. Это приводит к ненужным накладным расходам.
[0218] Во всех описанных выше вариантах осуществления указание зависимости может являться однобитовым флагом.
[0219] (Вариант осуществления 7)
В соответствии с вариантом осуществления 7 указание зависимости обозначено типом элемента NAL, и зарезервирован предопределенный тип элемента NAL для переноса информации зависимости.
[0220] В соответствии с этим новый (отдельный) тип NAL VCL определен с семиотикой, аналогичной существующим элементам NAL VCL. Например, когда NAL_unit_type равен 15 (или другому предварительно определенному типу элемента NAL, который не зарезервирован для другого конкретного типа элемента NAL), тогда текущий элемент NAL VCL зависит от предыдущего элемента NAL VCL, который имеет тот же самый temporal_layer_id. Зависимость относится к зависимости текущего слайса от заголовка слайса предыдущего слайса, как описано выше, то есть, зависимость при анализе.
[0221] Может быть предпочтительно в этих случаях включать бит в заголовок NAL к дополнительным типам элемента NAL. Это может использоваться, чтобы указать, является ли текущий слайс зависимым слайсом.
[0222] Когда информация зависимости сообщена в заголовке слайса в дополнение к заголовку NAL, сообщение в заголовке NAL становится необязательным. В частности, когда поле NAL_unit_type в заголовке NAL сконфигурировано для сообщения, что текущий слайс является зависимым слайсом, то невозможно сообщить любую другую информацию "типа". Например, в некоторых случаях могло бы быть более выгодно передавать информацию о том, что текущий слайс является "первым изображением в последовательности" (NAL_unit_type равен 10 или 11). Когда информация зависимости между слайсами в заголовке NAL является необязательной (поскольку она дублирована в заголовке слайса), может быть решено сообщить более ценную информацию.
[0223] Кроме того, может быть предпочтительно добавить два или более типов элементов NAL VCL, таких как "изображение RAP зависимого слайса" (требуется для анализа) или "не изображение RAP зависимого слайса". RAP обозначает изображение произвольного доступа. Изображение произвольного доступа является изображением, кодированным независимо (с точки зрения предсказания) от других изображений, чтобы такое изображение могло использоваться в качестве начальной точки для кодирования и декодирования. Таким образом, оно является подходящим в качестве точки произвольного доступа.
[0224] В заголовке зависимого слайса синтаксический элемент RapPicFlag используется в процессе анализа. В частности, синтаксический элемент RapPicFlag является указанием, указывающим, является ли текущее изображение изображением произвольного доступа.
[0225] Значение RAPPicFlag зависит от типа элемента NAL как следующее выражение 2.
[0226]
RapPicFlag=(nal_unit_type ≥7 && nal_unit_type ≤12) (Выражение 2)
[0227] Другими словами, в примере, показанном на фиг. 15, изображения произвольного доступа переносятся элементами NAL с типом между 7 и 12. Чтобы обеспечить корректный анализ и обеспечить возможность зависимости слайса для изображений произвольного доступа, таким образом, в настоящем изобретении определены два разных типа элемента NAL, чтобы гарантировать корректный анализ заголовка слайса.
[0228] Как правило, даже когда определен новый тип элемента NAL VCL, анализ заголовка слайса по-прежнему должен быть возможен без каких-либо проблем. Либо несколько типов NAL определены, как показано выше, либо заголовок зависимого слайса изменен таким образом, что не имеется проблем анализа.
[0229] Когда определен новый тип элемента NAL VCL, чтобы указать зависимый слайс, структура синтаксиса заголовка слайса может быть изменена следующим образом.
[0230] В приведенном выше примере тип элемента NAL "DS_NUT" используется для указания, что текущий элемент NAL VCL является зависимым слайсом. По сравнению со структурой синтаксиса заголовка слайса предшествующего уровня техники, которая описана в непатентной литературе 3, в настоящем варианте осуществления введены следующие два изменения.
[0231] (1) Флаг no_output_of_prior_pics_flag не сообщается в заголовке зависимого слайса. Другими словами, присутствие флага no_output_of_prior_pics_flag основано на условии, что текущий слайс не является зависимым слайсом. (Флаг no_output_of_prior_pics_flag может присутствовать в заголовке слайса, когда текущий слайс не является зависимым слайсом).
[0232] (2) Флаг first_slice_in_pic_flag сообщается обусловленным образом относительно значения nal_unit_type. Когда значение nal_unit_type указывает, что текущий слайс является зависимым слайсом, синтаксический элемент first_slice_in_pic_flag не сообщается явно и подразумевается равным 0. Это экономит битрейт с тем же самым качеством.
[0233] В соответствии с примером флаг no_output_of_prior_pics_flag не сообщается, когда текущий слайс является зависимым слайсом. В соответствии с этим не требуется оценивать значение RapPicFlag, когда текущий слайс является зависимым слайсом. Таким образом, заголовок зависимого слайса может быть проанализирован без проблем. В частности, заголовок зависимого слайса может быть проанализирован без ссылки на заголовок элемента NAL предыдущего элемента NAL. Проблема возникает, когда заголовок предыдущего элемента NAL не присутствует во время декодирования.
[0234] Во-вторых, флаг first_slice_in_pic_flag сообщается на основе значения NAL_unit_type. Это изменение совпадает с изменением примера, описанного на фиг. 12. На фиг. 12 флаг first_slice_in_pic_flag сообщается в заголовке слайса, только когда текущий слайс не является зависимым слайсом (что обозначено флагом dependent_slice_flag). Также в приведенном выше примере флаг first_slice_in_pic_flag сообщается, только когда nal_unit_type не равен "DS_NUT", что означает, что текущий слайс не является зависимым слайсом.
[0235] Не требуется, чтобы два изменения, которые представлены выше, были сделаны вместе. Также возможно выполнить только одно из изменений в заголовке слайса. Выгода каждого изменения связана с затратами на проверку, является ли слайс зависимым слайсом. Однако, когда два изменения выполняются вместе, выгода обоих изменений может быть получена за счет тех же самых затрат, как выгода каждого из отдельных изменений в случае, когда эти два синтаксических элемента first_slice_in_pic_flag и no_output_of_prior_pics_flag кодированы последовательно. Таким образом применение обоих изменений в сочетании с последовательным кодированием упомянутых двух синтаксических элементов дает преимущество перед прямым применением каждого из изменений индивидуально.
[0236] Во всем объяснении в вариантах осуществления также возможно удалить флаг dependent_slice_enabled_flag из битового потока, когда указание зависимого слайса не кодируется в нем условно. Другими словами, когда, например, новый тип элемента NAL используется, чтобы указать, что текущий слайс является зависимым слайсом, тогда флаг dependent_slice_enabled_flag может быть удален из битового потока.
[0237] Фиг. 15 показывает заголовок 1510 элемента NAL, который совпадает с заголовком 910 элемента NAL, показанным на фиг. 9А, и заголовок 1520 слайса, который изменен относительно заголовка 920 слайса, показанного на фиг. 9А. Заголовок 1520 слайса включает в себя завершение значения dependent_slice_flag в соответствии с типом элемента NAL. В частности, синтаксический элемент NAL_unit_type со значениями 15 и 16 определяет зависимые слайсы. Когда NAL_unit_type равен 15, тип слайса является зависимым слайсом изображения произвольного доступа. С другой стороны, если NAL_unit_type равен 16, слайс является зависимым слайсом изображения не произвольного доступа. Таким образом, установлены отношения следующего выражения 3.
[0238]
RapPicFlag=(nal_unit_type ≥7 && nal_unit_type ≤12 || nal_unit_type==15) (Выражение 3)
[0239] Следует отметить, что значения 15 и 16 были выбраны только в качестве примера. Как ясно специалистам в области техники, могут быть приняты любые предопределенные числа, которые не используются иным образом. В частности, первый тип элемента NAL должен быть определен для идентификации содержимого зависимого слайса изображения произвольного доступа, и второй тип элемента NAL должен быть определен для идентификации содержимого зависимого изображения не произвольного доступа.
[0240] Кроме того, может быть введено ограничение, что зависимые слайсы используются только для изображений RAP или используются только для изображений, не являющихся изображениями RAP. В таких случаях необходим только один новый тип элемента NAL.
[0241] (Вариант осуществления 8)
Фиг. 16 является схемой, показывающей альтернативное решение. Заголовок 1610 элемента NAL совпадает с заголовком 910 элемента NAL. Заголовок 1620 слайса предполагает определение типа NAL_unit_type со значениями 15 и 16, сообщающего о зависимых слайсах, как описано выше.
[0242] Однако тип элемента NAL не используется при анализе флага зависимого слайса. Это обеспечивает необязательность использования NAL_unit_type для кодера. В соответствии с этим преимущество настоящего варианта осуществления достигается, только когда кодер выполнен с возможностью принимать новые типы элементов NAL.
[0243] Тогда маршрутизатор должен только исследовать тип элемента NAL. Однако, когда кодер не использует новые типы элементов NAL, маршрутизатор будет рассматривать зависимые слайсы, как на предшествующем уровне техники.
[0244] В итоге, указание зависимости может быть указано посредством типа элемента NAL. Предопределенный тип элемента NAL может быть зарезервирован для переноса кодированных слайсов, заголовок которых зависит от заголовка предыдущего слайса. Предпочтительно отдельный тип элемента NAL, указывающий зависимость, обеспечен для изображений произвольного доступа и для изображений не произвольного доступа.
[0245] В итоге, описанные выше варианты осуществления относятся к синтаксису битового потока, переносящего закодированные последовательности видеокадров. В частности, описанные выше варианты осуществления относятся к синтаксису, относящемуся к зависимым и энтропийным слайсам, заголовок слайса которых зависит от заголовка слайса предыдущего слайса. Чтобы дать возможность осведомленному о среде сетевому элементу учитывать этот вид зависимости без существенного увеличения его сложности и задержки вследствие анализа, указание зависимости сообщается в начале пакетов или, другими словами, вблизи заголовков или параметров, которые должны быть проанализированы. Это достигнуто, например, посредством включения указания зависимости в начало заголовка слайса (фиг. 10-12), возможно, после идентификатора набора параметров и перед адресом слайса, или посредством включения указания зависимости перед адресом слайса (фиг. 10 и 11), или посредством обеспечения указания зависимости в заголовке элемента NAL (фиг. 14), в отдельном сообщении или посредством специального типа элемента NAL для элементов NAL, несущих зависимые слайсы (фиг. 15 и 16).
[0246] (Модификации вариантов осуществления 1-8, эффект и т.п.)
Различные изменения возможны без ограничения вариантами осуществления 1-8, и, очевидно, они включены в объем настоящего изобретения.
[0247] Каждый из структурных элементов в каждом из описанных выше вариантов осуществления может быть выполнен в виде отдельного аппаратного продукта (схемы обработки) или может быть реализован посредством исполнения программы, подходящей для структурного элемента. Каждый из структурных элементов может быть реализован посредством исполняющего программы блока, такого как центральный процессор (CPU) или процессор, считывающий и исполняющий программу, записанную на носителе записи, таком как жесткий диск или полупроводниковая память.
[0248] Хотя в вариантах осуществления 1-8 описание подразумевает волновой фронт, оно не ограничено этим.
[0249] Однако в случае волнового фронта все подпотоки не могут быть начаты в одно и то же время. Как описано выше, относительно каждого из подпотоков за исключением подпотока в начале, начало обработки (кодирование или декодирование) задерживается на два элемента LCU от предыдущего подпотока. Таким образом, в волновом фронте требуется дополнительное сокращение обработки. В настоящем варианте осуществления посредством определения местоположения указания зависимости (dependent_slice_flag) после синтаксиса, который идентифицирует набор PPS и перед адресом слайса, количество синтаксических элементов, которые должны быть проанализированы, может быть уменьшено, и тем самым обработка сокращается.
[0250] Кроме того, в описанных выше вариантах осуществления 1-8 посредством перемещения указания зависимости вверх в заголовке слайса (особенно в начало) возможно, например, проверить, является ли каждый из слайсов зависимым слайсом, на ранней стадии обработки изображения.
[0251] Другими словами, во время начала обработки изображения (кодирования или декодирования), на этапе проверки, является ли каждый из слайсов зависимым слайсом, возможно извлечь начальную точку параллельной обработки во время начала обработки изображения. Другими словами, когда изображение включает в себя несколько обычных слайсов, возможно извлечь начальную точку параллельной обработки во время обработки изображения или на ранней стадии обработки.
[0252] При этом традиционно, когда указание зависимости расположено после адреса слайса, невозможно проверить, является ли слайс зависимым слайсом или обычным слайсом, пока не завершен анализ адреса слайса. В этом случае начало обработки обычного слайса в середине изображения значительно задерживается относительно начала обработки обычного слайса в начале изображения.
[0253] С другой стороны, в описанных выше вариантах осуществления 1-8, поскольку возможно проверить, является ли каждый из слайсов зависимым слайсом, на более ранней стадии обработки изображения, возможно ускорить начало обработки обычного слайса в середине изображения. Другими словами, возможно начать обработку обычного слайса в середине изображения тогда же, когда и обычного слайса в начале изображения.
[0254] (Вариант осуществления 9)
Обработка, описанная в каждом из вариантов осуществления, может быть легко реализована в независимой компьютерной системе посредством записи на носителе записи программы для реализации конфигурации способа кодирования движущегося изображения (способа кодирования изображения) и способа декодирования движущегося изображения (способа декодирования изображения), описанных в каждом из вариантов осуществления. Носители записи могут быть любыми носителями записи, если на него может быть записана программа, такими как магнитный диск, оптический диск, магнитооптический диск, карта с интегральной микросхемой (IC-карта) и полупроводниковая память.
[0255] Далее будут описаны применения для способа кодирования движущегося изображения (способа кодирования изображения) и способа декодирования движущегося изображения (способа декодирования изображения), описанных в каждом из вариантов осуществления, и систем, использующие их. Система имеет признак наличия устройства кодирования и устройства декодирования изображения, которые включают в себя устройство кодирования изображения, использующее способ кодирования изображения, и устройство декодирования изображения, использующее способ декодирования изображения. Другие конфигурации в системе могут быть изменены при необходимости в зависимости от случаев.
[0256] Фиг. 17 иллюстрирует общую конфигурацию системы ex100 обеспечения контента для реализации службы распространения контента. Область для обеспечения службы связи разделена на соты желаемого размера, и базовые станции ex106, ex107, ex108, ex109 и ex110, которые являются стационарными беспроводными станциями, помещены в каждую из сот.
[0257] Система ex100 обеспечения контента соединена с устройствами, такими как компьютер ex111, карманный персональный компьютер (PDA) ex112, камера ex113, сотовый телефон ex114 и игровой автомат ex115, через Интернет ex101, поставщика ex102 Интернет-услуг, телефонную сеть ex104, а также базовые станции ex106-ex110, соответственно.
[0258] Однако конфигурация системы ex100 обеспечения контента не ограничена конфигурацией, показанной на фиг. 17, и комбинация, в которой соединен любой из элементов, является приемлемой. Кроме того, каждое устройство может быть непосредственно соединено с телефонной сетью ex104, а не через базовые станции ex106-ex110, которые являются стационарными беспроводными станциями. Кроме того, устройства могут быть соединены друг с другом через беспроводную связь ближнего действия и другие.
[0259] Камера ex113, например, цифровая видеокамера, способна захватывать видеоинформацию. Камера ex116, например, цифровой фотоаппарат, способна захватывать как неподвижные изображения, так и видеоинформацию. Кроме того, сотовый телефон ex114 может соответствовать любому из стандартов, таких как глобальная система мобильной связи (GSM) (зарегистрированная торговая марка), множественный доступ с кодовым разделением (CDMA), широкополосный множественный доступ с кодовым разделением (W-CDMA), стандарт проекта долгосрочного развития (LTE) и высокоскоростной пакетный доступ (HSPA). В качестве альтернативы, сотовый телефон ex114 может являться системой персональных мобильных телефонов (PHS).
[0260] В системе ex100 обеспечения контента сервер ex103 потоковой передачи соединен с камерой ex113 и другими устройствами через телефонную сеть ex104 и базовую станцию ex109, что обеспечивает возможность распределения шоу в прямом эфире и других изображений. При таком распределении контент (например, видеоинформация музыкального шоу в прямом эфире), захваченный пользователем, использующим камеру ex113, кодируется, как описано выше в каждом из вариантов осуществления (то есть, камера функционирует как устройство кодирования изображения в соответствии с аспектом настоящего изобретения), и кодированный контент передается серверу ex103 потоковой передачи. С другой стороны, сервер ex103 потоковой передачи выполняет распределение потоков переданных данных контента клиентам по их запросам. Клиенты включают в себя компьютер ex111, персональный карманный компьютер ex112, камеру ex113, сотовый телефон ex114 и игровой автомат ex115, которые способны декодировать упомянутые выше кодированные данные. Каждое из устройств, которые приняли распределенные данные, декодирует и воспроизводит кодированные данные (то есть, функционирует как устройство декодирования изображения в соответствии с аспектом настоящего изобретения).
[0261] Захваченные данные могут быть кодированы камерой ex113 или сервером ex103 потоковой передачи, который передает данные, или процессы кодирования могут быть разделены между камерой ex113 и сервером ex103 потоковой передачи. Аналогичным образом, распределенные данные могут декодироваться клиентами или сервером ex103 потоковой передачи, или процессы декодирования могут быть разделены между клиентами и сервером ex103 потоковой передачи. Кроме того, данные неподвижных изображений и видеоинформации, захваченной не только камерой ex113, но также и камерой ex116, могут быть переданы серверу ex103 потоковой передачи через компьютер ex111. Процессы кодирования могут быть выполнены камерой ex116, компьютером ex111 или сервером ex103 потоковой передачи или разделены среди них.
[0262] Кроме того, процессы кодирования и декодирования могут быть выполнены посредством большой интегральной схемы (LSI; БИС) ex500, обычно включенной в компьютер ex111 и устройства. Большая интегральная схема ex500 может быть выполнена как однокристальная схема или множество однокристальных схем. Программное обеспечение для кодирования и декодирования видеоинформации может быть интегрировано в носитель записи некоторого типа (такой как компакт-диск (CD-ROM), гибкий диск и жесткий диск), который может быть прочитан компьютером ex111 и другими устройствами, и процессы кодирования и декодирования могут выполняться с использованием программного обеспечения. Кроме того, когда сотовый телефон ex114 оборудован камерой, видеоданные, полученные камерой, могут быть переданы. Видеоданные представляют собой данные, кодированные посредством большой интегральной схемы ex500, включенной в сотовый телефон ex114.
[0263] Кроме того, сервер ex103 потоковой передачи может состоять из серверов и компьютеров и может децентрализовывать данные и обрабатывать децентрализованные данные, записывать или распределять данные.
[0264] Как описано выше, клиенты могут принимать и воспроизводить кодированные данные в системе ex100 обеспечения контента. Другими словами, клиенты могут принимать и декодировать информацию, переданную пользователем, и воспроизводить декодированные данные в режиме реального времени в системе ex100 обеспечения контента, с тем чтобы пользователь, который не имеет какого-либо конкретного права и оборудования, мог реализовать персональное вещание.
[0265] Помимо примера системы ex100 обеспечения контента, по меньшей мере одно устройство из устройства кодирования движущегося изображения (устройства кодирования изображения) и устройства декодирования движущегося изображения (устройства декодирования изображения), описанных в каждом из вариантов осуществления, может быть реализовано в системе ex200 цифрового вещания, проиллюстрированной на фиг. 18. Более определенно, радиостанция ex201 передает по радио ретрансляционному спутнику ex202 мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и других данных с видеоданными. Видеоданные представляют собой данные, кодированные способом кодирования движущегося изображения, описанным в каждом из вариантов осуществления (то есть, данные, кодированные устройством кодирования изображения в соответствии с аспектом настоящего изобретения). После приема мультиплексированных данных ретрансляционный спутник ex202 передает радиоволны для вещания. Затем бытовая антенна ex204 с функцией приема спутникового вещания принимает радиоволны. Затем устройство, например, телевизор (приемник) ex300 и телеприставка (STB) ex217, декодирует принятые мультиплексированные данные и воспроизводит декодированные данные (то есть, функционирует как устройство декодирования изображения в соответствии с аспектом настоящего изобретения).
[0266] Кроме того, устройство ex218 чтения/записи (i) считывает и декодирует мультиплексированные данные, записанные на носителе ex215 записи, таком как DVD и BD, или (i) кодирует видеосигналы на носителе ex215 записи и в некоторых случаях записывает данные, полученные посредством мультиплексирования аудиосигнала с кодированными данными. Устройство ex218 чтения/записи может включать в себя устройство декодирования движущегося изображения или устройство кодирования движущегося изображения, как показано в каждом из вариантов осуществления. В этом случае воспроизведенные видеосигналы отображаются на мониторе ex219 и могут быть воспроизведены другим устройством или системой с использованием носителя ex215 записи, на котором записаны мультиплексированные данные. Также возможно реализовать устройство декодирования движущегося изображения в телеприставке ex217, соединенной с кабелем ex203 для кабельного телевидения или с антенной ex204 для спутникового и/или наземного вещания, для отображения видеосигналов на мониторе ex219 телевизора ex300. Устройство декодирования движущегося изображения может быть реализовано не в телеприставке, а в телевизоре ex300.
[0267] Фиг. 19 иллюстрирует телевизор (приемник) ex300, который использует способ кодирования движущегося изображения и способ декодирования движущегося изображения, описанные в каждом из вариантов осуществления. Телевизор ex300 включает в себя: селектор ex301 каналов, который получает или обеспечивает мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и видеоданных, через антенну ex204 или кабель ex203 и т.д. которые принимают вещание; блок ex302 модуляции/демодуляции, который демодулирует принятые мультиплексированные данные или модулирует данные в мультиплексированные данные, которые будут выданы вовне; и блок ex303 мультиплексирования/демультиплексирования, который демультиплексирует модулированные мультиплексированные данные в видеоданные и аудиоданные или мультиплексирует видеоданные и аудиоданные, кодированные блоком ex306 обработки сигналов, в данные.
[0268] Телевизор ex300 дополнительно включает в себя: блок ex306 обработки сигналов, содержащий блок ex304 обработки аудиосигнала и блок ex305 обработки видеосигнала, которые декодируют аудиоданные и видеоданные и кодируют аудиоданные и видеоданные, соответственно (которые функционируют как устройство кодирования изображения и устройство декодирования изображения в соответствии с аспектами настоящего изобретения); и блок ex309 вывода, содержащий динамик ex307, который обеспечивает декодированный аудиосигнал, и блок ex308 отображения, который отображает декодированный видеосигнал, например, дисплей. Кроме того, телевизор ex300 включает в себя блок ex317 интерфейса, содержащий блок ex312 ввода операций, который принимает ввод пользовательским операций. Кроме того, телевизор ex300 включает в себя блок ex310 управления, который управляет всеми составляющими элементами телевизора ex300, и блок ex311 схемы электропитания, который подает питание каждому из элементов. Кроме блока ex312 ввода операций, блок ex317 интерфейса может включать в себя: мост ex313, который соединен с внешним устройством, таким как устройство ex218 чтения/записи; блок ex314 слота для обеспечения возможности присоединения носителя ex216 записи, такого как SD-карта; привод ex315 для соединения внешнего носителя записи, такого как жесткий диск; и модем ex316 для соединения с телефонной сетью. При этом носитель ex216 записи может электрически записывать информацию с использованием энергонезависимого/энергозависимого элемента полупроводниковой памяти для хранения. Составляющие элементы телевизора ex300 соединены друг с другом через синхронную шину.
[0269] Сначала будет описана конфигурация, в которой телевизор ex300 декодирует мультиплексированные данные, полученные извне через антенну ex204 и другие элементы, и воспроизводит декодированные данные. В телевизоре ex300 после пользовательской операции через пульт ex220 дистанционного управления и другие элементы блок ex303 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные, демодулированные блоком ex302 модуляции/демодуляции, под управлением блока ex310 управления, содержащего центральный процессор. Кроме того, блок ex304 обработки аудиосигнала декодирует демультиплексированные аудиоданные, и блок ex305 обработки видеосигнала декодирует демультиплексированные видеоданные с использованием способа декодирования, описанного в каждом из вариантов осуществления, в телевизоре ex300. Блок ex309 вывода выдает вовне декодированный видеосигнал и аудиосигнал снаружи, соответственно. Когда блок ex309 вывода выдает видеосигнал и аудиосигнал, сигналы могут быть временно сохранены в буферах ex318 и ex319 и других элементах, с тем чтобы сигналы были воспроизведены в синхронизации друг с другом. Кроме того, телевизор ex300 может считывать мультиплексированные данные не посредством вещания и т.п., а с носителей ex215 и ex216 записи, таких как магнитный диск, оптический диск и SD-карта. Далее будет описана конфигурация, в которой телевизор ex300 кодирует аудиосигнал и видеосигнал и передает данные вовне или записывает данные на носителе записи. В телевизоре ex300 после пользовательской операции через пульт ex220 дистанционного управления и другие элементы блок ex304 обработки аудиосигнала кодирует аудиосигнал, и блок ex305 обработки видеосигнала кодирует видеосигнал под управлением блока ex310 управления с использованием способа кодирования, описанного в каждом из вариантов осуществления. Блок ex303 мультиплексирования/демультиплексирования мультиплексирует кодированный видеосигнал и аудиосигнал и выдает вовне полученный в результате сигнал. Когда блок ex303 мультиплексирования/демультиплексирования мультиплексирует видеосигнал и аудиосигнал, сигналы могут быть временно сохранены в буферах ex320 и ex321 и других элементах, с тем чтобы сигналы были воспроизведены в синхронизации друг с другом. При этом в телевизоре ex303 может быть несколько буферов ex318, ex319, ex320 и ex321, как проиллюстрировано, или по меньшей мере один буфер может быть совместно использован. Кроме того, данные могут храниться в буфере таким образом, чтобы, например, можно было избежать системного переполнения и отрицательного переполнения между блоком ex302 модуляции/демодуляции и блоком ex303 мультиплексирования/демультиплексирования.
[0270] Кроме того, телевизор ex300 может включать в себя конфигурацию для приема ввода AV от микрофона или камеры кроме конфигурации для получения аудиоданных и видеоданных из вещания или с носителя записи и может кодировать полученные данные. Хотя телевизор ex300 может кодировать, мультиплексировать и выдавать вовне данные в описании, он может быть способен только принимать, декодировать и выдавать вовне данные, а не кодировать, мультиплексировать и выдавать вовне данные.
[0271] Кроме того, когда устройство ex218 чтения/записи читает или записывает мультиплексированные данные с носителя записи или на носитель записи, либо телевизор ex300, либо устройство ex218 чтения/записи может декодировать или кодировать мультиплексированные данные, и телевизор ex300 и устройство ex218 чтения/записи могут совместно использовать декодирование или кодирование.
[0272] В качестве примера фиг. 20 иллюстрирует конфигурацию блока ex400 воспроизведения/записи информации, когда данные считываются с оптического диска или записываются на оптический диск. Блок ex400 воспроизведения/записи информации включает в себя составляющие элементы ex401, ex402, ex403, ex404, ex405, ex406 и ex407, которые будут описаны далее. Оптическая головка ex401 излучает лазерное пятно на поверхности записи носителя ex215 записи, который является оптическим диском, для записи информации и обнаруживает отраженный свет от поверхности записи носителя ex215 записи, для считывания информации. Блок ex402 записи модуляции электрически управляет полупроводниковым лазером, включенным в оптическую головку ex401, и модулирует лазерный свет соответствии с записываемыми данными. Блок ex403 демодуляции воспроизведения усиливает сигнал воспроизведения, полученный посредством электрического обнаружения отраженного света от поверхности записи с использованием фотодетектора, включенного в оптическую головку ex401, и демодулирует сигнал воспроизведения посредством разделения компонента сигнала, записанного на носителе записи ex215, для воспроизведения необходимой информации. Буфер ex404 временно сохраняет информацию, которая будет записана на носителе ex215 записи, и информацию, воспроизведенную с носителя ex215 записи. Дисковый двигатель ex405 поворачивает вращает носитель ex215 записи. Блок ex406 управления сервомотором перемещает оптическую головку ex401 на предопределенную информационную дорожку, управляя приведением во вращательное движение дискового двигателя ex405, чтобы следовать за лазерным пятном. Системный блок ex407 управления управляет всем блоком ex400 воспроизведения/записи информации. Процессы чтения и записи могут быть реализованы посредством системного блока ex407 управления с использованием различной информации, хранящейся в буфере ex404, и формирования и добавления новой информации по мере необходимости, и блока ex402 записи модуляции, блока ex403 демодуляции воспроизведения и блока ex406 управления сервомотором, чтобы запись и воспроизведение информации через оптическую головку ex401 управлялась скоординированным образом. Системный блок ex407 управления включает в себя, например, микропроцессор и исполняет обработку, заставляя компьютер исполнять программу для чтения и записи.
[0273] Хотя в описании оптическая головка ex401 излучает лазерное пятно, она может выполнять высокоплотную запись используя ближнепольную оптику.
[0274] Фиг. 21 иллюстрирует носитель ex215 записи, который является оптическим диском. На поверхности записи носителя записи ex215 по спирали сформированы направляющие канавки, и информационная дорожка ex230 заранее записывает информацию адреса, указывающую абсолютную позицию на диске в соответствии с изменением формы направляющих канавок. Информация адреса включает в себя информацию для определения позиции блоков ex231 записи, которые являются единицами записи данных. Воспроизведение информационной дорожки ex230 и считывание информации адреса в устройстве, которое записывает и воспроизводит данные, может привести к определению позиций блоков записи. Кроме того, носитель ex215 записи включает в себя область ex233 записи данных, внутреннюю область ex232 окружности и внешнюю область ex234 окружности. Область ex233 записи данных является областью для использования при записи пользовательских данных. Внутренняя область ex232 окружности и внешняя область ex234 окружности, которые находятся внутри и снаружи области ex233 записи данных, соответственно, предназначены для специального использования кроме записи пользовательских данных. Блок 400 воспроизведения/записи данных считывает и записывает кодированную аудиоинформацию, кодированные видеоданные или мультиплексированные данные, полученные посредством мультиплексирования кодированных аудиоданных и видеоданных, из области ex233 записи данных носителя ex215 записи и на нее.
[0275] Хотя в описании в качестве примера описан оптический диск, имеющий слайс, такой как DVD и BD, оптический диск не ограничен этим и может быть оптическим диском, имеющим многоуровневую структуру, и на котором запись может быть сделана на части, отличной от поверхности. Кроме того, оптический диск может иметь структуру для многомерной записи/воспроизведения, например, записи информации с использованием цветного света с разными длинами волн в одной и той же секции оптического диска и для записи информации, имеющей различные слайсы с различных углов.
[0276] Кроме того, автомобиль ex210, имеющий антенну ex205, может принимать данные от спутника ex202 и т.п. и воспроизводить видеоинформацию на устройстве отображения, таком как автомобильная навигационная система ex211, установленная в автомобиле ex210, в системе ex200 цифрового вещания. При этом, конфигурация автомобильной навигационной системы ex211 будет конфигурацией, например, включающей в себя блок приема GPS, из конфигурации, проиллюстрированной на фиг. 19. То же самое будет верно для конфигурации компьютера ex111, сотового телефона ex114 и т.п.
[0277] Фиг. 22A иллюстрирует сотовый телефон ex114, который использует способ кодирования движущегося изображения и способ декодирования движущегося изображения, описанные в вариантах осуществления. Сотовый телефон ex114 включает в себя: антенну ex350 для передачи и приема радиоволн через базовую станцию ex110; блок ex365 камеры, способный захватывать динамические и неподвижные изображений; и блок ex358 отображения, такой как жидкокристаллический дисплей, для отображения данных, таких как декодированная видеоинформация, захваченная блоком ex365 камеры или принятая антенной ex350. Сотовый телефон ex114 дополнительно включает в себя: блок корпуса, содержащий блок ex366 операционных клавиш; блок ex357 ауидовывода, например, динамик для вывода аудиоинформации; блок ex356 аудиоввода, например, микрофон для ввода аудиоинформации; блок ex367 памяти для хранения захваченной видеоинформации или фотоснимков, записанной аудиоинформации, кодированных или декодированных данных, принятой видеоинформации, фотоснимков, электронных писем и т.п.; и блок ex364 слота, который является блоком интерфейса для носителя записи, который хранит данные таким же образом, как блок ex367 памяти.
[0278] Далее будет описан пример конфигурации сотового телефона ex114 со ссылкой на фиг. 22B. В сотовом телефоне ex114 основной блок ex360 управления, выполненный с возможностью управлять каждым блоком корпуса, в том числе блоком ex358 отображения, а также блоком ex366 операционных клавиш, соединен взаимно через синхронную шину ex370 с блоком ex361 схемы электропитания, блоком ex362 управления вводом, блоком ex355 обработки видеосигнала, блоком ex363 интерфейса камеры, блоком ex359 управления жидкокристаллическим дисплеем (LCD), блоком ex352 модуляции/демодуляции, блоком ex353 мультиплексирования/демультиплексирования, блоком ex354 обработки аудиосигнала, блоком ex364 слота и блоком ex367 памяти.
[0279] Когда клавиша окончания вызова или клавиша питания включены посредством пользовательской операции, блок ex361 схемы электропитания подает на соответствующие блоки питание от блока батарей, чтобы активировать сотовый телефон ex114.
[0280] В сотовом телефоне ex114 блок ex354 обработки аудиосигнала преобразовывает аудиосигналы, собранные блоком ex356 аудиоввода в режиме разговора, в цифровые аудиосигналы под управлением основного блока ex360 управления, включающего в себя центральный процессор (CPU), постоянное запоминающее устройство (ROM) и оперативное запоминающее устройство (RAM). Затем блок ex352 модуляции/демодуляции выполняет обработку расширения спектра над цифровыми аудиосигналами, и блок ex351 передачи и приема выполняет цифро-аналоговое преобразование и частотное преобразование над данными, чтобы передать полученные в результате данные через антенну ex350. Кроме того, в сотовом телефоне ex114 блок ex351 передачи и приема усиливает данные, принятые антенной ex350 в режиме разговора, и выполняет частотное преобразование и аналого-цифровое преобразование над данными. Затем блок ex352 модуляции/демодуляции выполняет обратную обработку расширения спектра над данными, и блок ex354 обработки аудиосигнала преобразовывает их в аналоговые аудиосигналы для выдачи их через блок ex357 аудиовывода.
[0281] Кроме того, когда в режиме передачи данных передается электронная почта, текстовые данные электронной почты, введенные посредством блока ex366 операционных клавиш и т.п. корпуса, посылаются в основной блок ex360 управления через блок ex362 управления вводом. Основной блок ex360 управления заставляет блок ex352 модуляции/демодуляции выполнять обработку расширения спектра над текстовыми данными, и блок ex351 передачи и приема выполняет цифро-аналоговое преобразование и частотное преобразование над полученными в результате данными, чтобы передать данные базовой станции ex110 через антенну ex350. Когда электронное письмо принимается, над принятыми данными выполняется обработка, которая является приблизительно обратной по отношению к обработке для передачи электронной почты, и полученные в результате данные выдаются блоку ex358 отображения.
[0282] Когда в режиме передачи данных передается видеоинформация, неподвижные изображения или видеоинформация и аудиоинформация, блок ex355 обработки видеосигнала сжимает и кодирует видеосигналы, предоставленные от блока ex365 камеры, с использованием способа кодирования движущегося изображения, показанного в каждом из вариантов осуществления (то есть, функционирует как устройство кодирования изображения в соответствии с аспектом настоящего изобретения), и передает кодированные видеоданные блоку ex353 мультиплексирования/демультиплексирования. Напротив, в то время, когда блок ex365 камеры захватывает видеоинформацию, неподвижные изображения и т.п., блок ex354 обработки аудиосигнала кодирует аудиосигналы, собранные блоком ex356 аудиоввода, и передает кодированные аудиоданные блоку ex353 мультиплексирования/демультиплексирования.
[0283] Блок ex353 мультиплексирования/демультиплексирования мультиплексирует кодированные видеоданные, предоставленные от блока ex355 обработки видеосигнала, и кодированные аудиоданные, предоставленные от блока ex354 обработки аудиосигнала, с использованием предопределенного способа. Затем блок ex352 модуляции/демодуляции (блок схемы модуляции/демодуляции) выполняет обработку расширения спектра над мультиплексированными данных, и блок ex351 передачи и приема выполняет цифро-аналоговое преобразование и частотное преобразование над данными, чтобы передать полученные в результате данные через антенну ex350.
[0284] При приеме данных видеофайла, который присоединен к веб-странице и т.п., в режиме передачи данных или при приеме электронной почты с присоединенной видеоинформацией и/или аудиоинформацией, чтобы декодировать мультиплексированные данные, принятые через антенну ex350, блок ex353 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные в битовый поток видеоданных и битовый поток аудиоданных, и предоставляет блоку ex355 обработки видеосигнала кодированные видеоданные и блоку ex354 обработки аудиосигнала кодированными аудиоданные через синхронную шину ex370. Блок ex355 обработки видеосигнала декодирует видеосигнал с использованием способа декодирования движущегося изображения, соответствующего способу кодирования движущегося изображения, показанному в каждом из вариантов осуществления (то есть, функционирует как устройство декодирования изображения в соответствии с аспектом настоящего изобретения), и затем блок ex358 отображения отображает, например, видеоизображения и неподвижные изображения, включенные в видеофайл, присоединенный к веб-странице, через блок ex359 управления LCD. Кроме того, блок ex354 обработки аудиосигнала декодирует аудиосигнал, и блок ex357 аудиовывода выдает аудиоинформацию.
[0285] Кроме того, аналогично телевизору ex300 терминал, такой как сотовый телефон ex114, возможно имеет 3 типа конфигураций реализации, в том числе не только (i) терминал передачи и приема, включающий в себя и устройство кодирования, и устройство декодирования, но также и (ii) терминал передачи, включающий в себя только устройство кодирования, и (iii) терминал приема, включающий в себя только устройство декодирования. Хотя в описании система ex200 цифрового вещания принимает и передает мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и видеоданных, мультиплексированные данные могут быть данными, полученными посредством мультиплексирования не аудиоданных, а символьных данных, имеющих отношение к видеоинформации, и видеоданных, и могут быть не мультиплексированными данными, а видеоданными непосредственно.
[0286] Также способ кодирования движущегося изображения и способ декодирования движущегося изображения в каждом из вариантов осуществления могут использоваться в любом из устройств и описанных систем. Таким образом, могут быть получены преимущества, описанные в каждом из вариантов осуществления.
[0287] Кроме того, настоящее изобретение не ограничено вариантами осуществления, и возможны различные модификации и переработки без отступления от объема настоящего изобретения.
[0288] (Вариант осуществления 10)
Видеоданные могут быть сформированы посредством переключения по мере необходимости между (i) способом кодирования движущегося изображения или устройством кодирования движущегося изображения, показанных в каждом из вариантов осуществления, и (ii) способом кодирования движущегося изображения или устройством кодирования движущегося изображения в соответствии с другим стандартом, таким как MPEG 2, MPEG 4 AVC и VC 1.
[0289] При этом, когда сформировано и затем декодируется множество видеоданных, которые соответствуют различным стандартам, способы декодирования должны быть выбраны для соответствия разным стандартам. Однако, поскольку не может быть обнаружен стандарт, которому соответствует каждое множество видеоданных, которые будут декодированы, имеется проблема в том, что не может быть выбран соответствующий способ декодирования.
[0290] Чтобы решить проблему, мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и других данных с видеоданными, имеют структуру, включающую в себя идентификационную информацию, указывающую, какому стандарту соответствуют видеоданные. Далее будет описана заданная структура мультиплексированных данных, включающая в себя видеоданные, сформированные способом кодирования движущегося изображения и устройством кодирования движущегося изображения, показанными в каждом из вариантов осуществления. Мультиплексированные данные представляют собой цифровой поток в формате транспортного потока MPEG 2.
[0291] Фиг. 23 иллюстрирует структуру мультиплексированных данных. Как проиллюстрировано на фиг. 23, мультиплексированные данные могут быть получены посредством мультиплексирования по меньшей мере одного из видеопотока, аудиопотока, потока презентационной графики (PG) и потока интерактивной графики. Видеопоток представляет первичную видеоинформацию и вторичную видеоинформацию фильма, аудиопоток (IG) представляет первичную звуковую часть и вторичную звуковую часть, которая должна быть микширована с первичной звуковой частью, и поток презентационной графики представляет субтитры фильма. При этом первичная видеоинформация является обычной видеоинформацией, которая будет отображена на экране, и вторичная видеоинформация является видеоинформацией, которая будет отображена в меньшем окне в первичной видеоинформации. Кроме того, поток интерактивной графики представляет интерактивный экран, который будет сформирован посредством расположения компонентов графического пользовательского интерфейса (GUI) на экране. Видеопоток кодирован способом кодирования движущегося изображения или устройством кодирования движущегося изображения, показанными в каждом из вариантов осуществления, или способом кодирования движущегося изображения или устройством кодирования движущегося изображения в соответствии с традиционным стандартом, таким как MPEG 2, MPEG 4 AVC и VC 1. Аудиопоток кодирован в соответствии со стандартом, таким как Dolby-AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD и линейный PCM.
[0292] Каждый поток, включенный в мультиплексированные данные, идентифицирован посредством PID. Например, значение 0x1011 выделяется видеопотоку, который будет использоваться для видеоинформации фильма, значения от 0x1100 до 0x111F выделяются аудиопотокам, значения от 0x1200 до 0x121F выделяются потокам презентационной графики, значения от 0x1400 до 0x141F выделяются потокам интерактивной графики, значения от 0x1B00 до 0x1B1F выделяются видеопотокам, которые будут использоваться для вторичной видеоинформации фильма, и значения от 0x1A00 до 0x1A1F выделяются аудиопотокам, которые будут использоваться для вторичной аудиоинформации, которая будет микшироваться с первичной аудиоинформацией.
[0293] Фиг. 24 схематично иллюстрирует, как данные мультиплексируются. Сначала видеопоток ex235, состоящий из видеокадров, и аудиопоток ex238, состоящий из звуковых кадров, преобразовываются в поток PES пакетов ex236 и поток PES пакетов ex239 и затем в TS пакеты ex237 и TS пакеты ex240, соответственно. Аналогичным образом данные потока ex241 презентационной графики и данные потока ex244 интерактивной графики преобразовываются в поток PES пакетов ex242 и поток PES пакетов ex245 и затем в TS пакеты ex243 и TS пакеты ex246, соответственно. Эти TS пакеты мультиплексируются в поток для получения мультиплексированных данных ex247.
[0294] Фиг. 25 более подробно иллюстрирует, как видеопоток сохраняется в потоке PES пакетов. Первая полоса на фиг. 25 показывает поток видеокадров в видеопотоке. Вторая полоса показывает поток PES пакетов. Как указано стрелками, обозначенными yy1, yy2, yy3 и yy4 на фиг. 25, видеопоток разделяется на такие изображения, как I-изображения, B-изображения и P-изображения, каждое из которых является блоком видеопрезентации, и изображения сохраняются в полезной нагрузке каждого из PES пакетов. Каждый из PES пакетов имеет PES заголовок, и PES заголовок хранит временную метку представления (PTS), указывающую времени отображения изображения, и временную метку декодирования (DTS), указывающую время декодирования изображения.
[0295] Фиг. 26 иллюстрирует формат TS пакетов, которые будут в конечном счете записаны в мультиплексированных данных. Каждый из TS пакетов представляет собой 188-байтовый пакет фиксированной длины, включающий в себя 4-байтовый TS заголовок, имеющий такую информацию, как PID для идентификации потока, и 184-байтовую полезную нагрузку TS для хранения данных. PES пакеты разделены и сохранены в полезных нагрузках TS, соответственно. Когда используется BD ROM, каждому из TS пакетов дается 4-байтовый заголовок TP_Extra_Header, что дает в результате 192-байтовые пакеты источника. Пакеты источника записаны в мультиплексированных данных. Заголовок TP_Extra_Header хранит такую информацию, как метка Arrival_Time_Stamp (ATS). Метка ATS показывает время начала передачи, в которое каждый из TS пакетов должен быть передан фильтру PID. Пакеты источника расположены в мультиплексированных данных, как показано внизу фиг. 26. Номера, увеличивающиеся от начала мультиплексированных данных, называются номерами пакетов источника (SPN).
[0296] Каждый из TS пакетов, включенных в мультиплексированные данные, включает в себя не только потоки аудиоинформации, видеоинформации, субтитров и т.п., но также и таблицу привязки программы (PAT), таблицу карты программы (PMT) и метка времени программы (PCR). Таблица PAT показывает, что обозначает PID в таблице PMT, используемой в мультиплексированных данных, и PID самой таблицы PAT записывается как нуль. Таблица PMT хранит PID потоков видеоинформации, аудиоинформации, субтитров и т.п., включенных в мультиплексированные данные, и информацию атрибута потоков, соответствующих PID. Таблица PMT также имеет различные дескрипторы, имеющие отношение к мультиплексированным данным. Дескрипторы имеют такую информацию, такая управляющая информация копирования, показывающая, разрешено ли копирование мультиплексированных данных. Метка PCR хранит информацию времени STC, соответствующую метке ATS, показывающую, когда пакет PCR передан декодеру, чтобы достигнуть синхронизации между временем поступления (ATC), которое является осью времени меток ATS, и системным таймером (STC), который является осью времени потоков PTS и DTS.
[0297] Фиг. 27 иллюстрирует структуру данных PMT подробно. Заголовок PMT расположен наверху PMT. Заголовок PMT описывает длину данных, включенных в PMT и других. Множество дескрипторов, касающихся мультиплексированных данных, расположено после заголовка PMT. Информация, такая как управляющая информация копии описана в дескрипторах. После дескрипторов расположено множество частей информации о потоке, касающейся потоков, включенных в мультиплексированные данные. Каждая часть информации о потоке включает потоковые дескрипторы каждая информация об описании, такие как потоковый тип для того, чтобы идентифицировать кодек сжатия потока, потокового PID, и потоковой информации атрибута (такой как частота кадров или формат изображения). Потоковые дескрипторы равны в числе к числу потоков в мультиплексированных данных.
[0298] Когда мультиплексированные данные записываются на носителе записи и т.п., они записываются вместе с файлами информации мультиплексированных данных.
[0299] Каждый из файлов информации мультиплексированных данных представляет собой информацию об управлении мультиплексированными данными, как показано на фиг. 28. Файлы информации мультиплексированных данных находятся во взаимно-однозначном соответствии с мультиплексированными данными, и каждый из файлов включает в себя информацию мультиплексированных данных, информацию атрибутов потока и карту записи.
[0300] Как проиллюстрировано на фиг. 28, информация мультиплексированных данных включает в себя системную скорость, время начала воспроизведения и время окончания воспроизведения. Системная скорость указывает максимальную скорость передачи, на которой системный целевой декодер, который будет описан позже, передает мультиплексированные данные PID фильтру. Интервалы меток ATS, включенных в мультиплексированные данные, устанавливаются не выше, чем системная скорость. Время начала воспроизведения указывает на метку PTS в видеокадре во начале мультиплексированных данных. Интервал одного кадра добавляется к метке PTS в видеокадре в конце мультиплексированных данных, и метка PTS устанавливается равной времени окончания воспроизведения.
[0301] Как показано на фиг. 29, часть информации атрибутов записывается в информации атрибутов потока для каждого PID каждого потока, включенного в мультиплексированные данные. Каждая часть информации атрибутов имеет различную информацию в зависимости от того, является ли соответствующий поток видеопотоком, аудиопотоком, потоком презентационной графики или потоком интерактивной графики. Каждая часть информации атрибутов видеопотока несет такую информацию, как информация о том, какой кодек сжатия используется для сжатия видеопотока, и разрешение, формат изображения и частоту кадров частей данных изображения, которые включены в видеопоток. Каждая часть информации атрибутов аудиопотока несет такую информацию, как информация о том, какой кодек сжатия используется для сжатия аудиопотока, сколько каналов включено в аудиопоток, какой язык поддерживает аудиопоток и насколько высока частота дискретизации. Информация атрибутов видеопотока и информация атрибутов аудиопотока используются для инициализации декодера, прежде чем проигрыватель воспроизведет информацию.
[0302] В настоящем варианте осуществления мультиплексированные данные, которые будут использоваться, имеют тип потока, включенный в таблицу PMT. Кроме того, когда мультиплексированные данные записываются на носителе записи, используется информация атрибутов видеопотока, включенная в информацию мультиплексированных данных. Более определенно, способ кодирования движущегося изображения или устройство кодирования движущегося изображения, описанные в каждом из вариантов осуществления, включают в себя этап или блок для выделения уникальной информации, указывающей на видеоданные, сформированные способом кодирования движущегося изображения или устройством кодирования движущегося изображения в каждом из вариантов осуществления, для типа потока, включенного в таблицу PMT или в информацию атрибутов видеопотока. При такой конфигурации видеоданные, сформированные способом кодирования движущегося изображения или устройством кодирования движущегося изображения, описанные в каждом из вариантов осуществления, можно отличить от видеоданных, которые соответствуют другому стандарту.
[0303] Кроме того, фиг. 30 иллюстрирует этапы способа декодирования движущегося изображения в соответствии с настоящим вариантом осуществления. На этапе exS100 из мультиплексированных данных получается тип потока, включенный в таблицу PMT или в информацию атрибутов потока, включенную в информацию мультиплексированных данных. Затем на этапе exS101 определяется, указывают ли тип потока или информация атрибутов видеопотока, что мультиплексированные данные сформированы способом кодирования движущегося изображения или устройством кодирования движущегося изображения в каждом из вариантов осуществления. Когда определено, что тип потока или информация атрибутов видеопотока указывают, что мультиплексированные данные сформированы способом кодирования движущегося изображения или устройством кодирования движущегося изображения в каждом из вариантов осуществления, на этапе exS102 декодирование выполняется посредством способа декодирования движущегося изображения в каждом из вариантов осуществления. Кроме того, когда тип потока или информация атрибутов видеопотока указывают на соответствие традиционным стандартам, таким как MPEG 2, MPEG 4 AVC и VC 1, на этапе exS103 декодирование выполняется способом декодирования движущегося изображения в соответствии с традиционными стандартами.
[0304] Таким образом, выделение нового уникального значения для типа потока или информации атрибутов видеопотока обеспечивает возможность для определения, могут ли способ декодирования движущегося изображения или устройство декодирования движущегося изображения, которые описаны в каждом из вариантов осуществления, выполнить декодирование. Даже когда вводятся мультиплексированные данные, которые соответствуют другому стандарту, могут быть выбраны соответствующий способ или устройство декодирования. Таким образом, становится возможно декодировать информацию без какой-либо ошибки. Кроме того, способ или устройство кодирования движущегося изображения или способ или устройство декодирования движущегося изображения в настоящем варианте осуществления могут использоваться в описанных выше устройствах и системах.
[0305] (Вариант осуществления 11)
Каждый из способа кодирования движущегося изображения, устройства кодирования движущегося изображения, способа декодирования движущегося изображения и устройства декодирования движущегося изображения в каждом из вариантов осуществления обычно достигается в виде интегральной схемы или большой интегральной схемы (LSI). В качестве примера схемы LSI, фиг. 31 иллюстрирует конфигурацию схемы ex500 LSI, которая выполнена в одной микросхеме. Схема ex500 LSI включает в себя элементы ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508 и ex509, которые будут описан ниже, и элементы соединены друг с другом через шину ex510. Блок ex505 схемы электропитания активируется посредством подачи питания на каждый из элементов, когда блок ex505 схемы электропитания включен.
[0306] Например, когда выполняется кодирование, схема ex500 LSI принимает AV-сигнал от микрофона ex117, камеры ex113 и т.п. через блок ex509 ввода/вывода аудиоданных и видеоданных под управлением блока ex501 управления, включающего в себя центральный процессор ex502, контроллер ex503 памяти, потоковый контроллер ex504 и блок ex512 управления задающей частотой. Принятый AV-сигнал временно сохраняется во внешней памяти ex511, такой как SDRAM. Под управлением блока ex501 управления сохраненные данные в соответствии с объемом и скоростью обработки сегментируются в секции данных, которые будут переданы блоку ex507 обработки сигналов. Затем блок ex507 обработки сигналов кодирует аудиосигнал и/или видеосигнал. При этом кодирование видеосигнала представляет собой кодирование, описанное в каждом из вариантов осуществления. Кроме того, блок ex507 обработки сигналов иногда мультиплексирует кодированные аудиоданные и кодированные видеоданные, и блок ex506 ввода/вывода потока выдает мультиплексированные данные вовне. Выданные мультиплексированные данные передаются базовой станции ex107 или записываются на носителе ex215 записи. Когда наборы данных мультиплексируются, данные должны временно сохраняться в буфере ex508, с тем чтобы наборы данных были синхронизированы друг с другом.
[0307] Хотя память ex511 является элементом, внешним по отношению к схеме ex500 LSI, она может быть включена в схему ex500 LSI. Буфер ex508 не ограничен одним буфером, а может быть составлен из буферов. Кроме того, схема ex500 LSI может быть выполнена как одна микросхема или множество микросхем.
[0308] Кроме того, хотя блок ex501 управления включает в себя центральный процессор ex502, контроллер ex503 памяти, потоковый ex504 контроллер, блок ex512 управления задающей частотой, конфигурация блока ex501 управления не ограничена этим. Например, блок ex507 обработки сигналов может дополнительно включать в себя центральный процессор. Включение другого центрального процессора в блок ex507 обработки сигналов может увеличить скорость обработки. Кроме того, в качестве другого примера, центральный процессор ex502 может служить в качестве или являться частью блока ex507 обработки сигналов и, например, может включать в себя блок обработки аудиосигнала. В таком случае блок ex501 управления включает в себя блок ex507 обработки сигналов или центральный процессор ex502, содержащий часть блока ex507 обработки сигналов.
[0309] Используемое здесь название представляет собой большую интегральную схему (LSI), но она также может называться интегральной схемой (IC), системной большой интегральной схемой, сверхбольшой интегральной схемой или ультрабольшой интегральной схемой в зависимости от степени интеграции.
[0310] Кроме того, способы достижения интеграции не ограничены схемами LSI, и специальная схема или процессор общего назначения и т.д. также могут достигать интеграции. Программируемая пользователем вентильная матрица (FPGA), которая может быть запрограммирована после изготовления схем LSI, или реконфигурируемый процессор, который позволяет реконфигурирование соединения или конфигурации LSI, может использоваться с той же целью. Такое программируемое логическое устройство обычно может исполнять способ кодирования движущегося изображения и/или способ декодирования движущегося изображения в соответствии с любым из описанных выше вариантов осуществления посредством загрузки или считывания из памяти и т.п. одной или более программ, которые включены в программное обеспечение или программно-аппаратное обеспечение.
[0311] В будущем, с развитием полупроводниковой технологии схемы LSI может заменить совершенно новая технология. Функциональные блоки могут быть интегрированы с использованием такой технологии. Возможность состоит в том, что настоящее изобретение применено к биотехнологии.
[0312] (Вариант осуществления 12)
Когда декодируются видеоданные, сформированные способом кодирования движущегося изображения или устройством кодирования движущегося изображения, описанными в каждом из вариантов осуществления, объем обработки может увеличиться по сравнению с декодированием видеоданных, которые соответствуют традиционному стандарту, такому как MPEG 2, MPEG 4 AVC и VC 1. Таким образом, схеме ex500 LSI нужна установка более высокой задающей частоты, чем в центральном процессоре ex502, для использования, когда декодируются видеоданные в соответствии с традиционным стандартом. Однако, когда задающая частота установлена более высокой, имеется проблема, которая увеличивает расход энергии.
[0313] Чтобы решить эту проблему, устройство декодирования движущегося изображения, такое как телевизор ex300 и схема ex500 LSI, выполнены с возможностью определять, которому стандарту соответствуют видеоданные, и выполнять переключение между частотами возбуждения в соответствии с определенным стандартом. Фиг. 32 иллюстрирует конфигурацию ex800 в настоящем варианте осуществления. Блок ex803 переключения задающей частоты устанавливает задающую частоту равной более высокой задающей частоте, когда видеоданные сформированы способом кодирования движущегося изображения или устройством кодирования движущегося изображения, описанными в каждом из вариантов осуществления. Затем блок ex803 переключения задающей частоты дает команду блоку ex801 обработки декодирования, который исполняет способ декодирования движущегося изображения, описанный в каждом из вариантов осуществления, для декодирования видеоданных. Когда видеоданные соответствуют традиционному стандарту, блок ex803 переключения задающей частоты устанавливает задающую частоту равной более низкой задающей частоте, чем для видеоданных, сформированных способом кодирования движущегося изображения или устройством кодирования движущегося изображения, описанными в каждом из вариантов осуществления. Затем, блок ex803 переключения задающей частоты дает команду блоку ex802 обработки декодирования, который соответствует традиционному стандарту, для декодирования видеоданных.
[0314] Более определенно, блок ex803 переключения задающей частоты включает в себя центральный процессор ex502 и блок ex512 управления задающей частотой на фиг. 31. При этом каждый из блока ex801 обработки декодирования, который исполняет способ декодирования движущегося изображения, описанный в каждом из вариантов осуществления, и блока ex802 обработки декодирования, который соответствует традиционному стандарту, соответствует блоку ex507 обработки сигналов на фиг. 31. Центральный процессор 502 определяет, какому стандарту соответствуют видеоданные. Затем блок ex512 управления задающей частотой определяет задающую частоту на основе сигнала от центрального процессора ex502. Кроме того, блок ex507 обработки сигналов декодирует видеоданные на основе сигнала от центрального процессора ex502. Например, идентификационная информация, описанная в варианте осуществления 10 может использоваться для идентификации видеоданных. Идентификационная информация не ограничена описанной в варианте осуществления 10, а может представлять собой любую информацию, пока информация указывает, какому стандарту соответствуют видеоданные. Например, когда стандарт, которому соответствуют видеоданные, может быть определен на основе внешнего сигнала для определения, что видеоданные используются для телевидения или диска и т.д., определение может быть сделано на основе такого внешнего сигнала. Кроме того, центральный процессор ex502 выбирает задающую частоту, например, на основе таблицы поиска, в которой стандарты видеоданных соответствуют частотам возбуждения, как показано на фиг. 34. Задающая частота может быть выбрана посредством хранения таблицы поиска в буфере ex508 и во внутренней памяти схемы LSI и со ссылкой на таблицу поиска посредством центрального процессора ex502.
[0315] Фиг. 33 иллюстрирует этапы выполнения способа в настоящем варианте осуществления. Сначала на этапе exS200 блок ex507 обработки сигналов получает идентификационную информацию из мультиплексированных данных. Затем на этапе exS201, центральный процессор ex502 определяет, сформированы ли видеоданные способом кодирования и устройством кодирования, описанными в каждом из вариантов осуществления, на основе идентификационной информации. Когда видеоданные сформированы способом кодирования движущегося изображения и устройством кодирования движущегося изображения, описанными в каждом из вариантов осуществления, на этапе exS202 центральный процессор ex502 передает сигнал для установки задающей частоты равной более высокой задающей частоте блоку ex512 управления задающей частотой. Затем блок ex512 управления задающей частотой устанавливает задающую частоту равной более высокой задающей частоте. С другой стороны, когда идентификационная информация указывает, что видеоданные соответствуют традиционному стандарту, такому как MPEG 2, MPEG 4 AVC и VC 1, на этапе exS203 центральный процессор ex502 передает сигнал для установки задающей частоты равной более низкой задающей частоте блоку ex512 управления задающей частотой. Затем блок ex512 управления задающей частотой устанавливает задающую частоту равной более низкой задающей частоте, чем в случае, когда видеоданные сформированы способом кодирования движущегося изображения и устройством кодирования движущегося изображения, описанными в каждом варианте осуществления.
[0316] Кроме того, наряду с переключением задающих частот, эффект экономии мощности может быть улучшен посредством изменения напряжения, которое будет приложено к схеме ex500 LSI или устройству, включающему в себя схему ex500 LSI. Например, когда задающая частота устанавливается ниже, напряжение, которое будет приложено к схеме ex500 LSI или устройству, включающему в себя схему ex500 LSI может быть установлено равным более низкому напряжению, чем в случае, когда задающая частота устанавливается выше.
[0317] Кроме того, когда объем обработки для декодирования больше, задающая частота может быть установлена выше, и когда объем обработки для декодировать меньше, задающая частота может быть установлена ниже, как в способе для установки задающей частоты. Таким образом, способ установки не ограничен описанными выше. Например, когда объем обработки для декодирования видеоданные в соответствии со стандартом MPEG-4 AVC больше, чем объем обработки для декодирования видеоданных, сформированных способом кодирования движущегося изображения и устройством кодирования движущегося изображения, описанными в каждом из вариантов осуществления, задающая частота может быть установлена в обратном порядке по отношению к описанной выше установке.
[0318] Кроме того, способ установки задающей частоты не ограничен способом установки более низкой задающей частоты. Например, когда идентификационная информация указывает, что видеоданные сформированы способом кодирования движущегося изображения и устройством кодирования движущегося изображения, описанными в каждом из вариантов осуществления, напряжение, которое будет приложено к схеме ex500 LSI или устройству, включающему в себя схему ex500 LSI может быть установлено более высоким. Когда идентификационная информация указывает, что видеоданные соответствуют традиционному стандарту, такому как MPEG 2, MPEG 4 AVC и VC 1, напряжение, которое будет приложено к схеме ex500 LSI или устройству, включающему в себя схему ex500 LSI, может быть установлено более низким. В качестве другого примера, когда идентификационная информация указывает, что видеоданные сформированы способом кодирования движущегося изображения и устройством кодирования движущегося изображения, описанными в каждом из вариантов осуществления, работа центрального процессора ex502 может не приостанавливаться, и когда идентификационная информация указывает, что видеоданные соответствуют традиционному стандарту, такому как MPEG 2, MPEG 4 AVC и VC 1, работа центрального процессора ex502 приостанавливается в заданное время, поскольку центральный процессор ex502 имеет дополнительную производительность обработки. Даже когда идентификационная информация указывает, что видеоданные сформированы способом кодирования движущегося изображения и устройством кодирования движущегося изображения, описанными в каждом из вариантов осуществления, в случае, когда центральный процессор ex502 имеет дополнительную производительность обработки, работа центрального процессора ex502 может приостанавливаться в заданное время. В таком случае время приостановки может устанавливаться более коротким, чем в случае, когда идентификационная информация указывает, что видеоданные соответствуют традиционному стандарту, такому как MPEG 2, MPEG 4 AVC и VC 1.
[0319] В соответствии с этим, эффект экономии мощности может быть улучшен посредством переключения между частотами возбуждения в соответствии со стандартом, которому соответствуют видеоданные. Кроме того, когда схема ex500 LSI или устройство, включающее в себя схему ex500 LSI, управляется с использованием батареи, время работы от батареи может быть увеличено с помощью эффекта экономии мощности.
[0320] (Вариант осуществления 13)
Имеются случаи, в которых множество видеоданных, которые соответствуют различным стандартам, выдается устройствам и системам, таким как телевизор и сотовый телефон. Чтобы обеспечить возможность декодировать множество видеоданных, которые соответствуют различным стандартам, блок ex507 обработки сигналов схемы ex500 LSI должен соответствовать различным стандартам. Однако проблемы увеличения масштаба схемы ex500 LSI и увеличения затрат возникают с отдельным использованием блоков ex507 обработки сигналов, которые удовлетворяют соответствующим стандартам.
[0321] Чтобы решить эту проблему, разработана конфигурация, в которой блок обработки декодирования для реализации способа декодирования движущегося изображения, описанный в каждом из вариантов осуществления, и блок обработки декодирования, который соответствует традиционному стандарту, такому как MPEG 2, MPEG 4 AVC и VC 1, частично распределены. Номер ex900 на фиг. 35A показывает пример конфигурации. Например, способ декодирования движущегося изображения, описанный в каждом из вариантов осуществления, и способ декодирования движущегося изображения, который соответствует стандарту MPEG- 4 AVC, имеют частично общие детали обработки, такие как статистическое кодирование, обратное квантование, фильтрация удаления блочности и предсказание с компенсацией движения. Блок ex902 обработки декодирования, который соответствует стандарту MPEG 4 AVC, может совместно использоваться общими операциями обработки, и специализированный блок ex901 обработки декодирования может использоваться для обработки, которая является уникальной для аспекта настоящего изобретения и не соответствует стандарту MPEG 4 AVC. Блок ex902 обработки декодирования, который соответствует стандарту MPEG 4 AVC, может совместно использоваться общими операциями обработки, и специализированный блок ex901 обработки декодирования может использоваться для обработки, которая является уникальной для аспекта настоящего изобретения и не соответствует стандарту MPEG 4 AVC. Блок обработки декодирования для реализации способа декодирования движущегося изображения, описанного в каждом из вариантов осуществления, может совместно использоваться для обработки, которая будет распределена, и специализированный блок обработки декодирования может использоваться для обработки, уникальной для стандарта MPEG-4 AVC.
[0322] Кроме того, номер ex1000 на фиг. 35B показывает другой пример, в котором обработка частично распределена. Этот пример использует конфигурацию, включающую в себя специализированный блок ex1001 обработки декодирования, который поддерживает обработку, уникальную для аспекта настоящего изобретения, специализированный блок ex1002 обработки декодирования, который поддерживает обработку, уникальную для другого традиционного стандарта, и блок ex1003 обработки декодирования, который поддерживает обработку, которая будет распределена между способом декодирования движущегося изображения в соответствии с аспектом настоящего изобретения и традиционным способом декодирования движущегося изображения. При этом специализированные блоки ex1001 и ex1002 обработки декодирования не обязательно специализированы для обработки в соответствии с аспектом настоящего изобретения и обработки традиционного стандарта, соответственно, а могут быть способными к реализации общей обработки. Кроме того, конфигурация настоящего варианта осуществления может быть реализована посредством схемы ex500 LSI.
[0323] Таким образом, сокращение масштаба схемы LSI и сокращение затрат возможны посредством совместного использования блока обработки декодирования для обработки, которая будет распределена между способом декодирования движущегося изображения в соответствии с аспектом настоящего изобретения и способом декодирования движущегося изображения в соответствии с традиционным стандартом.
Промышленная применимость
[0324] Способ кодирования изображения и способ декодирования изображения в соответствии с настоящим изобретением могут быть применены к различным мультимедийным данным. Способ кодирования изображения и способ декодирования изображения в соответствии с настоящим изобретением являются полезными в качестве способа кодирования изображения и способа декодирования изображения при сохранении, передаче, взаимодействии и т.п. с использованием мобильного телефона, устройства DVD, персонального компьютера и т.п.
Список обозначений
[0325] 100 кодер
105 Блок вычитания
110 Блок преобразования
120 Блок квантования
130, 230 Блок обратного преобразования
140, 240 Блок суммирования
150, 250 Фильтр удаления блочности
160, 260 Адаптивный контурный фильтр
170, 270 Память кадров
180, 280 Блоков предсказания
190 Энтропийный кодер
200 Декодер
290 Энтропийный декодер
300, 400, 710 Изображение
31, 32, 3i, 41, 42 строка элементов LCU
311, 312, 3i1, 321 элемент LCU
500 Заголовок пакета
510 Заголовок IP
520, 550 Поле расширения
530 Заголовок UDP
540 Заголовок RTP
560 Заголовок полезной нагрузки
570 Заголовок NAL
s1 Входной сигнал
s2 Сигнал предсказания
e, e' Сигнал ошибки предсказания
s', s'', s3 Воссозданный сигнал.