Межуровневое предсказание для масштабируемого кодирования и декодирования видеоинформации
Interlevel prediction for scalable encoding and decoding of video information

Область техники
[0001] Настоящее изобретение относится к устройству, способу и компьютерной программе для кодирования и декодирования видеоинформации.
Предпосылки создания изобретения
[0002] Настоящий раздел имеет целью представить контекст настоящего изобретения, заявленного в пунктах формулы изобретения. Описание в настоящем документе может включать идеи, не обязательно уже предложенные или получившие развитие. Соответственно, в настоящем документе, если не указано на обратное, описание в данном разделе не является существующим уровнем техники для формулы изобретения настоящей заявки, и не признается существующим уровнем техники по причине включения в данный раздел.
[0003] Масштабируемым видеокодированием называется такая структура кодирования, в которой один битовый поток может содержать несколько репрезентаций (представлений) контента с различным битрейтом, разрешением или частотой кадров. В этих случаях приемник может извлекать требуемую репрезентацию в зависимости от своих характеристик. Альтернативно, сервер или сетевой элемент может извлекать части битового потока для передачи в приемник в зависимости, например, от характеристик сети или вычислительных возможностей приемника. Масштабируемый битовый поток состоит, как правило, из базового уровня кодирования, обеспечивающего наименьшее из доступных качество видеоинформации, а также из одного или более уточняющих уровней кодирования, которые повышают качество видеоинформации при их приеме и декодировании вместе с нижними уровнями. С целью повышения эффективности кодирования уточняющих уровней их кодированные представления, как правило, кодируют в зависимости от нижних уровней.
[0004] Для поддержки переключения, на стороне клиента, между различным качеством и различными разрешениями в ходе сеанса потоковой передачи могут применяться кодированные точки произвольного доступа на границах сегментов. На существующем уровне техники в качестве границ сегментов при динамической адаптивной потоковой передаче видео (или потоковой передаче) видео по протоколу HTTP (dynamic adaptive streaming over HTTP, DASH) используют только изображения точки произвольного доступа (random access point, RAP), такие как изображения мгновенного обновления декодирования (instantaneous decoding refresh, IDR), которыми начинается структура предсказания на основе так называемой закрытой группы изображений (closed group of pictures, GOP). Применение изображений с внутренним предсказанием, в качестве начальных изображений открытых групп GOP, например, изображений чистого произвольного доступа (clean random access, CRA) в стандарте H.265/HEVC, является шагом вперед по сравнению с предшествующими стандартами, поскольку процедура декодирования, начиная с CRA-изображения, определена нормативно. Когда декодирование начинается с CRA-изображения, некоторые изображения, ссылающиеся на пропускаемые опережающие изображения произвольного доступа (random access skipped leading, RASL), которые следуют за этим CRA-изображением в порядке декодирования, однако предшествуют упомянутому CRA-изображению в порядке вывода, могут быть недекодируемы. Следовательно, если в технологии DASH на границах сегментов применяют открытые группы GOP, переключение репрезентаций может приводить к невозможности декодирования RASL-изображений, и соответственно, к сбоям частоты кадров при воспроизведении. Например, если применяется иерархия предсказания из 8 изображений, и частота смены кадров составляет 25 Гц, видео может «замереть» примерно на треть секунды.
Сущность изобретения
[0005] Далее в настоящем документе будут рассмотрены способы кодирования и декодирования пропускаемых изображений, имеющие целью по меньшей мере частично решить описанные выше проблемы.
[0006] В соответствии с первым вариантом осуществления настоящего изобретения способ включает:
декодирование первой части первой кодированной видеорепрезентации;
прием и синтаксический анализ информации о декодировании второй кодированной видеорепрезентации;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина элемента изображения, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли вторая кодированная видеорепрезентация быть декодирована с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания;
при условии, что упомянутая информация указывает, может ли вторая кодированная видеорепрезентация быть декодирована с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений в качестве опорных для предсказания, способ дополнительно включает:
обработку одного или более декодированных изображений из первой части с преобразованием их в одно или более обработанных декодированных изображений, при этом обработка включает передискретизацию и/или масштабирование значений отсчетов; и
декодирование второй части второй кодированной видеорепрезентации с использованием упомянутых одного или более обработанных декодированных изображений в качестве опорных изображений, которые могут использоваться для предсказания.
[0007] В соответствии со вторым вариантом осуществления настоящего изобретения устройство включает:
по меньшей мере один процессор и по меньшей мере одну память, при этом в упомянутой по меньшей мере одной памяти хранят код, который при исполнении упомянутым по меньшей мере одним процессором обеспечивает выполнение устройством по меньшей мере следующего:
декодирование первой части первой кодированной видеорепрезентации;
прием и синтаксический анализ информации о декодировании второй кодированной видеорепрезентации;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина элемента изображения, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли вторая кодированная видеорепрезентация быть декодирована с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания;
при условии, что упомянутая информация указывает на то, что вторая кодированная видеорепрезентация может быть декодирована с использованием, в качестве опорных для предсказания, обработанных декодированных изображений из первой кодированной видеорепрезентации, упомянутый код, который может исполняться при помощи упомянутого по меньшей мере одного процессора, обеспечивает также выполнение упомянутым устройством по меньшей мере следующего:
обработка одного или более декодированных изображений из первой части с преобразованием их в одно или более обработанных декодированных изображений, при этом обработка включает передискретизацию и/или масштабирование значений отсчетов; и
декодирование второй части второй кодированной видеорепрезентации с использованием упомянутых одного или более обработанных декодированных изображений в качестве опорных изображений, которые могут использоваться для предсказания.
[0008] В соответствии с третьим вариантом осуществления настоящего изобретения предложен машиночитаемый носитель для хранения данных, на котором хранят код для использования устройством, который при исполнении процессором обеспечивает выполнение этим устройством следующего:
декодирование первой части первой кодированной видеорепрезентации;
прием и синтаксический анализ информации о декодировании второй кодированной видеорепрезентации;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина элемента изображения, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли вторая кодированная видеорепрезентация быть декодирована с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания;
при условии, что упомянутая информация указывает на то, что вторая кодированная видеорепрезентация может быть декодирована с использованием, в качестве опорных для предсказания, обработанных декодированных изображений из первой кодированной видеорепрезентации, упомянутый код, который может исполняться при помощи упомянутого по меньшей мере одного процессора, обеспечивает также выполнение упомянутым устройством по меньшей мере следующего:
обработка одного или более декодированных изображений из первой части с преобразованием их в одно или более обработанных декодированных изображений, при этом обработка включает передискретизацию и/или масштабирование значений отсчетов; и
декодирование второй части второй кодированной видеорепрезентации с использованием упомянутых одного или более обработанных декодированных изображений в качестве опорных изображений, которые могут использоваться для предсказания.
[0009] В соответствии с четвертым вариантом осуществления настоящего изобретения предложено устройство, включающее видеодекодер, сконфигурированный для декодирования битового потока, включающего последовательность изображений, при этом видеодекодер включает
средства декодирования первой части первой кодированной видеорепрезентации;
средства приема и синтаксического анализа информации о декодировании второй кодированной видеорепрезентации;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина отсчета, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли быть декодирована упомянутое второе кодированное представление видеоинформации с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания; и при этом устройство дополнительно включает:
средства обработки одного или более декодированных изображений из первой части с преобразованием их в одно или более обработанных декодированных изображений, при условии, что упомянутая информация указывает на то, что упомянутое второе кодированное представление видеоинформации может быть декодировано с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных для предсказания, при этом обработка включает передискретизацию и/или масштабирование значений отсчетов; и
средства декодирования второй части второй кодированной видеорепрезентации с использованием упомянутых одного или более обработанных декодированных изображений в качестве опорных изображений, которые могут использоваться для предсказания.
[0010] В соответствии с пятым вариантом осуществления настоящего изобретения предложен видеодекодер, сконфигурированный для декодирования битового потока, включающего последовательность изображений, при этом упомянутый видеодекодер сконфигурирован также для следующего:
декодирование первой части первой кодированной видеорепрезентации;
прием и синтаксический анализ информации о декодировании второй кодированной видеорепрезентации;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина элемента изображения, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли вторая кодированная видеорепрезентация быть декодирована с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания;
при условии, что упомянутая информация указывает, может ли вторая кодированная видеорепрезентация быть декодирована с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений в качестве опорных для предсказания, способ дополнительно включает:
обработку одного или более декодированных изображений из первой части с преобразованием их в одно или более обработанных декодированных изображений, при этом обработка включает передискретизацию и/или масштабирование значений отсчетов; и
декодирование второй части второй кодированной видеорепрезентации с использованием упомянутых одного или более обработанных декодированных изображений в качестве опорных изображений, которые могут использоваться для предсказания.
[0011] В соответствии со шестым вариантом осуществления настоящего изобретения способ включает
получение при помощи синтаксического анализа, из описания медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
получение при помощи синтаксического анализа, из описания медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0012] В соответствии с седьмым вариантом осуществления настоящего изобретения устройство включает:
по меньшей мере один процессор и по меньшей мере одну память, при этом в упомянутой по меньшей мере одной памяти хранят код, который при исполнении упомянутым по меньшей мере одним процессором обеспечивает выполнение устройством по меньшей мере следующего:
получение при помощи синтаксического анализа, из описания медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
получение при помощи синтаксического анализа, из описания медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0013] В соответствии с восьмым вариантом осуществления настоящего изобретения предложен машиночитаемый носитель для хранения данных, на котором хранят код для использования устройством, который при исполнении процессором обеспечивает выполнение этим устройством следующего:
получение при помощи синтаксического анализа, из описания медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
получение при помощи синтаксического анализа, из описания медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0014] В соответствии с девятым вариантом осуществления настоящего изобретения предложено устройство, включающее видеокодер, сконфигурированный для кодирования битового потока, включающего последовательность изображений, при этом видеокодер включает
средства [получения при помощи] синтаксического анализа, из описания медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
средства [получения при помощи] синтаксического анализа, из описания медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0015] В соответствии с десятым вариантом осуществления настоящего изобретения предложен видеокодер, сконфигурированный для кодирования битового потока, включающего последовательность изображений, при этом упомянутый видеокодер дополнительно сконфигурирован для следующего:
получение при помощи синтаксического анализа, из описания медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
получение при помощи синтаксического анализа, из описания медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0016] В соответствии с одиннадцатым вариантом осуществления настоящего изобретения способ включает
предоставление, в описании медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
предоставление, в описании медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0017] В соответствии с двенадцатым вариантом осуществления настоящего изобретения устройство включает:
по меньшей мере один процессор и по меньшей мере одну память, при этом в упомянутой по меньшей мере одной памяти хранят код, который при исполнении упомянутым по меньшей мере одним процессором обеспечивает выполнение устройством по меньшей мере следующего:
предоставление, в описании медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
предоставление, в описании медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0018] В соответствии с тринадцатым вариантом осуществления настоящего изобретения предложен машиночитаемый носитель для хранения данных, на котором хранят код для использования устройством, который при исполнении процессором обеспечивает выполнение этим устройством следующего:
предоставление, в описании медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
предоставление, в описании медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0019] В соответствии с четырнадцатым вариантом осуществления настоящего изобретения предложено устройство, включающее видеокодер, сконфигурированный для кодирования битового потока, включающего последовательность изображений, при этом видеокодер включает
средства предоставления, в описании медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
средства предоставления, в описании медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0020] В соответствии с пятнадцатым вариантом осуществления настоящего изобретения предложен видеокодер, сконфигурированный для кодирования битового потока, включающего последовательность изображений, при этом упомянутый видеокодер дополнительно сконфигурирован для следующего:
предоставление, в описании медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
предоставление, в описании медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0021] В соответствии с шестнадцатым вариантом осуществления настоящего изобретения способ включает
прием битового потока, включающего блоки данных изображений, в качестве первой репрезентации;
принятие решение о прекращении передачи первой репрезентации в первой точке переключения;
передачу блоков данных изображений в первой репрезентации вплоть до первой точки переключения, при этом упомянутые блоки данных изображений включают по меньшей мере один блок данных, который подходит для применения в качестве опорного для предсказания при декодировании второй части второй видеорепрезентации после упомянутой первой точки переключения.
[0022] В соответствии с семнадцатым вариантом осуществления настоящего изобретения предложено устройство, включающее:
по меньшей мере один процессор и по меньшей мере одну память, при этом в упомянутой по меньшей мере одной памяти хранят код, который при исполнении упомянутым по меньшей мере одним процессором обеспечивает выполнение устройством по меньшей мере следующего:
прием битового потока, включающего блоки данных изображений, в качестве первой репрезентации;
принятие решения о прекращении передачи первой репрезентации в первой точке переключения;
передачу блоков данных изображений в первой репрезентации вплоть до первой точки переключения, при этом упомянутые блоки данных изображений включают по меньшей мере один блок данных, который подходит для применения в качестве опорного для предсказания при декодировании второй части второй видеорепрезентации после упомянутой первой точки переключения.
[0023] В соответствии с восемнадцатым вариантом осуществления настоящего изобретения предложен машиночитаемый носитель для хранения данных, на котором хранят код для использования устройством, который при исполнении процессором обеспечивает выполнение этим устройством следующего:
прием битового потока, включающего блоки данных изображений, в качестве первой репрезентации;
принятие решения о прекращении передачи первой репрезентации в первой точке переключения;
передачу блоков данных изображений в первой репрезентации вплоть до первой точки переключения, при этом упомянутые блоки данных изображений включают по меньшей мере один блок данных, который подходит для применения в качестве опорного для предсказания при декодировании второй части второй видеорепрезентации после упомянутой первой точки переключения.
Краткое описание чертежей
[0024] Для более детального понимания настоящего изобретения оно будет описано далее с помощью примеров на приложенных чертежах, где:
[0025] На фиг. 1 эскизно проиллюстрировано электронное устройство, в котором применяются варианты осуществления настоящего изобретения;
[0026] на фиг. 2 эскизно проиллюстрировано абонентское оборудование, подходящее для применения в вариантах осуществления настоящего изобретения;
[0027] на фиг. 3 также эскизно проиллюстрированы электронные устройства, в которых применяются варианты осуществления настоящего изобретения и которые соединены при помощи проводных и беспроводных сетевых соединений;
[0028] на фиг. 4 эскизно проиллюстрирован кодер, подходящий для реализации некоторых из вариантов осуществления настоящего изобретения;
[0029] на фиг. 5 показан пример изображения, состоящего из двух тайлов (ячеек);
[0030] на фиг. 6 проиллюстрированы некоторые элементы представлений передаваемых при помощи динамической адаптивной потоковой передачи видео по протоколу HTTP;
[0031] на фиг. 7 показан один из примеров того, каким образом SP-изображения могут использоваться для переключения между двумя различными битовыми потоками;
[0032] Фиг. 8а иллюстрирует один из примеров двух битовых потоков, имеющих опережающие изображения;
[0033] фиг. 8b иллюстрирует один из примеров ситуации, в которых декодирование опережающих изображений не выполняют во время переключения с одного битового потока на другой поток;
[0034] на фиг. 8с проиллюстрирован один из примеров ситуации, в которой I- изображение из двух потоков принимают и декодируют с целью переключения с одного битового потока на другой битовый поток;
[0035] фиг. 8d иллюстрирует один из примеров ситуации, в которых декодирование опережающих изображений во втором битовом потоке не выполняют во время переключения с одного битового потока на второй поток;
[0036] на фиг. 8е проиллюстрирован один из примеров операции декодирования во время переключения с одного битового потока на другой битовый поток, в соответствии с одним из вариантов осуществления настоящего изобретения;
[0037] на фиг. 9а проиллюстрирован один из примеров кодирования и подготовки сегментов в случае применения избыточного адаптивного изменения разрешения, в соответствии с одним из вариантов осуществления настоящего изобретения;
[0038] на фиг. 9b проиллюстрировано функционирование способа избыточного адаптивного изменения разрешения в ходе переключения с повышением качества, в соответствии с одним из вариантов осуществления настоящего изобретения;
[0039] на фиг. 9с проиллюстрирован один из примеров кодирования и подготовки сегментов для способа неявной передискретизации опорных изображений, в соответствии с одним из вариантов осуществления настоящего изобретения;
[0040] на фиг. 9d проиллюстрировано функционирование способа неявной передискретизации опорных изображений в ходе переключения с повышением качества, в соответствии с одним из вариантов осуществления настоящего изобретения;
[0041] на фиг. 10 показана блок-схема алгоритма для способа кодирования в соответствии с одним из вариантов осуществления настоящего изобретения;
[0042] на фиг. 11 показана блок-схема алгоритма для способа декодирования в соответствии с одним из вариантов осуществления настоящего изобретения;
[0043] на фиг. 12 показана эскизная блок-схема декодера, подходящего для реализации некоторых из вариантов осуществления настоящего изобретения;
[0044] на фиг. 13 показана эскизная блок-схема типовой мультимедийной системы связи, в которой могут быть реализованы различные варианты осуществления настоящего изобретения.
Подробное описание некоторых из примеров осуществления изобретения
[0045] Ниже будут более подробным описаны соответствующее устройство и механизмы, подходящие для переключения между различными представлениями видеоинформации, например, при адаптивной потоковой передаче видео по протоколу HTTP. С этой целью обратимся сначала к фиг. 1 и 2. На фиг. 1 показана блок-схема системы видеокодирования в соответствии с одним из вариантов осуществления настоящего изобретения, в виде блок-схемы примера аппаратуры или электронного устройства 50, которое может включать в своей состав кодек, соответствующий одному из вариантов осуществления настоящего изобретения. На фиг. 2 показана схема устройства в соответствии с одним из примеров осуществления настоящего изобретения. Далее будут описаны элементы фиг. 1 и 2.
[0046] Электронное устройство 50 может, например, быть мобильным терминалом или абонентским оборудованием системы беспроводной связи. Однако нужно понимать, что варианты осуществления настоящего изобретения могут быть реализованы в любом электронном устройстве или аппаратуре, где требуется кодирование и декодирование, или только кодирование, или же только декодирование видеоизображений.
[0047] Устройство 50 может иметь в своем составе корпус 30 для размещения и защиты устройства. Устройство 50 может также включать дисплей 32 в форме дисплея на жидких кристаллах. В других вариантах осуществления настоящего изобретения упомянутый дисплей может быть выполнен по любой технологии, подходящей для отображения изображений или видеоинформации. Устройство 50 может также включать клавиатуру 34. В других вариантах осуществления настоящего изобретения может применяться любой подходящий интерфейс обмена данными или пользовательский интерфейс. К примеру, пользовательский интерфейс может быть реализован в виде виртуальной клавиатуры или системы ввода данных, являющейся частью сенсорного дисплея.
[0048] Устройство может включать микрофон 36 или любое другое подходящее устройство ввода аудиоинформации, которое может быть устройством ввода цифрового или аналогового сигнала. Устройство 50 может также включать устройство вывода аудиоинформации, которое в вариантах осуществления настоящего изобретения может представлять собой любое из следующего: головной телефон 38, громкоговоритель или же аналоговое или цифровое соединение для вывода аудиоинформации. Устройство 50 может также включать аккумулятор 40 (или в других вариантах осуществления настоящего изобретения устройство может снабжаться электроэнергией от любого подходящего мобильного энергетического устройства, например, солнечной батареи, топливной батареи или заводного генератора). Устройство может дополнительно включать камеру 42, способную записывать, или захватывать, изображения и/или видеоинформацию. Устройство может также включать инфракрасный порт 50 для связи с другими устройствами в ближней зоне прямой видимости. В других вариантах осуществления настоящего изобретения устройство 50 может включать любые подходящие решения связи малой дальности, например, беспроводное соединение Bluetooth или проводное соединение USB/Firewire.
[0049] Устройство 50 может включать контроллер 56 или процессор для управления устройством 50. Контроллер 56 может быть соединен с памятью 58, которая в различных вариантах осуществления настоящего изобретения может хранить данные, одновременно в форме видеоинформации и аудиоинформации, и/или может также хранить инструкции для исполнения в контроллере 56. Контроллер 56 может быть также соединен со схемами 54 кодека, способными осуществлять кодирование и декодирование аудио- и/или видеоданных или являться вспомогательным средством при кодировании и декодировании, выполняемом контроллером.
[0050] Устройство 50 может также включать устройство 48 чтения карт и смарт-карту 46, например, карту UICC и устройство чтения UICC-карт для предоставления информации об абоненте, и для обеспечения возможности предоставления аутентификационной информации с целью аутентификации и авторизации абонента в сети.
[0051] Устройство 50 может включать схемы 52 радиоинтерфейса, связанные с контроллером, которые могут использоваться для формирования сигналов беспроводной связи, например, для связи с сетью сотовой связи, системой беспроводной связи или беспроводной локальной вычислительной сетью. Устройство 50 может также включать антенну 44, связанную со схемами 52 радиоинтерфейса, для передачи радиочастотных сигналов, формируемых в схемах 52 радиоинтерфейса, в другое устройство (или устройства), а также для приема радиочастотных сигналов от другого устройства (или устройств).
[0052] Устройство 50 может включать камеру, способную записывать или регистрировать отдельные кадры, которые затем передают в кодек 54 или контроллер для обработки. Устройство может принимать от другого устройства данные видеоизображений для обработки перед их передачей и/или хранением. Устройство 50 может также принимать изображение для кодирования/декодирования либо беспроводным способом, либо по проводному соединению.
[0053] С помощью фиг. 3 проиллюстрирован один из примеров системы, в которой могут использоваться различные варианты осуществления настоящего изобретения. Система 10 включает несколько устройств связи, способных осуществлять связь при помощи одной или нескольких сетей. В состав системы 10 может входить любая комбинация проводных и беспроводных сетей, включая, без ограничения перечисленным, беспроводную сотовую телефонную сеть (например, сеть GSM, UMTS, CDMA и т.п.), беспроводную локальную вычислительную сеть (wireless local area network, WLAN), например, в соответствии с определением в любом из стандартов IEEE 802.x, персональную сеть Bluetooth, локальную вычислительную сеть Ethernet, локальную вычислительную сеть типа «маркерное кольцо» глобальную сеть и Интернет.
[0054] Система 10 может включать как проводные, так и беспроводные устройства связи, и/или устройство 50, подходящее для реализации вариантов осуществления настоящего изобретения.
[0055] В качестве примера на фиг. 3 показана мобильная телефонная сеть 11 и изображение сети Интернет 28. Соединение с Интернетом 28 может включать, без ограничения перечисленным, беспроводные соединения с большим радиусом действия, беспроводные соединения с малым радиусом действия, а также различные проводные соединения, включая, без ограничения перечисленным, телефонные линии, кабельные линии, линии электропередач и аналогичные каналы связи.
[0056] Примерами устройств связи в системе 10 могут служить, без ограничения перечисленным, электронная аппаратура или устройство 50, комбинация карманного персонального компьютера (personal digital assistant, PDA) и мобильного телефона 14, PDA 16, интегрированное устройство 18 обмена сообщениями (integrated messaging device, IMD), настольный компьютер 20, ноутбук 22. Устройство 50 может также размещаться на транспортном средстве, включая, без ограничения перечисленным, автомобиль, грузовик, такси, автобус, поезд, судно, самолет, велосипед, мотоцикл или любое аналогичное подходящее транспортное средство.
[0057] Варианты осуществления настоящего изобретения могут также быть реализованы в абонентской телеприставке, т.е. в приемнике цифрового телевидения, который, опционально, может обладать функциональностью отображения видеоинформации и беспроводной связи, в планшетных или (портативных) персональных компьютерах (ПК), которые включают аппаратную или программную (или комбинированную) реализацию кодера и/или декодера, в различных операционных системах, в чипсетах (микросхемных наборах), процессорах, DSP-процессорах и/или во встраиваемых системах, обеспечивающих аппаратное и/или программное кодирование.
[0058] Некоторые из подобных или других устройств могут как посылать, так и принимать вызовы и сообщения, а также осуществлять связь с операторами связи при помощи беспроводного соединения 25 с базовой станцией 24. Базовая станция 24 может быть соединена с сетевым сервером 26, обеспечивающим связь между средствами 11 связи и Интернетом 28. Система может включать дополнительные устройства связи, а также устройства связи других типов.
[0059] Устройства связи могут осуществлять связь с использованием различных технологий передачи данных, включая, без ограничения перечисленным, множественный доступ с кодовым разделением (Code Division Multiple Access, CDMA), глобальную систему мобильной связи (Global System for Mobile Communications, GSM), универсальную систему мобильной связи (Universal Mobile Telecommunication System, UMTS), множественный доступ с разделением по времени (Time Division Multiple Access, TDMA), множественный доступ с разделением по частоте (Frequency Division Multiple Access, FDMA), протокол управления передачей/протокол Интернета (Transmission Control Protocol/Internet Protocol, TCP-IP), службу коротких сообщений (Short Messaging Service, SMS), службу мультимедийных сообщений (Multimedia Messaging Service, MMS), электронную почту, сервис мгновенной передачи сообщений (Instant Messaging Service, IMS), Bluetooth, IEEE 802.11, и любые аналогичные технологии беспроводной связи. Устройство связи, используемое при реализации различных вариантов осуществления настоящего изобретения, может осуществлять связь с использованием различных сред передачи данных, включая, без ограничения, радиосоединения, инфракрасные, лазерные, кабельные соединения или любые другие подходящие соединения.
[0060] Видеокодек состоит из кодера, при помощи которого входные видеоданные преобразуют в сжатое представление, подходящее для хранения и передачи, а также декодера, при помощи которого сжатое представление видеоданных распаковывают, возвращая их к форме, пригодной для просмотра пользователем. Видеокодер и/или видеодекодер могут быть также независимыми друг от друга, т.е. не обязательно образовывать кодек. Как правило, в кодере часть информации исходной видеопоследовательности отбрасывается с целью представления видеоинформации в более компактной форме (т.е. с меньшим битрейтом).
[0061] Типовые гибридные видеокодеры, например, многие из реализаций кодеров, соответствующие стандартам ITU-T Н.263 и Н.264, кодируют видеоинформацию в два этапа. Сначала предсказывают значения пикселей в определенной области изображения (или «блоке пикселей»), например, с использованием механизмов компенсации движения (нахождение области в одном из предварительно кодированных видеокадров, которая близко соответствует кодируемому в текущий момент блоку пикселей, и указание на эту область) или с использованием средств пространственного предсказания (использование, заданным образом, значений пикселей вокруг кодируемого блока пикселей). Затем кодируют ошибку предсказания, т.е. разность между предсказанным блоком пикселей и исходным блоком пикселей. Как правило, это выполняется при помощи преобразования разности пиксельных значений с использованием заданного преобразования (например, дискретного косинусного преобразования (Discrete Cosine Transform, DCT), или его варианта), квантования его коэффициентов и энтропийного кодирования квантованных коэффициентов. Регулируя степень детализации в процедуре квантования, кодер может управлять балансом между точностью представления пикселей (качеством изображения) и размером результирующей кодированной видеорепрезентации (размером файла или битрейтом).
[0062] Внешнее предсказание, которое может также называться временным предсказанием, компенсацией движения или предсказанием с компенсацией движения, позволяет понизить временную избыточность. Источником информации для внешнего предсказания являются ранее декодированные изображения. Для внешнего предсказания используют тот факт, что смежные пиксели в одном изображении с большой вероятностью являются коррелированными. Внутреннее предсказание может выполняться в пространственном или во временном домене, т.е. могут предсказываться либо значения элементов изображения, либо коэффициенты преобразования. Внутреннее предсказание обычно применяют при внутреннем кодировании, когда внешнее предсказание не применяется.
[0063] Одним из результатов процедуры кодирования является набор параметров кодирования, таких как векторы движения и коэффициенты преобразования. Энтропийное кодирование множества параметров может быть более эффективным, если сначала выполняется их предсказание на основе пространственно-смежных или соседних по времени параметров Например, вектор движения может предсказываться на основе пространственно смежных векторов движения, при этом кодироваться может только разность относительно предсказания вектора движения. Предсказание параметров кодирования и внутреннее предсказание совместно могут называться внутрикадровым предсказанием.
[0064] На фиг. 4 проиллюстрирована блок-схема видеодекодера, подходящего для применения вариантов осуществления настоящего изобретения. На фиг. 4 проиллюстрирован кодер для двух уровней, однако нужно понимать, что проиллюстрированный кодер может быть расширен и выполнять кодирование более чем двух уровней. На фиг. 4 проиллюстрирован один вариантов осуществления видеокодера, включающий первый сегмент 500 кодера для базового уровня (кодирования) и второй сегмент 502 кодера для уточняющего уровня. Каждый из сегментов, первый сегмент 500 кодера и второй сегмент 502 кодера, могут включать аналогичные элементы для кодирования поступающих изображений. Сегменты 500, 502 кодера могут включать устройство 302, 402 предсказания пикселей, кодер 303, 403 ошибки предсказания и декодер 304, 404 ошибки предсказания. Также, на фиг. 4 показан один из вариантов осуществления устройства 302, 402 предсказания пикселей, включающего устройство 306, 406 внешнего предсказания, устройство 308, 408 внутреннего предсказания, селектор 310, 410 режима, фильтр 316, 416 и память 318, 418 опорных кадров. Устройство 302 предсказания пикселей в первом сегменте 500 кодера принимает изображения 300 базового уровня кодируемого видеопотока одновременно в устройстве 306 внешнего предсказания (которое определяет разницу между этим изображением и опорным кадром 318 компенсации движения) и в устройстве 308 внутреннего предсказания (которое определяет предсказание для блока пикселей изображения, исходя только из уже обработанных частей текущего кадра или изображения). Выходные данные из устройства внешнего предсказания и из устройства внутреннего предсказания передают в селектор 310 режима. Устройство 308 внутреннего предсказания может иметь более одного режима внутреннего предсказания. Следовательно, в каждом из режимов может выполняться внутреннее предсказание, и предсказанный сигнал может быть предоставлен в селектор 310 режима. В селектор 310 режима передается также копия изображения 300 базового уровня. Соответственно, устройство 402 предсказания пикселей во втором сегменте 502 кодера принимает изображения 400 уточняющего уровня кодируемого видеопотока одновременно в устройстве 406 внешнего предсказания (которое определяет разницу между этим изображением и опорным кадром 418 компенсации движения) и в устройстве 408 внутреннего предсказания (которое определяет предсказание для блока пикселей изображения, исходя только из уже обработанных частей текущего кадра или изображения). Выходные данные из устройства внешнего предсказания и из устройства внутреннего предсказания передают в селектор 410 режима. Устройство 408 внутреннего предсказания может иметь более одного режима внутреннего предсказания. Следовательно, в каждом из режимов может выполняться внутреннее предсказание, и предсказанный сигнал может быть предоставлен в селектор 410 режима. В селектор 410 режима передается также копия изображения 400 уточняющего уровня.
[0065] В зависимости от режима кодирования, выбранного для кодирования текущего блока пикселей, на выход селектора 310, 410 режима передают выходные данные устройства 306, 406 внешнего предсказания, выходные данные одного из опциональных режимов внутреннего предсказания или выходные данные поверхностного кодера из состава селектора режима. Выходные данные селектора режима передают в первое суммирующее устройство 321, 421. Первое суммирующее устройство может вычитать выходные данные устройства 302, 402 предсказания пикселей из изображения 300 базового уровня, или изображения 400 уточняющего уровня, соответственно, с формированием первого сигнала 320, 420 ошибки предсказания, который подают на вход кодера 303, 403 ошибки предсказания.
[0066] Также, устройство 302, 402 предсказания пикселей принимает от устройства 339, 439 предварительного восстановления комбинацию предсказанного представления блока 312, 418 изображения и выходные данные 338, 438 кодера 304, 404 ошибки предсказания. Предварительно восстановленное изображение 314, 414 может быть передано в устройство 308, 408 внутреннего предсказания и фильтр 316, 416. В фильтре 316, 416 где принимается это предварительное представление, может выполняться его фильтрация и вывод окончательного восстановленного изображения 340, 440, которое может быть сохранено в память 318, 418 опорных кадров. Память 318 опорных кадров может иметь соединение с устройством 306 внешнего предсказания и использоваться в качестве опорного изображения, с которым сравнивают будущее изображение 300 базового уровня при выполнении операций внешнего предсказания. При условии, что базовый уровень выбран в качестве источника для межуровневого предсказания сэмплов и/или для межуровневого предсказания информации о движении уточняющего уровня, и если на это также выполнено соответствующее указание, в соответствии с некоторыми из вариантов осуществления настоящего изобретения, память 318 опорных кадров может иметь соединение с устройством 406 внешнего предсказания и может использоваться в качестве опорного изображения, с которым сравнивают будущее изображение 400 уточняющего уровня при выполнении операций внешнего предсказания. При этом память 418 опорных кадров может иметь соединение с устройством 406 внешнего предсказания и использоваться в качестве опорного изображения, с которым сравнивают будущее изображение 400 уточняющего уровня при выполнении операций внешнего предсказания.
[0067] При условии, что базовый уровень выбран в качестве источника для предсказания параметров фильтрации уточняющего уровня, и на это выполнено соответствующее указание, в соответствии с некоторыми из вариантов осуществления настоящего изобретения, параметры фильтрации из фильтра 316 первого сегмента 500 кодера могут передаваться во второй сегмент 502 кодера.
[0068] Кодер 303, 403 ошибки предсказания включает блок 342, 442 преобразования и квантователь 344, 444. Блок 342 преобразования преобразует первый сигнал 320, 420 ошибки предсказания в домен преобразования. Таким преобразованием является, к примеру, преобразование DCT. Квантователь 344, 444 квантует сигнал, например, коэффициенты DCT, в домене преобразования и формирует квантованные коэффициенты.
[0069] Декодер 304, 404 ошибки предсказания принимает выходные данные из кодера 303, 403 ошибки предсказания и выполняет процедуры, обратные процедурам кодера 303, 403 ошибки предсказания, в результате чего получают декодированный сигнал 338, 438 ошибки предсказания, который при комбинировании с предсказанным представлением блока 312, 412 изображения во втором суммирующем устройстве 339, 439 дает предварительное восстановленное изображение 314, 414. Декодер ошибки предсказания можно рассматривать как имеющий в своем составе деквантователь 361, 461 который деквантует квантованные значения коэффициентов, например, коэффициентов DCT, и восстанавливает преобразованный сигнал, а также как включающий блок 363, 463 обратного преобразования, который выполняет обратное преобразование над восстановленным сигналом преобразования, при этом выходные данные блока 363, 463 обратного преобразования содержат восстановленный блок (или блоки). Декодер ошибки предсказания может также включать фильтр блоков, который может выполнять фильтрацию восстановленного блока (или блоков) в соответствии с дополнительной декодированной информацией и параметрами фильтрации.
[0070] Энтропийный кодер 330, 430 принимает выходные данные из кодера 303, 403 ошибки предсказания и может выполнять соответствующее кодирование переменной длины и/или энтропийное кодирование сигнала для обеспечения возможности обнаружения и исправления ошибок. Выходные данные энтропийных кодеров 330, 430 могут быть введены в битовый поток, например, при помощи мультиплексора 508.
[0071] Стандарт улучшенного видеокодирования (H.264/AVC или AVC) был разработан объединенной командой по видео (Joint Video Team, JVT) из состава группы экспертов по видеокодированию (Video Coding Experts Group (VCEG) сектора стандартизации телекоммуникаций Международного союза электросвязи (International Telecommunication Union, ITU-T) и группой экспертов по движущемуся изображению (Moving Picture Experts Group, MPEG) Международной организации по стандартизации (International Organization for Standardization, ISO) / Международной электротехнической комиссии (International Electrotechnical Commission, IEC). Стандарт H.264/AVC был опубликован обеими родительскими организациями по стандартизации и получил наименование Рекомендации Н.264 ITU-T и Международного стандарта ISO/IEC 14496-10, известного также как улучшенное видеокодирование (Advanced Video Coding, AVC), 10-ая часть MPEG-4. Были выпущены несколько версий стандарта H.264/AVC, в спецификацию каждой из которых добавлялись новые расширения или элементы. В число этих расширений вошли масштабируемое видеокодирование (Scalable Video Coding, SVC) и многоракурсное видекодирование (Multiview Video Coding, MVC).
[0072] Объединенной командой по видеокодированию (Joint Collaborative Team - Video Coding, JCT-VC) группы VCEG и MPEG была создана первая версия (version 1) стандарта высокоэффективного видеокодирования (High Efficiency Video Coding, HEVC), H.265. Стандарт будет опубликован обеими родительскими стандартизующими организациями и в текущий момент имеет наименование Рекомендации H.265 ITU-T и Международного стандарта ISO/IEC 23008-2, известного также как высокоэффективное видеокодирование (HEVC), 2-ая часть MPEG-H. Вторая версия (version 2) стандарта H.265/HEVC включала расширения масштабируемого, многоракурсного кодирования и расширение диапазонов точности, которые обозначались, соответственно, SHVC, MV-HEVC и REXT. Предварительная публикация второй версии стандарта H.265/HEVC состоялась в рекомендации Н.265 института ITU-T, и скорее всего, будет опубликована в 2015 года как вторая редакция стандарта ISO/IEC 23008-2. В настоящее время продолжаются работы по стандартизации, имеющие целью определить дополнительные расширения стандарта H.265/HEVC, включая расширения трехмерного кодирования и кодирования экранного контента, которые, соответственно, могут быть сокращенно 3D-HEVC и SCC соответственно.
[0073] Для расширений SHVC, MV-HEVC и 3D-HEVC используется общая базовая спецификация, описанная в приложении F второй версии стандарта HEVC. Эта общая база включает, например, синтаксис и семантику верхнего уровня, к примеру, определяющие часть характеристик уровней битового потока, такие как межуровневые зависимости, а также процедуры декодирования, такие как построение списка опорных изображений, включающего опорные изображения межуровневого предсказания, а также вычисление порядковых номеров изображений в случае многоуровневого потока. Приложение F может применяться и в последующих многоуровневых расширениях HEVC, которые могут появиться позднее. В приведенном ниже описании видеокодер, видеодекодер, способы кодирования, способы декодирования, структуры битового потока и/или варианты осуществления настоящего изобретения могут быть рассмотрены на примере конкретных расширений, таких как SHVC и/или MV-HEVC, однако нужно понимать, что они, в общем случае, применимы также для многоуровневых расширений HEVC, а также, в еще более общем случае, к любой многоуровневой схеме видеокодирования.
[0074] В настоящем разделе приведены ключевые определения, описана структура битового потока и кодирования, а также основные понятия стандартов H.264/AVC и HEVC, - в качестве примера видеокодера, видеодекодера, способа кодирования, способа декодирования и структуры битового потока, в которых могут быть реализованы варианты осуществления настоящего изобретения. Часть ключевых определений, структур битового потока и кодирования, а также основных понятий стандарта H.264/AVC совпадают с проектом стандарта HEVC, в этом случае они описаны ниже совместно. Аспекты настоящего изобретения не ограничены стандартами H.264/AVC или HEVC, напротив, данное описание приведено в качестве одного из примеров базы для частичной или полной реализации настоящего изобретения.
[0075] Аналогично многим предшествующим стандартам видеокодирования, в стандартах H.264/AVC и HEVC определены синтаксис и семантика битового потока, а также процесс декодирования безошибочных битовых потоков. Процедура кодирована стандартом не определена, однако кодеры должны формировать битовые потоки, соответствующие стандарту. Соответствие битового потока и декодера стандарту может быть проверено с помощью гипотетического опорного декодера (Hypothetical Reference Decoder, HRD). Стандарт включает в себя инструменты кодирования, помогающие справиться с ошибками и потерями при передаче, однако использование этих инструментов при кодировании не является обязательным, а процесс декодирования для битовых потоков с ошибками не определен.
[0076] В описании существующих стандартов, а также в описании примеров осуществления настоящего изобретения, синтаксическим элементом называется элемент данных, представленных в битовом потоке. Синтаксической структурой может быть назван ноль или более синтаксических элементов, совместно находящихся в битовом потоке в заданном порядке. В описании существующих стандартов, а также в описании примеров осуществления настоящего изобретения может применяться выражение «при помощи внешних средств» или «с использованием внешних средств». Например, «при помощи внешних средств» в процедуру декодирования может предоставляться некоторый элемент, такой как синтаксическая структура или значение переменной, используемые в процедуре декодирования. Выражение «при помощи внешних средств» может указывать на то, что подобный элемент не включен в битовый поток, формируемый кодером, но вместо этого передается вне битового потока, например, с использованием управляющего протокола. Альтернативно или дополнительно, это может означать, что такой элемент не формируется кодером, однако может быть создан, например, в проигрывателе или в логике управления декодированием, или аналогичном устройстве, которое использует декодер. Декодер может иметь интерфейс для ввода данных из внешних средств, например, для ввода значений переменных.
[0077] Профилем (стандарта) может быть названо подмножество всего синтаксиса битового потока, определенного стандартом или спецификацией декодирования/кодирования. В рамках ограничений, налагаемых синтаксисом конкретного профиля, может сохраняться очень большой разброс требований к производительности кодеров и декодеров, в зависимости от значений, принимаемых синтаксическими элементами в битовом потоке, например, заданного размера декодируемых изображений. Во многих применениях реализация декодера, способного обрабатывать все гипотетически возможные синтаксические конструкции определенного профиля, не представляется ни практичной, ни экономичной. Для решения данной проблемы могут применяться уровни стандарта. Уровнем стандарта может быть назван заданный набор ограничений, налагаемых на значения синтаксических элементов в битовом потоке и переменных, определенных в стандарте или спецификации декодирования/кодирования. Такие ограничениями могут быть простыми ограничениями, накладываемыми на значения. Альтернативно или в дополнение они могут принимать форму ограничений на арифметические комбинации значений (например, ширина изображения, умноженная на высоту изображения, умноженные на количество декодируемых в секунду изображений). Для уровней стандарта могут также использоваться другие средства определения ограничений. Некоторые из ограничений, заданных для уровня стандарта, могут, например, относиться к максимальному размеру изображения, максимальному битрейту и максимальной скорости передачи данных в блоках кодирования, например, макроблоках, за единицу времени, например, секунду. Для всех профилей могут быть определены одинаковые наборы уровней стандарта. Например, в целях повышения совместимости терминалов, в которых реализованы различные профили, может быть предпочтительным, чтобы большинство или все параметры, определяющие каждый из уровней, были общими для всех профилей. Ярус (стандарта) может определен как предписанная категория ограничений для уровня стандарта, накладываемых на значения синтаксических элементов в битовом потоке, при этом в один ярус вложены ограничения нескольких уровней стандарта, и декодер, соответствующий некоторому ярусу и уровню стандарта, должен быть способен декодировать все битовые потоки, соответствующие указанному ярусу и всем нижележащим ярусам для данного уровня стандарта и всех низлежащих уровней.
[0078] В некоторых случаях точка соответствия может быть определена как комбинация из конкретного профиля и конкретного уровня стандарта, или комбинация из конкретного уровня, конкретного яруса и конкретного уровня стандарта. Нужно понимать, что точка соответствия может быть определена альтернативным образом, но при этом назначение ее может оставаться неизменным - определить характеристики и ограничения битового потока и/или характеристики и (максимальные) ресурсы декодеров.
[0079] Элементарной единицей для ввода в декодер H.264/AVC или HEVC и вывода из декодера H.264/AVC или HEVC, соответственно, является изображение. Изображение, поданное в качестве входных данных в кодер, может называться исходным изображением, а изображение, декодированное декодером, может называться декодированным изображением.
[0080] Исходное и декодированное изображения, каждое, состоят из одного или более массивов отсчетов (элементов изображения), например, одного или более наборов массивов отсчетов:
[0081] Только составляющая яркости (Y) (монохромное изображение).
[0082] Составляющая яркости и две составляющие цветности (YCbCr или YCgCo).
[0083] Составляющие зеленого, синего и красного (GBR или RGB).
[0084] Массивы, представляющие другие неопределенные монохромные или трехкомпонентные цветовые отсчеты (например, YZX, которые также называют XYZ).
[0085] Далее в настоящем описании такие массивы называются компонентами яркости (или L, или Y) и компонентами цветности, при этом два массива цветности могут обозначаться за Cb и Cr; независимо от реально используемого метода представления информации о цвете. Реально используемый способ представления цветовой информации может, например, указываться в битовом потоке, например, с использованием синтаксиса информации об используемости видео (Video Usability Information, VUI) в стандарте H.264/AVC и/или HEVC. Составляющая может быть определена как массив отсчетов (элементов изображения) или одиночный элемент изображения из одного из трех массивов отчетов (одного яркости и двух цветности), или как массив отсчетов или одиночный элемент изображения из массива, составляющего изображение в монохромном формате.
[0086] В случае стандартов H.264/AVC и HEVC изображение может представлять собой кадр или поле. Кадр включает в себя матрицу отсчетов яркости, и возможно также, соответствующих отсчетов цветности. Поле представляет собой множество чередующихся строк отсчетов в кадре и может использоваться в качестве входных данных для кодера в случае, когда исходный сигнал является чересстрочным. Массивы отсчетов цветности могут отсутствовать (и следовательно, могут применяться монохромные значения) или массивы отсчетов цветности могут иметь пониженное разрешение по сравнению с массивами отсчетов яркости. Форматы представления цветности могут быть, в общем, описаны следующим образом:
[0087] При дискретизации в монохромном формате имеется только один массив отсчетов, который, по определению, считают массивом яркости.
[0088] При дискретизации с форматом 4:2:0 каждый из двух массивов цветности имеет половину высоты массива яркости и половину его ширины.
[0089] При дискретизации с форматом 4:2:2 каждый из двух массивов цветности имеет одинаковую высоту с массивом яркости, но половину ширины.
[0090] При дискретизации с форматом 4:4:4, если не используются отдельных цветовых плоскостей, каждый из двух массивов цветности ту же высоту и ширину, что и массив яркости.
[0091] В стандартах H.264/AVC и HEVC массивы отсчетов могут кодироваться в виде отдельных цветовых плоскостей в битовом потоке, и соответственно, может выполняться декодирование отдельно кодированных цветовых плоскостей из битового потока. Если применяются отдельные цветовые плоскости, каждую из них обрабатывают отдельно (в кодере и/или декодере) как изображение с монохромным представлением.
[0092] Если для составляющих цветности применяют пониженную частоту дискретизации (например, формат 4:2:0 или 4:2:2 представления цветовой информации), то местоположение отсчетов цветности относительно отсчетов яркости может определяться на стороне кодера (например, в качестве шага предварительной обработки или в качестве части процедуры кодирования). Положения отсчетов яркости относительно отсчетов цветности могут быть заранее заданы, например, в стандарте кодирования, в случае H.264/AVC или HEVC, или могут быть указаны в битовом потоке, например, как часть информации VUI в стандартах H.264/AVC или HEVC.
[0093] Разбиением называют такое разделение множества на подмножества, при котором каждый из элементов множества находится только в одном из подмножеств.
[0094] В стандарте H.264/AVC макроблок представляет собой блок отсчетов яркости размером 16×16 и соответствующие блоки отсчетов цветности. Например, при схеме дискретизации 4:2:0 макроблок будет содержать один блок отсчетов размером 8×8 для каждого компонента цветности. В стандарте H.264/AVC изображение разбивается на одну или более групп слайсов, при этом каждая группа слайсов содержит один или более слайсов. В стандарте H.264/AVC слайс состоит из целого числа макроблоков, упорядоченных в порядке сканирования растра в данной группе слайсов.
[0095] При описании операций кодирования и/или декодирования в стандарте HEVC могут использоваться термины, описанные ниже. Блок отсчетов для кодирования (coding block) может быть определен как блок отсчетов размером N×N, для некоторого значения N, такого, что разделение блока отсчетов с древообразной структурой кодирования на блоки отсчетов для кодирования является разбиением. Блок отсчетов с древообразной структурой кодирования (coding tree block, СТВ) может быть определен как блок отсчетов размером N×N, для некоторого значения N, такого, что разделение составляющей изображения на блоки отсчетов с древообразной структурой кодирования представляет собой разбиение. Блок с древообразной структурой кодирования (coding tree unit, CTU) может быть определен как блок отсчетов яркости с древообразной структурой кодирования, два соответствующих блока отсчетов цветности с древообразной структурой кодирования изображения, имеющего три массива отсчетов, или блок отсчетов с древообразной структурой кодирования монохромного изображений, или изображения, которое кодируют с использованием трех отдельных цветовых плоскостей и синтаксических структур, применяемых для кодирования отсчетов. Блок кодирования (coding unit, CU) может быть определен как блок отсчетов яркости, два соответствующих блока отсчетов цветности для кодирования изображения, имеющего три массива значений, или блок отсчетов для кодирования монохромного изображения, или изображения, которое кодируют с использованием трех отдельных цветовых плоскостей и синтаксических структур, применяемых для кодирования отсчетов.
[0096] В некоторых видеокодеках, например, соответствующих стандарту высокоэффективного видеокодирования (HEVC), видеоизображения разделяют на блоки кодирования (CU), покрывающие область изображения. Каждый из блоков кодирования состоит из одного или более блоков предсказания (prediction unit, PU), определяющих процедуру предсказания отсчетов в блоке кодирования, а также одного или более блоков преобразования (transform units, TU), определяющих процедуру кодирования ошибки предсказания для отсчетов в блоке кодирования. Как правило, блок кодирования состоит из квадратного массива отсчетов, размер которого выбирается из заранее заданного множества допустимых размеров блока кодирования. Блок кодирования максимально допустимого размера, как правило, называется LCU (largest coding unit, наибольший блок кодирования) или блоком с древовидной структурой кодирования (coding tree unit, (CTU), при этом изображение в видео разбивается на неперекрывающиеся блоки LCU. Блок LCU может быть разбит на комбинацию менее крупных блоков кодирования, например, при помощи рекурсивного разбиения LCU и результирующих блоков кодирования. Каждый из результирующих блоков кодирования, как правило, имеет связанными с ним по меньшей мере один блок предсказания и один блок преобразования. Каждый блок предсказания и блок преобразования могут быть разбиты на менее крупные блоки предсказания и блоки преобразования с целью повышения точности процедур предсказания и кодирования ошибки предсказания соответственно. Каждый блок предсказания имеет связанную с ним информацию предсказания, которая определяет, предсказание какого типа должно применяться к пикселям данного блока предсказания (например, информацию вектора движения в случае блока предсказания с внешним предсказанием, или информацию направления внутреннего предсказания в случае внутренне предсказываемого блока предсказания).
[0097] Аналогично, каждый блок преобразования может быть связан с информацией, описывающей процедуру декодирования ошибки предсказания для значений в данном блоке преобразования (включая, например, информацию о коэффициентах DCT-преобразования). Информация о необходимости применения кодирования ошибки предсказания для каждого блока кодирования, как правило, сигнализируется в синтаксических элементах, относящихся к блоку кодирования. Если остатка или ошибки предсказания, связанного с блоком кодирования нет, то можно считать, что для данного блока кодирования блоки преобразования отсутствуют. Информация о разделении изображения на блоки кодирования, и разделение блоков кодирования на блоки предсказания и блоки преобразования, сигнализируемая, как правило, в битовом потоке, и позволяет декодеру воспроизводить заданную структуру этих блоков.
[0098] В стандарте HEVC изображение может быть разбито на тайлы (ячейки), которые имеют прямоугольную форму и содержат целое число блоков LCU. В стандарте HEVC разбиение на тайлы дает регулярную сетку, в которой максимальная разность между высотой и шириной тайлов равна одному LCU. В стандарте HEVC слайс определен как целое количество блоков с древообразной структурой кодирования, содержащихся в одном независимом сегмента слайса и во всех последующих зависимых сегментах слайса (если они присутствуют), которые предшествуют следующему независимому сегменту слайса (если он существует) внутри одного блока доступа. В стандарте HEVC сегмент слайса определен как целое количество блоков с древообразной структурой кодирования, организованных в виде последовательности, в порядке сканирования таила, и содержащихся в одном блоке NAL. Разделение каждого из изображений на сегменты слайса является разбиением. В стандарте HEVC независимый сегмент слайса определен как сегмент слайса, для которого значения синтаксических элементов в заголовке сегмента слайса не получают на основе значений предыдущего сегмента слайса, а зависимый сегмент слайса определен как сегмент слайса, для которого значения некоторых из синтаксических элементов в заголовке сегмента слайса получают на основе значений для предыдущего независимого сегмента слайса в порядке декодирования. В стандарте HEVC заголовок слайса определен как заголовок независимого сегмента слайса, который является текущим, или как заголовок независимого сегмента слайса, который предшествует текущему зависимому сегменту слайса, и при этом заголовок сегмента слайса определен как часть кодированного сегмента слайса, включающего элементы данных, которые относятся к первому блоку (или ко всем блокам) с древообразной структурой кодирования, представленному (или представленным) в сегменте слайса. Блоки кодирования сканируются в порядке сканирования растра LCU в тайлах или в изображении в целом, если тайлы не используются. В LCU блоки кодирования могут иметь заданный порядок сканирования. На фиг. 5 показан пример изображения, состоящего из двух тайлов и разделенных на квадратные блоки кодирования (показаны сплошными линиями), которые также были дополнительно разделены на прямоугольные блоки предсказания (показаны штриховыми линиями).
[0099] Декодер восстанавливает выходную видеоинформацию, применяя средства предсказания, аналогично кодеру, для формирования предсказанного представления блоков пикселей (с использованием информации о движении или пространственной информации, созданной кодером и хранимой в сжатом представлении) и декодирования ошибки предсказания (операция, обратная кодированию ошибки предсказания, для восстановления квантованного сигнала ошибки предсказания в пространственном домене пикселей). После применения средств декодирования предсказания и ошибки предсказания пикселей в декодере выполняется суммирование сигналов (пиксельных значений) предсказания и ошибки предсказания с формированием выходного видеокадра. В декодере (и кодере) могут также применяться дополнительные средства фильтрации, имеющие целью повышение качества выходного видеоизображения перед передачей его на отображение и/или хранение в качестве опорного для предсказания последующих кадров видеопоследовательности.
[0100] Фильтрация может включать, например, одно или более из следующего: деблокирующую фильтрацию, адаптивное смещение отсчетов (sample adaptive offset, SAO), и/или адаптивную петлевую фильтрацию (adaptive loop filtering, ALF). Стандарт H.264/AVC включает деблокирование, тогда как стандарт HEVC включает и деблокирование, и SAO.
[0101] В типовых видеокодеках на информацию о движении указывают при помощи векторов движения, связанных с каждой из групп пикселей изображения, для которых используется компенсация движения, например, это могут быть блоки предсказания. Каждый из таких векторов движения является представлением смещения блока пикселей в кодируемом изображении (в кодере) или декодируемом изображении (в декодере) и блока пикселей, являющегося исходным для предсказания, в одном из ранее кодированных иди декодированных изображениях. С целью эффективного представления векторов движения, как правило, применяют их разностное кодирование относительно вектора движения, предсказанного для конкретного блока пикселей. Как правило, в видеокодеках предсказанные векторы движения формируются заранее заданным способом, например, при помощи вычисления среднего вектора движения двух смежных кодируемых или декодируемых блоков пикселей. Другим способом создания предсказаний векторов движения является формирование списка кандидатных предсказаний на основе соседних блоков пикселей и/или сорасположенных блоков пикселей в опорных изображения временного предсказания и сигнализация выбранного кандидата в качестве предсказания вектора движения. В дополнение к предсказанию значений векторов движения может также выполняться предсказание, какое опорное изображение (или изображения) будут применяться для предсказания с компенсацией движения, и такая информация предсказания может быть представлена, например, указателем на опорное изображение, которое указывает на ранее кодированное или декодированное изображение. Указатель на опорное изображение, как правило, предсказывается на основе соседних блоков пикселей и/или сорасположенных блоков пикселей в опорном изображении временного предсказания. При этом, обычно, в кодеках стандарта высокоэффективного видеокодирования применяют дополнительный механизм кодирования/декодирования информации о движении, часто называемый режимом слияния, в котором вся информация поля движения, включающая вектор движения и указатель на соответствующее опорное изображение для каждого имеющегося списка опорных изображений, является предсказываемой и применяется без какого-либо изменения или коррекции. Аналогично, предсказание информации поля движения выполняют с использованием информации поля движения соседних блоков и/или сорасположенных блоков в опорных изображениях временного предсказания, а использованную информацию поля движения сигнализируют в списке кандидатных полей движения вместе с информацией поля движения имеющихся смежных и/или сорасположенных блоков.
[0102] В типовых видеокодеках имеется возможность применения однонаправленного предсказания, при котором для кодируемого (или декодируемого) блока пикселей используют один блок пикселей предсказания, а также двунаправленного предсказания, при котором для формирования предсказания для кодируемого (или декодируемого) блока пикселей комбинируют два блока пикселей предсказания. Некоторые видеокодеки позволяют применять взвешенное предсказание, при котором значения отсчетов из блоков пикселей предсказания взвешивают перед сложением с информацией ошибки. Например, могут применяться весовой коэффициент-множитель и добавочное смещение. При явном взвешенном предсказании, обеспечиваемом некоторыми из видеокодеков, весовой коэффициент и смещение могут быть кодированы, например, в заголовке слайса для каждого возможного указателя на опорное изображение. При неявном взвешенном предсказании, обеспечиваемом некоторыми из видеокодеков, весовые коэффициенты и/или смещения не кодируют, а вычисляют, например, на основе взаимного расстояния между порядковыми номерами изображений (picture order count, РОС) для опорных изображений.
[0103] В типовых видеокодеках остаток предсказания после компенсации движения сначала преобразуют с помощью ядра преобразования (например, DCT), и только затем кодируют. Причиной тому является частое наличие остаточной корреляции в остатке предсказания, а преобразование во многих случаях позволяет снизить эту корреляцию и дает в результате более эффективное кодирование.
[0104] В типовых видекодерах для поиска режимов кодирования с оптимальным соотношением битовой скорости/потери качества, например, необходимого режима макроблоков и связанных с ними векторов движения, используется целевая функция Лагранжа. В целевой функции такого типа используется весовой коэффициент, или λ, связывающий (точное или предполагаемое) значение искажения изображения в результате кодирования с потерями и (точное или предполагаемое) количество информации, необходимое для представления значений пикселей в некоторой области изображения:
где С - оптимизируемое значение функции Лагранжа, D - искажение изображения (например, среднеквадратическая ошибка) с учетом режима и его параметров, a R - количество бит, необходимое для представления данных, требуемых для восстановления блока изображения в декодере (включая количество данных для представления кандидатных векторов движения).
[0105] Стандарт и спецификации видеокодирования могут разрешать разделение, в кодере, кодированного изображения на кодированные слайсы или аналогичные элементы. Предсказание внутри изображения с пересечением границ слайсов, как правило, не допускается. Следовательно, слайсы можно считать способом разделения кодированного изображения на независимо декодируемые части. В стандартах H.264/AVC и HEVC предсказание внутри изображения с пересечением границ слайсов может быть запрещено. Соответственно, слайсы можно считать способом деления кодированного изображения на независимо декодируемые части, и следовательно, слайсы часто считаются элементарными единицами передачи. Во многих случаях кодеры могут указывать в битовом потоке, какие типы внутреннего предсказания с переходом между границами слайсов запрещены, при этом декодер учитывает данную информацию при своей работе, например, делая вывод о доступных источниках предсказания. Например, элементы изображения из соседних макроблоков, или блоков кодирования, могут считаться недоступными для внутреннего предсказания, если эти соседние макроблоки, или блоки кодирования, расположены в различных слайсах.
[0106] Элементарной единицей для вывода из кодера H.264/AVC или HEVC и ввода в декодер H.264/AVC или HEVC, соответственно, является блок уровня сетевой абстракции (Network Abstraction Layer, NAL). С целью передачи по сетям пакетной передачи данных или хранения в структурированных файлах NAL-блоки могут инкапсулироваться в пакеты или в аналогичные структуры. Формат битового потока определен в стандартах H.264/AVC и HEVC для сред передачи или хранения, не обеспечивающих структуру кадров. В формате битового потока NAL-блоки отделяются друг от друга при помощи прикрепления стартового кода перед каждым NAL-блоком. Чтобы исключить ложное обнаружение границ NAL-блоков в кодерах исполняется байтовый алгоритм предотвращения эмуляции стартового кода, который добавляет байт предотвращения эмуляции к полезной нагрузке NAL-блока, если в противном случае в ней будет присутствовать стартовый код. Для обеспечения прозрачного шлюзового взаимодействия между системами пакетной и потоковой передачи данных, предотвращение эмуляции стартового кода должно выполняться в любом случае, независимо от того, применяется формат битового потока или нет. NAL-блок может быть определен как синтаксическая структура, содержащая указание на тип данных, следующих за ней, и байты, содержащие эти данные в форме RBSP, чередующиеся, при необходимости, с байтами предотвращения эмуляции. Последовательность исходных байтов полезной нагрузки (raw byte sequence payload, RBSP) может быть определена как синтаксическая структура, включающая целое число байт и инкапсулированная в NAL-блоке. Последовательность RBSP может быть либо пустой, либо иметь форму строки информационных бит, содержащих синтаксические элементы, за которыми следует стоп-бит RBSP и ноль или более последующих бит, равных 0.
[0107] NAL-блоки состоят из заголовка и полезной нагрузки. В стандартах H.264/AVC и HEVC в заголовке NAL-блока имеется указание на тип NAL-блока.
[0108] NAL-блок в стандарте H264/AVC включает 2-битный синтаксический элемент nal_ref_idc, который, если он равен 0, указывает на то, что кодированный слайс, содержащийся в данном NAL-блоке, является частью неопорного изображения, и если он больше 0, указывает на то, что кодированный слайс, содержащийся в данном NAL-блоке, является частью опорного изображения. Заголовок NAL-блоков расширений SVC и MVC может дополнительно содержать различные указания, связанные с масштабированием и многоракурсной иерархией.
[0109] В стандарта HEVC для всех определенных типов NAL-блоков используется двухбайтный заголовок NAL-блока. Заголовок NAL-блока содержит один зарезервированный бит, шестибитный индикатор типа NAL-блока, трехбитный индикатор nuh_temporal_id_plus1 временного уровня (может предъявляться требования, чтобы он был большим либо равным 1) и шестибитное зарезервированное поле (имеющее наименование nuh_layer_id). Синтаксический элемент temporal_id_plus1 можно считать временным идентификатором NAL-блока, при этом отсчитываемая от нуля переменная Temporalid может быть вычислена следующим образом: Temporalid = temporal_id_plus1 - 1. Случай, в котором Temporalid равна нулю, соответствует наименьшему временному уровню. Значение temporal_id_plus1 должно быть ненулевым, чтобы не возникала эмуляция стартового кода, в который входит два байта заголовка NAL-блока. Битовый поток, формируемый исключением всех NAL-блоков VCL, чей Temporalld больше или равен выбранному значению, и включением всех остальных NAL-блоков VCL, остается соответствующим стандарту. Следовательно, для изображений с Temporalld, равным TID, в качестве опорных для предсказания не используются изображения c Temporalld, большим TID. Подуровень или временной подуровень может быть определен как уровень временного масштабирования или битовый поток с временным масштабированием, состоящий из NAL-блоков VCL с конкретным значением переменной Temporalld, а также из соответствующих NAL-блоков, не являющихся блоками VCL. В стандарте HEVC синтаксический элемент nuh_layer_id может содержать информацию о иерархии масштабируемости.
[0110] NAL-блоки могут быть разделены на две категории: NAL-блоки уровня видеокодирования (Video Coning Layer, VCL) и NAL-блоки, не являющиеся блоками VCL. NAL-блоки категории VCL представляют собой NAL-блоки со стандартным кодированием слайсов. В стандарте H.264/AVC кодированные NAL-блоки слайса содержат синтаксические элементы, представляющие собой один или более кодированных макроблоков, каждый из которых соответствует блоку значений несжатого изображения. В стандарте HEVC NAL-блоки VCL содержат синтаксические элементы, представляющие собой один или более блоков кодирования.
[0111] В стандарте H.264/AVC может осуществляться указание на то, что кодированный NAL-блок слайса является кодированным слайсом изображения мгновенного обновления декодирования (Instantaneous Decoding Refresh, IDR) или кодированным слайсом изображения, не являющегося IDR-изображением.
[0112] В стандарте HEVC может выполняться указание на то, что NAL-блок кодированного слайса имеет один из следующих типов:
[0113] Сокращения для типов изображений в стандарте HEVC могут быть определены следующим образом: запаздывающее изображение (trailing picture, TRAIL), изображение доступа к временному подуровню (Temporal Sub-layer Access, TSA), изображение пошагового доступа к временному подуровню (Step-wise Temporal Sub-layer Access, STSA), опережающее декодируемое изображение с произвольным доступом (Random Access Decodable Leading, RADL), опережающее пропускаемое изображение произвольного доступа (Random Access Skipped Leading, RASL), изображение разорванной цепи доступа (Broken Link Access, BLA), изображение мгновенного обновления декодирования (Instantaneous Decoding Refresh, IDR), изображение чистого произвольного доступа (Clean Random Access, CRA).
[0114] Изображение точки произвольного доступа (Random Access Point, RAP), которое может, альтернативно, называться внутренне-предсказываемым изображением внутренней произвольного доступа (IRAP), - это изображение, в котором каждый слайс или сегмент слайса имеет параметр nal_unit_type в диапазоне от 16 до 23 включительно. IRAP-изображение в независимом уровне содержит только слайсы, кодируемые с внутренним предсказанием. Для IRAP-изображения, принадлежащего предсказываемому уровню со значением nuh_layer_id, равным currLayerId, которое может включать Р-, В- и I-слайсы, не может применяться внешнее предсказание на основе других изображений со значением nuh_layer_id, равным currLayerId, но может применяться межуровневое предсказание на основе его непосредственных опорных уровней. В текущей версии стандарта HEVC IRAP-изображением может быть BLA-изображением, CRA-изображением или IDR-изображением. Первое изображение в битовом потоке, включающем базовый уровень, является RAP-изображение. При условии, что нужные наборы параметров доступны, на момент необходимости их активации, изображение IRAP в независимом уровне и все следующие за ним в порядке декодирования изображения, не являющиеся RASL-изображениями, в независимом уровне могут быть корректно декодированы без выполнения процедуры декодирования каких-либо изображений, предшествующих этому IRAP-изображению в порядке декодирования. В битовом потоке могут присутствовать изображения, которые содержат только внутренне кодируемые слайсы, однако не являются RAP-изображениями. IRAP-изображение, принадлежащее предсказываемого уровню с nuh_layer_id, равным currLayerId, и все последующие, в порядке декодирования, изображения, не являющиеся RASL-изображением, с nuh_layer_id, равным currLayerId, могут быть корректно декодированы без необходимости декодирования каких-либо изображений с nuh_layer_id, равным currLayerId, предшествующих упомянутому IRAP-изображению в порядке декодирования, когда доступны необходимые наборы параметров, в момент необходимости их активации, и когда декодирование всех непосредственных опорных уровней для уровня с layer_id, равного currLayerId, было инициализировано (т.е. когда LayerInitializedFlag[refLayerId] равно 1 для refLayerId, равных значению nuh_layer_id непосредственных опорных уровней для уровня с nuh_layer_id, равным currLayerId)
[0115] В стандарте HEVC CRA-изображение может быть первым изображением в битовом потоке в порядке декодирования, или может появляться в битовом потоке позднее. CRA-изображения в стандарте HEVC позволяют иметь так называемые опережающие изображения, которые следуют за CRA-изображением в порядке декодирования, однако предшествуют ему в порядке вывода. Для некоторых из опережающих изображений, так называемых RASL-изображений, в качестве опорных могут использоваться изображения, декодированные перед CRA-изображением. Изображения, которые следуют за CRA-изображением и в порядке декодирования, и в порядке вывода, могут быть декодированы при осуществлении произвольного доступа в точке CRA-изображения, и следовательно, может осуществляться чистый произвольный доступ, аналогично функциональности чистого произвольного доступа IDR-изображения.
[0116] CRA-изображение может иметь связанные с ним RADL- или RASL-изображения. Когда CRA-изображение является первым изображением в битовом потоке, в порядке декодирования, это CRA-изображение является первым изображением кодированной видеопоследовательности в порядке декодирования, и все связанные с ним RASL-изображения не выводятся декодером и могут не быть декодируемыми, поскольку могут содержать отсылки к изображениям, которых нет в битовом потоке.
[0117] Опережающее изображение, это изображение, которое предшествует связанному с ним RAP-изображению в порядке вывода. Упомянутое связанное RAP-изображение - это предыдущее RAP-изображение в порядке декодирования (если оно имеется). Опережающее изображение может представлять собой либо RADL-изображение, либо RASL-изображение.
[0118] Все RASL-изображения являются опережающими изображениями для связанных с ними BLA-изображений или CRA-изображений. Когда RAP-изображение, связанное с RASL-изображением, является BLA-изображением или является первым кодированным изображением в битовом потоке, упомянутое RASL-изображение не выводят, и оно при этом может не быть корректно декодируемым, поскольку RASL-изображение может содержать ссылки на изображения, которых нет в битовом потоке. Однако RASL-изображение может быть корректно декодируемым, если декодирование начато с RAP-изображения, которое предшествует RAP-изображению, связанному с данным RASL-изображением. RASL-изображения не используются в качестве опорных в процессе декодирования изображений других типов (не являющихся RASL-изображениями). Если они присутствуют, все RASL-изображения предшествуют, в порядке декодирования, всем запаздывающим изображениям для одного связанного с ним RAP-изображения. В некоторых из проектов стандарта HEVC RASL-изображения назывались изображениями, помеченными для отбрасывания (Tagged for Discard, TFD).
[0119] Все RADL-изображения являются опережающими изображениями. RADL-изображения не используются в качестве опорных в процессе декодирования запаздывающих изображений для связанного с ними RAP-изображения. Если они присутствуют, все RADL-изображения предшествуют, в порядке декодирования, всем запаздывающим изображениям для одного связанного с ним RAP-изображения. RADL-изображение не ссылается ни на какое изображение, предшествующее связанному с ним RAP-изображению в порядке декодирования, и следовательно, может быть корректно декодировано, если декодирование начинается со связанного с ним RAP-изображения. В некоторых из проектов стандарта HEVC RADL-изображения назывались декодируемыми опережающими изображениями (Decodable Leading Picture, DLP).
[0120] Если часть битового потока, начинающуюся с CRA-изображения, включают в другой битовый поток, то RASL-изображения, связанные с этим CRA-изображением, могут не быть корректно декодируемыми, поскольку некоторые из их опорных изображений могут отсутствовать в комбинированном битовом потоке. Чтобы сделать операцию «склеивания» потоков более простой, тип NAL-блока в случае CRA-изображения может быт изменен и указывать на то, что оно является BLA-изображением. RASL-изображения, связанные с BLA-изображением, могут не быть корректно декодируемыми, и соответственно, их не выводят и/или не отображают. При этом RASL-изображения, связанные с BLA-изображением, могут быть пропущены при декодировании.
[0121] BLA-изображение может быть первым изображением в битовом потоке, в порядке декодирования, или может появляться в битовом потоке позднее. Каждое BLA-изображение начинает новую кодированную видеопоследовательность, и оказывает влияние на процесс декодирования, аналогичное IDR-изображению. Однако BLA-изображение может содержать синтаксические элементы, определяющие непустой набор опорных изображений. Если BLA изображение имеет тип (nal_unit_type), равный BLA_W_LP, оно может иметь связанные с ним RASL-изображения, которые не выводятся декодером и могут не быть декодируемыми, поскольку могут содержать ссылки на изображения, отсутствующие в битовом потоке. Если BLA изображение имеет тип (nal_unit_type), равный BLA_W_LP, оно может иметь связанные с ним RADL-изображения, которые определены как декодируемые. Если BLA изображение имеет тип (nal_unit_type), равный BLA_W_DLP, оно не имеет связанных с ним RASL-изображений, однако может иметь связанные с ним RADL-изображения, которые определены как декодируемые. Если BLA изображение имеет тип (nal_unit_type), равный BLA_W_LP, то оно не имеет никаких связанных с ним опережающих сообщений.
[0122] IDR-изображение, имеющее тип (nal_unit_type), равный IDR_N_LP не имеет связанных с ним опережающих сообщений в битовом потоке. IDR-изображение, имеющее тип (nal_unit_type), равный IDR_W_LP, не имеет связанных с ним RASL-сообщений в битовом потоке, Однако может иметь связанные с ним RADL-изображения в битовом потоке.
[0123] Когда значение типа nal_unit_type равно TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12 или RSV_VCL_N14, декодированное изображение не используют в качестве опорного ни для какого другого изображения в том же временном подуровне. То есть, когда тип nal_unit_type равен TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12 или RSV_VCL_N14, декодированное изображение не включают в наборы RefPicSetStCurrBefore, RefPicSetStCurrAfter или RefPicSetLtCurr никакого изображения с тем же значением Temporalld. Кодированное изображение типа nal_unit_type, равного TRAIL_N, TSA_N, STSA_N, RADL_N, RASL_N, RSV_VCL_N10, RSV_VCL_N12 или RSV_VCL_N14 может быть отброшено без влияния на декодируемость остальных изображений с тем же значением Temporalld.
[0124] Запаздывающее изображение может быть определено как изображение, следующее за связанным с ним RAP-изображением в порядке вывода. Никакое запаздывающее изображение не может иметь тип nal_unit_type, равный RADL_N, RADL_R, RASL_N или RASL_R. Может быть принято ограничение, требующее, чтобы все опережающие изображения предшествовали, в порядке декодирования, всем запаздывающим изображениям для одного и того же RAP-изображения. В битовом потоке не могут присутствовать RASL-изображения, связанные с BLA-изображением, тип nal_unit_type которого равен BLA_W_DLP или BLA_N_LP. В битовом потоке не могут присутствовать RADL-изображения, связанные с BLA-изображением, тип nal_unit_type которого равен BLA_N_LP, или связанные с IDR-изображением, тип nal_unit_type которого равен IDR_N_LP. Любое RASL-изображение, связанное с CRA-изображением или BLA-изображением, должно предшествовать в порядке вывода всем RADL-изображением, связанным с данными CRA-изображением или BLA-изображением. Любое RASL-изображение, связанное с CRA-изображением, должно следовать в порядке вывода за всем другими RAP-изображениями, которые предшествуют данному CRA-изображению в порядке декодирования.
[0125] В стандарте HEVC имеются два типа изображений, TSA-изображения и STSA-изображения, которые могут использоваться для указания на точки переключения временных подуровней. Если временные подуровни со значениями Temporalid вплоть до N были декодированы до появления TSA-изображения или STSA-изображения (исключительно), и данное TSA-изображение или STSA-изображение имеет значение Temporalid, равное N+1, то данное TSA-изображение или STSA-изображение обеспечивает возможность декодирования всех последующих (в порядке декодирования) изображений, имеющих значение Temporalid равным N+1. Тип TSA-изображения может налагать ограничения на само TSA-изображения, а также на все изображения в том же подуровне, которые следуют за этим TSA-изображением в порядке декодирования. Ни для одного из этих изображений не допускается применение внешнего предсказания на основе изображений в том же подуровне, предшествующих данному TSA-изображению в порядке декодирования. Определение TSA-изображения может также налагать ограничения на изображения в верхних подуровнях, которые следуют за данным TSA-изображением в порядке декодирования. Ни одно из этих изображений, если оно принадлежит тому же подуровню, что и TSA-изображение, или более высокому подуровню, не должно ссылаться на изображения, предшествующие данному TSA-изображению в порядке декодирования. TSA-изображения имеют значение Temporalid больше 0. STSA-изображение аналогично TSA-изображению, однако не накладывает ограничений на изображения в более высоких подуровнях, следующие за STSA-изображением в порядке декодирования, и следовательно, позволяет выполнять переключение только на тот подуровень, где находится STSA- изображение.
[0126] NAL-блок, не являющийся блоком VCL, может, например, иметь один из следующих типов: набор параметров последовательности, набор параметров изображения, NAL-блок дополнительной уточняющей информации (supplemental enhancement information, SEI), разделитель блока доступа, конец последовательности NAL-блоков, конец битового потока NAL-блоков или NAL-блок с данными фильтрации. Набор параметров может быть необходим для восстановления декодированных изображений, при этом многие из остальных типов NAL-блоков, не являющихся блоками VCL, не являются необходимыми для восстановления декодированных изображений.
[0127] В набор параметров последовательности могут включаться параметры, которые остаются неизменными на протяжении всей кодированной видеопоследовательности. В дополнение к параметрам, которые могут быть необходимы в процессе декодирования, набор параметров последовательности опционально может включать информацию по используемости видео (video usability information, VUI), включающую параметры, важные для буферизации, синхронизации вывода изображения, отрисовки и резервирования ресурсов. В стандарте H.264/AVC определены три типа NAL-блоков, несущих наборы параметров последовательности: NAL-блоки с параметрами последовательности, содержащие все данные для NAL-блоков VCL стандарта H.264/AVC в последовательности, расширенные NAL-блоки набора параметров последовательности, содержащие данные внешне кодируемых изображений и блоки, содержащие подмножество набора параметров для NAL-блоков MVC и SVC VCL. В стандарте HEVC RBSP набора параметров последовательности включает в себя параметры, на которые могут выполняться ссылки в RBSP одного или более наборов параметров последовательности или в одном или более NAL-блоков SEI, содержащих сообщение SEI с периодом буферизации. Набор параметров изображения содержит параметры, которые с большой вероятностью будут неизменными для нескольких кодированных изображений. RBSP набора параметров изображения может включать в себя параметры, на которые могут выполняться ссылки из NAL-блоков кодированного слайса или из одного или более кодированных изображений.
[0128] В стандарте HEVC набор видеопараметров (video parameter set, VPS) может быть определен как синтаксическая структура, содержащая синтаксические элементы, применимые к нулю или более полных кодированных видеопоследовательностей, в зависимости от содержимого синтаксического элемента, находящегося в наборе SPS, на который ссылается синтаксический элемент в наборе PPS, на который, в свою очередь, ссылается синтаксический элемент в заголовке сегмента слайса.
[0129] RBSP набора видеопараметров может включать в себя параметры, ссылки на которые могут осуществляться в RBSP одной или более наборов параметров последовательности.
[0130] Ниже описаны взаимоотношения и иерархия набора видеопараметров (VPS), набора параметров последовательности (SPS) и набора параметров изображения (SPS). Набор VPS располагается на один уровень выше набора SPS в иерархии наборов параметров и в контексте масштабируемости и/или 3D. Набор VPS может включать в себя параметры, являющиеся общими для всех слайсов во всех уровнях (масштабируемости или ракурсов) кодированной видеопоследовательности в целом. Набор SPS включает в себя параметры, являющиеся общими для всех слайсов в данном уровне (масштабируемости или ракурсов) кодированной видеопоследовательности в целом, которые при этом могут быть также общими для нескольких уровней (масштабируемости или ракурсов). Набор PPS включает в себя параметры, являющиеся общими для всех слайсов в данном уровне представления (представления уровня масштабируемости или ракурса в одном блоке доступа) и которые с большой вероятностью являются общими для всех слайсов в нескольких представлениях уровня кодирования.
[0131] Набор VPS может предоставлять информацию о отношениях зависимости уровней кодирования в битовом потоке, а также множество другой информации, применимой для всех слайсов во всех уровнях (масштабируемости или ракурсов) кодированной видеопоследовательности в целом. Набор VPS можно рассматривать как состоящий из трех частей, базовый VPS, VPS расширения и VPSVUI, при этом наличие VPS расширения и VPS VUI может быть опциональным. В стандарте HEVC базовый набор VPS можно рассматривать как включающий синтаксическую структуру video_parameter_set_rbsp() без синтаксической структуры vps_extension(). Синтаксическая структура video_parameter_set_rbsp() уже была ранее определена для первой версии стандарта HEVC и содержала синтаксические элементы, которые могли применяться для декодирования базового уровня. В стандарте HEVC расширение VPS можно рассматривать как включающее синтаксическую структуру vps_extension(). Синтаксическая структура vps_extension() была определена во второй версии стандарта HEVC главным образом для многоуровневых расширений и включает синтаксические элементы, которые могут применяться для декодирования одного или более небазовых уровней, например, синтаксические элементы, указывающие на отношения зависимости уровней. VPS VUI включает синтаксические элементы, полезные для декодирования или для других целей, однако не являющиеся необходимыми для применения в процедуре декодирования HEVC.
[0132] Синтаксис стандартов H.264/AVC и HEVC допускает наличие множественных экземпляров наборов параметров, при этом каждый экземпляр имеет уникальный идентификатор. Чтобы ограничить использование памяти, необходимой для наборов параметров, был ограничен диапазон значений для идентификаторов наборов параметров. В стандартах H.264/AVC и HEVC каждый заголовок слайса включает идентификатор набора параметров изображения, который является активным для декодирования изображения, содержащего этот слайс, при этом каждый набор параметров изображения содержит идентификатор активного набора параметра последовательности. Следовательно, передача наборов параметров изображения и последовательности не обязательно должна быть точно синхронизирована с передачей слайсов. Напротив, достаточно, чтобы активные наборы параметров последовательности и изображения были приняты до момента осуществления ссылки на них, что позволяет передавать наборы параметров с использованием более надежных механизмов передачи, по сравнению с протоколами, применяемыми для передачи данных слайсов. Например, наборы параметров могут включаться в качестве параметров в описание сеанса для сеансов транспортного протокола реального времени (Real-time Transport Protocol, RTP). Если наборы параметров передаются в основной полосе, то в целях повышения устойчивости к ошибкам они могут повторяться.
[0133] Передача, сигнализация или хранение данных вне основной полосы частот, в дополнение или альтернативно, может применяться в иных целях, а не только для повышения устойчивости к ошибкам передачи, например, для упрощения доступа или для установления сеанса. К примеру, наборы параметров в файле, отвечающем базовому формату медиафайлов ISO, могут быть включены в запись с информацией о сэмплах трека тогда как кодированные данные битового потока хранят в другом месте этого файла или в другом файле. Выражение «параллельно битовому потоку» (например, «указание параллельно битовому потоку») может пониматься, в пунктах формулы изобретения и в описании вариантов осуществления настоящего изобретения, как передача, сигнализация или хранение данных вне основной полосы частот, таким образом, что данные, не принадлежащие основной полосе частот, остаются связанными с битовым потоком. Выражение «параллельно битовому потоку», или аналогичные выражения, могут обозначать декодирование данных, поступающих извне основной полосы частот, на которые осуществляют ссылки (и которые могут быть получены за счет передачи, сигнализации или хранения данных вне основной полосы частоты) и которые связаны с битовым потоком.
[0134] Наборы параметров могут активироваться при помощи ссылки из слайса или из другого активного набора параметров, или, в некоторых случаях, из других синтаксических структур, например, из сообщения SEI с периодом буферизации.
[0135] NAL-блоки SEI могут содержать одно или более сообщений SEI, которые не требуются для декодирования выходных изображений, но могут быть полезными в связанных с этим процедурах, например, синхронизации вывода изображения, отрисовки, обнаружения ошибок, сокрытия ошибок и резервирования ресурсов. В стандартах H.264/AVC и HEVC определены несколько типов сообщений SEI, при этом сообщения SEI с пользовательскими данными позволяют организациям и компаниям определять сообщения SEI для личного использования. В стандартах H.264/AVC и HEVC описаны синтаксис и семантика сообщений SEI, однако процедура обработки сообщений на стороне приемника не определена. Следовательно, кодер должен следовать стандарту H.264/AVC или HEVC при формирований сообщений, SEI при этом декодер, отвечающий стандарту H.264/AVC или HEVC соответственно, не обязательно должен обрабатывать сообщения SEI, соответствие выходной последовательности стандарту от этого не зависит. Одной из причин включения синтаксиса и семантики сообщений SEI в стандарты H.264/AVC и HEVC является возможность идентичной интерпретации дополнительной информации различными системами, и следовательно, их взаимодействия. Предполагается, что системные спецификации могут требовать применения конкретных сообщений SEI как на стороне кодера, так и на стороне декодера, при этом процедура обработки конкретных сообщений SEI на стороне приемника может быть определена дополнительно.
[0136] В стандартах AVC и HEVC были определены, а также предложены независимо, несколько типов контейнерных сообщений SEI. Принцип контейнеризации сообщений SEI заключается в помещении одного или более сообщений SEI внутри контейнерного сообщения SEI и в обеспечении механизма для связывания вложенных сообщений SEI с подмножеством битового потока и/или подмножеством декодированных данных. Может предъявляться требование, чтобы контейнерное сообщение SEI содержало одно или более сообщений SEI, которые сами не являются контейнерными сообщениями SEI. Сообщение SEI, содержащееся в контейнерном сообщении SEI называется вложенным сообщением SEI. Сообщение SEI, не содержащееся в контейнерном сообщении SEI называется невложенным сообщением SEI. Сообщения SEI с масштабируемой вложенностью в стандарте HEVC позволяют указывать либо на подмножество битового потока (полученное при помощи процедуры извлечения битового подпотока), либо на набор уровней, к которому применимы вложенные сообщения SEI. Подмножество битового потока может также называться битовым подпотоком.
[0137] Кодированное изображение - это кодовое представление изображения. Кодированное изображение в стандарте H.264/AVC включает NAL-блоки VCL, которые необходимы для декодирования изображения. В стандарте H.264/AVC кодированное изображение может быть либо первично кодированным изображением, либо избыточно кодированным изображением. Первично кодированное изображение используется в процедуре декодирования безошибочных битовых потоков, тогда как избыточно кодированное изображение является представлением с избыточностью и декодируется, только если первично кодированное изображение не может быть успешно декодировано. В стандарте HEVC избыточное кодированное изображение не определено.
[0138] В стандарте H.264/AVC блок доступа (AU) включает первично кодированное изображение и связанные с ним NAL-блоки. В стандарте H.264/AVC порядок появления NAL-блоков внутри блока доступа задан следующим образом. На начало блока доступа может указывать опциональный NAL-блок, являющийся разделителем блоков доступа. За ним следует ноль или более NAL-блоков SEI. Далее идут кодированные слайсы первично кодированного изображения. В стандарте H.264/AVC после кодированных слайсов первично кодированного изображения могут следовать кодированные слайсы нуля или более избыточно кодированных изображений. Избыточно кодированное изображение - это кодовое представление (репрезентация) изображения или части изображения. Избыточно кодированное изображение может декодироваться, если первично кодированное изображение не принято в декодере, например, в результате потерь при передаче или в результате ошибки в физическом носителе.
[0139] В стандарте H.264/AVC блок доступа может также включать внешне кодированное изображение, которое дополняет первично кодированное изображение и может использоваться, например, в процедуре отображения. Внешне кодированное изображение может, например, использоваться в качестве альфа-канала или альфа-слоя, задающего уровень прозрачности пикселей декодированных изображений. Альфа-канал, или альфа-слой, может использоваться в многоуровневой системе формирования или отрисовки изображений, где выходное изображение образуется накладывающимися друг поверх друга частично прозрачными изображениями. Внешне кодированное изображение имеет те же синтаксические и семантические ограничения, что и монохромное избыточно кодированное изображение. В стандарте H.264/AVC внешне кодированное изображение содержит то же количество макроблоков, что и первично кодированное изображение.
[0140] В стандарте HEVC кодированное изображение может быть определено как кодированное представление изображения, содержащее все блоки с древообразной структурой кодирования для этого изображения. В стандарте HEVC блок доступа (AU) может быть определен как набор NAL-блоков, которые связаны друг с другом согласно определенному правилу классификации, следуют друг за другом в порядке декодирования и содержат максимум одно изображение с конкретным значением nuh_layer_id. Помимо NAL-блоков VCL кодированного изображения, блок доступа может содержать также NAL-блоки, не являющиеся блоками VCL.
[0141] Битовый поток может быть определен как последовательность бит, в форме потока NAL-блоков или байтового потока, который образует представление кодированных изображений и связанных с ними данных, образующих одну или более кодированных видеопоследовательностей. В одном логическом канале, например, в одном файле или по одному соединению протокола связи за первым битовым потоком может следовать второй битовый поток. Элементарный поток (в контексте видеокодирования) может быть определен как последовательность из одного или более битовых потоков. Конец первого битового потока может быть означен специальным NAL-блоком, который может называться NAL-блоком конца битового потока (end of bitstream, ЕОВ), и который является последним NAL-блоком битового потока. В стандарте HEVC и в имеющихся на сегодняшний день проектах его расширений NAL-блок ЕОВ должен иметь nuh_layer_id равным 0.
[0142] В стандарте H.264/AVC кодированная видеопоследовательность определена как ряд последовательных блоков доступа в порядке декодирования от блока доступа IDR включительно до следующего блока доступа IDR исключительно или до конца битового потока, - в зависимости от того, что появляется раньше.
[0143] В стандарте HEVC кодированная видеопоследовательность (coded video sequence, CVS) может быть определена, например, как последовательность блоков доступа, которые состоят, в порядке декодирования, из блока доступа IRAP-изображения с флагом NoRaslOutputFlag, равным 1, за которым следуют ноль или более блоков доступа, не являющихся блоками доступа IRAP-изображения и имеющих флаг NoRaslOutputFlag, равный 1, включая все последующие блоки доступа вплоть до (не включительно) первого последующего блока доступа, который является блоком доступа IRAP-изображения с флагом NoRaslOutputFlag, равным 1. Блок доступа IRAP-изображения может быть определен как блок доступа, в котором изображение базового уровня является IRAP-изображением. Для всех iDR-изображений, всех BLA-изображений и всех IRAP-изображений, являющихся первыми изображениями в данном конкретном уровне битового потока, IRAP-изображений, идущих первым после окончания последовательности NAL-блоков, имеющих такое же значение nuh_layer_id, в порядке декодирования, значение NoRaslOutputFlag равно 1. В многоуровневых расширениях HEVC значение NoRaslOutputFlag равно 1 для всех IRAP-изображений с такими значениями nuh_layer_id, что LayerInitializedFlag[nuh_layer_id] равно 0 и LayerInitializedFlag[refLayerId] равно 1 для всех значений refLayerId, равных IdDirectRefLayer[nuh_layer_id] - 1 включительно. В противном случае значение NoRaslOutputFlag равно HandleCraAsBlaFlag. NoRaslOutputFlag, равный 1, определяет, что RASL-изображения, связанные с IRAP-изображением, для которого установлен NoRaslOutputFlag, не выводятся декодером. Могут быть обеспечены средства для предоставления значения флага HandleCraAsBlaFlag в декодер из внешнего элемента, например, проигрывателя или приемника, осуществляющего управление декодером. Флаг HandleCraAsBlaFlag может быть установлен в 1, например, проигрывателем, который осуществляет поиск новой позиции в битовом потоке или подключается к трансляции и начинает декодирование, и в этом случае он будет начинать декодирование с CRA-изображения. Когда для CRA-изображения флаг HandleCraAsBlaFlag равен 1, это CRA-изображение обрабатывают и декодируют так, как если бы оно было BLA-изображением.
[0144] В стандарте HEVC, дополнительно или альтеративно (к описанной выше спецификации), может быть определено, что кодированная видеопоследовательность оканчивается, когда конкретный в битовом потоке встречается специальный NAL-блок, который может называться NAL-блоком конца последовательности (end of sequence, EOS) и имеет nuh_layer_id, равным 0.
[0145] В стандарте HEVC может быть определена группа кодированных видеопоследовательностей (coded video sequence group, CVSG), например, как одна или более следующих друг за другом, в порядке декодирования, кодированных видеопоследовательностей, CVS, которые вместе образуют блок доступа IRAP, активирующий набор VPS RBSP, firstVpsRbsp, который еще не был активным и за которым следуют все последующие, в порядке декодирования, блоки доступа, где firstVpsRbsp является активным набором VPS RBSP вплоть до конца битового потока или вплоть (не включительно) до блока доступа, активирующего другой набор RBSP VPS, отличающийся от firstVpsRbsp, - в зависимости от того, что будет первым в порядке декодирования.
[0146] Далее приведено определение и характеристики группы изображений (group of pictures, GOP). Группа GOP может быть декодирована независимо от того, были ли декодированы какие-либо предшествующие изображения или нет. Открытая группа изображений - это группа изображений, в которой изображения, предшествующие первому внутренне предсказываемому изображению в порядке вывода, могут не быть декодированы корректно, если декодирование начинается с упомянутого первого внутренне предсказываемого изображения открытой группы изображений. Другими словами, изображения в открытой GOP могут ссылаться (для внутреннего предсказания) на изображения из предшествующей GOP. Декодер, соответствующий стандарту H.264/AVC, способен распознавать внутренне предсказываемое изображение, которым начинается отрытая группа GOP, за счет сообщения SEI, указывающего на точку восстановления в битовом потоке стандарта H.264/AVC. Декодер, соответствующий стандарту HEVC, способен распознавать внутренне предсказываемое изображение в начале открытой GOP благодаря специальному типу NAL-блоков, CRA, который может использоваться для кодируемых слайсов этого изображения. Закрытая группа изображений - это группа изображений, в которой все изображения могут быть декодированы корректно, если декодирование начинается с первого внутренне предсказываемого изображения закрытой группы изображений. Другими словами, ни одно из изображений в закрытой GOP не ссылается ни на одно изображение из предшествующих GOP. В стандартах H.264/AVC и HEVC закрытая группа GOP может начинаться с IDR-изображения. В стандарте HEVC закрытая группа изображений, GOP, может также начинаться с изображения BLA_W_RADL или BLA_N_LP. Структура кодирования с открытыми GOP дает потенциально более эффективное сжатие, по сравнению со структурой кодирования с закрытыми GOP, благодаря большей гибкости при выборе опорных изображений.
[0147] Структура изображений (Structure of Pictures, SOP) может быть определена как одно или более кодированных изображений, следующих друг за другом в порядке декодирования, при этом первое кодированное изображение в порядке декодирования является опорным изображением в самом нижнем временном подуровне, и ни одно кодированное изображение, кроме, потенциально, первого кодированного изображения в порядке декодирования, не является RAP-изображением. Все изображения в предыдущей структуре SOP предшествуют, в порядке декодирования, всем изображениям в текущей структуре SOP, а все изображения в следующей структуре SOP, расположены позднее, в порядке декодирования, чем все изображения в текущей структуре SOP. Структура SOP может представлять иерархическую и циклическую структуру внешнего предсказания. Термин группа изображений (GOP) в некоторых случаях может использоваться взаимозаменяемо с термином SOP и иметь идентичную семантику.
[0148] В синтаксисе битового потока стандартов H.264/AVC и HEVC присутствуют указания на то, является ли изображение опорным для внутреннего предсказания какого-либо иного изображения. Изображения с любым типом кодирования (I, Р, В) в стандартах H.264/AVC и HEVC могут быть как опорными изображениями, так и неопорными изображениями.
[0149] В стандарте H.264/AVC определена процедура маркировки декодированного опорного изображения с целью управления потреблением памяти в декодере. Максимальное количество опорных изображений для внешнего предсказания обозначается М и определяется в наборе параметров последовательности. При декодировании опорного изображения оно маркируется как «используемое в качестве опорного». Если в результате декодирования опорного изображения более М изображений были помечены как «используемые в качестве опорного», то по меньшей мере одно из этих изображений помечают как «не используемое в качестве опорного». Имеются два типа операций маркировки декодированного опорного изображения: адаптивное управление памятью и скользящее окно. Режим маркировки декодированного опорного изображения может выбираться для каждого изображения в отдельности. Адаптивное управление памятью обеспечивает явную сигнализацию, при которой изображения помечаются как «не используемые в качестве памяти», причем также возможно назначение долгосрочных указателей на краткосрочные опорные изображения. Адаптивное управление памятью может требовать наличия в битовом потоке параметров операций управления памятью (memory management control operation, MMCO). Параметры MMCO могут быть включены в синтаксическую структуру, маркирующую декодированное опорное изображение. Если применяется режим работы со скользящим окном, и М изображений помечены как «используемые в качестве опорных», то краткосрочное опорное изображение, являвшееся первым декодированным изображением среди краткосрочных опорных изображений, помеченных «используемыми в качестве опорных», помечается как «не используемое в качестве опорного». Другими словами, режим работы со скользящим окном обеспечивает работу с краткосрочными опорными изображениями по типу буфера «первый вошел, первый вышел».
[0150] Одна из операций управления памятью в стандарте H.264/AVC обеспечивает маркировку всех опорных изображений, кроме текущего изображения, как «не используемых в качестве опорных». Изображение мгновенного обновления декодирования (IDR) содержит только слайсы с внутренним предсказанием и вызывает аналогичный «сброс» опорных изображений.
[0151] В стандарте HEVC синтаксические структуры для маркировки опорных изображений и соответствующие процедуры декодирования не применяются. Вместо этого, с аналогичными целями, используется синтаксическая структура и процедура декодирования набора опорных изображений (reference picture set, RPS). Набор опорных изображений, являющийся действительным или активным для изображения, включает все опорные изображения для данного изображения и все опорные изображения, которые остаются помеченными как «используемые в качестве опорных» для последующих изображений в порядке декодирования. В наборе опорных изображений существует шесть подмножеств, которые обозначаются RefPicSetStCurr0 (или, альтернативно, RefPicSetStCurrBefore), RefPicSetStCurr1 (или, альтернативно, RefPicSetStCurrAfter), RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr и RefPicSetLtFoll. Поднаборы RefPicSetStFoll0 и RefPicSetStFoll1 можно рассматривать, как совместно образующие единый поднабор RefPicSetStFoll. Нотация обозначений этих шести подмножеств имеет следующее значение. "Curr" обозначает опорное изображение, которое включено в список опорных изображения для текущего изображения, и следовательно, может быть использовано как опорное изображение при внешнем предсказании текущего изображения. "Foll" обозначает опорное изображение изображение, которое не включено в список опорных изображения для текущего изображения, но может быть использовано как опорное изображение для последующих изображений в порядке декодирования. "St" обозначает краткосрочные опорные изображения, которые в общем случае могут идентифицироваться при помощи определенного количества младших бит в их значении РОС (порядкового номера). "Lt" обозначает долгосрочные опорные изображения, которые идентифицируются специальным образом и, как правило, имеют большее отличие в значениях РОС от текущего изображения, чем это может быть отражено с помощью упомянутого определенного количества младших бит. "0" обозначает те опорные изображения, которые имеют меньшее значение РОС, тем текущее изображение. "1" обозначает те опорные изображения, которые имеют большее значение РОС, чем текущее изображение. RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0 и RefPicSetStFoll1 совместно называются краткосрочным подмножеством набора опорных изображений. RefPicSetLtCurr и RefPicSetLtFoll совместно называют долгосрочным подмножеством набора опорных изображений.
[0152] В проекте стандарта HEVC набор опорных изображений может быть задан в наборе параметров последовательности и использоваться в заголовке слайса при помощи указателя на конкретный набор опорных изображений. Набор опорных изображений может также задаваться в заголовке слайса. Набор опорных изображений может кодироваться независимо или может предсказываться на основе другого набора опорных изображений (это называется внешним предсказанием RPS). В обоих типах кодирования опорных изображений для каждого опорного изображения дополнительно устанавливают флаг (used_by_curr_pic_X_flag), который указывает, используется ли данное изображение в качестве опорного для текущего изображения (т.е. входит в список *Curr) или нет (т.е. входит в список *Foll). Изображения из набора опорных изображений, используемых для текущего слайса, помечают как «используемые в качестве опорных», а изображения, не входящие в набор опорных изображений, используемых для текущего слайса, помечают как «не используемые в качестве опорных». Если текущее изображение является IDR-изображением, то RefPicSetStCurr0, RefPicSetStCurr1, RefPicSetStFoll0, RefPicSetStFoll1, RefPicSetLtCurr и RefPicSetLtFoll очищаются (становятся пустыми).
[0153] В кодере и/или декодере может применяться буфер декодированных изображений (Decoded Picture Buffer, DPB). Имеются две причины для буферизации декодированных изображений: для использования в качестве опорных при внешнем предсказании и для изменения порядка декодированных изображений в выходной последовательности. Стандарты H.264/AVC и HEVC дают значительную гибкость как для маркировки опорных изображений, так и для переупорядочивания выходной последовательности, однако отдельные буферы для опорных изображений и изображений выходной последовательности могут приводить к нерациональному расходованию ресурсов памяти. Следовательно, буфер DPB может включать унифицированную процедуру буферизации опорных изображений и переупорядочивания выходной последовательности. Декодированное изображение может удаляться из буфера DPB, когда оно больше не используется в качестве опорного и не требуется для вывода.
[0154] Во многих режимах кодирования стандартов H.264/AVC и HEVC, на опорное изображение внешнего предсказания указывают с помощью указателя на список опорных изображений. Указатель может кодироваться с использованием кодирования переменной длины (неравномерного кодирования), что обычно дает более короткие значения указателей с меньшим числовым значением для соответствующих синтаксических элементов. В стандартах H.264/AVC и HEVC формируются два списка опорных изображений (список 0 опорных изображений и список 1 опорных изображений) для каждого двунаправленно предсказываемого слайса (В-слайса), и один список опорных изображений (список 0 опорных изображений) для каждого слайса, кодируемого с внешним предсказанием (P-слайса).
[0155] Список опорных изображений, например список 0 или список 1, как правило, формируется в два шага. Сначала формируют первичный список опорных изображений. Первичный список опорных изображений может формироваться, например, на основе параметров frame_num, РОС, temporal_id (или Temporalld, или аналогичного параметра), или информации об иерархии предсказания, например, из структуры GOP, или на основе какой-либо комбинации перечисленного. На втором шаге первичный список опорных изображений может быть переупорядочен с помощью команд переупорядочения списка опорных изображений (reference picture list reordering, RPLR), также называемых синтаксической структурой модификации списка опорных изображений, которая может содержаться в заголовках слайсов. В стандарте H.264/AVC команды RPLR указывают на изображения, которые упорядочены в направлении к началу соответствующего списка опорных изображений. Этот второй шаг может также быть назван процедурой модификации списка опорных изображений, а команды RPLR могут включаться в синтаксическую структуру модификации списка опорных изображений. Если используются наборы опорных изображений, то список 0 опорных изображений может инициализироваться включением в него сначала RefPicSetStCurr0, за которым следует RefPicSetStCurr1 и затем RefPicSetLtCurr. Список 1 опорных изображений может инициализироваться включением в него сначала RefPicSetStCurr1 и затем RefPicSetStCurr0. В стандарте HEVC первичные списки опорных изображений могут модифицироваться при помощи синтаксической структуры модификации списка опорных изображений, в которой изображения в первичных списках опорных изображений могут идентифицироваться при помощи записи-указателя на список. Другими словами, в стандарте HEVC модификацию списка опорных изображений кодируют в синтаксической структуре, которая содержит циклическое определение по всем записям в окончательном списке опорных изображений, при этом каждая запись циклической структуры представляет собой кодированный указатель фиксированный длины на исходный список опорных изображений, который указывает, с возрастающим порядком расположения, на изображение в окончательном списке опорных изображений.
[0156] Во многих стандартах кодирования, включая H.264/AVC и HEVC, процедура декодирования может давать на выходе указатель на опорное изображение в списке опорных изображений, который может применяться для указания, какое из нескольких опорных изображений необходимо использовать для внешнего предсказания определенного блока пикселей. Указатель на опорное изображение в некоторых режимах кодирования с внешним предсказанием может кодироваться кодером в битовый поток, или, в других режимах кодирования с внешним предсказанием, может вычисляться (например, кодером и декодером), например, с использованием соседних блоков.
[0157] С целью эффективного представления векторов движения в битовом потоке может выполняться их разностное кодирование относительно вектора движения, предсказанного для конкретного блока. Во многих видеокодеках предсказанные векторы движения формируются заранее заданным способом, например, при помощи вычисления среднего вектора движения двух смежных кодируемых или декодируемых блоков. Другим способом создания предсказаний векторов движения, который иногда называют улучшенным предсказанием векторов движение (advanced motion vector prediction, AMVP) является формирование списка кандидатных предсказаний на основе соседних блоков пикселей и/или сорасположенных блоков пикселей в опорных изображения временного предсказания и сигнализация выбранного кандидата в качестве предсказания вектора движения. В дополнение к предсказанию значений векторов движения может также выполняться предсказание указателя на опорное изображение ранее кодированного или декодированного изображения. Указатель на опорное изображение, как правило, предсказывается на основе соседних блоков и/или сорасположенных блоков в опорном изображении временного предсказания. Разностное кодирование векторов движения с переходом границы слайса, как правило, не разрешено.
[0158] Во многих кодеках эффективного видеокодирования, например, в кодеках, соответствующих стандарту HEVC, применяют дополнительный механизм кодирования и декодирования информации, часто называемый режимом (или процессом, или механизмом) слияния, в котором информация о движении блока пикселей или блока предсказания предсказывается и используется без какой-либо модификации или коррекции.
[0159] Масштабируемым видеокодированием может называться такая структура кодирования, в которой один битовый поток может содержать несколько представлений видеоданных (контента), например, с различным битрейтом, разрешением и/или частотой смены кадров. В этих случаях приемник может извлекать требуемое представление в зависимости от своих характеристик (например, разрешение, наиболее подходящее для дисплейного устройства). Альтернативно, сервер или сетевой элемент может извлекать части битового потока для передачи в приемник в зависимости, например, от характеристик сети или вычислительных возможностей приемника. Масштабируемый битовый поток состоит, как правило, из «базового уровня», обеспечивающего наименьшее из доступных качество видеоинформации, а также из одного или более уточняющих уровней, которые повышают качество видеоинформации при их приеме и декодировании вместе с нижними уровнями. С целью повышения эффективности кодирования уточняющих уровней их кодированные представления, как правило, кодируют в зависимости от нижних уровней. Например, информация о движении и режиме уточняющего уровня может предсказываться на основе низлежащих уровней. Аналогично, данные пикселей нижних уровней могут применяться для формирования предсказания уточняющего уровня.
[0160] В некоторых из схем масштабируемого видеокодирования видеосигнал может кодироваться в базовый уровень и в один или более уточняющих уровней. Уточняющий уровень, например, может повышать временное разрешение (т.е. частоту смены кадров), пространственное разрешение или просто качество видеоконтента, представленного в другом уровне, или его части. Каждый уровень вместе со всеми зависимыми уровнями является одним из представлений видеосигнала, например, с определенным пространственным разрешением, временным разрешением и уровнем качества. В данном документе масштабируемый уровень вместе со всеми зависимыми уровнями называется «репрезентацией масштабируемого уровня». Часть масштабируемого битового потока, соответствующая репрезентации масштабируемого уровня, может быть извлечена и декодирована, в результате чего получают представление исходного сигнала с определенной точностью.
[0161] Режимы масштабирования, или масштабируемые величины, могут включать, без ограничения перечисленным, описанные ниже режимы.
- Масштабирование качества: Изображения базового уровня кодируют с меньшим качеством, чем изображения уточняющих уровней, что может быть реализовано, например, за счет использования более высокого значения параметра квантования (т.е. большего размера шага квантования для квантования коэффициентов преобразования) в базовом уровне, по сравнению с уточняющим уровнем. Масштабируемость качества может, в свою очередь, подразделяться на мелкозернистую или мелкогранулярную масштабируемость (fine-grain или fine-granularity scalability, FGS), среднезернистую или среднегранулярную масштабируемость (medium-grain или medium-granularity scalability, MGS) и/или крупнозернистую или крупногранулярную масштабируемость (coarse-grain или coarse-granularity scalability, CGS) которые будут описаны ниже.
- - Пространственная масштабируемость: изображения базового уровня кодируют с меньшим разрешением (т.е. имеют меньше количество отсчетов), чем изображения уточняющих уровней. Пространственную масштабируемость и масштабируемость качества, особенно ее крупногранулярный тип, иногда относят к одному типу масштабируемости.
- - Масштабируемость битовой глубины: изображения базового уровня кодирования кодируют с меньшей битовой глубиной (например, 8 бит), чем изображения уточняющих уровней (например, 10 или 12 бит).
- Масштабируемость формата цветности: изображения базового уровня кодирования обеспечивают меньшее пространственное разрешение в массивах отсчетов цветности (например, кодированы в формате цветности 4:2:0), чем изображения уточняющих уровней (например, формат 4:4:4).
Масштабируемость цветового охвата: изображения уточняющего уровня имеют более емкий, или широкий, диапазон представления цвета, чем изображения базового уровня, например, уточняющий уровень может иметь цветовой охват по стандарту UHDTV (ITU-R ВТ.2020), а базовый уровень может иметь цветовой охват по стандарту ITU-R ВТ.709.
- Масштабируемость ракурсов, которая может также называться многоракурсным кодированием. Базовый уровень представляет собой первый ракурс, тогда как уточняющий уровень является вторым ракурсом.
- Масштабируемость глубины, которая может также называться кодированием с уточнением глубины. Один или несколько уровней в битовом потоке могут представлять собой ракурс (или ракурсы) текстуры, тогда как другой уровень, или уровни, могут представлять собой ракурс (или ракурсы) глубины.
- Масштабируемость областей интереса (описана ниже).
- Чересстрочно-прогрессивная масштабируемость (также называемая масштабируемостью поле-кадр): исходные кодированные чересстрочные данные базового уровня уточняют с использованием уточняющего уровня, который представляет прогрессивные исходные данные. Кодированные чересстрочные видеоданные в базовом уровне могут содержать кодированные поля, кодированные кадры, представляющие пары полей, или их комбинацию. При чересстрочно-прогрессивной масштабируемости разрешение изображения базового уровня может быть изменено таким образом, чтобы оно подходило в качестве опорного изображения для одного или более изображений уточняющего уровня.
- Масштабируемость с гибридным кодеком (также называемая масштабируемостью стандартов кодирования): при масштабируемости с гибридным кодеком синтаксис, семантика и процедура декодирования для базового уровня и уточняющего уровня определены различными стандартами видеокодирования. Таким образом, изображения базового уровня кодируют согласно стандарту или формату кодирования, отличающего от кодирования изображений уточняющего уровня. К примеру, базовый уровень может быть кодирован с использованием стандарта H.264/AVC, а уточняющий уровень может быть кодирован с использованием многоуровневого расширения HEVC. В более общем случае при масштабируемости с гибридным кодеком один или более уровней могут кодироваться согласно одному стандарту или спецификации кодирования, и еще один или более уровней могут кодироваться согласно другому стандарту или спецификации кодирования. Например, могут присутствовать два уровня, кодированные согласно расширению MVC стандарта H.264/AVC (из которых один является базовым уровнем, кодированным согласно стандарту H.264/AVC), и могут присутствовать один или более дополнительных уровней, кодированных согласно расширению MV-HEVC. При этом количество стандартов или спецификаций кодирования при масштабируемости с гибридным кодеком, согласно которым кодируют различные уровни одного битового потока, не обязательно ограничены двумя.
[0162] Нужно понимать, что многие из типов масштабируемости могут комбинироваться и применяться совместно. К примеру, могут совместно применяться масштабируемость цветового охвата и масштабируемость битовой глубины.
[0163] Расширение SHVC дает возможность применять взвешенное предсказание или процедуру преобразования цвета (цветового маппинга) на базе трехмерной таблицы поиска (lookup table, LUT) в целях масштабирования цветового охвата. Ниже приведено описание метода на базе трехмерной таблицы поиска. Диапазон значений отсчетов для каждой из составляющих цвета сначала может быть разбит на два диапазона, составляющих вплоть до 2×2×2 октантов, и затем диапазоны значений яркости могут быть дополнительно разбиты еще на четыре части, что дает вплоть до 8×2×2 октантов. Внутри каждого октанта для преобразования значений цвета применяют линейную модель с кросс-компонентной зависимостью значений цвета. Для каждого октанта в битовый поток кодируют (или декодируют из битового потока) четыре вершины, которые задают линейную модель внутри октанта. Таблицу преобразования цвета кодируют в битовый поток (и/или декодируют из битового потока) для каждой составляющей цвета отдельно. Преобразование цвета может быть рассмотрено как включающее три шага. На первом шаге определяют октанты, которым принадлежат триплеты (Y, Cb, Cr) отсчетов заданного опорного уровня. На втором шаге координаты яркости и цветности этих отсчетов могут быть выровнены за счет применения процедуры выравнивания цветовых составляющих. На третьем шаге применяют линейное преобразование, заданное для найденного октанта. Преобразование может быть кросс-компонентным, т.е. входные значения одной составляющей цвета могут влиять на преобразованное значение другой составляющей цвета. Также, если необходима передискретизация (ресэмплинг) различных, взаимозависимых уровней, входными данными процедуры передискретизации будет изображение, прошедшее преобразование цвета. Преобразование цвета для отсчетов первой битовой глубины может иметь результатом отсчеты другой битовой глубины, однако это не является обязательным.
[0164] Пространственное соответствие между изображениями опорного уровня и уточняющего уровня может вычисляться или может быть указано при помощи одного или более так называемых смещений местоположения опорного уровня. В стандарте HEVC смещения местоположения опорного уровня могут быть включаться в набор PPS кодером и декодироваться из набора PPS декодером. Смещения местоположения опорного уровня могут применяться для обеспечения масштабирования ROI, однако этим их применение не ограничивается. Смещения местоположения опорного уровня могут включать один или более смещений масштабированного опорного уровня, смещений опорной области, а также наборы фаз передискретизации. Смещения масштабированного опорного уровня можно рассматривать как элементы, определяющие горизонтальное и вертикальное смещение между отсчетом в текущим изображении, который соположен с отсчетом яркости в нижнем левом углу опорной области в декодированном изображении, в опорном уровне, а также горизонтальное и вертикальное смещение между отсчетом в текущем изображении, который соположен отсчету яркости в нижнем правом углу опорной области в декодированном изображении, в опорном уровне. Альтернативно, смещения масштабированного опорного уровня можно трактовать как элементы, определяющие положение угловых отсчетов опорной области, имеющей повышенное разрешение, относительно соответствующих угловых отсчетов уточняющего уровня. Значения смещения масштабированного опорного уровня могут иметь знак. Смещения масштабированной опорной области можно рассматривать как элементы, определяющие горизонтальное и вертикальное смещение между отсчетом яркости в нижнем левом углу опорной области в декодированном изображении, в опорном уровне, и отсчетом яркости в левом нижнем углу того же декодированного изображения, а также горизонтальное и вертикальное смещение отсчетом яркости в нижнем правом углу опорной области в декодированном изображении, в опорном уровне, и отсчетом яркости в нижнем правом углу того же декодированного изображения. Значения смещения масштабированной опорной области могут иметь знак. Набор фаз передискретизации можно трактовать как элемент, который определяет фазовые смещения, которые применяют в процедуре передискретизации изображений непосредственного опорного уровня. Для компонентов яркости и цветности могут быть заданы различные фазовые смещения.
[0165] Масштабируемость с гибридным кодеком может применяться совместно с другими типами масштабируемости, например, временной масштабируемостью, масштабируемостью качества, пространственного разрешения, многоракурсной масштабируемостью, масштабируемостью с уточнением глубины, вспомогательных изображений, битовой глубины, цветового охвата, формата цветности и/или ROI-масштабируемости. Поскольку масштабируемость с гибридным кодеком может применяться совместно с другими типами масштабируемости, можно считать, что она создает еще одну классификацию типов масштабируемости.
[0166] Указание на применение масштабируемости с гибридным кодеком может выполняться, например, в битовом потоке уточняющего уровня. К примеру, в многоуровневых расширениях HEVC, применение масштабируемости с гибридным кодеком может быть указано в наборе VPS, например, с помощью синтаксического элемента vps_base_layer_internal_flag.
[0167] Термин «уровень» может использоваться в контексте любых типов масштабируемости, включая масштабируемость ракурсов и уточнение глубины. Уточняющий уровень может иметь отношение к любому типу уточнения, например, повышению соотношения сигнал-шум, уточнению пространственного разрешения, многоракурсному уточнению, уточнению глубины, битовой глубины, формата цветности и/или и/или увеличению цветового охвата. Базовый уровень может иметь отношение к любому типу базовой видеопоследовательности, например, к базовому ракурсу, базовому уровню для пространственной масштабируемости или масштабируемости отношения сигнал-шум, или к базовому ракурсу текстуры для видеокодирования с уточнением глубины.
[0168] В некоторых из схем видеокодирования может быть необходимо выравнивание IRAP изображений в различных уровнях таким образом, чтобы либо все изображения в блоке доступа были IRAP-изображениями, либо ни одно изображение в блоке доступа не было IRAP-изображением. В других схемах масштабируемого видеокодирования, например, в многоуровневых расширениях HEVC, может допускаться, чтобы IRAP-изображения были не выровнены, т.е. одно или более изображений в блоке доступа могут быть IRAP-изображениями, тогда как остальные изображения в блоке доступа могут не быть IRAP-изображениями. Масштабируемые битовые потоки могут применяться с использованием IRAP-изображений, или аналогичных структур, местоположения которых не совпадают в различных уровнях, например, в базовом уровне могут присутствовать более часто встречающиеся IRAP-изображения, которые могут иметь меньший размер в кодированном виде, например, из-за меньшего пространственного расширения. В схему видеодекодирования может быть включена процедура, или механизм, поуровневого запуска декодирования. Соответственно, декодер может начинать декодирование битового потока, когда базовый уровень содержит IRAP, и пошагово начинать декодирование остальных слоев, когда они содержат IRAP-изображения. Другими словами, при использовании механизма, или процедуры, поуровневого запуска декодирования декодер постепенно увеличивает количество декодируемых уровней (причем эти уровни могут представлять собой уточнение пространственного разрешения, уровня качества, ракурсы, дополнительные компоненты, такие как глубина, или их комбинацию) по мере декодирования последующих изображений из дополнительных уточняющих уровней в процессе декодирования. Постепенное увеличение количества декодируемых уровней может восприниматься, например, как постепенное повышение качества изображения (в случае масштабируемости качества и пространственной масштабируемости).
[0169] Механизм поуровневого запуска может формировать недоступные изображения для опорных изображений первого изображения, в порядке декодирования, в конкретном уточняющем уровне. Альтернативно, декодер может не выполнять декодирование изображений, предшествующих IRAP-изображению в порядке декодирования, с которого может начинаться декодирование уровня. Эти изображения, которые могут быть отброшены, могут быть явно помечены кодером, или другим элементом, в битовом потоке. Например, для них могут применяться одно или более специальных значений типа NAL-блока. Такие изображения, независимо от того, маркированы ли они явно при помощи типа NAL-блока или выявлены декодером, могут называться межуровневыми пропускаемыми изображениями произвольного доступа. Декодер может не выполнять вывод сформированных недоступных изображений и декодированных CL-RAS-изображений.
[0170] Механизм поуровневого запуска может обеспечивать начало вывода изображений уточняющего уровня с IRAP-изображения в этом уточняющем уровне, когда все опорные уровни для этого уточняющего уровня были инициализированы аналогичным образом, с появлением IRAP-изображений в опорных уровнях. Другими словами, все изображения (внутри одного уровня), предшествующие упомянутому IRAP-изображению в порядке вывода, могут не выводиться из декодера и/или не отображаться. В некоторых случаях декодируемые опережающие изображения, связанные с подобным IRAP-изображением, могут быть выведены декодером, однако остальные изображения, предшествующие этому IRAP-изображению, например, RASL-изображения, связанные с этим IRAP-изображением, могут не выводиться декодером и/или не отображаться.
[0171] Конкатенация кодированных видеоданных, которая может также называться «сплайсингом» (или стыковкой), может выполняться, например, когда кодированные видеопоследовательности объединяют в битовом потоке, подлежащем вещанию или потоковой передаче, или сохранению в запоминающее устройство (большой емкости). К примеру, кодированные видеопоследовательности, представляющие собой рекламу, могут объединяться с кинофильмами или иным, «основным» содержимым.
[0172] Масштабируемые битовые потоки видеоданных могут содержать IRAP-изображения, не выровненные в различных уровнях. Однако представляется удобным иметь возможность конкатенации кодированных видеопоследовательностей, содержащих IRAP-изображение в базовом уровне, в первом блоке доступа, даже если оно не присутствует во всех уровнях. Вторая кодированная видеопоследовательность, которую помещают в стык с первой кодированной последовательностью, должна инициировать процедуру пошагового запуска декодирования. Это необходимо, поскольку первый блок доступа в упомянутой второй кодированной видеопоследовательности может не содержать IRAP-изображения во всех уровнях, и следовательно, некоторые из опорных изображений для не-IRAP-изображений в этом блоке доступа могут быть недоступны (в объединенном битовом потоке), и соответственно, не могут быть декодированы. Элемент, выполняющий конкатенацию кодированных видеопоследовательностей (который далее будет именоваться «сплайсером»), должен, следовательно, изменить первый блок доступа второй кодированной видеопоследовательности таким образом, чтобы он запускал процедуру поуровневого запуска в декодере (или декодерах).
[0173] В синтаксисе битового потока может быть указание (или указания), которое указывают на инициирование процедуры поуровневого запуска. Такое указание (или указания) может формироваться кодером или сплайсером, и может исполняться декодером. Такие указания могут применяться исключительно для конкретного типа (или типов) изображений или конкретных типов NAL-блоков, например, только для IDR-изображений, или, альтернативно, эти указания могут применяться для изображений любых типов. Без потери общности, ниже рассмотрен пример, в котором в заголовок сегмента слайса включено указание, имеющее наименование cross_layer_bla_flag. Нужно понимать, что дополнительно или альтернативно может применяться аналогичное указание, с любым другим наименованием или включенное в любую другую синтаксическую структуру.
[0174] Независимо от указаний, инициирующих процедуру поуровневого запуска, определенные типы NAL-блоков и/или типы изображений также могут инициировать эту процедуру. К примеру, BLA-изображение в базовом уровне может быть триггером для процедуры поуровневого запуска.
[0175] Механизм поуровневого запуска может быть активирован в одном или более из описанных ниже случаев.
[0176] В начале битового потока.
[0177] В начале кодированной видеопоследовательности, с явным управлением, например, когда выполняется запуск или перезапуск процедуры декодирования, например, в ответ на переключение канала вещания или на поиск позиции в файле или в потоке. В качестве входных данных процедура декодирования может принимать переменную, например, имеющую наименование NoClrasOutputFlag, которая может управляться при помощи внешних средств, таких как видеопроигрыватель или аналогичный элемент.
[0178] BLA-изображение базового уровня.
[0179] IDR-изображение базового уровня, которое имеет cross_layer_bla_flag, равный 1. (или IRAP-изображение базового уровня с cross_layer_bla_flag, равным 1).
[0180] CRA-изображение базового уровня с HandleCraAsBlaFlag, равным 1, где переменную HandleCraAsBlaFlag вводит процедура декодирования, и значение этой переменной может управляться при помощи внешних средств.
[0181] Когда механизм поуровневого запуска инициирован, процедура декодирования может соответствующим образом задавать значения переменных. К примеру, переменная NoClrasOutputFlag может быть установлена равной 1.
[0182] Процедура декодирования может быть определена таким образом, чтобы необходимость применения процедуры поуровневого запуска управлялась при помощи некоторой переменной. К примеру, может применяться переменная NoClrasOutputFlag, которая, когда она равна 0, указывает на нормальную операцию декодирования, а когда она равна 1, указывает на операцию поуровневого запуска, или, когда блок доступа, гдк NoClrasOutputFlag задан равным 1, содержит IRAP-изображения во всех уровнях, это указывает на начало декодирования, при котором все уровни декодируют стандартынм образом.
[0183] Когда механизм поуровневого запуска активирован, все изображения в буфере DPB могут быть помечены как «не используемые в качестве опорных». Другими словами, все изображения во всех уровнях могут быть помещены как «не используемые в качестве опорных» и не будут использоваться в качестве опорных для предсказания изображения, инициировавшего механизм поуровневого запуска, а также для всех последующих изображений в порядке декодирования.
[0184] Процедура декодирования для поуровневого запуска может управляться, например, при помощи двух переменных-массивов LayerInitializedFlag[i] и FirstPicInLayerDecodedFlag [i], которые могут иметь записи для каждого из уровней (возможно, включая базовый уровень, а также другие независимые уровни). Когда вызвана процедура поуровневого запуска, например, в ответ на флаг NoClrasOutputFlag, равный 1, эти переменные-массивы могут быть сброшены в заданные по умолчанию значения. К примеру, когда доступны 63 уровня (например, при 6-битном nuh_layer_id), эти переменные могут быть реинициализированы следующим образом: переменную LayerInitializedFlag[i] назначают равной 0 для всех значений i от 0 до 62 включительно, и переменную FirstPicInLayerDecodedFlag[i] назначают равной 0 для всех значений i от 1 до 62 включительно.
[0185] Процедура декодирования может включать описанный ниже (или аналогичный) способ управления выводом RASL-изображений. Когда текущее изображение является IRAP-изображением, применимы описанные ниже условия.
- Если флаг LayerInitializedFlag [nuh_layer_id] равен 0, переменную NoRaslOutputFlag назначают равной 1.
- В противном случае, если имеются внешние средства для назначения HandleCraAsBlaFlag равным соответствующему значению для текущего изображения, переменную HandleCraAsBlaFlag назначают равной значению, предоставленному внешними средствами, а переменную NoRaslOutputFlag назначают равной HandleCraAsBlaFlag.
- В противном случае переменную HandleCraAsBlaFlag назначают равной 0, и переменную NoRaslOutputFlag также назначают равной 0.
[0186] Процедура декодирования может включать описанные ниже шаги обновления флага LayerInitializedFlag в каждом уровне. Когда текущее изображение является IRAP-изображением и выполнено одно из приведенных ниже условий, LayerInitializedFlag [nuh_layer_id] назначают равным 1.
- Идентификатор nuh_layer_id равен 0.
- Флаг LayerInitializedFlag [nuh_layer_id] равен 0, и LayerInitializedFlag [refLayerId] равен 1 для всех значений refLayerId, равных RefLayerId [nuh_layer_id] [j], где j - значение в диапазоне от 0 до NumDirectRefLayersf nuh_layer_id] - 1 включительно.
[0187] Когда флаг FirstPicInLayerDecodedFlag[nuh_layer_id] равен 0, перед декодированием текущего изображения может быть вызвана процедура декодирования для формирования отсутствующих опорных изображений. Процедура декодирования для формирования отсутствующих опорных изображений позволяет сформировать изображения для каждого из изображений в наборе опорных изображений с заданными по умолчанию значениями. Процедура формирования отсутствующих опорных изображений может быть определена, главным образом, для определения синтаксических ограничений по CL-RAS-изображениям, при этом CL-RAS-изображение может быть определено как изображение с nuh_layer_id, равным layer_id, и LayerInitializedFlag [layerId], равным 0. При работе HRD-декодера учет CL-RAS-изображений может быть необходим при вычислении моментов времени поступления и удаления изображений в буфере СРВ. Декодеры могут игнорировать все CL-RAS-изображения, поскольку эти изображения не предназначены для вывода и не влияют на процесс декодирования каких-либо иных изображений, предназначенных для вывода.
[0188] Межуровневые пропускаемые изображения произвольного доступа (CL-RAS) могут обладать следующим свойством: когда происходит вызов механизма поуровневого запуска (например, когда флаг NoClrasOutputFlag равен 1), изображения CL-RAS не выводят, и они могут не быть корректно декодированы, поскольку CL-RAS-изображения могут содержать ссылки на изображения, отсутствующие в битовом потоке. В стандарте может быть определено, что CL-RAS-изображения не могут использоваться в качестве опорных в процедуре декодирования не-CL-RAS-изображений.
[0189] Изображения CL-RAS могут формироваться на стороне декодера. Например, если изображение имеет nuh_layer_id равным layer_id, то может быть сделан вывод о том, что оно является CL-RAS-изображением, когда флаг LayerInitializedFlag [layerId] равен 0. CL-RAS-изображение может быть определено как изображение с nuh_layer_id, равным layer_id, то есть, для которого LayerInitializedFlag[layerId] равен 0, когда началось декодирование кодированного изображения с nuh_layer_id, большим 0.
[0190] Дерево уровней может быть определено как набор уровней, в котором каждый уровень является прямо или косвенно предсказываемым или является прямым или косвенным опорным уровнем для по меньшей мере одного другого уровня в том же наборе, и при этом ни один уровень вне данного набора уровней не уровень является прямо или косвенно предсказываемым и не является прямым или косвенным опорным уровнем для какого-либо уровня в данном наборе уровней. Прямо предсказываемый уровень может быть определен как уровень, для которого другой уровень является прямым опорным уровнем. Прямой опорный уровень может быть определен как уровень, который может быть использован для межуровневого предсказания другого уровня, для которого этот уровень является прямым опорным уровнем. Косвенно предсказываемый уровень может быть определен как уровень, для которого другой уровень является косвенным опорным уровнем. Косвенный опорный уровень может быть определен как уровень, который не является прямым опорным уровнем для некоторого второго уровня, однако является прямым опорным уровнем для третьего уровня, являющегося прямым опорным уровнем или косвенным опорным уровнем для прямого опорного уровня второго уровня, для которого упомянутый уровень является косвенным опорным уровнем. Независимый уровень может быть определен как уровень, который не имеет прямых опорных уровней. Базовый уровень может быть определен как уровень, который имеет минимально возможное значение идентификатора уровня. К примеру, базовый уровень в стандарте HEVC может быть определен как уровень с nuh_layer_id, равным 0. Независимый небазовый уровень может быть определен как уровень, который является независимым, но не является базовым.
[0191] Альтернативно, дерево уровней может быть определено как набор уровней, в котором каждый уровень входит в отношение межуровневого предсказания по меньшей мере с одним другим уровнем в этом же дереве уровней, и при этом ни один уровень вне дерева уровней не входит в отношение межуровневого предсказания с каким-либо уровнем в дереве подуровней.
[0192] Поддерево уровней может быть определено как подмножество уровней дерева уровней, включающее все опорные уровни для уровней внутри подмножества.
[0193] Было предложено, чтобы в битовом потоке наличие базового уровня не являлось обязательным (то есть, в многоуровневых расширениях HEVC, уровня с nuh_layer_id, равным 0), либо внутри битового потока, либо передаваемого внешним образом (в случае масштабируемости с гибридным кодеком), однако при этом самый нижний уровень должен быть независимым небазовым уровнем. Нужно понимать, что когда в примерах и вариантах осуществления настоящего изобретения упоминается базовый уровень или уровень с nuh_layer_id, равным 0, такие примеры или варианты осуществления настоящего изобретения могу быть также применимы, или реализованы, для независимого небазового уровня или для уровня с nuh_layer_id, соответствующим независимому небазовому уровню. Базовым уровнем битового потока может считаться уровень с наименьшим nuh_layer_id из присутствующих в этом битовом потоке.
[0194] В стандарте HEVC флаги VPS, vps_base_layer_internal_flag и vps_base_layer_available_flag, могут применяться для указания на присутствие и доступность базового уровня следующим образом: если vps_base_layer_internal_flag равен 1, и vps_base_layer_available_flag равен 1, то в битовом потоке присутствует базовый уровень; в иных случаях, если vps_base_layer_internal_flag равен 0, а vps_base_layer_available_flag равен 1, базовый уровень предоставляют в процедуру декодирования многоуровневого расширения HEVC с помощью внешних средств, то есть в процедуру декодирования многоуровневого расширения HEVC предоставляют декодированные изображения базового уровня, а также некоторые переменные и синтаксические элементы для декодированных изображений базового уровня; иначе, если vps_base_layer_internal_flag равен 1, а vps_base_layer_available_flag равен 0, базовый уровень недоступен (отсутствует в битовом потоке и не предоставляется при помощи внешних средстве), однако набор VPS содержит информацию о базовом уровне, как если бы он присутствовал в битовом потоке; В остальных случаях (vps_base_layer_internal_flag равен 0, и vps_base_layer_available_flag равен 0) базовый уровень недоступен (отсутствует в битовом потоке и не предоставляется при помощи внешних средстве), однако набор VPS содержит информацию о базовом уровне, как если бы он был предоставлен при помощи внешних средств.
[0195] В стандарт кодирования могут быть включены процедуры извлечения битовых подпотоков, например, такие процедуры определены в стандартах SVC, MVC и HEVC. Под процедурой извлечения битового подтопотка понимают преобразование битового потока, как правило при помощи удаления NAL-блоков, с получением битового подпотока. Такой битовый подпоток остается соответствующим стандарту. Например, в стандарте HEVC битовый поток, формируемый исключением всех NAL-блоков VCL, чей Temporalld больше выбранного значения, и включением всех остальных NAL-блоков VCL, остается соответствующим стандарту.
[0196] Стандарт HEVC (во второй его версии) включает три процедуры извлечения битового подпотока. Процедура извлечения битового подпотока, определенная в параграфе 10 стандарта HEVC идентична процедуре по параграфу F.10.1 за исключением того, что требования совместимости битового потока для результирующих подпотоков в параграфе F.10.1 являются менее строгими, благодаря чему она может использоваться для битовых потоков с внешним базовым уровнем (в этом случае vps_base_layer_internal_flag) или без базового уровня (в этом случае vps_base_layer_available_flag равен 0). NAL-блоки VCL с nuh_layer_id, равным 0, отсутствуют в битовом потоке, когда vps_base_layer_available_flag равен 0, а в качестве базового уровня для семантики и/или процедуры декодирования может использоваться уровень с наименьшим значением nuh_layer_id. Параграф F.10.3 стандарта HEVC (версия 2) определяет процедуру извлечения битового подпотока для наборов дополнительных уровней, в результате чего может быть получен битовый подпоток, не имеющий базового уровня. Все три процедуры извлечения битового подпотока функционируют сходным образом: процедура извлечения битового подпотока принимает в качестве входных данных Temporalid и/или список значений nuh_layer_id и выдает битовый подпоток (называемый также подмножеством битового потока), полученный при помощи удаления из битового потока всех NAL-блоков с Temporalid большим, чем значение поданного на вход Temporalid, или значение nuh_layer_id которых не находится среди значений во входном списке значений nuh_layer_id. Процедура по параграфу F.10.3 обрабатывает NAL-блоки некоторых типов, имеющие nuh_layer_id, равным 0, особым образом, и при этом также устанавливает значение флага vps_base_layer_available_flag в наборах VPS. Процедура по параграфу F.10.3 может быть определена следующим образом:
- выходной битовый поток outBitstream назначают идентичным выходному битовому потоку inBitstream;
- NAL-блоки с nal_unit_type, не равным VPS_NUT, SPS_NUT, PPS_NUT, EOS_NUT и EOB_NUT, а также с nuh_layer_id, не равным ни одному из значений во входном списке nuh_layer_id, layerIdListTarget, удаляют из потока outBitstream.
- NAL-блоки с nal_unit_type, равным VPS_NUT, SPS_NUT, PPS_NUT или EOS_NUT, с nuh_layer_id, не равным 0 или любому значению из layerIdListTarget удаляют из потока outBitstream;
- все NAL-блоки с Temporalld большим, чем входной Temporalld, tldTarget, удаляют из потока outBitstream;
- флаг vps_base_layer_available_flag в каждом наборе VPS устанавливают равным 0.
[0197] В стандарте или системе кодирования может упоминаться такое выражение как «рабочая точка» (operation point), или аналогичный термин, который может указывать на масштабируемые уровни и/или подуровни, для которых выполняется декодирование и/или которые могут быть связаны с битовым подпотоком, включающим декодируемые масштабируемые уровни и/или подуровни. Ниже приведены несколько неограничивающих определений рабочей точки.
[0198] В стандарте HEVC рабочая точка определена как битовый поток, созданный на основе другого битового потока при помощи процедуры извлечения битового подпотока, входными данными которой являются упомянутый другой битовый поток, целевой наивысший Temporalld, и список идентификаторов целевых уровней.
[0199] Для этих наборов уровней в наборе VPS стандарта HEVC определены наборы уровней и HRD-параметры. Набор уровней может использоваться в качестве списка идентификаторов целевых уровней в процедуре извлечения подпотока. В стандарте HEVC набор уровней может быть определен как набор уровней, представленных в битовом потоке, который был создан из другого битового потока в результате выполнения процедуры извлечения битового подпотока над упомянутым другим битовом потоком, входными данными которой являются: наивысшее значение Temporalid, равное 6, и список целевых идентификаторов уровней, равный списку идентификаторов уровней, связанному с набором уровней.
[0200] Набор дополнительных уровней может быть определен как набор уровней битового потока (с набором уровней), состоящих из одного или более небазовых поддеревьев уровней. Набор дополнительных уровней можно понимать как набор уровней, не зависящих от уровней, которые были исключены из набора дополнительных уровней. В стандарте HEVC синтаксис набора VPS, определенный в первой версии стандарта, не подразумевает указаний на набор дополнительных уровней, т.е. в наборах уровней, указанных в VPS согласно первой версии стандарта HEVC, должен присутствовать базовый уровень. Синтаксис расширения VPS, определенный во второй версии HEVC, дает возможность указывать на наборы дополнительных уровней.
[0201] Наборы уровней и наборы дополнительных уровней, когда необходимо их использование, например, при вычислении и указании на наборы выходных уровней, могут обрабатываться эквивалентно. Выражение «набор уровней», если обратное не следует из контекста, в приведенном ниже описании можно трактовать как собирательное понятие, охватывающее термины «набор уровней» и «набор дополнительных уровней», рассмотренные выше.
[0202] Выходной уровень может быть определен как уровень, декодированные изображения которого выводятся из процедуры декодирования. Выходные уровни могут зависеть от того, какое из подмножеств многоуровневого битового потока декодируют. Изображения, выводимые из процедуры декодирования, могут быть затем обработаны, например, может выполняться преобразование цветового пространства из цветового пространства YUV в RGB, после чего они могут быть отображены. Однако дополнительная обработка и/или отображение могут рассматриваться как процедуры, внешние по отношению к декодеру и/или к процедуре декодирования, и могут не выполняться.
[0203] В битовых потоках многоуровневого видео определение рабочей точки может включать анализ набора целевых выходных уровней. Например, рабочая точка определена как битовый поток, созданный на основе другого битового потока при помощи процедуры извлечения битового подпотока, входными данными которой являются упомянутый другой битовый поток, целевой наивысший временной подуровень (например, наивысший целевой Temporalld), и список идентификаторов целевых уровней, и который связан с набором целевых выходных уровней. Альтернативно, для обозначения рабочей точки и связанного с ней набора выходных уровней, может использоваться другой термин, например, «выходная рабочая точка». К примеру, в стандарте SHVC и MV-HEVC выходная рабочая точка определена как битовый поток, созданный на основе входного битового потока при помощи процедуры извлечения битового подпотока, входными данными которой являются входной битовый поток, целевой наивысший Temporalld, и список идентификаторов целевых уровней, и который связан с набором целевых выходных уровней.
[0204] Набор выходных уровней (output layer set, OLS) может быть определен как набор уровней, состоящий из уровней из одного или более заданных наборов уровней, при этом для одного или более уровней в этом наборе уровней указано, что они являются выходными уровнями. Выходной уровень может быть определен как уровень из набора выходных уровней, который выводят при работе декодера и/или HRD-декодера с использованием данного набора выходных уровней в качестве целевого набора выходных уровней. В стандарте MV-HEVC/SHVC переменная TargetOlsIdx может определять, какой из наборов выходных уровней является целевым, при помощи назначения TargetOlsIdx равной порядковому номеру набора выходных уровней, который является целевым набором выходных уровней. Целевой набор выходных уровней может быть определен как набор выходных уровней, порядковый номер которого равен TargetOlsIdx. Значение TargetOlsIdx может назначаться, например, HRD-декодером, и/или может назначаться при помощи внешних средств, к примеру, проигрывателем или аналогичным элементом, при помощи интерфейса, обеспеченного декодером. В стандарте MV-HEVC/SHVC выходной уровень может быть определен как уровень из набора выходных уровней, который выводят, когда TargetOlsIdx равен порядковому номеру набора выходных уровней.
[0205] Обязательный уровень может быть определен как уровень в выходной рабочей точке, связанной с набором выходных уровней, при этом упомянутый уровень может представлять собой выходной уровень в наборе выходных уровней или опорный уровень для выходного уровня в наборе выходных уровней.
[0206] В MV-HEVC/SHVC возможно вычисление «заданного по умолчанию» набора выходных уровней для каждого из наборов уровней, определенных в наборе VPS, с использованием специального механизма или при помощи явного указания на выходные уровни. Могут быть определены два специальных механизма: в наборе VPS может быть определено, что каждый уровень является выходным уровнем, или что только наивысший уровень является выходным уровнем в «заданном по умолчанию» наборе выходных уровней. Уровни вспомогательных изображений могут быть исключены из рассмотрения при определении, является ли некоторый уровень выходным при помощи описанных выше конкретных механизмов. При этом для «заданных по умолчанию» наборов выходных уровней расширение VPS позволяет задать дополнительные наборы выходных уровней, в для выбранных выходных уровней указывают на то, что они являются выходными.
[0207] Ссылка на конкретный набор уровней, набор дополнительных уровней или набор выходных уровней может осуществляться при помощи порядкового номера, при этом порядковые номера могут назначаться согласно порядку, в котором наборы уровней, наборы дополнительных уровней и наборы выходных уровней перечислены в наборе VPS. Для наборов выходных уровней может применяться одно пространство порядковых номеров вместе с наборами уровней и наборами дополнительных уровней, поэтому «заданные по умолчанию» наборы выходных уровней для каждого набора уровней и дополнительного набора уровней имеют порядковый номер соответствующего набора уровней или дополнительного набора уровней, а для наборов дополнительных выходных уровней используют значения порядковых номеров, находящиеся за пределами значений для наборов уровней или наборов дополнительных уровней.
[0208] В передатчике, шлюзе, или аналогичном узле, могут выбираться передаваемые уровни и/или подуровни масштабируемого битового потока видеоинформации. «Извлечение уровней» или «переключение уровней с понижением качества» может означать передачу меньшего количества уровней, чем доступно в битовом потоке, принятом передатчиком, шлюзом или аналогичным узлом. Под «переключением уровней с повышением качества» можно понимать как передачу дополнительного уровня (или уровней), по сравнению с передаваемыми до переключения уровней с повышением передатчиком, шлюзом или аналогичным узлом, т.е. перезапуск передачи одного или более уровней, передача которых была приостановлена ранее после переключения уровней с понижением. Аналогично переключению уровней с повышением и/или понижением качества передатчик, шлюз или аналогичный узел может выполнять переключение временных подуровней с повышением и/или с понижением качества. Передатчик, шлюз или аналогичный узел, могут также выполнять одновременно переключение как уровней, так и подуровней с повышением и/или с понижением качества. Переключение уровней и подуровней с повышением и/или с понижением качества может выполняться в одном блоке доступа, или аналогичном элементе, (т.е. практически в один момент времени), или может выполняться в различных блоках доступа, или аналогичных элементах (т.е. по существу в различные моменты времени).
[0209] Постоянный набор выходных уровней хорошо подходит для сценариев применения и битовых потоков, в которых, в каждом блоке доступа, наивысший уровень остается неизменным, однако при этом не поддерживаются сценарии применения в которых наивысший уровень меняется при переходе между блоками доступа. Соответственно, было предложено, чтобы кодеры могли определять использование альтернативных выходных уровней внутри битового потока, и при этом, если будет указано на необходимость применения альтернативных выходных уровней, декодеры должны выводить декодированное изображение из альтернативного выходного уровня, когда отсутствует изображение в выходном уровне внутри того же блока доступа. Существуют несколько возможных способов указания на альтернативные выходные уровни. Например, каждый из выходных уровней в наборе выходных уровней может быть связан с минимальным альтернативным выходным уровнем, и специальный синтаксический элемент (или элементы), относящийся к выходному уровню, может использоваться для указания на альтернативный выходной уровень (или уровни) для всех выходных уровней. Альтернативно, применение механизма альтернативных выходных уровней может быть ограничено только наборами выходных уровней, содержащих ровно один выходной уровень, и при этом специальный синтаксический элемент (или элементы), относящийся к выходному уровню, может использоваться для указания на альтернативный выходного уровень (или уровни) для этого набора выходных уровней. Альтернативно, как это определено в стандарте HEVC, применение механизма альтернативных выходных уровней может быть ограничено только наборами выходных уровней, содержащих ровно один выходной уровень, и при этом специальный флаг ((alt_output_layer_flag[olsIdx] в стандарте HEVC), относящийся к каждому выходному уровню, может использоваться для указания на то, что любой прямой или косвенный опорный уровень для выходного уровня может служить в качества альтернативного выходного уровня для этого набора выходных уровней. Альтернативно, применение механизма альтернативных выходных уровней может быть ограничено только битовыми потоками или последовательностями CVS, в которых все указанные наборы выходных уровней содержат ровно один выходной уровень, и при этом указание на альтернативный выходной уровень (или уровни) может выполняться при помощи синтаксического элемента (или элементов), относящихся к битовому потоку или CVS-последовательности. Указание на альтернативный выходной уровень (или уровни) может быть выполнено, например, при помощи перечисления, к примеру, в наборе VPS, альтернативных выходных уровней (к примеру, с помощью их идентификаторов уровней или порядковых номеров в списке прямых или косвенных опорных уровней), при помощи указания на минимальный альтернативный выходной уровень (к примеру, с помощью его идентификатора уровня или порядкового номера в списке прямых или косвенных опорных уровней) или при помощи флага, указывающего на то, что какой-либо из прямых или косвенных опорных уровней является альтернативным выходным уровнем. Если разрешено использование более чем одного альтернативного выходного уровня, может быть указано на то, что выводу подлежит первое прямое или косвенное опорное изображение межуровневого предсказания в блоке доступа, в порядке убывания идентификаторов уровней, вплоть до указанного минимального альтернативного выходного уровня.
[0210] Управление выводом изображений при масштабируемом кодировании может выполняться, например, описанным ниже образом. Для каждого изображения в процедуре декодирования сначала вычисляют PicOutputFlag, аналогично битовому потоку с единственным уровнем. Например, при вычислении PicOutputFlag может учитываться pic_output_flag, включенный в битовый поток для изображения. После декодирования блока доступа, для обновления PicOutputFlag, для каждого изображения в блоке доступа, используют выходные уровни и опционально присутствующие альтернативные выходные уровни.
[0211] Когда в битовом потоке указано на применение механизма альтернативных выходных уровней, процедура декодирования, в отношении управления выводом декодированных изображений из процедуры декодирования, может функционировать описанным ниже образом. В данном примере подразумевается, что применяется декодирование HEVC, а флаг alt_output_layer_flag[TargetOlsIdx] равен 1, однако процедура декодирования может быть реализована аналогичным образом и с другими кодеками. Когда декодирование изображения завершено, значение переменной PicOutputFlag для изображения может быть задано следующим образом:
[0212] если флаг LayerInitializedFlag [nuh_layer_id] равен 0, переменную PicOutputFlag назначают равной 0;
[0213] в противном случае, если текущее изображение является RASL-изобаржением и флаг NoRaslOutputFlag соответствующего IRAP-изображения равен 1, PicOutputFlag назначают равным 0;
[0214] В остальных случаях PicOutputFlag устанавливают равным pic_output_flag, где pic_output_flag - это синтаксический элемент, связанный с изображением, который, например, передают в заголовке кодированных слайсов изображения. В дополнение, когда завершено декодирование последнего изображения блока доступа, PicOutputFlag для каждого декодированного изображения этого блока доступа может быть обновлен следующим образом (перед декодированием следующего изображения):
[0215] если alt_output_layer_flag[TargetOlsIdx] равен 1, и текущий блок доступа либо не содержит изображений в выходном уровне, либо содержит в выходном уровне изображение, которое имеет PicOutputFlag, равный 0, применяют следующую последовательность шагов:
[0216] - список nonOutputLayerPictures формируют как список из изображений блока доступа с PicOutputFlag, равным 1, и со значениями nuh_layer_id, находящимися среди значений nuh_layer_id опорного уровня этого выходного уровня;
[0217] - когда список nonOutputLayerPictures не пуст, изображение с наивысшим значением nuh_layer_id в списке nonOutputLayerPictures удаляют из списка nonOutputLayerPictures;
[0218] - флаг PicOutputFlag для каждого изображения, включенного в список nonOutputLayerPictures, назначают равным 0;
[0219] В остальных случаях флаг PicOutputFlag для изображений, не относящихся к выходному уровню, назначают равным 0.
[0220] Согласно предыдущему параграфу, когда применяют механизм альтернативных выходных уровней, декодирование блока доступа не обязательно должно быть завершено, чтобы определить, какие из декодированных изображений блока доступа будут выведены из процедуры декодирования.
[0221] Уникальный идентификатор ресурса (uniform resource identifier, URI) может быть определен как строка символов, используемая для идентификации имени ресурса. Такой идентификатор дает возможность взаимодействовать с представлениями ресурса по сети при помощи специальных протоколов. URI определяют при помощи схемы, которая задает конкретный синтаксис и соответствующий для URI протокол. Унифицированный локатор ресурса (uniform resource locator, URL) и унифицированное имя ресурса (uniform resource name, URN) являются частными случаями идентификатора URI. URL-локатор может быть определен как идентификатор URI, который идентифицирует веб-ресурс и описывает средства для работы с представлением ресурса или средства его получения, описывая при этом как основной механизм доступа, так и местоположение в сети. Имя URN может быть определено как URI-идентификатор, который идентифицирует ресурс по имени в конкретном пространстве имен. Имя URN может применяться для идентификации ресурсов, без указания на его местоположения или способ доступа к нему.
[0222] Существующие стандарты для форматов медиафайлов включают базовый формат медиафайла стандарта ISO (ISO/IEC 14496-12, который имеет аббревиатуру ISOBMFF), формат файлов MPEG-4 (ISO/IEC 14496-14, также называемый форматом МР4), формат файлов для видеоданных, структурированных NAL-блоками (ISO/IEC 14496-15) и формат файлов 3GPP GPP (3GPP GPP TS 26.244, также известный под называнием формата 3GP). Стандарт ISO/IEC 14496-15 определяет хранение битовых потоков стандартов H.264/AVC и/или HEVC, и/или их расширений, в файлах, отвечающих формату ISOBMFF. Формат файлов ISO является базовым для получения всех упомянутых выше форматов файла (за исключением собственно формата файлов ISO). Эти форматы файлов (включая собственно формат файлов ISO) называют семейством форматов файлов ISO.
[0223] Ниже будут описаны некоторые из понятий, структур и спецификаций ISOBMFF, в качестве примера формата контейнерного файла, на основе которого могут быть реализованы варианты осуществления настоящего изобретения. Аспекты настоящего изобретения не ограничены форматом ISOBMFF, напротив, данное описание приведено исключительно в качестве базы для частичной или полной реализации настоящего изобретения.
[0224] Одна из элементарных единиц построения базового формата медиафайлов ISO называется «боксом» (box). Каждый бокс может иметь заголовок и полезную нагрузку. В заголовке бокса указывают тип бокса и размер бокса, выраженный в байтах. Бокс может включать внутри себя другие боксы, при этом в формате файлов ISO определены типы боксов, которые могут находиться внутри бокса каждого типа. При этом, также, некоторые боксы должны присутствовать в каждом файле обязательно, тогда как другие боксы могут быть опциональными. В дополнение, для боксов некоторого типа, допустимо наличие нескольких экземпляров бокса в одном файле. Таким образом, в базовом формате медиафайлов ISO по существу определена иерархическая структура боксов. Каждый бокс в базовом медиафайле ISO может быть идентифицирован четырехзначным кодом (four character code, 4СС). В заголовке может быть предоставлена информация о типе и размере бокса.
[0225] В соответствии с семейством форматов файлов ISO файл может включать мультимедийные данные и метаданные, которые могут быть размещены в различных боксах. В одном из примеров реализации мультимедийные данные могут размещаться в боксе метаданных (mdat), а для размещения метаданных может использоваться бокс фильма (moov). В некоторых случаях для того, чтобы файл мог быть обработан, обязательно должны присутствовать оба указанных бокса, бокс mdat и бокс moov. Бокс фильма (moov) может содержать один или несколько треков («дорожек»), при этом каждый трек занимает один соответствующий бокс трека (trak). Каждый трек связан с указателем, идентифицируемым четырехсимвольным кодом, который определяет тип трека. Треки видео-, аудиопоследовательности и последовательности изображений могут называться мультимедийными треками, при этом они содержат элементарный поток мультимедийных данных. Другие типы треков включают треки указаний и треки синхронизированных метаданных. Треки содержат сэмплы, например, аудио- или видеокадры. Мультимедийный трек представляет собой сэмплы (которые могут также называться мультимедийными сэмплами), отформатированные согласно формату сжатия мультимедийных данных (и правилам его инкапсуляции в базовый формат медиафайлов ISO). Мультимедийный трек представляет собой сэмплы указаний, содержащие инструкции по формированию пакетов для передачи по указанному протоколу связи. Такие инструкции могут содержать указания по формированию заголовка пакета и указания по формированию полезной нагрузки пакета. При формировании полезной нагрузки пакета могут осуществляться ссылки на данные, расположенные в других треках или в других элементах. То есть, например, могут выполняться указания на данные, размещенные в других треках или элементах, при помощи ссылки, указывающей, какой фрагмент данных в конкретном треке или в конкретном элементе должен, согласно инструкциям, быть скопирован в пакет в ходе процедуры формирования пакета. Трек синхронизированных метаданных может ссылаться на сэмплы, описывающие мультимедийные сэмплы или сэмплы указаний, на которые осуществлена ссылка. Для представления одного типа мультимедийных данных может быть выбран, как правило, один мультимедийный трек. Сэмплы в треке быть явным образом связаны с номерами сэмплов, которые увеличиваются, например, с единичным шагом в указанном порядке декодирования сэмплов. Первый сэмпл трека может быть связан номером сэмпла, равным 1.
[0226] Бокс 'trak' содержит бокс таблицы сэмплов (Sample Table). Бокс таблицы сэмплов содержит, например, индексацию (набор указателей) времени и данных для медиасэмплов в треке. Бокс таблицы сэмплов должен содержать бокс с описанием сэмпла (Sample Description). Бокс с описанием сэмпла содержит поле счетчика записей, которое определяет количество записей с информацией о сэмплах, содержащихся в боксе. Бокс с описанием сэмплов должен содержать по меньшей мере одну запись с информацией о сэмплах. Формат записи с информацией о сэмплах зависит от типа обработчика для трека. В записях с информацией о сэмплах приведена подробная информация о применяемом типе кодирования и вся инициализационная информация, необходимая для такого кодирования.
[0227] Базовый формат медиафайлов ISO не ограничивает презентацию одним файлом. Фактически, презентация может храниться в нескольких файлах. В качестве примера, один из файлов может включать метаданные всей презентации, и соответственно, содержать также и все мультимедийные данные, в результате чего презентация становится автономной (самодостаточной). При использовании (если требуется) других файлов им не обязательно иметь базовый формат медиафайлов ISO. Другие файлы используются для хранения мультимедийных данных, при этом они могут также содержать неиспользуемые мультимедийные данные или другую информацию. Базовый формат медиафайлов ISO определяет только структуру файла презентации. Базовый формат медиафайлов ISO и его производные ограничивают формат файлов с мультимедийными данными только в том отношении, что форматирование мультимедийных данных в этих файлах должно соответствовать спецификации базового формата медиафайлов ISO или производных от него форматов.
[0228] Возможность ссылки на внешние файлы может быть реализована при помощи ссылок на данные. В некоторых из примеров в состав каждого трека включают бокс с описанием сэмпла, в котором может присутствовать список записей с информацией о сэмплах, каждая из которых предоставляет информацию об используемом типе кодирования, а также всю информацию об инициализации, необходимой для такого кодирования. Для всех сэмплов так называемого «чанка» и для всех сэмплов фрагмента трека может использоваться одна запись с информацией о сэмплах. Чанк (chunk) может быть определен как непрерывный набор смежных сэмплов в одном треке. Бокс ссылок на данные (Data Reference, dref), который также может входить в каждый трек, может определять пронумерованный список унифицированных локаторов ресурсов (uniform resource locators, URL), унифицированных имен ресурсов (uniform resource names, URN) и/или рекурсивные ссылки на файл, содержащий метаданные. Запись с информацией о сэмплах может указывать на один из порядковых номеров в боксе ссылок на данные, благодаря чему осуществляется указание на файл, содержащий сэмплы соответствующего чанка, или фрагмента трека.
[0229] Фрагменты фильма могут использоваться, например, при записи содержимого в файлы ISO, к примеру, чтобы исключить потери данных в случае сбоя в приложении записи, нехватки объема памяти или возникновения других аварийных ситуаций. Без фрагментов фильма могут происходить потери данных, поскольку форматы файлов, как правило, требуют, чтобы все метаданные, например, бокс фильма, были записаны в одной непрерывной области файла. Также, при записи файла, может возникать нехватка объема памяти (например, памяти с произвольным доступом, RAM) для буферизации бокса фильма под доступный размер хранилища, а повторное вычисление содержимого бокса фильма при закрытии фильма может быть слишком медленным. Также, при этом, фрагменты фильма позволяют обеспечить одновременную запись и воспроизведение файла с использованием обычного анализатора файлов ISO. Также, при применении фрагментов фильма может требоваться меньшая длительность начальной буферизации при постепенной подгрузке файла, например, при одновременном приеме и воспроизведении файла, и при этом первый бокс фильма может быть меньше, по сравнению с файлом с тем же мультимедийными данными, но структурированным без использования фрагментов фильма.
[0230] Функциональность фрагментов фильма может обеспечивать возможность удобного разбиения метаданных, которые в противном случае размещались в боксе фильма с разбиением на несколько частей. Каждая часть может соответствовать определенному периоду времени трека. Другими словами, функциональность фрагментов фильма может давать возможность чередования метаданных и мультимедийных данных в файле. Следовательно, размер бокса фильма может быть ограничен и могут быть реализованы описанные выше сценарии применения.
[0231] В некоторых из примеров мультимедийные сэмплы для фрагментов фильма могут располагаться в боксе mdat, как обычно, если они находятся в том же файле, что и бокс moov. Однако для метаданных фрагментов фильма может присутствовать бокс moof. Бокс moof может включать информацию для определенного интервала времени воспроизведения, который ранее был в боксе moov. Бокс moov может при этом сам являться полноценным «фильмом», однако при этом он может включать в дополнение бокс mvex, который указывает на то, какие фрагменты фильма следуют за ним в этом файле. Фрагменты фильма позволяют увеличить временную длительность презентации, связанной с боксом moov.
[0232] Внутри фрагмента фильма может присутствовать набор сегментов трека, включающий любое количество (ноль и более) треков. Фрагменты трека, в свою очередь, могут включать в себя любое количество (ноль и более) отрезков (run) трека, каждый из которых (document) представляет собой непрерывную последовательность смежных сэмплов в этом треке. Внутри этих структур присутствует множество опциональных полей, которые могут иметь заданные по умолчанию значения. Метаданные, которые могут входить в бокс moof, могут быть ограничены подмножеством метаданных, допускающих включение в бокс moov, и в некоторых случаях могут кодироваться отличающимся образом. Подробная информация о боксах, которые могут входить в состав бокса moof приведена в спецификации базового формата медиафайлов ISO. Автономный (самодостаточный) фрагмент фильма может быть определен как фрагмент, состоящий из бокса moof и бокса mdat, которые следуют друг за другом в порядке файла, и в котором бокс mdat содержит сэмплы фрагмента фильма (метаданные для которого содержит бокс moof) и не содержит сэмплов каких-либо других фрагментов фильма (т.е. никаких других боксов moof).
[0233] Базовый формат медиафайлов ISO содержит три механизма для синхронизированных метаданных, которые могут быть связаны с конкретными сэмплами: группы сэмплов, треки синхронизированных метаданных и вспомогательная информация о сэмплах. Производные спецификации могут предоставлять аналогичную функциональность с использованием одного или более из этих трех механизмов.
[0234] Группирование сэмплов в базовом формате медиафайлов ISO и в производных от него форматах, таких как формат файлов AVC или формат файлов SVC, может быть определено как назначение каждого сэмпла в треке в качестве члена одной из групп сэмплов на основе критерия группирования. Группа сэмплов при группировании сэмплов не ограничена непрерывной последовательностью смежных сэмплов и может включать содержать сэмплы, не являющиеся соседними друг с другом. Поскольку сэмплы в треке могут группироваться более чем одним способом, каждая группа сэмплов может иметь поле типа, в котором указывают тип группирования. Группы сэмплов могут представлены двумя взаимосвязанными структурами данных: (1) бокс SampleToGroup (соответствия сэмпл-группа) (sgpd), который отражает назначения сэмплов в группы сэмплов; и (2) бокс SampleGroupDescription (описание группы сэмплов) (sgpd), который содержит запись группы сэмплов, описывающую свойства группы, для каждой группы сэмплов. Могут присутствовать несколько экземпляров боксов SampleToGroup и SampleGroupDescription для различных критериев группирования. Они могут отличаться полем типа, которое используют для указания на тип группирования.
[0235] Формат файлов Matroska позволяет хранить (без ограничения перечисленным) любые видео-, аудиотреки, треки изображений или субтитров в одном файле. Расширения файлов Matroska включают: .mkv для видеофайлов (с субтитрами и звуком), .mk3d для стереоскопического видео, .mka для файлов, содержащих только аудиоинформацию, и .mks для файлов, содержащих только субтитры. Формат Matroska может быть использован как основа для производных форматов файлов, таких как WebM.
[0236] В качестве базы для формата Matroska использован расширяемый двоичный метаязык (Extensible Binary Meta Language, EBML). Язык EBML представляет собой двоичный формат с выравниванием по октетам (байтам), вдохновленный принципами языка XML. Язык EBML - это обобщенное описание метода разметки двоичных данных. Файл Matroska состоит из «элементов» (Elements), которые составляют «документ» на языке EBML. Элементы содержат идентификатор элемента, дескриптор размера элемента и собственно двоичные данные. Элементы могут быть вложенными.
[0237] Сегментный элемент (Segment Element) в формате Matroska - это контейнер для других элементов верхнего уровня (уровня 1). Файл Matroska может содержать (не будучи при этом им ограниченным) один сегмент (Segment). Мультимедийные данные в файлах Matroska организованы в «кластеры» (Clusters) или «кластерные элементы» (Cluster Elements), каждый из которых, как правило, содержит несколько секунд мультимедийных данных. Каждый кластер содержит элементы BlockGroup («группа блоков»), которые, в свою очередь, содержат «блочные элементы» (Block Elements). Элементы-подсказки (Cues Element) содержат метаданные, которые могут быть вспомогательным средством при произвольном доступе или поиске и могут содержать файловые указатели на местоположение в файле или соответствующие временные метки для точек поиска.
[0238] Транспортные форматы файлов, или форматы сегментов, которые могут применяться, могут быть приблизительно разделены на различные классы. В одном из примеров таких классов, передаваемые файлы могут отвечать существующему формату файлов, который допускает применение для произведения в реальном времени. К примеру, передаваемые файлы могут соответствовать базовому формату медиафайлов ISO или профилю прогрессивной загрузки формата файлов консорциума третьего поколения (Third Generation Partnership Project, 3GPP). В другом примере таких классов, передаваемые файлы могут быть аналогичны файлам, имеющим существующий формат файлов, которые используют для воспроизведения в режиме реального времени. К примеру, передаваемые файлы могут быть фрагментами серверного файла, которые могут не быть автономными и не допускать воспроизведения по отдельности. При другом подходе передаваемые файлы могут отвечать существующему формату файлов, который допускает применение для произведения в реальном времени, однако при этом файлы могут передаваться лишь частично и поэтому для воспроизведения подобных файлов может быть необходима информация о частичных файлах и возможность их администрирования.
[0239] Многоцелевое расширение электронной почты (Multipurpose Internet Mail Extension, MIME) - это расширение протокола электронной почты, обеспечивающее возможность передачи и приема различных типов файлов данных по сети Интернет, например, видео- и аудиофайлов, изображений, программного обеспечения и т.п. Тип интернет-медиаданных (MIME-тип) - это идентификатор, который используют в сети Интернет для указания на тип данных, содержащихся в файле. Подобные типы интернет-медиаданных называют также типами контента. Существуют несколько комбинаций типов и подтипов MIME, способные содержать различные форматы медиаданных. Информация о типе контента может быть включена, передающей стороной, в заголовок MIME, в начале передачи медиаданных. Приемная сторона, соответственно, для определения, могут ли конкретные элементы быть отображены при помощи доступного набора кодеков, должна проанализировать информацию о медиаконтенте. Особенно актуальна возможность определить, просто по типу контента, может ли этот контент быть отображен, когда ресурсы оконечной системы ограничены, или когда соединение с оконечной системой имеет ограниченную пропускную способность.
[0240] В документе RFC 6381 определены два параметра, «кодеки» ('codecs') и «профили» ('profiles'), которые используют для различных MIME-типов или комбинаций типов и подтипов MIME, с целью однозначного определения кодеков, применяемых для содержащихся в файле форматов, или профиля (профилей) контейнерного формата в целом.
[0241] За счет маркировки контента с указанием конкретных кодеков, необходимых для воспроизведения передаваемых медиаданных, системы на приемном конце могут определять, поддерживаются ли эти кодеки оконечной системой, и если это не так, они могут предпринимать соответствующие действия (например, отклонение контента, передача уведомления о возникшей ситуации, перекодирование контента в поддерживаемый тип, получение и установка необходимых кодеков, дополнительный анализ, позволяющий определить, не достаточной ли будет поддержка некоторого подмножества указанных кодеков и т.п.)
[0242] Аналогично, профили позволяют передать приемнику общую информацию о спецификациях, которым соответствует контент. Они представляют собой указание на совместимость контейнерного формата и его содержимого определенным стандартам. Приемник может быть способен определить, насколько он способен обработать и воспроизвести контент, при помощи анализа, какие из заявленных профилей он поддерживает, и что они означают.
[0243] Одной из причин применения MIME является возможность указывать конкретные типы медиаданных для адресной части сообщения (message part), однако если известны только тип и подтип MIME, не всегда можно определить, какие конкретные форматы медиаданных содержатся в основной части (body part), а также какие кодеки были указаны как необходимые для воспроизведения контента.
[0244] Существуют несколько типов/подтипов медиаданных (как уже зарегистрированных, так и уже фактически применяемых, но еще ожидающих регистрации), которые содержат кодеки, выбираемые из заданного множества. При отсутствии параметров «кодеки» ('codecs') и/или «профили» ('profiles'), чтобы определить кодеки, или другие элементы, необходимые для воспроизведения контента, может потребоваться анализ всех элементов медиаданных.
[0245] Значения параметра 'codecs' может быть определено описанным ниже образом. Единичное значение или список значений, с запятыми в качестве разделителя, которые определяют кодек (или кодеки), указанные для воспроизведения контента, содержащегося в основной части сообщения. Каждое значение может включать одно или более элементов, разделенных точками. Пространство имен для первого элемента определяется MIME-типом. Пространство имен каждого последующего элемента определяется предшествующим ему элементом.
[0246] В многоуровневых расширениях HEVC для каждого уровня, необходимого для каждого набора выходных уровней, указывают комбинацию из профиля, яруса и уровня стандарта. Для многоуровневых расширений HEVC точка соответствия может быть определена как список комбинаций профиля, яруса и уровня стандарта, при этом такой список содержит комбинации из профиля, яруса и уровня стандарта для всех обязательных уровней конкретного набора выходных уровней. Отличающееся значение профиля, яруса и уровня стандарта (в особенности, отличающееся значение уровня стандарта) может быть указано для одного и того же уровня (кодирования) в различных наборах выходных уровней, т.к. требования к буферу декодированных изображений являются различными и зависят от того, какие из уровней являются обязательными, и какие из уровней являются входными, при этом требования к буферу декодированных изображений являются частью спецификации уровня стандарта. Возможности декодера могут быть указаны в виде списка комбинаций профиля, яруса и уровня стандарта. По упомянутым причинам одного значения профиль-ярус-уровень в параметре «кодеки» расширения MIME может быть недостаточно для описания многоуровневого потока HEVC, хранимого, например, в файле, который соответствует формату ISOBMFF.
[0247] Ниже будет показано, каким образом может быть определен параметр 'codecs' MIME-типа для файлов на базе формата ISOBMFF в случае подобных многоуровневых кодеков (например, многоуровневых расширений HEVC), для которых сигнализацию профиля и уровня предоставляют для каждого уровня кодирования (или для каждого раздела битового потока), а не для всего битового потока или подпотока. Следующие параграфы относятся к параметру «кодеки», однако понимать, что они могут также, дополнительно или альтернативно, относиться к параметру с другими именем.
[0248] Подпараметры, которые могут быть использованы, когда применяют параметр 'codecs' некоторого MIME-типа, в соответствии со спецификацией RFC 6381, описаны в следующих параграфах, для случая, когда MIME-тип указывает на формат файла, соответствующий семейству ISOBMFF, а параметр 'codecs' начинается с кода записи с информацией о сэмплах из стандарта ISO/IEC 14496-15. Однако нужно понимать, что параметр 'codecs' может, аналогичным образом, быть задан для других контейнерных форматов, отличающихся от ISOBMFF, и для других кодеков, помимо AVC или HEVC.
[0249] Параметр 'codecs', согласно спецификации RFC 6381, может иметь следующую структуру:
ListItem1 (, ListItemN)* где звездочкой ('*') обозначено повторение 0 или более раз.
[0250] Каждый ListItem (элемент списка) может иметь следующую структуру:
SampleEntryType 1. Profile TierLevel1 (.SampleEntryTypeN. Profile TierLeveIN) *
[0251] нужно понимать, что разделительный символ, может быть равнозначно заменен на любой другой разделительный символ, или могут использоваться несколько различных разделительных символов, возможно, в различных позициях и для различных целей. К примеру, перед элементом SampleEntryTypeN вместо '.' может использоваться разделительный символ '!'.
[0252] Пара из SampleEntryType (тип записи с информацией о сэмплах) и ProfileTierLevel (профиль-ярус-уровень) может быть названа подстрокой профиля- яруса-уровня стандарта.
[0253] Тип записи с информацией о сэмплах (SampleEntryType) может представлять собой четырехсимвольный код записи с информацией о сэмплах для трека, содержащего кодированные данные. Спецификация подстроки профиля- яруса-уровня может оставаться такой же, как спецификация кодеков для MIME-типа в случае одноуровневого кодирования HEVC.
[0254] Когда типом записи с информацией о сэмплах является код, указывающий на кодек, из спецификации стандарта улучшенного видеокодирования (рекомендация Н.264 ITU-T или ISO/IEC 14496-10, например, 'avc1', 'avc2' 'avc3', 'avc4', 'svc1', 'svc2', 'mvc1', 'mvc2', 'mvc3' или mvc3'), то есть, указывающий на кодирование AVC (Н.264), масштабируемое видеокодирование (SVC) или многоракурсное видеокодирование (MVC), элемент ProfileTierLevel представляет собой шестнадцатеричное представление следующих трех байт в NAL-блоке набора (или поднабора) параметров последовательности, определенных в стандарте H.264/AVC:
[0255] profile_idc;
[0256] байт, содержащий флаги constraint_set (в соответствии с текущей версией, от constraint_set0_flag до constraint_set5_flag, и reserved_zero_2bits); и
[0257] level_idc.
[0258] Следует отметить, что записи с информацией о сэмплах, 'avc1', 'avc2', 'avc3' и 'avc4' не обязательно указывают на то, что медиаданные содержат только NAL-блоки AVC. Фактически, медиаданные могут быть кодированы в соответствии с профилем SVC или MVC, и таким образом, содержать NAL-блоки SVC или MVC. Чтобы была возможность определить, какой кодек необходимо использовать, может потребоваться дополнительная информация (profile_idc). При этом может предъявляться требование, чтобы в H.264/AVC reserved_zero_2bits было равным 0, однако в будущем ITU-T или ISO/IEC могут быть определены другие его значения.
[0259] Когда контент SVC или MVC кодирован совместимым с AVC образом, описание сэмплов может включать как запись с конфигурацией AVC, так и запись с конфигурацией SVC или MVC. В таком случае может быть рекомендовано, чтобы передавались обе эти конфигурации, поскольку они могут содержать различные профиль и уровень AVC, а также значения индикаторов совместимости. Таким образом, передаваемый параметр 'codecs' может включать код описания сэмплов (например, 'avc1') дважды, при этом значения из одной из записей конфигураций записи могут формировать информацию 'avcoti' в каждом из них.
[0260] когда типом записи с информацией о сэмплах является код, указывающий на кодек из спецификации стандарта высокоэффективного видеокодирования (рекомендация Н.265 ITU-T или стандарт ISO/IEC 23008-2), например, 'hev1', 'hvc1', 'Ihv1' или 'Ihe1', подстрока профиль-ярус-уровень определена как последовательность из кода и значений списка, описанного ниже, разделенных, например, символом "точка" ('.'). Значения соответствуют значениям синтаксической структуры profile_tier_level() в битовом потоке HEVC, которые, как правило, получают из конфигурационной записи декодера HEVC. Во всех числовых кодах начальные нули могут быть опущены.
[0261] - general_profile_space, кодированный как «несимвольное» (general_profile_space = 0), или 'А', 'В', 'С' for general_profile_space, равного 1, 2, 3, за которым следует general_profile_idc, кодированный как десятичное число;
[0262] - флаги eneral_profile_compatibility_flags, кодированные шестнадцатеричными числами (начальные нули могут быть опущены);
[0263] - флаг general_tier_flag, кодированный как 'L' (general_tier_flag=0) или 'Н' (general_tier_flag = 1), за которым следует general_level_idc, кодированный как десятичное число;
[0264] каждый из 6 байтов флагов constraint_flags, начиная с байта, содержащего general_progressive_source_flag, все из которых кодированы шестнадцатеричным числом, при этом коды всех байтов разделены точками; оконечные нулевые байты могут быть опущены.
[0265] Когда типом записи с информацией о сэмплах является код, указывающий на кодек из спецификации высокоэффективного видеокодирования, например, 'hev1' или 'hve1', и битовый поток содержит только один уровень, значением параметра 'codecs' является подстрока профиль-ярус-уровень стандарта. Например, codecs = hev1.1.80.L93.B0 указывает на непакетированный потоке прогрессивной разверткой, основной профиль, основной ярус, уровень 3.1.
[0266] Когда типом записи с информацией о сэмплах является код, указывающий на многоуровневое расширение HEVC, спецификации высокоэффективного видеокодирования, например, "Ihv1' или 'Ihe1', или когда битовый поток содержит набор выходных уровней с более чем одним обязательным уровнем, то для разделения подстрок профиль-ярус-уровень, соответствующих обязательным уровням в наборе выходных уровней, для которых передают параметр 'codec', могут быть разделены символом '.' или '!'. Каждая подстрока профиль-ярус-уровень, соответствующая обязательному уровню, состоит из последовательности значений из синтаксической структуры profile_tier_level() обязательного уровня. Может предъявляться требование, чтобы подстрока профиль-ярус-уровень присутствовала в каждому обязательном уровне из набора выходных уровней. Например, codecs = hev1.A1.80.L93.B0!hev1.A7.1.L120.B0 или codecs = hev1.A1.80.L93.B0.0.0.0.0.0.hev1.A7.1.L120.B0 может указывать на двухуровневый непакетированный поток с прогрессивной разверткой, в котором для трека, содержащего базовый уровень, используют тип 'hev1' записи с информацией о сэмплах, базовый уровень отвечает основному профилю, основному ярусу и уровню 3.1, для трека, содержащего уточняющий уровень, используют тип 'hev1' записи с информацией о сэмплах (например, он может содержаться в треке, который также содержит базовый уровень), уточняющий уровень отвечает масштабируемому основному профилю, основному ярусу, уровню 4.
[0267] Когда в элементе ListItem приведена только одна подстрока профиль-ярус-уровень, для предсказываемого уровня в параметре 'codecs', на битовый поток и параметр 'codec' могут накладываться описанные ниже ограничения. Каждый уровень может храниться в виде отдельного трека; и для каждого трека должен присутствовать отдельный элемент ListItem (например, в виде списка с разделителями-запятыми, определенного RFC 6381). Список с разделителями- запятыми в параметре 'codecs' может быть упорядочен таким образом, чтобы элементы списка для базового уровня шли последними, и все элементы списка для любого уровня не зависели от уровней, встречающихся в списке ранее. Нужно понимать, что порядок элементов списка, альтернативно, может быть определен иным образом, например, элемент списка для базового уровня может идти первым, а любой элемент для некоторого уровня не может зависеть от уровней, встречающихся в списке позднее. Когда список с разделителями-запятыми содержит n элементов списка, битовый поток может включать по меньшей мере n наборов выходных уровней, таким образом, что они состоят из i обязательных уровней, соответствующих i элементам из хвоста списка с разделителями-запятыми, для всех значений i в диапазоне от 1 до n включительно. Эти ограничения позволяют вычислить количество уровней, необходимых для декодирования, а также соответствующие им требования к профилю, ярусу и уровню стандарта.
[0268] Ниже будут приведены несколько примеров значений параметра 'codecs':
codecs = hev1.А1.80.L93.B0.0.0.0.0.0.lhv1.А7.1.L120.B0,
hev1.A1.80.L93.B0.0.0.0.0.0.lhv1.A6.2.L120.B0 может указывать на битовый поток, который включает два набора выходных уровней, набор «масштабируемых» выходных уровней и набор «многоракурсных» выходных уровней; или два битовых потока, хранимых в одном файле, один из которых содержит набор «масштабируемых» выходных уровней, а второй - набор «многоракурсных» выходных уровней. Набор «масштабируемых» выходных уровней представляет собой двухуровневый непакетированный поток с прогрессивной разверткой, в котором для трека, содержащего базовый уровень, использован тип 'hev1' записи с информацией о сэмплах, базовый уровень соответствует основному профилю, основному ярусу, уровню 3.1, для трека, содержащего уточняющий уровень, использован тип 'Ihv1' записи с информацией о сэмплах, и уточняющий уровень соответствует масштабируемому основному профилю, основному ярусу, уровню 4. Набор «многоракурсных» выходных уровней представляет собой двухуровневый непакетированный поток с прогрессивной разверткой, в котором для трека, содержащего базовый уровень, использован тип 'hev1' записи с информацией о сэмплах, базовый уровень соответствует основному профилю, основному ярусу, уровню 3.1, для трека, содержащего уточняющий уровень, использован тип 'Ihv1' записи с информацией о сэмплах, и уточняющий уровень соответствует масштабируемому основному профилю, основному ярусу, уровню 4. Следует отметить, что один и тот же трек может использоваться в качестве трека базового уровня для обоих наборов выходных уровней.
codecs = Ihv1.A7.1.L120.B0, hev1.A1.80.L93.B0 может указывать на двухуровневый непакетированный поток с прогрессивной разверткой, в котором для трека, содержащего уточняющий уровень, использован тип Ihv1' записи с информацией о сэмплах, уточняющий уровень соответствует масштабируемому основному профилю, основному ярусу, уровню 4, для трека, содержащего базовый уровень, использован тип 'hev1', записи с информацией о сэмплах, и базовый уровень соответствует основному профилю, основному ярусу, уровню 3.1. Каждый уровень является отдельным треком. Имеется набор выходных уровней, который содержит уточняющий уровень и базовый уровень, в качестве обязательных уровней, и набор выходных уровней, который содержит только базовый уровень.
codecs = Ihv1.A7.1.L120.B0, avc1.64081F может указывать на то, что для трека, содержащего базовый уровень, использован тип 'Ihv1' записи с информацией о сэмплах, уточняющий уровень соответствует масштабируемому основному профилю, основному ярусу, уровню 4, уточняющий уровень содержит непакетированные изображения с прогрессивной разверткой, а предсказание уточняющего уровня выполняется на основе базового уровня, кодированного при помощи AVC-кодирования. Для базового уровня, который кодирован при помощи AVC-кодирования, использован тип 'avc1' записи с информацией о сэмплах, а базовый уровень соответствует высокому профилю прогрессивной развертки, уровень 3.1.
[0269] Международный стандарт 23009-1 ISO/IEC определяет динамическую адаптивную потоковую передачу видео по протоколу HTTP (DASH). Ниже будут представлены некоторые из понятий, форматов и операций MPEG-DASH, в качестве примера системы потоковой передачи видео, в которой могут быть реализованы варианты осуществления настоящего изобретения. Аспекты настоящего изобретения не ограничены стандартом MPEG-DASH, напротив, данное описание приведено исключительно в качестве базы для частичной или полной реализации настоящего изобретения.
[0270] При динамической адаптивной потоковой передаче видео по протоколу HTTP (DASH), мультимедийный контент может захватываться и храниться на HTTP-сервере и может доставляться при помощи протокола HTTP. Контент может храниться на сервере в виде двух частей: описание медиапрезентации (Media Presentation Description, MPD), которое описывает манифест имеющегося контента, различные его альтернативы, их URL-адреса и другие характеристики; и сегменты, которые содержат фактические битовые потоки мультимедийных данных, в форме чанков, в одном или нескольких файлов. Для воспроизведения контента клиент DASH может получать MPD, например, с использованием протокола HTTP, электронной почты, флеш-накопителя, широковещательной передачи или других методов передачи данных. При помощи анализа MPD клиент DASH может получить информацию о синхронизации программ, доступности медиаконтента, типах медиаданных, разрешении, минимальной и максимальной полосах пропускания, а также о наличии различных кодированных альтернатив для мультимедийных компонентах, функциях доступности и требованиям по управлению цифровыми правами (digital rights management, DRM), расположению медиакомпонентов в сети и других характеристиках контента. При помощи этой информации клиент DASH может выбрать подходящую кодированную альтернативу а начать потоковую передачу контента, получая сегменты, например, с помощью запросов GET протокола HTTP. После соответствующей буферизации, для компенсации флуктуации в пропускной способности сети, клиент может продолжить получение дальнейших сегментов, с одновременном контролем колебаний пропускной способности. Клиент может выбрать, каким образом адаптироваться к доступной полосе пропускания, получая сегменты различных альтернатив (с более или менее высоким битрейтом), которые позволяют поддерживать приемлемое заполнение буфера.
[0271] Описание медиапрезентации (MPD) может содержать информацию, необходимую клиентам для установления сеанса динамической адаптивной потоковой передачи видео по протоколу HTTP. Описание MPD может содержать информацию, описывающую медиапрезентацию, например, унифицированный локатор ресурсов (URL) протокола HTTP для каждого сегмента, позволяющий выполнять запросы GET для получения этих сегментов. В технологии DASH для структурирования медиапрезентации может использоваться иерархическая модель данных, показанная на фиг. 6. Медиапрезентация может содержать последовательность из одного или более периодов (Periods), каждый период может содержать одну или более групп (Groups), каждая группа может содержать один или более наборов адаптации (Adaptation Sets), каждый набор может содержать одну или более репрезентаций (Representations), а каждая презентация может содержать один или более сегментов. Каждая репрезентация представляет собой одну из альтернатив выбора медиаконтента или его подмножества, которая может отличаться выбранным кодированием, например, битрейтом, разрешением, языком, кодеком и т.п. Сегмент может содержать медиаданные некоторой длительности, а также метаданные для декодирования и отображения содержащегося в нем медиаконтента. Каждый сегмент может идентифицироваться унифицированным индикатором ресурса (URI) и может запрашиваться при помощи запроса GET протокола HTTP. Сегмент может быть определен как блок данных, связанных с локатором HTTP-URL, и опционально, байтовым диапазоном, заданным в описании MPD.
[0272] Описание MPD в технологии DASH соответствует спецификации расширяемого языка разметки (Extensible Markup Language, XML), и соответственно, задается при помощи элементов и атрибутов, определенных в языке XML. Описание MPD может быть задано с использованием описанных ниже условных обозначений. Элементы в XML-документе могут идентифицироваться первой прописной буквой и могут отображаться жирным шрифтом, например, «Element». Выражение, сообщающее о том, что элемент Element1 содержится в другом элементе, Element2, может быть записано как Element2.Element1. Если имя элемента состоит из двух или более слов, объединенных друг с другом, может применяться так называемый «горбатый регистр», например, ImportantElement. Элементы могут встречаться либо ровно один раз, либо может быть определено минимальное и максимальное количество экземпляров, при помощи, соответственно,<minOccurs><maxOccurs>. Атрибуты в XML-документе идентифицируются первой строчной буквой, а также им может предшествовать знак '@', например, @attribute. Для указания на конкретный атрибут, @attribute, содержащий в элементе Element может применяться запись вида Element@attribute. Если имя атрибута состоит из двух или более слов, объединенных друг с другом, после первого слова может применяться «горбатый регистр», например, @veryImportantAttribute. В XML атрибуты могут иметь различный статус: обязательный (mandatory, М), опциональный (optional, О), опциональный с заданным по умолчанию значением (optional with default value, OD) и условно обязательный (conditionally mandatory, CM).
[0273] В технологии DASH все дескрипторные элементы имеют сходную структуру, а именно, они содержат атрибут @schemeldUri, включающий URI-идентификатор, который указывает на схему, опциональный атрибут @value и опциональный атрибут @id. Семантика элементов зависит от конкретной применяемой схемы. URI-идентификатор, определяющий схему, может быть именем, URN, или локатором, URL. Часть дескрипторов определены стандартом MPEG-DASH (ISO/IEC 23009-1), тогда как другие могут быть определены, дополнительно или альтернативно, в других стандартах. Если используется не MPEG-DASH, а другой стандарт, описание MPD не дает никакой конкретной информации о том, как использовать дескрипторные элементы. Выбор значений дескрипторных элементов и подходящей информации о схеме зависит от конкретного приложения или стандарта, в которых применяют форматы DASH. В приложении или стандарте, где задействованы один из таких элементов, может быть определен идентификатор схемы (Scheme Identifier), имеющий форму URI-идентификатора, и пространство имен для элементов в случае использования такого идентификатора схемы. Идентификатор схемы располагается в атрибуте @schemeldUri. Когда требуется простой набор пронумерованных значений, для каждого значения может быть определена текстовая строка, и это строка может быть включена в атрибут @value. Если нужны структурированные данные, то в отдельном пространстве имен может быть определен любой элемент или атрибут расширения. Значение @id может использоваться для указания на уникальный дескриптор или на группу дескрипторов. В последнем случае может предъявляться требование, чтобы дескрипторы с одинаковыми значениями атрибута @id были синонимичны, то есть, в этом случае достаточно обработать только один из множества дескрипторов с идентичными значениями @id. Два элемента, имеющих тип DescriptorType, являются эквивалентными, если имя элемента, значение @schemeldUri и значение атрибута @value являются эквивалентными. Если @schemeldUri является URN-именем, то под эквивалентностью может пониматься лексическая эквивалентность, определенная в параграфе 5 стандарта RFC 2141. Если @schemeldUri является URL-локатором, то под эквивалентностью может пониматься посимвольное совпадение, определенное в параграфе 6.2.1 стандарта RFC3986. Если атрибут @value отсутствует, эквивалентность может быть установлена исключительно по эквивалентности @schemeldUri. Атрибуты и элементы в пространствах имен расширений не могут использоваться для установления эквивалентности. При установлении эквивалентности атрибут @id может быть проигнорирован.
[0274] В стандарте MPEG-DASH определены дескрипторы EssentialProperty и SupplementalProperty («существенное свойство» и «дополнительное свойство»). Элементом EssentialProperty создатель медиапрезентации указывает, что успешная обработка этого дескриптора существенна для корректного применения информации в родительском элементе, включающем это дескриптор, если только @id этого элемента не совпадает с @id какого либо другого элемента EssentialProperty. Если несколько элементов EssentialProperty имеют одинаковый @id, то достаточно обработки только одного такого элемента EssentialProperty. При этом должен быть обработан по меньшей мере один элемент EssentialProperty с каждым уникальным значением @id. Если схема, или значение дескриптора EssentialProperty, не опознаны, клиент DASH игнорирует родительский элемент, который содержит этот дескриптор. В MPD-описании могут присутствовать множество элементов EssentialProperty с идентичными значениями @id и с различными значениями @id.
[0275] С помощью элемента SupplementalProperty создатель медиапрезентации указывает на то, что дескриптор содержит вспомогательную информацию, которую клиент DASH может использовать для оптимизированной обработки данных. Если схема, или значение дескриптора SupplementalProperty, не опознано, клиент DASH игнорирует родительский элемент, который содержит этот дескриптор. В MPD-описании могут присутствовать множество элементов SupplementalProperty.
[0276] Услуга DASH может предоставляться по запросу или в режиме прямого вещания. В первом случае MPD-описание является статическими, а все сегменты медиапрезентации уже доступны на момент публикации MPD-описания поставщиком контента. Однако во втором случае MPD-описание может быть как статическим, так и динамическим, в зависимости от способа построения URL-локаторов сегментов, применяемого в MPD-описании, при этом сегменты могут создаваться непрерывно, а контент - формироваться и публиковаться для DASH-клиентов поставщиком контента. Могут применяться два способа построения URL-локаторов: способ построения URL-локаторов сегментов на базе шаблонов или способ с формированием списка сегментов. При первом из них DASH-клиент может формировать URL-локаторы сегментов без обновления MPD перед запросом сегмента. Во втором способе DASH-клиенту для получения URL сегментов может требоваться периодическая загрузка обновленных MPD-описаний. Соответственно, для службы прямого вещания способ построения URL сегментов на базе шаблонов является более эффективным, чем способ с формированием списка сегментов.
[0277] Ниже будут рассмотрены определения, которые могут использоваться в контексте технологии DASH. Компонент медиаконента, или медиакомпонент, может быть определен как один непрерывный компонент медиаконтента с присвоенным ему типом медиакомпонента, который может быть кодирован в медиапоток независимо. Медиаконтент может быть определен как один период (period) медиаконтента или как последовательность из смежных периодов медиаконтента. Тип компонента медиаконтента может быть определен как один из типов медиаконтента, например, аудио, видео или текст. Медиапоток может быть определен как кодированный вариант компонента медиаконтента.
[0278] Инициализационный сегмент (Initialization Segment) может быть определен как сегмент, который содержит метаданные, необходимые для воспроизведения медиапотоков, инкапсулированных в медиасегментах. В форматах сегментов, основанных на ISOBMFF, инициализационный сегмент может включать бокс фильма ('moov'), который может не содержать метаданных сэмплов, т.е. все метаданные для сэмплов могут находиться в боксах 'moof'.
[0279] Медиасегмент (Media Segment) может быть определен, как сегмент, отвечающий формату контейнерного файла и/или применяемому формату, или форматам, медиаданных, и обеспечивающий возможность произведения при объединении с нулем или более предшествующих сегментов, и инициализационным сегментом (если таковой присутствует). Медиасегмент может содержать некоторый временной интервал медиаданных для воспроизведения с нормальной скоростью, и такой интервал может быть назван длительностью медиасегмента или длительностью сегмента. Создатель контента, или поставщик услуги, может выбирать длительность сегмента согласно требуемым характеристикам услуги. Например, относительно короткая длительность сегмента может применяться для услуги прямого вещания, что позволяет обеспечить минимальное время запаздывания между оконечными узлами. Это так, поскольку длительность сегмента может быть нижней границей запаздывания между узлами, воспринимаемой клиентом DASH, поскольку в технологии DASH сегмент является элементарным блоком формирования медиаданных. Формирование контента может выполняться таким образом, чтобы медиаданные предоставлялись сервером целыми сегментами. При этом, также, во многих реализациях клиентских программ сегменты могут использоваться в качестве минимальной единицы запросов GET. Таким образом, в некоторых системах для прямого вещания сегмент может быть запрошен DASH-клиентами, только когда вся длительность медиасегмента целиком доступна, а также кодирована и инкапсулирована в сегмент. В случае услуг, предоставляемых по запросу, могут применяться различные стратегии выбора длительности сегмента.
[0280] Сегмент может быть дополнительно разбит на подсегменты, каждый из которых может содержать полные блоки доступа. Подсегменты могут быть проиндексированы в индексном указателе сегментов (Segment Index), который содержит информацию о соответствии между интервалом времени презентации и байтовом диапазоном для каждого сегмента и может использоваться для выполнения запросов GET протокола HTTP на получение конкретных подсегментов с использованием HTTP-запроса байтового диапазона. Если применяют относительно большую длительность сегментов, то подсегменты могут применяться для сохранения рационального размера HTTP-ответов, дающего достаточно гибкости для адаптации битрейта. В форматах сегментов, основанных на ISOBMFF, подсегмент может быть определен как самодостаточный (автономный) набор из одного или более последовательных фрагментов фильма, при этом упомянутый автономный набор содержит один или более боксов фрагмента фильма с соответствующим боксом (или боксами) метаданных, и при этом бокс медиаданных, содержащий данные, на которые ссылается бокс фрагмента фильма, должны следовать за этим боксом фрагмента фильма, но предшествовать следующему боксу фрагмента фильма, содержащему информацию о том же треке.
[0281] Каждому медиасегменту может быть присвоен уникальный URL-локатор (возможно, с байтовым диапазоном), порядковый номер и, явно или неявно, время начала и длительность. Каждый медиасегмент может содержать по меньшей мере одну точку доступа к потоку, которая представляет собой точку произвольного доступа или точку переключения в потоке медиаданных, где декодирование может быть начато с использованием только данных от этой точки и далее.
[0282] Для обеспечения возможности загрузки сегментов по частям может применяться способ сигнализации подсегментов с использованием бокса указателя сегментов. В этом боксе описаны подсегменты и точки доступа к потоку в сегментах, за счет сигнализации их длительности и байтовых смещений. DASH-клиент может использовать информацию индексного указателя для запроса подсегментов с использованием частичных запросов GET протокола HTTP. Информация индексации сегмента может быть помещена в один бокс в начале соответствующего сегмента или распределена по множеству индексирующих боксов в сегменте. Возможны различные способы распределения, например, иерархическое, гирляндное и гибридное. Такой подход позволяет не добавлять большой бокс в начале сегмента, и соответственно, избежать потенциальной длительной задержки в начале загрузки.
E
L
L
E
L
E
[0283] Неперекрывающиеся сегменты (или соответственно, подсегменты) могут быть определены описанным ниже образом. Пусть T(S,i) - самое раннее время презентации для всех блоков доступа в потоке i сегмента или подсегмента S, a T(S,i) - самое позднее время презентации всех блоков доступа в потоке i сегмента или подсегмента S. Два сегмента (и соответственно, подсегмента) А и В, которые могут относиться к различным репрезентациям (однако это не является обязательным), могут быть названы неперекрывающимися, когда T(A,i)<T(B,i) для всех медиапотоков i в А и В, или если T(B,i)<T(A,i) для всех потоков i А и В, где i относится к одному и тому же медиакомпоненту.
[0284] Стандарт MPEG-DASH определяет контейнерные форматы сегментов как для базового формата медиафайлов ISO, так и для транспортных потоков MPEG-2. В других стандартах форматы сегментов могут быть определены на основе других контейнерных форматов. Например, был предложен формат, основанный на формате контейнерных файлов Matroska, основные свойства которого описаны ниже. Когда файлы Matroska передают в виде DASH-сегментов, или аналогичных структур, соответствие блоков DASH и блоков Matroska может быть задано описанным ниже образом. Подсегмент (DASH) может быть определен как один или более последовательных кластеров (Clusters) контента, инкапсулированного в файле Matroska. Может предъявляться требование, чтобы инициализационный сегмент DASH содержал заголовок EBML, заголовок сегмента (Matroska), информацию о сегменте (Matroska) и треки (Tracks), а также, опционально, содержал другие элементы первого уровня (leveh) и заполняющие данные. Индексный указатель сегмента DASH может включать элементы указаний (Cues Element) Matroska.
[0285] В DASH определены различные временные шкалы (таймлайны), включающие временную шкалу медиапрезентации и времена доступности сегмента. Временная шкала указывает на время презентации блока доступа с медиаконтентом, которое отображено (наложено) на глобальную временную шкалу общей презентации. Временная шкала медиапрезентации в технологии DASH дает возможность «бесшовной» синхронизации различных медиакомпонентов, кодированных при помощи различных методов кодирования и имеющих общую временную шкалу. Времена доступности сегмента указывают на абсолютное время (время суток), при этом их применяют для сообщения клиентам информации о временах доступности сегментов, которые могут идентифицироваться при помощи URL-локаторов протокола HTTP. DASH-клиент может быть способен определить время доступности конкретного сегмента за счет сравнения текущего абсолютного времени с временем доступности сегмента, присвоенного этому сегменту. Время доступности сегментов может применяться для предоставления медиасегментов в режиме прямого вещания, что может именоваться «услугой прямого вещания». В случае услуги прямого вещания время доступности различных сегментов будет различным, при этом время доступности каждого сегмента может зависеть от позиции сегмента на временной шкале медиапрезентации. В случае услуги вещания по запросу время доступности сегмента может быть одинаковым для всех сегментов.
[0286] Технология DASH поддерживает адаптацию скорости передачи за счет динамических запросов медиасегментов и/или подсегментов из различных репрезентации в наборе адаптации, с целью подстройки к вариациям пропускной способности сети. Когда DASH-клиент переключается на репрезентации с пониженным/повышенным качеством, учет зависимостей кодирования внутри репрезентации не является обязательным. При декодировании медиаданных переключение репрезентации может происходить только в точке произвольного доступа (RAP), которая может применяться, например, в таких методах видеокодирования, как H.264/AVC. Чтобы исключить запросы и передачу медиаданных, которые не будут декодированы, точки RAP могут совпадать с началом медиасегментов и/или подсегментов, а MPD-описание и/или бокс указателя сегмента могут использоваться для указания на то, что точки RAP совпадают с началом медиасегментов и/или подсегментов. Соответственно, DASH-клиенты могут делать вывод о том, какие сегменты и/или подсегменты запрашивать, чтобы когда выполняется переключение репрезентации, первый сегмент и/или подсегмент целевой репрезентации начинался с точки RAP, и при этом сегменты и/или подсегменты исходной и целевой репрезентаций были выровнены (по времени). В технологии DASH введено более общее понятие «точки доступа к потоку» (Stream Access Point, SAP), являющееся независимым от применяемых кодеков решением для доступа к репрезентации и переключения между репрезентациями. В технологии DASH точка SAP определена как позиция в репрезентации, которая позволяет запустить воспроизведение медиапотока с использованием информации, содержащейся в данных репрезентации, начиная с этой позиции и далее (которым предшествуют данные инициализации в инициализационном сегменте, если таковой присутствует). Соответственно, переключение репрезентации может выполняться в точке SAP.
[0287] Были определены несколько типов SAP, которые будут описаны ниже. SAP первого типа (type 1) соответствует понятию, носящему в различных схемах кодирования имя «точки произвольного доступа к закрытой группе GOP» (в которой все изображения, в порядке декодирования, могут быть корректно декодированы и позволяют получить непрерывную временную последовательность корректно декодированных изображений без пропусков), для которой первое изображение в порядке декодирования является также первым изображением в порядке воспроизведения. SAP второго типа (type 2) соответствует понятию, носящему в различных схемах кодирования имя «точки произвольного доступа к закрытой группе GOP» (в которой все изображения, в порядке декодирования, могут быть корректно декодированы и позволяют получить непрерывную временную последовательность корректно декодированных изображений без пропусков) для которой первое изображение в порядке декодирования не обязательно является также первым изображением в порядке воспроизведения. SAP третьего типа (type 3) соответствует понятию, носящему в различных схемах кодирования имя «точкой произвольного доступа к открытой группе GOP», где могут присутствовать некоторые изображения, в порядке декодирования, которые не могут быть декодированы корректно и имеют времена презентации, меньшие, чем внутренне-кодируемое изображение, связанное с этой SAP.
[0288] Поставщик контента может создавать сегменты и подсегменты различных репрезентаций таким образом, чтобы переключение было более простым. В одном из простейших случаев, каждый сегмент и подсегмент начинается с точки SAP, а границы сегментов и подсегментов совпадают в каждой репрезентаций некоторого набора адаптации. В таком случае DASH-клиент может быть способен переключать репрезентации без дрейфа ошибки, запрашивая сегменты или подсегменты из исходной репрезентации для новой репрезентации. В технологии DASH ограничения на формирование подсегментов определены в MPD-описании и указателе сегментов таким образом, чтобы обеспечивать возможность для DASH-клиентов переключаться между репрезентациями без внесения дрейфа ошибки. Одним из применений профиля, описанного в DASH, является обеспечение различных уровней ограничений на формирование сегментов, подсегментов, или аналогичных структур.
[0289] в соответствии с предшествующим описанием, клиент, или проигрыватель, может запрашивать сегменты и подсегменты для передачи из различных репрезентаций, аналогичному тому, как могут быть определены передаваемые уровни и/или подуровни масштабируемого битового потока видеоданных. Выражения «переключение репрезентации с понижением качества» или «переключение битового потока с понижением качества» могут означать запрос или передачу репрезентации с меньшим битрейтом, чем запрашивалось или передавалось (соответственно) ранее. Выражения «переключение репрезентации с повышением качества» или «переключение битового потока с повышением качества» могут означать запрос или передачу репрезентации с большим битрейтом, чем запрашивалось или передавалось (соответственно) ранее. Выражения «переключение репрезентации» или «переключение битового потока» могут означать, в совокупности, переключение репрезентации или битового потока как с повышением, так и с понижением качества.
[0290] Системы потоковой передачи, аналогичные MPEG-DASH, включают, например, прямую потоковую передачу по протоколу HTTP (HTTP Live Streaming, HLS), которая определена в проекте Интернет-стандарта draft-pantos-http-live-streaming-13 (и других версиях этого проекта интернет-стандарта). В качестве формата манифеста, соответствующего описанию MPD, в HLS применяют расширенный формат M3U. M3U - это формат файла для мультимедийных списков воспроизведения («плейлистов»), исходно разработанный для аудифайлов. Список воспроизведения, M3U, представляет собой текстовый файл, состоящий из отдельных строк, при этом каждая строка может быть URI-идентификатором, пустой строкой, или начинаться с символа '#', указывающего на тег или комментарий. Строка с URI-идентификатором определяет медиасегмент или файл списка воспроизведения (Playlist). Теги начинаются с символов #ЕХТ. В спецификации HLS определено несколько тегов, которые можно рассматривать как пары из ключа и соответствующего значения. Часть тега, относящаяся к значению, может содержать список атрибутов, представляющий собой список с разделителями-запятыми из пар атрибут-значение, при этом каждая пара атрибут-значение может рассматриваться как имеющая следующий синтаксис: ИмяАтрибута = ЗначениеАтрибута. Соответственно, теги в файлах M3U8 HLS могут трактоваться аналогично элементам в описании MPD или XML, а атрибуты в файлах M3U8 HLS могут трактоваться аналогично атрибутам в описании MPD или XML. Формат медиасегментов в HLS соответствует транспортному потоку MPEG-2 и содержит включает одну программу (Program) MPEG-2. Рекомендовано, чтобы каждый медиасегмент начинался с таблицы ассоциаций программ (Program Association Table, PAT) и таблицы карты программ (Program Map Table, РМТ).
[0291] Для адаптации битрейта может применяться переключение между различными битовыми потоками с одинаковым контентом. Переключение на другой битовый поток может выполняться, например, в любом из внутренне-предсказываемых изображений, которым начинается закрытая GOP (например, IDR-изображении).
[0292] Для удовлетворения потребности в более быстрой адаптации битрейта и исключения негативного влияния на степень сжатия из-за часто встречающихся внутренне-предсказываемых изображений, одним из возможных решений может быть запуск переключения потока не во внутренне предсказываемых изображениях. В одном из вариантов осуществления настоящего изобретения при переключении с первого потока на второй поток применяют только S-кадры (переключательные), которые кодированы с внешним предсказанием. Эти S-кадры могут быть кодированы с малым шагом квантования, что делает декодированный S-кадр близким, но, как правило, не идентичным соответствующему декодированному изображению второго потока. Стандарт H.264/AVC включает элемент, известный под именем SI/SP-изображений. SP- и SI-кадры могут применяться аналогично S-кадрам, однако они могут давать, после переключения, декодированные изображения, которые идентичны декодированию потока с самого начала. Идентичность декодированных изображений достигается за счет дополнительных шагов преобразования и квантования в процедуре декодирования SI/SP-изображений, как в первичных потоках, так и SI/SP-изображений, используемых только для переключения. Однако элементы SI/SP-изображений не включены ни в базовый, ни в высокий профиль стандарта, и соответственно, их применение не распространено.
[0293] На фиг. 7 показан один из примеров того, каким образом SP-изображения могут использоваться для переключения между двумя различными битовыми потоками. В формате файла переключательные изображения (SP3 в примере фиг. 7) хранят в треках переключающих изображений, которые независимы как от трека, с которого выполняют переключения, так и от трека, на который выполняют переключение. Треки переключательных изображений могут идентифицироваться присутствием в них обязательной специальной ссылки на трек. Переключательное изображение является альтернативой для сэмпла в целевом треке, который имеет в точности такое же время декодирования. Если все переключательные изображения являются SI-изображениями, то дополнительной информации не требуется.
[0294] Если хотя бы одно изображение в переключательном треке является SP-изображением, то необходимы два дополнительных элемента информации. Во-первых, исходный трек, с которого выполняют переключение, - он может быть указан при помощи ссылки на трек (при этом исходный трек и целевой трек могут совпадать). Во-вторых, может быть необходима информация о зависимостях переключательного изображения от сэмплов в исходном треке, поэтому переключательное изображение используют только тогда, когда изображения, от которых оно зависит, были предоставлены в декодер.
[0295] Упомянутая зависимость может быть представлена при помощи опциональной добавочной таблицы сэмплов. В переключательном треке для каждого сэмпла присутствует одна запись. В каждой записи хранятся относительные номера сэмплов в исходном треке, от которых зависит переключательное изображение. Если такой массив для некоторого сэмпла пуст, значит этот переключательный сэмпл содержит SI-изображение. Если бокс зависимостей отсутствует, значит в треке могут присутствовать только SI-кадры.
[0296] Переключательный сэмпл может иметь множество кодированных представлений с различными зависимостями. В случае AVC-видео, множество представлений переключательного сэмпла может храниться в различных переключательных треках (т.е. блоках доступа). Например, один переключательный трек может содержать представление SP-изображения, зависящее от нескольких предыдущих сэмплов, которое используют для переключения потоков, тогда как другой переключательный трек может содержать, в качестве SI-изображения, другое представление, используемое для произвольного доступа.
[0297] Адаптивным изменением разрешения (Adaptive Resolution Change, ARC) называют динамическое изменение разрешения внутри видеопоследовательности, например, в сценариях применениях для видеоконференцсвязи. Адаптивное изменение разрешения может применяться, например, для более эффективной адаптации к сетевым условиям и для повышения устойчивости к ошибкам. Для более эффективной адаптации к изменяющимся сетевым требованиям для различных видеоданных желательно иметь возможность, помимо качества, изменять также и временное и/или пространственное разрешение. Адаптивное изменение разрешения позволяет также обеспечивать ускоренный запуск, при этом время запуска сеанса может быть сокращено за счет передачи в начале кадров с низким разрешением, а впоследствии разрешение может быть повышено. Адаптивное изменение разрешения может также применяться при организации конференцсвязи. К примеру, когда один из участников начинает говорить, разрешение его или ее данных может быть увеличено. Выполнение этой операции над IDR-кадром может приводить к «проседанию» качества, поскольку IDR-кадры должны быть кодированы со сравнительно низким качеством во избежание значительного повышения задержек.
[0298] Для указания декодеру на то, что в битовом потоке присутствует изменение разрешения, может применяться сигнализация на уровне последовательности. Это может выполняться, например, при помощи флага single_layer_for_non_irap_flag. Флаг single_layer_for_non_irap_flag может использоваться для сигнализации о том, что кодированная видеопоследовательность связана с выполнением операции адаптивного изменения разрешения. В частности, флаг single_layer_for_non_irap_flag, указывает на то, что помимо переключательных изображений, каждый блок доступа в последовательности содержит одно изображение из одного уровня (которое может быть изображением базового уровня или другого уровня); и на то, что блоки доступа, в которых происходит переключение, содержат изображения из двух уровней, при этом изображение уточняющего уровня в таком блоке доступа является IRAP-изображением, и для IRAP-изображения уточняющего уровня может применяться межуровневое предсказание.
[0299] Присутствие флага single_layer_for_non_irap_flag в наборе VPS сообщает декодеру о том, что масштабирование не используется, кроме как в целях изменения разрешения, поэтому ресурсы декодера могут быть выделены соответствующим образом в начале сеанса.
[0300] Флаг single_layer_for_non_irap_flag может входить в набор VPS VUI, поскольку он не влияет на стандартную процедуру декодирования.
[0301] Семантика флага single_layer_for_non_irap_flag может быть определена следующим образом:
[0302] single_layer_for_non_irap_flag, равный 1, указывает на следующее:
- Если флаг vps_base_layer_internal_flag равен 1, single_layer_for_non_irap_flag, равный 1, указывает на то, что одно из следующего является истинным для каждого блока доступа, для которого данный набор VPS является активным набором VPS:
все NAL-блоки VCL блока доступа имеют одинаковое значение nuh_layer_id;
в NAL-блоках VCL блока доступа используют два значения nuh_layer_id, и при этом изображение с большим значением nuh_layer_id является IRAP-изображением.
- В противном случае (vps_base_layer_internal-flag равен 0), single_layer_for_non_irap-flag, равный 1, указывает на то, что все из следующего является истинным для каждого блока доступа, для которого данный набор VPS является активным набором VPS:
декодированное изображение с nuh_layer_id, равным 0, не предоставляют в блок доступа при помощи внешних средств, и блок доступа содержит одно кодированное изображение;
декодированное изображение с nuh_layer_id, равным 0, не предоставляют в блок доступа при помощи внешних средств, и блок доступа содержит два кодированных изображения, при этом изображение с большим значением nuh_layer_id является IRAP-изображением;
декодированное изображение с nuh_layer_id, равным 0, предоставляют в блок доступа при помощи внешних средств, и блок доступа содержит одно кодированное изображение, которое является IRAP-изображением.
Флаг single_layer_for_non_irap_flag, равный 0, указывает на то, что применение описанных выше ограничений не является обязательным. Если флаг single_layer_for_non_irap_flag отсутствует, его значение принимают равным 0.
[0303] Флаг single_layer_for_non_irap_flag может сопровождаться флагом higher_layer_irap_skip_flag, семантика которого может быть определена следующим образом:
higher_layer_irap_skip_flag, равный 1, указывает на то, что к каждому IRAP-изображению currIrapPic применимы описанные ниже ограничения. Для каждого блока currAu доступа, для которого данный набор VPS является активным набором VPS, currIrapPic получают следующим образом:
- Если флаг vps_base_layer_internal_flag равен 1, currAu содержит два кодированных изображения, и изображение с большим значением nuh_layer_id является IRAP-изображением, соответственно, currIrapPic будет этим IRAP-изображением.
- В противном случае, если флаг vps_base_layer_internal_flag равен 0, декодированное изображение с nuh_layer_id, равным 0, не передают для currAu при помощи внешних средств, блок currAu содержит два кодированных изображения, при этом изображение с большим значением nuh_layer_id является IRAP-изображением, и этом IRAP-изображение может быть принято за currIrapPic.
- В противном случае, если флаг vps_base_layer_internal_flag равен 0, декодированное изображение с nuh_layer_id, равным 0, предоставляют для currAu при помощи внешних средств, и блок доступа содержит одно кодированное изображение, которое является IRAP-изображением, и это IRAP-изображение может быть принято за currIrapPic.
- В остальных случаях currIrapPic для currAu не получают.
- Для всех изображений currIrapPic могут быть применимы описанные ниже ограничения.
Для всех слайсов IRAP-изображения:
- slice_type должен быть равен Р.
- оба флага sao_luma_flag и slice_sao_chroma слайса должны быть равны 0;
- five_minus_max_num_merge_cand должен быть равен 4;
- флаг weighted_pred_flag должен быть равен 0 в наборе PPS, на который ссылаются слайсы;
Для всех блоков кодирования IRAP-изображения:
- флаг cu_skip_flag[i][j] должен быть равен 1.
Когда флаг single_layer_for_non_irap_flag равен 0, флаг higher_layer_irap_skip_flag должен быть равен 0.
[0304] Когда флаг vps_base_layer_internal_flag равен 1, кодер может установить single_layer_for_non_irap_flag равным 1, как указание декодеру на то, что в любом блоке доступа могут присутствовать максимум два изображения, и когда в одном блоке доступа содержатся два изображения, одно из них, с большим значением nuh_layer_id, является IRAP-изображением. Кодер может также устанавливать флаг higher_layer_irap_skip_flag равным 1, чтобы указать декодеру на то, что всякий раз, когда в одном блоке доступа присутствуют два изображения, одно из них, с большим значением nuh_layer_id, будет IRAP-изображением, для которого декодированные сэмплы могут быть получены при помощи процедуры получения опорных изображений межуровневого предсказания, входными данными которой будет второе изображение, с меньшим значением nuh_layer_id.
[0305] Когда флаг single_layer_for_non_irap_flag равен 1, и флаг higher_layer_irap_skip_flag равен 1, изображение с большим значением nuh_layer_id в блоке доступа, содержащем эти два изображения, может называться IRAP-изображением с кодом пропуска, или пропускаемым изображением.
[0306] Пропускаемые изображения могут иметь малый размер, и для кодирования межуровневой информации о движении для каждого блока предсказания может использоваться режим слияния, при этом блоки с древообразной структурой кодирования не обязательно должны быть разбиты на блоки кодирования, и только один флаг, кодированный с помощью САВАС-кодека, может быть необходим для пропуска всех оставшихся кодовых значений в каждом блоке кодирования.
[0307] Независимые небазовые уровни и возможность декодирования независимых небазовых уровней
[0308] Независимый уровень может быть определен как уровень, который не имеет прямых опорных уровней. Другими словами, независимый уровень не предсказывают с помощью межуровневого предсказания.
[0309] Небазовый уровень может быть определен как любой уровень, помимо базового, при этом базовый уровень может быть определен как самый нижний уровень в битовом потоке.
[0310] Независимый небазовый уровень может быть определен как уровень, одновременно являющийся независимым уровнем и небазовым уровнем.
[0311] Возможность декодирования независимого небазового уровня (independent non-base layer decoding, INBLD) связана с возможностью декодирования одного или более одноуровневых профилей, например, основного профиля стандарта. Когда указывают на возможности декодера в отношении одного или более одноуровневых профилей, необходимо также указывать, поддерживается ли возможность декодирования независимого небазового уровня для этих профилей.
[0312] Возможность декодирования независимого небазового уровня, когда она поддерживается, может указывать на способность декодера декодировать независимый небазовый уровень, для которого указано, например, в активных наборах VPS и SPS, на то, что он соответствует одноуровнему профилю, и что этот уровень является уровнем с наименьшим значением nuh_layer_id в наборе дополнительных уровней.
[0313] Когда для указания на возможности декодера в различных системах используют синтаксическую структуру profile_tier_level() стандарта HEVC, указание на возможность декодирования независимого небазового уровня может быть выполнено за счет установления флага general_inbld_flag равным 1 в синтаксической структуре profile_tier_level(), используемой для сообщения профиля, яруса и уровня стандарта, которым соответствует декодер.
[0314] Флаг general_inbld_flag может быть установлен равным 1, в синтаксических структурах profile_tier_level() стандарта HEVC, в которых указан одноуровневый профиль и для которых либо в наборе VPS определена их применимость для небазового уровня, либо которые входят в активный набор SPS для независимого небазового уровня.
[0315] HEVC-декодеры, обладающие возможностью декодирования независимого небазового уровня и соответствующие конкретному одноуровневому профилю на конкретном уровне или ярусе стандарта, могут быть способны декодировать все репрезентации любых независимых небазовых уровней или подуровней с Temporalld, равным i, независимого небазового уровня, для которого, в каждом активном наборе VPS, выполнены все следующие условия:
- присутствует набор OLS, который состоит из независимого небазового уровня и для которого синтаксическая структура ptIStruct, соответствующая profile_tier_level(), отвечает следующим ограничениям:
ptIStruct указывает на то, что репрезентация независимого небазового уровня или подуровня отвечает профилю, определенному в приложении A (Annex А);
ptIStruct указывает на то, что репрезентация независимого небазового уровня или подуровня отвечает уровню стандарта, который меньше или равен заданному уровню стандарта;
ptIStruct указывает на то, что репрезентация независимого небазового уровня или подуровня отвечает ярусу стандарта, который меньше или равен заданному ярусу;
general_inbld_flag или sub_layer_inbld_flag[i] в ptIStruct равен 1.
[0316] Стандарт кодирования может включать процедуру перезаписи независимого небазового уровня, которая, например, определена HEVC. Процедура перезаписи может принимать, в качестве входных данных, битовый поток, содержащий независимый небазовый уровень, и преобразовывать этот независимый небазовый уровень в базовый уровень выходного битового потока этой процедуры. Пусть результирующий битовый поток outBitstream получен в результате вызова процедуры перезаписи независимого небазового уровня. Декодеры с возможностью декодирования независимого небазового уровня могут применять процедуру перезаписи независимого небазового уровня для получения потока outBitstream и затем применять процедуру декодирования для указанного одноуровневого профиля с потоком outBitstream в качестве входных данных.
[0317] Изображения точки произвольного доступа (RAP) используют при потоковой передаче для реализации таких функций, как поиск и ускоренное воспроизведение. В технологии DASH RAP-изображения применяют также для реализации переключения репрезентаций, выполняемого под управлением логики адаптации битрейта в проигрывателе, чтобы исключить опустошение приемного буфера, и при этом максимально эффективно использовать пропускную способность сети.
[0318] Для поддержки переключения, на стороне клиента, качества и разрешения в ходе сеанса потоковой передачи репрезентаций DASH, изображения точки произвольного доступа могут быть кодированы на границах сегментов. Традиционно в качестве границ сегментов репрезентаций DASH применяют только мгновенные RAP-изображения, такие как изображения мгновенного обновления декодирования (IDR), которыми начинается структура предсказания для так называемой закрытой группы изображений (GOP). Применение, в начале открытых групп GOP, изображений с внутренним предсказанием, например, CRA-изображений, в стандарте H.265/HEVC, является шагом вперед по сравнению с предшествующими стандартами, поскольку процедура декодирования, начиная с CRA-изображения, определена нормативно. Когда декодирование начинается с CRA-изображения, некоторые изображения, ссылающиеся на пропускаемые опережающие изображения произвольного доступа (random access skipped leading, RASL), которые следуют за этим CRA-изображением в порядке декодирования, однако предшествуют упомянутому CRA-изображению в порядке вывода, могут быть недекодируемы. Следовательно, если в качестве границ сегментов DASH использовались открытые группы GOP, переключение может приводить к невозможности декодирования RASL-изображений, и соответственно, к сбоям частоты смены кадров при воспроизведении. Например, если применяется иерархия предсказания из 8 изображений, и частота смены кадров составляет 25 Гц, видео может «замереть» примерно на треть секунды.
[0319] «Бесшовное» переключение репрезентации возможно, когда для репрезентаций используют структуры открытых GOP, имеющие одинаковое разрешение и другие характеристики, т.е. когда декодированное изображение исходной репрезентации может использоваться в качестве опорного изображения для предсказания изображений целевой репрезентации. Однако репрезентации не всегда имеют одинаковые характеристики, например, они могут иметь различное пространственное разрешение, и тогда бесшовное переключение может быть несколько более сложной задачей.
[0320] Ниже будут описаны более подробно некоторые из затруднений, связанных с бесшовным переключением репрезентаций.
[0321] Затруднительной может быть корректная обработка опережающих изображений. Один из примеров, иллюстрирующих затруднения при обработке опережающих изображений, описан ниже со ссылками на фиг. 8а-8е. В этом примере порядок вывода изображений соответствует движению слева направо. Следует отметить, что порядок декодирования отличается от порядка вывода. В примере фиг. 8а присутствуют два битовых потока, BS1 и BS2. Изображения обозначены прямоугольниками, внутри которых указан тип изображения: IDR, внутренне-предсказываемые (I), внешне-предсказываемые (Р) или двунаправленно предсказываемые (В). Значение temporal_id, большее 0, указано в виде числа после типа изображения. Стрелки указывают на отношение внешнего предсказания: начало стрелки соответствует опорному изображению для изображения, на которое указывает конец стрелки.
[0322] В данном примере переключение с первого битового потока BS1 на второй битовый поток BS2 выполняют в I-изображении. Следует обратить внимание на обработку опережающих изображений (В2, В1, В2), непосредственно предшествующих I-изображению в порядке вывода.
[0323] Невыполнение декодирования («недекодируемых») опережающих изображений может привести к пропускам в воспроизведении, что является нежелательным. Этот подход проиллюстрирован на фиг. 8b.
[0324] Одним из возможных подходов может быть прием и декодирование I- изображения из обоих битовых потоков. После этого возможны два различных варианта выбора. В соответствии с первым вариантом опережающие сообщения принимают и декодируют из первого битового потока BS1 (с которого выполняют переключение). Следует отметить, что, как правило, принимают также опережающие изображения потока BS2, поскольку они следуют за I-изображением в порядке декодирования. Второй вариант - прием и декодирование опережающих изображений из второго битового потока BS2 (на который выполняют переключение). Прием и декодирование опережающих изображений из первого битового потока BS1 не является обязательным. Следует отметить, что корректное восстановление опережающих изображений из второго битового потока BS2 может не быть возможным, поскольку некоторые из их опорных изображений при декодировании получают из первого битового потока BS1, тогда как опережающие изображения из второго битового потока BS2 были кодированы с использованием опорных изображений из битового потока BS2. Также, эта операция предполагает, что декодированные изображения из BS1 таковы, что они могут быть использованы в качестве опорных для декодирования изображений из BS2, т.е. в общем случае, по меньшей мере пространственное разрешение, формат цветности и битовая глубина битовых потоков BS1 и BS2 одинаковы. Когда декодированные изображения таковы, что не подходят для использования в качестве опорных для декодирования изображений в BS2, описанный подход неприменим.
[0325] В обоих из упомянутых выше вариантов принимают и декодируют два I-изображения, что занимает полосу пропускания и может приводить к небольшим задержкам в воспроизведении из-за того, что декодирование выполняется не полностью в реальном времени. Этот подход проиллюстрирован на фиг. 8b. Кроме того, услуга DASH и аналогичные услуги функционируют на основе посегментных запросов, или запросов подсегментов, когда запрашивают и принимают не отдельные изображения, а последовательности изображений. Следовательно, прием двух I-изображений из различных репрезентаций может быть непрактичным.
[0326] В общем случае схема расположения групп GOP в различных битовых потоках не является идентичной. Следовательно, нельзя знать наверняка, могут ли декодированные изображения из одного битового потока использоваться в качестве опорных изображений для другого битового потока. Таким образом, опережающие изображения первого битового потока могут быть декодированы, однако не из второго битового потока. На фиг. 8d показан один из примеров подобной ситуации. Опережающие изображения В1 из второго битового потока BS2 не могут быть декодированы, поскольку в первом битовом потоке BS1 нет опорных изображений, эквивалентных P-изображению во втором битовом потоке BS2.
[0327] Пример стратегии декодирования в соответствии с одним из вариантов осуществления настоящего изобретения проиллюстрирован ниже со ссылками на фиг. 8е. В данном примере структуры GOP двух битовых потоков являются идентичными. Такой подход к декодированию может требовать декодирования только одного из внутренне-предсказываемых изображений в точке переключения, что потенциально дает возможность обеспечить работу в режиме реального времени, без задержек. Корректное восстановление опережающих изображений второго битового потока BS2 не гарантировано, однако такое временное ухудшение качества изображений, может быть либо незаметным, либо не беспокоить пользователя, I-изображение и опережающие изображения потока BS1 передавать не требуется, что сберегает полосу пропускания.
[0328] Итак, для приемника нет простого способа определить, необходимо ли принимать и декодировать опережающие изображения первого битового потока BS1, а также, могут ли опережающие изображения второго битового потока BS2 при необходимости быть декодированы с использованием опорных изображений из первого битового потока BS1. При этом, предпочтительным является переключение битовых потоков по целым сегментам или подсегментам, с недопущением индивидуальных запросов на передачу конкретного изображения или изображений.
[0329] В качестве альтернативе применению открытых GOP для переключения репрезентаций могут применяться закрытые GOP, при этом может быть обеспечено плавное воспроизведение, однако с меньшей эффективностью сжатия, по сравнению с открытыми GOP.
[0330] Ниже описаны несколько вариантов осуществления настоящего изобретения, которые обеспечивают возможность переключения репрезентаций в DASH или иных технологиях адаптивной потоковой передачи таким образом, чтобы стабильная частота смены кадров сохранялась и во время переключения репрезентаций, при этом для получения большей эффективности сжатия, чем в случае применения структур предсказания для закрытых GOP, используют структуру предсказания для открытых GOP.
[0331] Ниже, на примерах фиг. 9а и 10 будет более подробно описано кодирование и подготовка сегментов в соответствии с одним из вариантов осуществления настоящего изобретения. Этот вариант осуществления настоящего изобретения может быть назван избыточным адаптивным изменением разрешения (redundant adaptive resolution change, RARC). Кодер может принимать или иным образом получать первую видеопрезентацию и вторую видеопрезентацию, или одну или более их частей (блоки 100 и 102 на фиг. 10). В блоках 100 и 102 первая видеопрезентация и вторая видеопрезентация могут быть приняты или получены иным образом в формате без сжатия, однако это не является обязательным условием. В некоторых случаях может быть принята или иным образом получена единая видеопрезентация, а упомянутые первая видеопрезентация и/или вторая видеопрезентация могут быть получены из упомянутой единой видеопрезентации при помощи передискретизации, масштабирования значений отсчетов и/или другой обработки. Кодер может кодировать первый битовый поток (репрезентация №1) 901 (блок 104), который в данном примере представляет собой репрезентацию с меньшим разрешением. Кодировать может кодировать, в битовый поток для репрезентации №1, одно или более IDR/BLA-изображений 903, опережающих изображений 904 (если они присутствуют), например, RADL-изображений и запаздывающих изображений 905. Соответственно, кодер может также кодировать второй битовый поток (репрезентация №1) 902 (блок 106), который в данном примере представляет собой репрезентацию с большим разрешением. Кодер может кодировать, в битовый поток для репрезентации №2, одно или более CRA-изображений 906, опережающих изображений 907 (если они присутствуют), например, RASL-изображений и запаздывающих изображений 908. Кодер, или иной элемент, например, формирователь MPD-описания или файловый инкапсулятор, может кодировать информацию для декодирования части репрезентации №2 с использованием репрезентации №1 (блок 108).
[0332] При избыточном адаптивном изменении разрешения битовый поток низкого разрешения может быть кодирован стандартным образом, например, в виде одноуровневого битового потока H.265/HEVC, тогда как битовый поток высокого разрешения может быть также стандартным одноуровневым битовым потоком, за исключением того, что идентификатор уровня (синтаксический элемент nuh_layer_id) должен быть задан равным 1 (или другому ненулевому значению). При этом, также, для каждого опорного изображения RASL-изображений высокого разрешения, которые предшествуют соответствующему CRA-изображению в порядке декодирования, могут быть созданы дополнительные IRAP-изображения с кодом пропуска (которые далее также называют пропускаемыми изображениями). Это может выполняться только для тех CRA-изображений, которыми начинается сегмент или подсегмент. Пропускаемые изображения, в принципе, принадлежат уточняющему уровню (с nuh_layer_id, равным 1) битового потока низкого разрешения и могут быть инкапсулированы в сегментах репрезентации низкого разрешения.
[0333] Функционирование способа избыточного адаптивного изменения разрешения, в соответствии с одним из вариантов осуществления настоящего изобретения, при переключении на поток повышенного разрешения проиллюстрировано на фиг. 9b и на блок-схеме алгоритма фиг. 11. При получении репрезентации 901 низкого разрешения (блоки 120 и 122 на фиг. 11) проигрыватель может также получать пропускаемые изображения 910 в каждом сегменте. Проигрыватель или иной элемент, например, анализатор MPD-описания или анализатор файлов, может декодировать или выполнять синтаксический анализ информации для декодирования части второй кодированной видеопрезентации с использованием первой кодированной видеопрезентации (блок 128). Информация может указывать на то, что первая кодированная видеопрезентация содержит пропускаемые изображения 910, которые могут использоваться в качестве опорных для предсказания при декодировании упомянутой части второй кодированной видеопрезентации. Эти пропускаемые изображения 910 могут использоваться только при переключении на репрезентацию 902 высокого разрешения (блоки 124 и 126). Проигрыватель применяет процедуру декодирования SHVC (или аналогичную) во время переключения с повышением качества, и соответственно, может декодировать пропускаемые изображения 910. Следующим принятым сегментом будет сегмент из репрезентации 902 высокого разрешения (блок 130). В качестве опорных для RASL-изображений 907, соответствующих первому CRA-изображению 906 репрезентации высокого разрешения также используют изображения из предыдущего сегмента. Однако в этот момент декодер может вместо них использовать декодированные пропускаемые изображения 910. Поскольку пропускаемые изображения включают в битовый поток для их последующего декодирования, декодер может следовать процедуре декодирования SHVC (или аналогичной) при декодировании упомянутого следующего принятого сегмента (блок 130), при этом ему не нужно создавать опорное изображение (или изображения) с повышенным разрешением с использованием каких-либо нестандартных процедур.
[0334] В соответствии с одним из вариантов осуществления настоящего изобретения переключение между репрезентациями с различным пространственным разрешением, битовой глубиной, цветовым охватом и/или форматом цветности может обеспечиваться при помощи передискретизации и/или другой обработки данных.
[0335] Характеристики последовательности неперекрывающихся (под)сегментов могут сигнализироваться отдельно от характеристик индивидуальных репрезентаций или наборов адаптации. В одном из вариантов осуществления настоящего изобретения, где применяют избыточное адаптивное изменение разрешения, для последовательностей неперекрывающихся подсегментов может быть указано, что они являются масштабируемыми битовыми потоками видеоданных, допускающих применение исключительно функции адаптивного изменения разрешения. В таком варианте осуществления настоящего изобретения может использоваться стандартная процедура масштабируемого видеодекодирования, поэтому переключение между разнородными репрезентациями с использованием структуры предсказания на основе открытых GOP может обеспечиваться без изменений в стандартных процедурах декодирования.
[0336] В нормальную процедуру декодирования многоуровневых расширений HEVC, определенную в параграфе F.8 версии 2 стандарта HEVC (и его подпараграфах), при помощи внешних средств передают две следующие переменные: TargetOlsIdx, которая определяет порядковый номер набора выходных уровней, применяемого декодером; и HighestTid, которая определяет наивысший декодируемый временной подуровень.
[0337] Без установления значения этих переменных декодер функционировать не может. Соответственно, ниже приведены варианты осуществления настоящего изобретения, обеспечивающие указание этих переменных и связывание их с различными комбинациями триплетов профиль-ярус-уровень стандарта.
[0338] В одном из вариантов осуществления настоящего изобретения, который может применяться независимо или совместно с другими вариантами осуществления настоящего изобретения, в параметрах кодека и/или параметрах любого другого MIME-типа может быть предоставлена информация по меньшей мере об одном наборе выходных уровней и/или наивысшем подуровне, к которым применим соответствующий список значений профиль-ярус-уровень стандарта. К примеру, для каждого элемента списка, ListItem, входящего в параметр 'codecs', может применяться следующий синтаксис и семантика (где параметр 'codecs', в соответствии с предшествующим описанием, представляет сбой список элементов ListItem с запятыми-разделителями:
[0339] Каждый ListItem (элемент списка) может иметь следующую структуру: SampleEntryType1.Profile TierLevel1(.SampleEntryTypeN.Profile TierLevelN) *(#OutOpPoint)?
где звездочкой ('*') обозначено повторение 0 или более раз, ('?') обозначено повторение ноль или один раз, '.' - разделительный символ, а '#' - еще один разделительный символ, предназначенный для отделения подстроки OutOpPoint выходной рабочей точки от подстрок значений профиль-ярус-уровень стандарта с разделителями-запятыми, нужно понимать, что разделительный символ, может быть равнозначно заменен на любой другой разделительный символ, или могут использоваться несколько различных разделительных символов, возможно, в различных позициях и для различных целей. К примеру, перед элементом SampleEntryTypeN вместо '.' может использоваться разделительный символ '!'. Аналогично, нужно понимать, что вместо разделительного символа '#' может с равнозначно применяться любой другой разделительный символ.
[0340] Описанный выше синтаксис элементов ListItem можно трактовать как включающий одну или более подстрок значений профиль-ярус-уровень стандарта, разделенных разделительным символом, и ноль или одну подстроку выходной рабочей точки, описанную ниже, отделенной от подстрок значений профиль-ярус-уровень стандарта символом '#'. Подстрока выходной рабочей точки, если она присутствует, следует за подстроками значений профиль-ярус-уровень стандарта.
[0341] Подстрока значений профиль-ярус-уровень стандарта может соответствовать приведенному выше описанию. В общем случае параметр 'codecs' может быть определен согласно приведенному выше описанию, за исключением подстроки выходной рабочей точки, описанной ниже.
[0342] Подстрока выходной рабочей точки, если она присутствует, может содержать значения из следующего списка, разделенные знаком «точка» ('.'):
кодированные десятичным числом порядковые номера наборов выходных уровней для каждого набора выходных уровней, включенного в каждый активный набор видеопараметров. Обязательные уровни указанного набора выходных уровней должны соответствовать информации о профиле-ярусе-уровне стандарта, указанной в элементе ListItem. Порядковый номер набора выходных уровней может использоваться в качестве значения TargetOlsIdx, подаваемого на вход процедуры декодирования HEVC. Порядковый номер набора выходных уровней должен предоставляться для битовых потоков HEVC, не содержащих базовый уровень HEVC. Если порядковый номер набора выходных уровней отсутствует, он может быть принят равным 0.
Наивысшее значение Temporalid, кодированное десятичным числом, соответствующее информации о профиле-ярусе-уровне стандарта, приданной всем обязательным уровням. Наивысшее значение Temporalid может использоваться в качестве значения HighestTid, подаваемого на вход процедуры декодирования HEVC. Если значение наивысшее Temporalid отсутствует, оно может быть принято равным 6.
[0343] Ниже приведены несколько примеров значения параметра 'codecs' (с допущением, что между подстроками значений профиль-ярус-уровень стандарта используется разделительный символ '#'):
codecs = hev1.A1.80.L93.B0!hev1.A7.1.L120.B0#2 может указывать на двухуровневый непакетированный поток с прогрессивной разверткой, в котором для трека, содержащего базовый уровень, используют тип 'hev1' записи с информацией о сэмплах, базовый уровень отвечает основному профилю, основному ярусу и уровню 3.1, для трека, содержащего уточняющий уровень, используют тип 'hev1' записи с информацией о сэмплах (например, он может содержаться в треке, который также содержит базовый уровень), уточняющий уровень отвечает масштабируемому основному профилю, основному ярусу, уровню 4. Порядковый номер набора выходных уровней, содержащего уточняющий уровень и базовый уровень в качестве обязательных уровней, равен 2. Codecs = Ihv1.A7.1.L120.B0#2, hev1.A1.80.L93.B0#1 может указывать на двухуровневый непакетированный поток с прогрессивной разверткой, в котором для трека, содержащего уточняющий уровень, использован тип Ihv1' записи с информацией о сэмплах, уточняющий уровень соответствует масштабируемому основному профилю, основному ярусу, уровню 4, для трека, содержащего базовый уровень, использован тип 'hev1', записи с информацией о сэмплах, и базовый уровень соответствует основному профилю, основному ярусу, уровню 3.1. Порядковый номер набора выходных уровней, содержащего уточняющий уровень и базовый уровень в качестве обязательных уровней, равен 2, тогда как порядковый номер выходного набора уровней, содержащего только базовый уровень, равен 1.
codecs = Ihv1.A7.1.L120.B0#1, avc1.64081F#1 может указывать на то, что для трека, содержащего базовый уровень, использован тип 'Ihv1' записи с информацией о сэмплах, уточняющий уровень соответствует масштабируемому основному профилю, основному ярусу, уровню 4, уточняющий уровень содержит непакетированные изображения с прогрессивной разверткой, а предсказание уточняющего уровня выполняется на основе базового уровня, кодированного при помощи AVC-кодирования. Для базового уровня, который кодирован при помощи AVC-кодирования, использован тип 'avc1' записи с информацией о сэмплах, а базовый уровень соответствует высокому профилю прогрессивной развертки, уровень 3.1. Порядковый номер набора выходных уровней, содержащего уточняющий уровень и базовый уровень в качестве обязательных уровней, равен 1.
[0344] В некоторых из вариантов осуществления настоящего изобретения параметр 'codecs', описанный в предыдущих вариантах осуществления настоящего изобретения или аналогичный им, может использоваться с типами контейнерный фалов, отличающихся от ISOBMFF. Например, в некоторых из вариантов осуществления настоящего изобретения параметр 'codecs', описанный в предыдущих вариантах осуществления настоящего изобретения или аналогичный им, может использоваться с атрибутом CODECS тега EXT-X-STREAM-INF файла списка произведения технологии прямой потоковой передачи по протоколу HTTP (HLS). Это позволяет сигнализировать один или более списков значений профиль - ярус-уровень стандарта (соответствующих уровням), порядковый номер набора выходных уровней, используемого для декодирования и наивысший подуровень, используемый для декодирования, в файле списка воспроизведения. В другом примере может быть определен новый атрибут тега EXT-X-STREAM-INF или другого тега в файле списка воспроизведения прямой потоковой передачи по протоколу HTTP (HLS) для включения одного или более из следующего: списков значений профиль-ярус-уровень стандарта (соответствующих уровням), порядкового номера набора выходных уровней, используемого для декодирования и наивысшего подуровня, используемого для декодирования, в файле списка воспроизведения.
[0345] В одном из вариантов осуществления настоящего изобретения, который может применяться независимо или совместно с другими вариантами осуществления настоящего изобретения, набор выходных уровней и/или наивысший подуровень, применимые для соответствующего списка значений профиль-ярус-уровень стандарта, могут содержаться в манифесте, например, в MPD-описании DASH.
[0346] По описанным ниже причинам для нахождения значений этих двух переменных на основе MPD-описания могут быть достаточны простые средства.
[0347] Во-первых, для определения, какие репрезентации (и следовательно, уровни кодирования) необходимы для декодирования выбранной репрезентации (соответствующие конкретному уровню или уровням кодирования) может использоваться атрибут @dependencyId. После этого список уровней может использоваться для определения набора уровней в активном наборе (или наборах) видеопараметров. Это может требовать не только анализа набора видеопараметров в проигрывателе (вне декодера), но при этом тот же набор уровней кодирования может быть связан с более чем одним наборов выходных уровней, и поэтому не во всех ситуациях может быть определено, какой из наборов выходных уровней должен быть выбран в качестве целевого набора выходных уровней.
[0348] Во-вторых, MPD-описание не содержит информации, которая бы позволила связать наивысший временной подуровень с репрезентацией.
[0349] В одном из вариантов осуществления настоящего изобретения упомянутые набор выходных уровней и/или наивысший подуровень, применимые для соответствующего списка значений профиль-ярус-уровень стандарта, может быть указан в MIME-типе, включающем параметры, а MIME-тип может содержаться в манифесте, например, в MPD-описании DASH. Например, атрибут @mimeType MPD-описания DASH может включать указание на набор выходных уровней и/или наивысший подуровень.
[0350] В одном из вариантов осуществления настоящего изобретения упомянутые набор выходных уровней и/или наивысший подуровень, применимые для соответствующего списка значений профиль-ярус-уровень стандарта могут быть указаны в параметре 'codecs' и/или любом другом параметре MIME, при этом параметр 'codecs' и/или любой другой параметр MIME могут содержаться в манифесте, например, в MPD-описании DASH. Например, атрибут @codecs MPD-описания DASH может включать указание на набор выходных уровней и/или наивысший подуровень.
[0351] В одном из вариантов осуществления настоящего изобретения упомянутые набор выходных уровней и/или наивысший подуровень, применимые для соответствующего списка значений профиль-ярус-уровень стандарта, могут быть указаны в конкретных атрибутах, или аналогичных элементах, в манифесте, например, в MPD-описании DASH.
[0352] В одном из вариантов осуществления настоящего изобретения упомянутые набор выходных уровней и/или наивысший подуровень, применимые для соответствующего списка значений профиль-ярус-уровень стандарта, могут быть указаны в существенных дескрипторах, или аналогичных элементах, в манифесте, например, в MPD-описании DASH. Поскольку TargetOlsIdx и HighestTid специфичны для HEVC, они могут быть указаны в дескрипторах (определенных для MPD-описания DASH), а не в обычных атрибутах. Также, поскольку TargetOlsIdx и HighestTid могут быть необходимы для корректного декодирования многоуровневого HEVC, они могут содержаться в дескрипторе EssentialProperty.
[0353] Дескриптор EssentialProperty с атрибутом @schemeIdURI, равным "urn:mpeg:dash:hevc:2015" может указывать на целевой набор или наборы выходных уровней и наивысший временной подуровень (или подуровни), связанный с набором адаптации, репрезентацией или подрепрезентацией, содержащими дескриптор EssentialProperty.
[0354] Параметр @value дескриптора EssentialProperty с @schemeIdURI, равным "urn:mpeg:dash:hevc:2015", может иметь приведенные ниже синтаксис и семантику.
[0355] Ниже будут более подробно описаны имена элементов и атрибутов из приведенного выше синтаксиса, в соответствии с одним из вариантов осуществления настоящего изобретения.
[0356] EssentialProperty.OutputOp может иметь значения 1…N и определяет выходную рабочую точку, включающую репрезентацию или подрепрезентацию, которая содержит дескриптор. В описанной ниже семантике, под репрезентацией или подрепрезентацией, содержащейся в рабочей точке, понимается репрезентация или подрепрезентация, соответствующая элементу Representation или SubRepresentation, содержащему данный дескриптор EssentialProperty. Когда дескриптор EssentialProperty входит в набор адаптации AdaptationSet, содержащаяся в нем репрезентация относится к любой отдельной презентации в этом наборе адаптации.
[0357] Атрибут @targetOlsIdx, который может быть обязательным, определяет порядковый номер набора уровней, связанного с выходной рабочей точкой.
[0358] Атрибут @highestTid, который может быть обязательным, определяет значение Temporalld наивысшего подуровня, связанного с выходной рабочей точкой.
[0359] Атрибут @outputOpCodecs, который может быть опциональным, определяет парметр 'codecs' для выходной рабочей точки. Содержимое этого атрибута должно соответствовать производным от списков simp-list или fancy-list секции 3.2 стандарта RFC6381, без охватывающих символов DQUOTE. Список simp-list или fancy-list, используемые в качестве содержимого этого атрибута, должны состоять из одного элемента списка, который отвечает ограничениям, описанным в следующих параграфах.
[0360] Идентификатор кодека, которым начинается значение параметра 'codecs' должен быть тем же, который применяется для вложенной репрезентации или подрепрезентации.
[0361] Упомянутый элемент списка должен включать подстроку профиль- ярус-уровень стандарта для каждого обязательного уровня в выходной рабочей точке.
[0362] Каждая подстрока профиль-ярус-уровень стандарта должна включать информацию о профиле и уровне стандарта.
[0363] Атрибут @outputReps, который может быть опциональным, определяет список, с разделителями-пробелами, значений @id репрезентаций, чьи уровни являются выходными в выходной рабочей точке. Когда этот атрибут отсутствует, выходными уровнями выходной рабочей точки являются те уровни, которые присутствуют во вложенной репрезентации или подрепрезентации. Когда этот атрибут присутствует, выходными уровнями выходной рабочей точки являются те уровни, которые присутствуют во вложенной репрезентации или подрепрезентации, а так же те уровни, которые присутствуют в репрезентациях с @id, равными любым элементам в списке @outputReps.
[0364] Ниже приведен один из примеров:
<!-- В данном периоде присутствуют три ракурса: поступающих с трех выстроенных в линию камер: С1-С2-С3.
Камеры С1+С2 и С2+С3 образуют стереопары, тогда как С1+С3 не образуют стереопары.
С2 выбран в качестве базового ракурса MV-HEVC, тогда как С1 и С3 являются уточняющими ракурсами-->
<!-Следующий набор адаптации содержит функциональность репрезентации, идентичную репрезентации в предыдущем наборе адаптации. Соответственно, оба они имеют одинаковые @id репрезентации. Это обеспечивает совместимость с 2D-приемниками,
которые не понимают schemeIdURI ролевого дескриптора и могут игнорировать
<!--Следующий набор адаптации содержит ракурс С1. Ракурсы С1 и С2 образуют набор выходных уровней с порядковым номером 1.-->
<!--Следующий набор адаптации содержит ракурс С3. Ракурсы С1 и С2 образуют набор выходных уровней с порядковым номером 1.-->
<!-Следующий набор адаптации содержит ракурс С3.
[0365] В одном из вариантов осуществления настоящего изобретения, который может применяться независимо или совместно с другими вариантами осуществления настоящего изобретения, характеристики, которые являются применимыми и/или необходимыми для декодирования последовательности неперекрывающихся последовательных сегментов (или, соответственно, подсегментов) кодируют в MPD-описание (или любой другой манифест) и/или получают при помощи синтаксического анализа MPD-описания (или любого другого манифеста). Репрезентации, из которых происходят сегменты (или, соответственно, подсегменты) могут быть указаны в MPD-описании или могут быть получены в результате синтаксического анализа MPD-описания. Упомянутые характеристики могут включать, без ограничения перечисленным, одно или более из следующего:
- кодеки или форматы кодирования, которым соответствует последовательность;
- список значений профиль-ярус-уровень стандарта, или аналогичных значений, которые соответствует последовательность;
- порядковый номер набора выходных уровней, который может использоваться в качестве порядкового номера целевого набора выходных уровней (например, TargetOlsIdx в случае HEVC) при декодировании последовательности.
- наивысший Temporalld (или аналогичный элемент, например, HighestTid в HEVC), который может использоваться при декодировании последовательности;
- информация, относящаяся к адаптивному изменению разрешения, например, флаг single_layer_for_non_irap_flag в HEVC или одновременно single_layer_for_non_irap_flag и higher_layer_irap_skip_flag в HEVC, или аналогичная информация;
- значения идентификаторов уровней (или аналогичная информация, например, значения nuh_layer_id в HEVC), содержащихся в последовательности.
- значения идентификаторов уровней (или аналогичных элементов) для обязательных уровней, содержащихся в последовательности;
- значения идентификаторов уровней (или аналогичных элементов) для выходных уровней, содержащихся в последовательности;
- информация об альтернативных выходных уровнях, например, значение alt_output_layer_flag в HEVC для набора выходных уровней, представленных последовательностью;
- набор или наборы видеопараметров, которые могут быть активированы при декодировании последовательности;
- другой набор или наборы параметров, например, наборы параметров последовательности или наборы параметров изображения, которые могут быть активированы при декодировании последовательности;
- значения идентификаторов масштабируемости (или аналогичных элементов, например, в HEVC: ScalabilityId[i] для i в диапазоне от 0 до 15) для уровней кодирования, содержащихся в последовательности;
- информация, относящаяся к неявной передискретизации опорных изображений, подходящая, например, для указания на одно из следующего: «предполагается неявная передискретизация», «неявная передискретизация может быть необходима». В дополнение или альтернативно, упомянутые характеристики могут содержать ограничение на количество изображений, для которых может потребоваться передискретизация при переключении репрезентаций. Информация, относящаяся к неявной передискретизации опорных изображений, может предоставляться отдельно для переключения с повышением качества и для переключения с понижением качества и/или для каждой пары репрезентаций, или групп репрезентаций, между которыми выполняют переключение.
[0366] Упомянутые выше характеристики могут указываться аналогично или идентично любым опциям, комбинациям или подмножеству сигнализации для комбинаций профиль-ярус-уровень стандарта и выходных рабочих точек, рассмотренным ранее. К примеру, упомянутые выше характеристики могут быть включены в виде значений параметров MIME, при этом MIME-тип, включая его параметры, может предоставляться для последовательности неперекрывающихся последовательных сегментов (или, соответственно, подсегментов) в MPD-описании, или могут быть получены для последовательности неперекрывающихся последовательных сегментов (или, соответственно, подсегментов) при помощи синтаксического анализа MPD-описания.
[0367] В одном из вариантов осуществления настоящего изобретения упомянутые выше характеристики кодируют в дополнительную структуру внутри MPD-описания (или любого другого манифеста). Эта дополнительная структура может быть необязательной для обработки клиентом или аналогичным элемента. В одном из вариантов осуществления настоящего изобретения упомянутые выше характеристики получают при помощи синтаксического анализа дополнительной структуры внутри MPD-описания (или любого другого манифеста).
[0368] В одном из вариантов осуществления настоящего изобретения упомянутые характеристики сопровождают одним или более из описанных ниже элементов информации, которая может быть кодирована в MPD-описание (или любой другой манифест) и/или получена при помощи синтаксического анализа MPD-описания (или любого другого манифеста).
- - информация, указывающая на одного или более из следующего: - упомянутые выше характеристики применимы к последовательности неперекрывающихся последовательных элементов; - упомянутые выше характеристики применимы к последовательности неперекрывающихся последовательных подсегментов;
- - идентификационная информация, например, значения идентификаторов, для репрезентаций, к которым применимы упомянутые выше характеристики. Репрезентации, указанные таким образом, могут называться «набором переключения».
[0369] В одном из вариантов осуществления настоящего изобретения репрезентации, к которым применимы упомянутые выше характеристики, могут быть вычислены на стороне клиента. К примеру, когда характеристики указаны для одной репрезентации в наборе адаптации, может делаться вывод о том, что эти характеристики применимы для всех репрезентаций в том же наборе адаптации. Репрезентации, к котором применимы упомянутые выше характеристики могут быть названы набором переключения.
[0370] В одном из вариантов осуществления настоящего изобретения упомянутые выше характеристики применимы к последовательности неперекрывающихся сегментов или подсегментов, которые могут происходить из любой репрезентации в наборе переключения. В другом варианте осуществления настоящего изобретения упомянутые выше характеристики применимы к последовательности неперекрывающихся сегментов или подсегментов, которые могут происходить из репрезентаций в наборе переключения, при этом на репрезентации, из которых могут происходить последовательные сегменты или подсегменты в последовательности, могут накладываться ограничения. К примеру, может предъявляться требование, чтобы последовательные сегменты или подсегменты происходили из одной и той же презентации или следующих друг за другом репрезентаций, при этом репрезентации могут быть упорядочены, например, на основе значений идентификаторов или на основе битрейтов.
[0371] В одном из вариантов осуществления настоящего изобретения дескриптор дополнительных свойств (SupplementalProperty), включающий упомянутые выше характеристики, кодируют в MPD-описание (или любой другой манифест) и/или получают в результате синтаксического анализа MPD-описания (или любого другого манифеста).
[0372] В одном из вариантов осуществления настоящего изобретения дескриптор дополнительных свойств, включающий упомянутые выше характеристики, включает также одно или более из следующего:
- - информация, указывающая на одного или более из следующего: - упомянутые выше характеристики применимы к последовательности неперекрывающихся последовательных элементов; - упомянутые выше характеристики применимы к последовательности неперекрывающихся последовательных подсегментов;
- идентификационная информация, например, значения идентификаторов, для репрезентаций, к которым применимы упомянутые выше характеристики. Репрезентации, указанные таким образом, могут называться «набором переключения».
[0373] В одном из вариантов осуществления настоящего изобретения дескриптор дополнительных свойств определяют в соответствии с приведенным ниже описанием или аналогичным образом.
[0374] Дескрипторы SupplementalProperty дополнительных свойств с @schemeIdURI, равным "urn:mpeg:dash:hevc:segseq:2015" (или любым другим URN, выбранным для указания на данный вариант осуществления настоящего изобретения, когда его применяют к сегментам) могут содержать характеристики последовательности неперекрывающихся сегментов для одной или более указанных репрезентаций. Дескрипторы SupplementalProperty дополнительных свойств с @schemeIdURI, равным "urn:mpeg:dash:hevc:subsegseq:2015" (или любым другим URN, выбранным для указания на данный вариант осуществления настоящего изобретения, когда его применяют к подсегментам) могут содержать характеристики последовательности неперекрывающихся подсегментов для одной или более указанных репрезентаций. Оба этих типа дескрипторов могут иметь одинаковый синтаксис и семантику, определенные, например, описанным ниже образом.
[0375] Атрибут @value дескриптора SupplementalProperty с @schemeIdURI, равным "urn:mpeg:dash:hevc:segseq:2015" или "urn:mpeg:dash:hevc:subsegseq:2015" представляет собой список следующих значений, разделенных запятыми (в приведенном ниже порядке):
- - список, с разделителями-пробелами, значений @id репрезентаций, сегменты или подсегменты из которых могут быть включены в последовательность последовательных сегментов или подсегментов, соответственно.
- - параметр 'codecs' и/или любые другие медиапараметры MIME, указывающие на комбинацию профиль-ярус-уровень стандарта или аналогичное значение, применимые к последовательности сегментов или подсегментов; например, параметр 'codecs', в соответствии с приведенным выше определением, может включать один элемент ListItem, который применим для последовательности сегментов или подсегментов; может предъявляться требование, чтобы параметр 'codecs' указывал на кодек из семейства HEVC;
- - двухразрядная строка двоичной маски из синтаксических элементов single_layer_for_non_irap и higher_layer_irap_skip_flag HEVC, которые действительны для последовательности SegSeq сегментов или последовательности SeqSubSeq подсегментов (в соответствии с последующим описанием); допустимыми значениями двоичной маски являются '00', '10' и '11'.
[0376] Нужно понимать, что в дополнение, или вместо параметра 'codecs' и строки двухразрядной двоичной маски, в синтаксис атрибута @value могут быть включены другие параметры, указывающие на те же или аналогичные свойства. К примеру, атрибут @value может содержать тип MIME, включающий соответствующие параметры MIME, которые применимы для последовательности последовательных сегментов или подсегментов.
[0377] Пусть R1 - репрезентация, содержащая дескриптор SupplementalProperty с @schemeIdURI, равным "urn:mpeg:dash:hevc:segseq:2015" или "urn:mpeg:dash:hevc:subsegseq:2015", и пусть R2, R3, RN - репрезентации, идентифицированные их значениями @id, содержащимися в атрибуте @value дескриптора SupplementalProperty. Может предъявляться требование, чтобы репрезентации R1, R2, …, RN были включены в один набор адатиации и имели одинаковое количество М сегментов медиаданных.
[0378] Когда присутствует дескриптор SupplementalProperty с @schemeIdURI, равным "urn:mpeg:dash:hevc:segseq:2015", может быть применимо следующее:
[0379] Пусть
i,j,
i
- S для j>0, будет j-й медиасегмент в i-й репрезентации (т.е. R)
i,0
- если он присутствует, пусть S будет инициализационным сегментом в i-й репрезентации, а
- Bi, если он присутствует, будет сегментом переключения битового потока в i-й репрезентации.
i,j
m,n
[0380] Может предъявляться требование, чтобы S не перекрывался с S для любых значений i и m в диапазоне от 1 до N включительно, а также j и n в диапазоне от 1 до М включительно, так, чтобы, i не было равно m, a j не было равно n.
[0381] Пусть SegSeq - последовательность из следующих сегментов:
- инициализационный сегмент S1.0 когда он присутствует
- Если присутствуют сегменты переключения битового потока,
i(1)
i(1),1
i(2)
i(2),2
i(k)
i(k),k
i(M)
i(M),M
B, S, B, S, …, B, S, …, B, S
в противном случае
i(1),1
i(2),2
i(k),k
i(M),M
S, S, …, S, S,
при этом все i(k) для всех значений k в диапазоне от 1 до М, соответственно, представляют собой целые числа в диапазоне от 1 до N.
[0382] Любая SeqSeq позволяет получить «отвечающую стандарту последовательность сегментов» с форматом медиаданных, указанным в параметре 'codecs', который содержится в атрибуте @value дескриптора SupplementalProperty.
[0383] Любая последовательность SegSeq позволяет обеспечить непрерывное воспроизведение и может иметь приемлемое качество.
[0384] Когда присутствует дескриптор SupplementalProperty с @schemeIdURI, равным urn:mpeg:dash:hevc:subsegseq:2015", может быть применимо следующее:
[0385] Пусть
i,j,k
- S, для j>0, будет k-й подсегмент j-го медиасегмента в i-й репрезентации (т.е. Ri)
i,j
- L будет равно количеству подсегментов в j-м медиасегменте i-й репрезентации
- если он присутствует, пусть Si,0 будет инициализационным сегментом в i-й репрезентации, а
i
- B, если он присутствует, будет сегментом переключения битового потока в i-й репрезентации.
i,j
h,j
j
i,j
j
[0386] Может предъявляться требование, чтобы L, было равно L для всех значений h и i диапазоне от 1 до N включительно, так, чтобы, h не было равно i. Пусть L будет равно L для всех значений i в диапазоне от 1 до N включительно. Пусть L будет равно сумме L для всех значений j в диапазоне от 1 до М включительно.
[0387] Может предъявляться требование, чтобы Si,j,k не перекрывался с Sm,n,o для любых значений i и m в диапазоне от 1 до N включительно, а также k и o в диапазоне от 1 до количества подсегментов в сегменте включительно, так, чтобы, i не было равно m, j не было равно n, а k не было равно о.
[0388] Пусть SubSegSeq - последовательность из следующих сегментов и подсегментов:
- инициализационный сегмент S1,0 когда он присутствует
- Если присутствуют сегменты переключения битового потока,
i(1)
i(1),1,1
i(2)
i(2),1,2
i(L1)
i(L1),1,L1
i(L1+1)
i(L1+1),2,1
i(L1+2)
i(L1+2),2,2
i(a)
i(a),j,k
i(L)
i(L),M, LM
B, S, B, S, …, B, S, B, S, B, S, …, B, S, …, B, S,
в противном случае
i(1),1,1
i(2),1,2
i(L1),1,L1
i(L1+1),2,1
i(L1+2),2,2
i(a),j,k
i(L),M, LM
S, S, …, S, S, S, …, S, …, S,
при этом все i(a) для всех значений а в диапазоне от 1 до L, соответственно, представляют собой целые числа в диапазоне от 1 до N.
[0389] Любая SubSeqSeq позволяет получить «отвечающую стандарту последовательность сегментов» с форматом медиаданных, указанным в параметре 'codecs', который содержится в атрибуте @value дескриптора SupplementalProperty.
[0390] Любая последовательность SubSegSeq позволяет обеспечить непрерывное вопросизведение и может иметь приемлемое качество.
[0391] Ниже приведен один из примеров:
<!-- когда сегменты репрезентаций разрешения 720р и 1080р объединяют (конкатенацией),
результирующая последовательность сегментов соответствует двухуровневому битовому потоку, где
базовый уровень соответствует основному профилю, основному ярусу, уровню 3.1 HEVC, а уточняющий уровень
соответствует масштабируемому основному профилю, основному ярусу, 4 уровню HEVC. При этом
на результирующую последовательность сегментов накладывают следующие ограничения:
[0392] В одном из вариантов осуществления настоящего изобретения, который может применяться независимо или совместно с другими вариантами осуществления настоящего изобретения, битовые потоки или репрезентации, соответствующие RARC, например, описанные на примере 9а и 9b, инкапсулируют в файловый формат и/или транспортный формат описанным ниже образом. Репрезентацию низкого разрешения включают в файл или в сегмент, отличающийся от тех, соответственно, в которых содержится репрезентация высокого разрешения. Трек пропускаемых изображений в репрезентации низкого разрешения имеет то же значение идентификатора трека (например, track_id), что и трек, в котором содержится репрезентация высокого разрешения. Запись с информацией о сэмплах этого трека, содержащего пропускаемые изображения, может указывать на многоуровневое кодирование, например, с использованием типов 'Ihv1' или 'Ihe1' записи с информацией о сэмплах, и/или может указывать на необходимость декодирования многоуровневого профиля, например, масштабируемого основного профиля HEVC. Трек, содержащий базовый уровень репрезентации низкого разрешения, и трек, содержащий репрезентацию высокого уровня, могут указывать на одноуровневое кодирование, например, могут использоваться типы 'hvc1' или 'hev1' записи с информацией о сэмплах, и/или может быть указано на необходимость декодирования одноуровневого профиля, например, основного профиля HEVC, и/или может быть указано на необходимость возможности INBLD-декодирования.
[0393] В одном из вариантов осуществления настоящего изобретения, который может применяться независимо или совместно с другими вариантами осуществления настоящего изобретения, клиент потоковой передачи или проигрыватель, при приеме репрезентаций по технологии RARC, которые были инкапсулированы согласно описанию в предыдущем параграфе, могут функционировать описанным ниже образом. Проигрыватель может продолжать использовать инициализационный сегмент репрезентации низкого уровня при переключении на прием репрезентации высокого разрешения. Следовательно, запись с информацией о сэмплах для трека, который содержит репрезентацию высокого разрешения, может указывать на многоуровневое кодирование, например, типы 'Ihv1' или 'Ihe1' записи с информацией о сэмплах, и/или может быть указано на многоуровневый профиль. Таким образом, проигрыватель может определить, что комбинация из принятых треков репрезентации низкого разрешения и репрезентации высокого разрешения представляет собой масштабируемый битовый поток и может требовать возможности декодирования многоуровневого профиля.
[0394] В одном из вариантов осуществления настоящего изобретения, который может применяться независимо или совместно с другими вариантами осуществления настоящего изобретения, избыточные пропускаемые изображения могут применяться согласно приведенному ниже описанию. Этот вариант осуществления настоящего изобретения может быть назван избыточным адаптивным изменением разрешения для переключения на зависимую репрезентацию (redundant adaptive resolution change for switching to dependent representation, RARC-D). Репрезентация низкого разрешения может быть кодирована стандартным образом, например, в виде одноуровневого битового потока H.265/HEVC, тогда как репрезентация высокого разрешения может быть кодирована как предсказываемый уровень, например, то есть, зависимая репрезентация, в котором по меньшей мере часть изображений могут предсказываться при помощи межуровневого предсказания на основе изображения (или изображений) репрезентации высокого разрешения. При этом, также, для каждого опорного изображения RASL-изображений высокого разрешения, которые предшествуют соответствующему CRA-изображению в порядке декодирования, могут быть созданы дополнительные пропускаемые изображения уточняющего уровня. Это может выполняться только для тех CRA-изображений, которыми начинается сегмент или подсегмент. Пропускаемые изображения, в принципе, принадлежат уточняющему уровню (например, с nuh_layer_id, равным 1) репрезентации низкого разрешения и могут быть инкапсулированы в сегментах репрезентации низкого разрешения.
[0395] В одном из вариантов осуществления настоящего изобретения, который может применяться независимо или совместно с другими вариантами осуществления настоящего изобретения, клиент потоковой передачи или проигрыватель, при приеме репрезентаций по технологии RARC-D, могут функционировать описанным ниже образом. Сначала проигрыватель принимает сегмент (или сегменты) репрезентации низкого разрешения. Затем проигрыватель принимает решение о переключении на повышенное разрешение и запрашивает соответствующий сегмент (или сегменты) как репрезентации низкого разрешения, так и репрезентации высокого разрешения. При переключении с повышением качества проигрыватель может декодировать пропускаемое изображение (или изображения) последнего сегмента, для которого принята только репрезентация низкого разрешения. Это пропускаемое изображение (или изображения) могут использоваться в качестве опорных при декодировании RASL-изображений исходного CRA-изображения в первом принятом сегменте репрезентации высокого разрешения. Решение о переключении с повышением качества может быть принято, например, в результате адаптации скорости передачи или процедуры быстрого запуска.
[0396] На фиг. 9с проиллюстрировано кодирование и подготовка сегментов в соответствии с одним из вариантов осуществления настоящего изобретения. Этот вариант осуществления настоящего изобретения может называться неявной передискретизацией опорных изображений (implicit reference picture resampling, IRPR).
[0397] Как репрезентация 909 низкого разрешения, так и репрезентация 911 высокого разрешения могут быть кодированы в виде обычных одноуровневых битовых потоков H.265/HEVC. Репрезентация 909 низкого разрешения может быть кодирована с использованием закрытых GOP, тогда как репрезентация 911 высокого разрешения может быть кодирована с использованием открытых GOP.
[0398] Функционирование способа IRPR-передискретизации в ходе переключения с повышением разрешения проиллюстрировано на фиг. 9d. Проигрыватель принимает решение о переключении с репрезентации 1 (репрезентации 909 низкого разрешения в данном примере) на репрезентацию 2 (репрезентацию 911 высокого разрешения в данном примере). Затем проигрыватель может запросить и принять следующий сегмент (далее, изображение 1) из репрезентации 2 вместо репрезентации 1. Чтобы исключить сбои в частоте смены кадров при отображении проигрыватель может принять решение о декодировании RASL-изображений 2…8. Проблема заключается в том, что одно или более из опорных изображений для этих RASL-изображений еще не были приняты, и следовательно, стандартный декодер H.265/HEVC может не быть способен успешно декодировать эти RASL-изображения. При IRPR-передискретизации проигрыватель повышает разрешение изображений репрезентации 1, которые соответствуют опорному изображению (или изображениям) для упомянутых RASL-изображений и использует это передискретизированное изображение (или изображения) в качестве опорного для предсказания RASL-изображений. В данном примере в качестве опорного изображения (прямого или косвенного) для изображений 2…8 репрезентации 2 применяют передискретизированное изображение 0 репрезентации 1 (обозначенное 912 на фиг. 9d). Повышение разрешения выполняют как часть способа IRPR-передискретизации, добавленного в процедуру декодирования H.265/HEVC.
[0399] В некоторых других вариантах осуществления настоящего изобретения декодер может избирательно отключать петлевую фильтрацию, такую как SAO-фильтрацию, например, для всех RASL-изображений или для RASL-изображений, которыми начинаются сегменты.
[0400] Варианты осуществления настоящего изобретения были описаны на примере сегментов. Нужно понимать, что эти варианты осуществления настоящего изобретения могут быть аналогичным образом описаны на примере подсегментов.
[0401] Одним из преимуществ использования открытых GOP вместо закрытых GOP может быть повышенная эффективность сжатия, что, например, позволяет получать такое же качество изображения при меньшем битрейте.
[0402] На фиг. 12 проиллюстрирована блок-схема видеодекодера, подходящего для применения вариантов осуществления настоящего изобретения. На фиг. 12 показана структура двухуровневого декодера, однако нужно понимать, что те же операции декодирования могут аналогичным образом применяться в одноуровневом декодере.
[0403] Видеодекодер 550 включает первую секцию 552 декодера для компонентов базового ракурса и вторую секцию 554 декодера для компонентов небазового ракурса. Блок 556 иллюстрирует демультиплексор, предназначенный для предоставления информации о компонентах базового ракурса в первую секцию 552 декодера, а также для предоставления информации о компонентах небазового ракурса во вторую секцию 554 декодера. Р'n обозначены предсказанные представления блока пикселей изображения. D'n обозначены восстановленные сигналы ошибки предсказания. Блоки 704, 804 иллюстрируют предварительно восстановленные изображения (I'n). R'n обозначено окончательное восстановленное изображение. Блоками 703, 803 проиллюстрированное обратное преобразование (Т-1). Блоками 702, 802 проиллюстрировано обратное квантование (Q-1). Блоками 701, 801 проиллюстрировано энтропийное декодирование (Е-1). Блоками 705, 805 проиллюстрирована память опорных кадров (reference frame memory, RFM). Блоками 706, 806 проиллюстрировано предсказание (Р) (либо внутреннее, либо внешнее предсказание). Блоками 707, 807 проиллюстрирована фильтрация (F). Блоки 708, 808 могут использоваться для комбинирования декодированной информации ошибки предсказания с предсказанными компонентами базового или небазового ракурса, в результате чего получают предварительно восстановленные изображения (I'n). Предварительно восстановленные и прошедшие фильтрацию изображения базового ракурса могут выводиться (709) из первой секции 552 декодера, а предварительно восстановленные и прошедшие фильтрацию изображения базового ракурса могут выводиться (809) из второй секции 554 декодера.
[0404] Фиг. 13 является графическим представлением типовой системы мультимедийной связи, в которой могут быть реализованы различные варианты осуществления настоящего изобретения. В соответствии с иллюстрацией фиг. 8, источник 1510 данных предоставляет исходный сигнал в аналоговом, несжатом цифровом или сжатом цифровом формате, или в любой комбинации из этих форматов. Кодер 1520 может иметь в своем составе средства предварительной обработки, например, средства преобразования формата данных и/или средства фильтрации исходного сигнала, или может иметь соединение с таким средствами. Кодер 1520 кодирует исходный сигнал в кодированный битовый поток мультимедийных данных. Следует отметить, что кодируемый битовый поток может приниматься, напрямую или опосредованно, от удаленного устройства, расположенного в сети практически любого типа. Также, битовый поток может приниматься от локального аппаратного или программного обеспечения. Кодер 1520 может быть способен кодировать более одного типа мультимедийных данных, например, аудио- и видеоданные, или могут требоваться более одного кодера 1520 для кодирования различных типов исходного сигнала. Кодер 1520 может также получать входные данные, полученные при помощи синтеза, такие как графику или текст, или может быть способен формировать кодированные битовые потоки синтезированных мультимедийных данных. Ниже, для простоты описания, будет рассмотрена обработка только одного кодированного битового потока, содержащего однотипные мультимедийные данные. Однако нужно отметить, что обычно сервисы вещания реального времени включают несколько потоков (как правило, по меньшей мере один аудиопоток, видеопоток и текстовый поток субтитров). Также, нужно отметить, что система может включать множество кодеров, однако на фиг. 8, для простоты описания, без потери общности, показан только один кодер 1520. Описание и примеры в настоящем документы описывают именно процедуру кодирования, однако при этом специалисты в данной области техники должны понимать, что те же самые принципы и идеи применимы и для соответствующей процедуры декодирования, и наоборот.
[0405] Кодированный битовый поток мультимедийных данных может быть передан в хранилище 1530. Хранилище 1530 может включать любой тип запоминающего устройства большой емкости для хранения кодированного битового потока мультимедийных данных. Формат кодированного битового потока мультимедийных данных в хранилище 1530 может быть элементарным автономным форматом битового потока, или один или более кодированных битовых потоков мультимедийных данных могут быть инкапсулированы в контейнерный файл. Если один или более битовых потоков мультимедийных данных инкапсулируют в контейнерный файл, может применяться формирователь файлов (не показан на чертежа) для сохранения одного или более битовых потоков мультимедийных данных в файл и для формирования метаданных формата файла, которые также сохраняют в файл. Кодер 1520 и/или хранилище 1530 могут включать формирователь файлов, или же формирователь файлов может быть функционально связан кодером 1520 и/или хранилищем 1530. Некоторые системы работают «на лету», то есть не используют память и передают кодированный битовый поток мультимедийных данных из кодера 1520 непосредственно в передатчик 1540. Затем кодированный битовый поток мультимедийных данных передают, когда это необходимо, в передатчик 1540, также именуемый сервером. Формат, используемый при передаче, может быть элементарным автономным форматом битового потока, или один или более кодированных битовых потоков мультимедийных данных могут быть инкапсулированы в контейнерный файл. Кодер 1520, хранилище 1530 и передатчик 1540 могут располагаться в одном и том же физическом устройстве, или же они могут входить в состав отдельных устройств. Кодер 1520 и сервер 1540 могут работать с данными реального времени, и в этом случае кодированный битовый поток мультимедийных данных, как правило, не хранят на постоянной основе, а буферизуют в течение небольших промежутков времени в кодере 1520 видеоданных и/или на сервере 230 для сглаживания колебаний задержек на обработку, задержек на передачу и битрейта кодированных мультимедийных данных.
[0406] Сервер 1540 передает кодированный битовый поток мультимедийных данных с использованием стека протоколов связи. Стек может включать, без ограничения перечисленным, одно или более из следующего: протокол передачи в реальном времени (RTP), протокол пользовательских датаграмм (UDP), протокол передачи гипертекста (Hypertext Transfer Protocol, HTTP), протокол управления передачей (Transmission Control Protocol, TCP) и протокол Интернета (IP). Когда стек протоколов связи является пакетным, сервер 1540 инкапсулирует кодированный битовый поток мультимедийных данных в пакеты. Например, когда используется протокол RTP, сервер 1540 инкапсулирует кодированный битовый поток мультимедийных данных в пакеты RTP согласно формату полезной нагрузки протокола RTP. Как правило, каждый тип мультимедийных данных имеет отдельный формат полезной нагрузки RTP. Следует еще раз отметить, что система может содержать более одного сервера 1540, но для простоты в последующем описании рассмотрен только один сервер 1540.
[0407] Если мультимедийные данные инкапсулированы в контейнерный файл для хранилища 1530 или для ввода данных в передатчик 1540, передатчик 1540 может иметь в своем составе «анализатор передаваемого файла» (не показан на чертеже) или может быть функционально связан с подобным элементом. В частности, если контейнерный файл сам по себе не передают, но по меньшей мере один содержащийся в нем кодированный битовый поток мультимедийных данных инкапсулируют для передачи по протоколу связи, анализатор передаваемого файла находит соответствующие фрагменты кодированного битового потока мультимедийных данных, подлежащие передаче по протоколу связи. Анализатор передаваемого файла может также быть полезен при создании корректного формата для протокола связи, например, заголовков и полезной нагрузки пакетов. Мультимедийный контейнерный файл может содержать инструкции по инкапсуляции, такие как треки указаний в базовом формате медиафайлов ISO, используемые для инкапсуляции по меньшей мере одного кодированного битового потока мультимедийных данных в протокол связи.
[0408] Сервер 1540 может быть связан со шлюзом 1550 через по сети связи, однако это не является обязательным. В дополнение или альтернативно, шлюз может называться промежуточным узлом. Следует отметить, что в общем случае система может включать любое количество шлюзов или аналогичных элементов, однако для простоты в приведенном ниже описании рассмотрен только один шлюз 1550. Шлюз 1550 может выполнять функции различных типов, например, кеширование пакетов, потоков или ресурсов, предварительную проактивную загрузку медиаданных, трансляцию потока пакетов, соответствующую одному стеку протоколов связи, в другой стек протоколов связи, слияние и разветвление потоков данных и манипуляцию потоками данных согласно возможностям нисходящей линии связи и/или приемника, например, управление битовой скоростью передачи данных перенаправляемого потока согласно превалирующим сетевым условиям в нисходящей линии связи. Примеры шлюзов 1550 включают устройство управления многоточечной конференцсвязью (multipoint conference control unit, MCU,), шлюзы между устройствами видеотелефонии с коммутацией каналов и с коммутацией пакетов, серверы сервиса «нажми и говори в сотовой сети» (Push-to-talk over Cellular, РОС), IP-инкапсуляторы в системах цифрового телевизионного вещания на портативные устройства (стандарт DVB-H), телевизионные приставки или другие устройства, которые перенаправляют вещание локально в домашние беспроводные сети. При использовании протокола RTP шлюз 1550 называют RTP-микшером или RTP-транслятором, при этом он может выступать в роли конечной точки соединения RTP. В дополнение к шлюзу 1550 или вместо него система может иметь в своем составе сплайсер, которые объединяет видеопоследовательности или битовые потоки.
[0409] Система включает один или более приемников 1560, которые, в общем случае, способны принимать, демодулировать и/или декапсулировать переданный сигнал с получением кодированного битового потока мультимедийных данных. Кодированный битовый поток мультимедийных данных может быть передан в записывающее хранилище 1570. Записывающее хранилище 1570 может включать любой тип запоминающего устройства большой емкости для хранения кодированного битового потока мультимедийных данных. Записывающие хранилище 1570 может, дополнительно или альтернативно, включать вычислительную память, например, память с произвольным доступом. Формат кодированного битового потока мультимедийных данных в записывающем хранилище 1570 может быть элементарным автономны форматом битового потока, или один или более кодированных битовых потоков мультимедийных данных могут быть инкапсулированы в контейнерный файл. Если имеются несколько кодированных битовых потоков мультимедийных данных, например, аудиопоток и видеопоток, связанные друг с другом, то, как правило, применяют контейнерный файл, и при этом приемник 1560 содержит формирователь контейнерного файла (или связан с подобным формирователем), формирующий контейнерный файл на основе входных потоков. Некоторые системы работают «на лету», то есть передают кодированный битовый поток мультимедийных данных из приемника 1560 непосредственно в декодер 1580, без задействования записывающего хранилища 1570. В некоторых системах в записывающем хранилище 1570 хранят только последнюю по времени часть записанного потока, например, последний 10-минутный фрагмент записанного потока, тогда как все ранее записанные данные удаляют из записывающего хранилища 1570.
[0410] Кодированный битовый поток мультимедийных данных из записывающего хранилища 1570 может быть передан в декодер 1580. Если имеются несколько кодированных битовых потоков мультимедийных данных, например, аудиопоток и видеопоток, связанные друг с другом и инкапсулированные в контейнерный файл, или один битовый поток, который инкапсулирован в контейнерный файл, например, для более простого доступа, то применяют анализатор файлов (не показан на чертеже) для декапсуляции всех кодированных битовых потоков мультимедийных данных из контейнерного файла. Записывающее хранилище 1570 или декодер 1580 могут иметь анализатор файлов в своем составе, или анализатор файлов может быть связан с записывающим хранилищем 1570, или с декодером 1580. Также, нужно отметить, что система может включать множество декодеров, однако в данном документе, для простоты описания, без потери общности, показан только один кодер 1570.
[0411] Кодированный битовый поток мультимедийных данных может далее обрабатываться декодером 1570, на выходе которого получают один или более несжатых потоков мультимедийных данных. Наконец, устройство 1590 воспроизведения может воспроизводить несжатые потоки мультимедийных данных, например, с помощью громкоговорителя или дисплея. Приемник 1560, записывающее хранилище 1570, декодер 1570 и устройство 1590 воспроизведения могут располагаться в одном и том же физическом устройстве, или же они могут входить в состав отдельных устройств.
[0412] Передатчик 1540 и/или шлюз 1550 могут быть сконфигурированы для выполнения переключения между различными битовыми потоками 901, 902, 909, 911, например, в целях адаптации битрейта, с различными форматами цветности, битовой глубиной отсчетов, цветовым охватом и/или пространственным разрешением, и/или передатчик 1540, и/или шлюз 1550, могут быть сконфигурированы для выбора передаваемого битового потока. Переключение между различными битовыми потоками 901, 902, 909, 911 может выполняться по множеству различных причин, например, в ответ на запрос от приемника 1560 или в зависимости от превалирующих условий в сети, по которой передают битовый поток, к примеру, ее пропускной способности. Запросом от приемника может быть, например, запрос сегмента или подсегмента из другой репрезентации или битового потока, по сравнению с предыдущим, запрос на изменение передаваемых масштабируемых уровней и/или подуровней, или переключение на устройство воспроизведения, которое имеет отличающиеся, по сравнению с предыдущим, возможности. Запросом сегмента может быть запрос GET протокола HTTP. Запросом подсегмента может быть запрос GET протокола HTTP с некоторым байтовым диапазоном. В дополнение или альтернативно, коррекция битрейта или адаптация битрейта может применяться, например, для обеспечения так называемого быстрого запуска в сервисах потоковой передачи данных, где битрейт передаваемого потока ниже, чем битрейт канала после запуска или произвольного доступа к потоку, что позволяет мгновенно запустить воспроизведение и обеспечить лучший уровень заполнения буфера, допускающего случайные задержки и/или повторные передачи пакетов. Адаптация битрейта может включать операции переключения между различными репрезентациями или уровнями с повышением качества или переключения между различными репрезентациями или уровнями с понижением качества, выполняемые в различном порядке.
[0413] Декодер 1580 может быть сконфигурирован для выполнения переключения между различными битовыми потоками 901, 902, 909, 911, например, в целях адаптации битрейта, с различными форматами цветности, битовой глубиной отсчетов, цветовым охватом и/или пространственным разрешением, и/или декодер 1580 может быть сконфигурирован для выбора передаваемого битового потока. Переключение между различными битовыми потоками 901, 902, 909, 911 может выполняться по множеству различных причин, например, для ускорение операции декодирования или для адаптации передаваемого битового потока, например, по битрейту, в зависимости от превалирующих условий в сети, по которой передают битовый поток, к примеру, ее пропускной способности. Повышение быстродействия операции декодирования может быть необходимо, например, если устройство, в состав которого входит декодер 580, является многозадачным, и использует вычислительные ресурсы для других целей, а не только для декодирования масштабируемого битового потока видеоданных. В другом примере повышение быстродействия операции декодирования может быть необходимо, когда воспроизведение видеоданных выполняют с увеличенной скоростью (по сравнению с нормальной скоростью воспроизведения), например, в два или три раза быстрее, чем обычная скорость воспроизведения. Скорость операции декодирования может меняться в ходе декодирования или воспроизведения, например, в ответ на переключение с ускоренного воспроизведения на воспроизведение с нормальной скоростью, или наоборот, и соответственно, могут иметь место множество операций переключения уровней кодирования с повышением или понижением разрешения, в различном порядке.
[0414] Выше различные варианты осуществления настоящего изобретения были описаны в отношении таких терминов, как «репрезентация» и/или «битовый поток». Нужно понимать, что варианты осуществления настоящего изобретения аналогичным образом могут быть описаны в отношении аналогичных терминов, например, могут использоваться «репрезентация» вместо «битового потока», «битовый поток» вместо «репрезентации», или «элементарный поток» вместо «битового потока» и «репрезентации».
[0415] Выше некоторые из вариантов осуществления настоящего изобретения были описаны в отношении пропускаемых изображений. Причиной, по которой применялись пропускаемые изображения, было ограничение требований к вычислительным ресурсам для блока доступа. Нужно понимать, что варианты осуществления настоящего изобретения могут быть аналогичным образом реализованы с использованием, вместо пропускаемых изображений, IRAP-изображений любого из уточняющих уровней. Другими словами, часть изображений IRAP уточняющего уровня, или все из них, для репрезентации низкого разрешения в вариантах осуществления настоящего изобретения, связанных с технологией RARC, могут включать кодированную информацию об ошибке предсказания. То есть, кодеры могут кодировать упомянутые IRAP-изображения уточняющего уровня, таким образом, чтобы они включали кодированную информацию об ошибке предсказания, декодеры могут декодировать упомянутые IRAP-изображения уточняющего уровня, таким образом, чтобы обеспечивалось декодирование информации об ошибке предсказания.
[0416] Выше некоторые из вариантов осуществления настоящего изобретения были описаны в отношении репрезентации или битового потока низкого разрешения и репрезентации или битового высокого разрешения, что указывает на различное пространственное разрешение репрезентаций, и соответственно, на применение передискретизации по пространственному разрешению в этих вариантах осуществления настоящего изобретения. Нужно понимать, что в дополнение или вместо различного пространственного разрешения упомянутые репрезентации могут иметь другие типы отношения, или отношений, и могут требовать процедуры или процедур передискретизации иных типов. К примеру, могут отличаться битовая глубина и/или цветовой охват репрезентаций, и в вариантах осуществления настоящего изобретения может применяться передискретизация, аналогичная применяемой при масштабируемости цветового охвата SHVC. Варианты осуществления настоящего изобретения не ограничены только одним типом передискретизации, напротив, например, может совместно применяться передискретизация по пространственному разрешению, битовой глубине и цветовому охвату. К примеру, в вариантах осуществления настоящего изобретения с применением способа RARC пропускаемые изображения могут передискретизироваться по пространственному разрешению, битовой глубине и цветовому охвату, например, с использованием межуровневой обработки SHVC.
[0417] Выше некоторые из вариантов осуществления настоящего изобретения были описаны на примере кодирования репрезентации низкого разрешения с использованием закрытых GOP. Причиной применения закрытых GOP в репрезентации низкого разрешения является возможность переключения на репрезентацию с пониженным разрешением без уменьшения частоты смены кадров, без изменения стандартной процедуры декодирования. Однако нужно понимать, что варианты осуществления настоящего изобретения могут быть реализованы аналогичным образом, когда репрезентацию низкого разрешения кодируют с использованием открытых GOP.
[0418] Выше некоторые из вариантов осуществления настоящего изобретения были описаны с точки зрения повышения разрешения изображения репрезентации низкого разрешения для переключения на репрезентацию высокого разрешения. Нужно понимать, что варианты осуществления настоящего изобретения могут быть реализованы аналогичным образом для понижения разрешения изображения репрезентации высокого разрешения с целью его использования в качестве опорного изображения для декодирования репрезентации высокого разрешения, на которую выполняют переключение. К примеру, в репрезентации низкого разрешения могут использоваться CRA-изображения (или, в общем случае, изображения типа 3 SAP), и соответственно, декодирование RASL-изображений, связанных с исходным CRA репрезентации низкого разрешения, на которую выполняют переключение, может требовать опорных изображений, которые предшествуют, в порядке декодирования, упомянутому CRA-изображению. Эти опорные изображения могут формироваться при помощи передискретизации соответствующих изображений репрезентации высокого разрешения. Нужно также понимать, что такие варианты осуществления настоящего изобретения аналогичным образом могут быть реализованы, когда порядок репрезентаций, или уровней кодирования, таков, что репрезентация, или уровень, высокого разрешения может требовать понижения разрешения изображения репрезентации, или уровня, низкого разрешения, для использования его в качестве опорного изображения. В некоторых случаях передискретизация для формирования опорного изображения может требовать операций в отношении более чем одной масштабируемой величины или типа масштабируемости. Например, вышележащая репрезентация, или уровень, могут иметь большее пространственное разрешение, однако меньшую битовую глубину, чем нижележащая репрезентация, или уровень, и поэтому использование изображения из нижней репрезентации, или уровня, в качестве опорного для вышележащей репрезентации, или уровня, может требовать передискретизации с повышением пространственного разрешения, однако также передискретизации, или масштабирования, с понижением битовой глубины.
[0419] Выше некоторые из вариантов осуществления настоящего изобретения были описаны на примере двух репрезентаций, или битовых потоков, или уровней, например, репрезентации, или битового потока, высокого разрешения и репрезентации, или битового потока, низкого разрешения. Нужно понимать, что варианты осуществления настоящего изобретения не ограничены двумя репрезентациями, или битовыми потоками, или уровнями, и могут быть равноприменимы для большего количества репрезентаций, или битовых потоков, или уровней.
[0420] Выше некоторые из вариантов осуществления настоящего изобретения были описаны на примере передискретизации одного изображения для точки переключения репрезентаций. Нужно понимать, что варианты осуществления настоящего изобретения не ограничены передискретизацией только одного изображения для каждой точки переключения репрезентаций, и могут быть, в общем случае, быть равноприменимы для любого количества передискретизируемых изображений. К примеру, в способе RARC для точки переключения могут присутствовать более одного изображения. Количество передискретизируемых изображений может определяться количеством опорных изображений, необходимых для декодирования RASL-изображений, соответствующих IRAP-изображению точки переключения в репрезентации, на которую выполняют переключение, и предшествуют, в порядке декодирования, IRAP-изображению точки переключения.
[0421] Выше некоторые из вариантов осуществления настоящего изобретения были описаны с точки зрения сегментов. Нужно понимать, что эти варианты осуществления настоящего изобретения могут быть аналогичным образом реализованы в отношении подсегментов.
[0422] Выше некоторые из вариантов осуществления настоящего изобретения были описаны в отношении протокола HTTP и/или запросов GET протокола HTTP. Нужно понимать, что варианты осуществления настоящего изобретения не ограничены применением протокола HTTP, и, в дополнение или альтернативно, могут применяться другие протоколы, например, WebSockets. Также, нужно понимать, что настоящее изобретение может быть применимым в случаях, когда клиентская сторона не выполняет запросов, таких как запросов GET протокола HTTP, например, когда клиент принимает данные при помощи широковещательной передачи, то есть, службы вещания согласно службе мультимедийного вещания 3GPP (Multimedia Broadcast/Multicast Service, MBMS).
[0423] В предшествующем описании некоторые из вариантов осуществления настоящего изобретения были рассмотрены на примере кодирования указаний, синтаксических элементов и/или синтаксических структур в битовом потоке или в кодированной видеопоследовательности, и/или на примере декодирования указаний, синтаксических элементов и/или синтаксических структур из битового потока или из кодированной видеопоследовательности. Однако нужно понимать, что варианты осуществления настоящего изобретения могут быть реализованы при кодировании указаний, синтаксических элементов и/или синтаксических структур, в синтаксическую структуру или блок данных, который является внешним по отношению к битовому потоку или кодированной видеопоследовательности, содержащий данные уровней видеокодирования, например, кодированные слайсы, и/или при декодировании указаний, синтаксических элементов и/или синтаксических структур, из синтаксической структуры или блока данных, который является внешним по отношению к битовому потоку или кодированной видеопоследовательности, содержащей данные уровней видеокодирования, например, кодированных слайсов.
[0424] В приведенном выше описании, там, где примеры осуществления настоящего изобретения были описаны со ссылками на кодер, нужно понимать, что результирующий поток и декодер также могут включают соответствующие элементы. Аналогично, там, где примеры осуществления настоящего изобретения были описаны со ссылками на декодер, нужно понимать, что кодер может иметь структуру и/или компьютерную программу для формирования битового потока, декодируемого декодером.
[0425] В рассмотренных выше вариантах осуществления настоящего изобретения кодек описан на примере отдельных устройств кодирования и декодирования - для упрощения понимания применяемых процедур. Однако нужно понимать, что аппаратура, структуры и операции могут быть реализованы в виде единого устройства/структуры/операции кодирования-декодирования. Также допускается, что кодер и декодер могут совместно использовать часть общих элементов, или что всех элементы могут быть общими.
[0426] Рассмотренные выше примеры описывают работу вариантов осуществления настоящего изобретения в кодеке из состава электронного устройства, однако нужно понимать, что настоящее изобретение, определенное приложенной формулой изобретения, может быть реализовано как часть любого видеокодека. Так, например, варианты осуществления настоящего изобретения могут быть реализованы в видеокодеке, в котором видеокодирование может быть реализовано по фиксированным, или проводным, каналам связи.
[0427] Соответственно, абонентское оборудование может включать в свой состав видеокодек, например, аналогичный рассмотренным в приведенном выше описании настоящего изобретения. Нужно понимать, что выражение «абонентское оборудование» используется как охватывающие любые подходящие типы беспроводного абонентского оборудования, например, мобильные телефоны, портативные устройства обработки данных или портативные веб-браузеры.
[0428] При этом элементы наземной сети мобильной связи общего пользования (public land mobile network, PLMN) также могут включать видеокодеки в соответствии с предшествующим описанием.
[0429] В общем случае различные варианты осуществления настоящего изобретения могут быть реализованы в виде аппаратного обеспечения или схем специального назначения, программного обеспечения, логики или какой-либо их комбинации. К примеру, некоторые из аспектов могут быть реализованы в виде аппаратного обеспечения, тогда как другие аспекты могут быть реализованы в виде микропрограммного или программного обеспечения, которое может исполняться контроллером, микропроцессором или иным вычислительным устройством, без ограничения настоящего изобретения перечисленным. Различные аспекты настоящего изобретения допускают иллюстрацию и описание в виде блок-схем, блок-схем алгоритмов или с помощью некоторых других наглядных представлений, но при этом нужно понимать, что блоки, устройства, системы, методы или способы, описанные в настоящем документе, могут быть реализованы, в качестве неограничивающих примеров, в виде аппаратного обеспечения, программного обеспечения, микропрограммного обеспечения, схем или логики специального назначения, аппаратного обеспечения или контроллера общего назначения, или же иных вычислительных устройств, или некоторой их комбинации.
[0430] Варианты осуществления настоящего изобретения могут быть реализованы с помощью программного обеспечения, исполняемого процессором данных мобильного устройства, например, процессорным элементом, или с помощью аппаратного обеспечения, или с помощью комбинации программного и аппаратного обеспечения. Также в этом отношении следует отметить, что любые блоки последовательностей логических операций, проиллюстрированные на чертежах, могут представлять собой шаги программы или взаимосвязанные логические схемы, блоки и функции, или комбинацию программных шагов и логических схем, блоков и функций. Программное обеспечение может храниться на таких физических носителях, как микросхемы памяти или блоки памяти, реализованные внутри процессора, магнитные носители, например, жесткий диск или гибкий диск, и оптические носители, например, DVD и их варианты для хранения данных, CD.
[0431] Память может относиться к любому типу, соответствующему локальному техническому окружению, при этом она может быть реализована с использованием любой подходящей технологии хранения данных, например, запоминающие устройства на полупроводниках, магнитные запоминающие устройства и системы, оптические запоминающие устройства и системы, несъемная или съемная память. Процессоры данных могут относиться к любому типу, соответствующему локальному техническому окружению и могут включать одно или более из следующего: компьютеры общего назначения, компьютеры специального назначения, микропроцессоры, цифровые сигнальные процессоры (digital signal processors, DSP), процессоры на основе многоядерной архитектуры - в качестве неограничивающих примеров.
[0432] Варианты осуществления настоящего изобретения могут применяться на практике в различных компонентах, например, в модулях интегральных схем. Процесс разработки интегральных схем, в целом, в высокой степени автоматизирован. Существуют сложные и мощные программные инструменты для преобразования проектов логического уровня в конструкции полупроводниковых схем, готовые для вытравливания и формовки на полупроводниковой подложке.
[0433] Программы, подобные поставляемой фирмой Synopsys, Inc (Маунтин-Вью, Калифорния) или фирмой Cadence Design (Сан-Хосе, Калифорния), осуществляют автоматическую разводку проводников и позиционирование компонентов на полупроводниковом кристалле с использованием общепринятых правил разработки, а также с использованием библиотек заранее сохраненных модулей проектов. По завершении разработки полупроводниковой схемы результирующая конструкция, в стандартизированном электронном формате (например, Opus, GDSII и т.п.) может быть передана на полупроводниковое производство для изготовления микросхемы.
[0434] В предшествующем изложении с помощью иллюстративных и неограничивающих примеров было обеспечено полное и информативное описание одного из примеров осуществления настоящего изобретения. Однако в свете предшествующего описания, рассматриваемого в сочетании с приложенными чертежами, специалистам в соответствующих областях техники могут быть очевидны различные модификации и доработки. Тем не менее, любые такие или аналогичные им модификации концепции настоящего изобретения все равно попадают в его рамки.
[0435] В соответствии с первым вариантом осуществления настоящего изобретения способ включает:
декодирование первой части первой кодированной видеорепрезентации;
прием и синтаксический анализ информации о декодировании второй кодированной видеорепрезентации;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина элемента изображения, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли вторая кодированная видеорепрезентация быть декодирована с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания;
при условии, что упомянутая информация указывает, может ли вторая кодированная видеорепрезентация быть декодирована с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений в качестве опорных для предсказания, способ дополнительно включает:
обработку одного или более декодированных изображений из первой части с преобразованием их в одно или более обработанных декодированных изображений, при этом обработка включает передискретизацию и/или масштабирование значений отсчетов; и
декодирование второй части второй кодированной видеорепрезентации с использованием упомянутых одного или более обработанных декодированных изображений в качестве опорных изображений, которые могут использоваться для предсказания.
[0436] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает:
прием описания медиапрезентации, содержащего упомянутую информацию.
[0437] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает:
определение, на основе описания медиапрезентации, первого идентификатора, который идентифицирует первую часть первой кодированной репрезентации, и второго идентификатора, который идентифицирует вторую часть второй кодированной репрезентации;
запрос упомянутой первой части при помощи упомянутого первого идентификатора;
прием упомянутой первой части;
запрос упомянутой второй части с использованием второго идентификатора; и
прием упомянутой второй части.
[0438] В соответствии с одним из вариантов осуществления настоящего изобретения упомянутые первый идентификатор и второй идентификатор представляют собой унифицированные идентификаторы ресурса.
[0439] В соответствии с одним из вариантов осуществления настоящего изобретения пространственное разрешение первой кодированной репрезентации определяют для опорной области, а пространственное разрешение второй кодированной репрезентации определяют для предсказываемой области, при этом способ дополнительно включает:
прием информации об опорной области, или, при отсутствии информации об опорной области;
определение того, что опорная область охватывает всю область изображения первой кодированной видеорепрезентации;
прием информации о предсказываемой области, или, при отсутствии информации о предсказываемой области;
определение того, что предсказываемая область охватывает всю область изображения второй кодированной видеорепрезентации;
[0440] В соответствии с одним из вариантов осуществления настоящего изобретения упомянутые одно или более обработанных декодированных изображений имеют тот же формат цветности и битовую глубину, что и изображения второй кодированной видеорепрезентации.
[0441] В соответствии с одним из вариантов осуществления настоящего изобретения упомянутые одно или более обработанных декодированных изображений имеют то же пространственное разрешение, что и изображения второй кодированной видеорепрезентации.
[0442] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает:
прием и синтаксический анализ информации о том, что вторая кодированная видеорепрезентация принадлежит небазовому уровню и может быть независимо декодирована.
[0443] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает:
прием и синтаксический анализ информации о том, что упомянутая первая часть упомянутой первой кодированной видеорепрезентации и упомянутая вторая часть упомянутой второй кодированной видеорепрезентации из битового потока, который соответствует масштабируемому профилю видеокодирования с ограничениями, заключающимися в том, что блоки доступа должны включать не более двух изображений, и в том, что когда блок доступа включает два изображения, изображение, принадлежащее более высокому уровню, должно быть внутренне-предсказываемым изображением точки произвольного доступа, для предсказания которых в качестве опорных изображений не используют предшествующие изображения в том же уровне, однако для предсказания которых в качестве опорных изображений могут использоваться изображения в более низком уровне того же блока доступа.
[0444] В соответствии со вторым вариантом осуществления настоящего изобретения устройство включает:
по меньшей мере один процессор и по меньшей мере одну память, при этом в упомянутой по меньшей мере одной памяти хранят код, который при исполнении упомянутым по меньшей мере одним процессором обеспечивает выполнение устройством по меньшей мере следующего:
декодирование первой части первой кодированной видеорепрезентации;
прием и синтаксический анализ информации о декодировании второй кодированной видеорепрезентации;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина элемента изображения, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли вторая кодированная видеорепрезентация быть декодирована с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания;
при условии, что упомянутая информация указывает на то, что вторая кодированная видеорепрезентация может быть декодирована с использованием, в качестве опорных для предсказания, обработанных декодированных изображений из первой кодированной видеорепрезентации, упомянутый код, который может исполняться при помощи упомянутого по меньшей мере одного процессора, обеспечивает также выполнение упомянутым устройством по меньшей мере следующего:
обработка одного или более декодированных изображений из первой части с преобразованием их в одно или более обработанных декодированных изображений, при этом обработка включает передискретизацию и/или масштабирование значений отсчетов; и
декодирование второй части второй кодированной видеорепрезентации с использованием упомянутых одного или более обработанных декодированных изображений в качестве опорных изображений, которые могут использоваться для предсказания.
[0445] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
прием описания медиапрезентации, содержащего упомянутую информацию.
[0446] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
определение, на основе описания медиапрезентации, первого идентификатора, который идентифицирует первую часть первой кодированной репрезентации, и второго идентификатора, который идентифицирует вторую часть второй кодированной репрезентации;
запрос упомянутой первой части при помощи упомянутого первого идентификатора;
прием упомянутой первой части;
запрос упомянутой второй части с использованием упомянутого второго идентификатора; и
прием упомянутой второй части.
[0447] В соответствии с одним из вариантов осуществления настоящего изобретения упомянутые первый идентификатор и второй идентификатор представляют собой унифицированные идентификаторы ресурса.
[0448] В соответствии с одним из вариантов осуществления настоящего изобретения пространственное разрешение первой кодированной репрезентации определяют для опорной области, а пространственное разрешения второй кодированной репрезентации определяют для предсказываемой области, при дополнительно обеспечивают выполнение упомянутым устройством следующего:
прием информации об опорной области, или, при отсутствии информации об опорной области;
определение того, что опорная область охватывает всю область изображения первой кодированной видеорепрезентации;
прием информации о предсказываемой области, или, при отсутствии информации о предсказываемой области;
определение того, что предсказываемая область охватывает всю область изображения второй кодированной видеорепрезентации;
[0449] В соответствии с одним из вариантов осуществления настоящего изобретения упомянутые одно или более обработанных декодированных изображений имеют тот же формат цветности и битовую глубину, что и изображения второй кодированной видеорепрезентации.
[0450] В соответствии с одним из вариантов осуществления настоящего изобретения упомянутые одно или более обработанных декодированных изображений имеют то же пространственное разрешение, что и изображения второй кодированной видеорепрезентации.
[0451] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
прием и синтаксический анализ информации о том, что вторая кодированная видеорепрезентация принадлежит небазовому уровню и может быть независимо декодирована.
[0452] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
прием и синтаксический анализ информации о том, что упомянутая первая часть упомянутой первой кодированной видеорепрезентации и упомянутая вторая часть упомянутой второй кодированной видеорепрезентации из битового потока, который соответствует масштабируемому профилю видеокодирования с ограничениями, заключающимися в том, что блоки доступа должны включать не более двух изображений, и в том, что когда блок доступа включает два изображения, изображение, принадлежащее более высокому уровню, должно быть внутренне-предсказываемым изображением точки произвольного доступа, для предсказания которых в качестве опорных изображений не используют предшествующие изображения в том же уровне, однако для предсказания которых в качестве опорных изображений могут использоваться изображения в более низком уровне того же блока доступа.
[0453] В соответствии с третьим вариантом осуществления настоящего изобретения предложен машиночитаемый носитель для хранения данных, на котором хранят код для использования устройством, который при исполнении процессором обеспечивает выполнение этим устройством следующего:
декодирование первой части первой кодированной видеорепрезентации;
прием и синтаксический анализ информации о декодировании второй кодированной видеорепрезентации;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина элемента изображения, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли вторая кодированная видеорепрезентация быть декодирована с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания;
при условии, что упомянутая информация указывает на то, что вторая кодированная видеорепрезентация может быть декодирована с использованием, в качестве опорных для предсказания, обработанных декодированных изображений из первой кодированной видеорепрезентации, упомянутый код, который может исполняться при помощи упомянутого по меньшей мере одного процессора, обеспечивает также выполнение упомянутым устройством по меньшей мере следующего:
обработка одного или более декодированных изображений из первой части с преобразованием их в одно или более обработанных декодированных изображений, при этом обработка включает передискретизацию и/или масштабирование значений отсчетов; и
декодирование второй части второй кодированной видеорепрезентации с использованием упомянутых одного или более обработанных декодированных изображений в качестве опорных изображений, которые могут использоваться для предсказания.
[0454] В соответствии с четвертым вариантом осуществления настоящего изобретения предложено устройство, включающее видеодекодер, сконфигурированный для декодирования битового потока, включающего последовательность изображений, при этом видеодекодер включает средства декодирования первой части первой кодированной видеорепрезентации;
средства приема и синтаксического анализа информации о декодировании второй кодированной видеорепрезентации;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина отсчета, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли быть декодирована упомянутое второе кодированное представление видеоинформации с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания; и при этом устройство дополнительно включает:
средства обработки одного или более декодированных изображений из первой части с преобразованием их в одно или более обработанных декодированных изображений, при условии, что упомянутая информация указывает на то, что упомянутое второе кодированное представление видеоинформации может быть декодировано с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных для предсказания, при этом обработка включает передискретизацию и/или масштабирование значений отсчетов; и
средства декодирования второй части второй кодированной видеорепрезентации с использованием упомянутых одного или более обработанных декодированных изображений в качестве опорных изображений, которые могут использоваться для предсказания.
[0455] В соответствии с пятым вариантом осуществления настоящего изобретения предложен видеодекодер, сконфигурированный для декодирования битового потока, включающего последовательность изображений, при этом упомянутый видеодекодер сконфигурирован также для следующего:
декодирование первой части первой кодированной видеорепрезентации;
прием и синтаксический анализ информации о декодировании второй кодированной видеорепрезентации;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина элемента изображения, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли вторая кодированная видеорепрезентация быть декодирована с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания;
при условии, что упомянутая информация указывает, может ли вторая кодированная видеорепрезентация быть декодирована с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений в качестве опорных для предсказания, способ дополнительно включает:
обработку одного или более декодированных изображений из первой части с преобразованием их в одно или более обработанных декодированных изображений, при этом обработка включает передискретизацию и/или масштабирование значений отсчетов; и
декодирование второй части второй кодированной видеорепрезентации с использованием упомянутых одного или более обработанных декодированных изображений в качестве опорных изображений, которые могут использоваться для предсказания.
[0456] В соответствии с шестым вариантом осуществления настоящего изобретения способ включает:
получение при помощи синтаксического анализа, из описания медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
получение при помощи синтаксического анализа, из описания медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0457] В соответствии с одним из вариантов осуществления настоящего изобретения упомянутые одна или более характеристик включают любое подмножество из следующего:
- кодеки или форматы кодирования, которым соответствует последовательность;
- точка соответствия, которой соответствует последовательность;
- порядковый номер набора выходных уровней, который может использоваться в качестве порядкового номера целевого набора выходных уровней при декодировании последовательности;
- идентификатор наивысшего временного подуровня, который может использоваться при декодировании последовательности;
- указание на то, включают блоки доступа последовательности один уровень или два уровня, при этом изображение более высокого уровня из этих двух уровней является внутренне предсказываемыми изображением точки произвольного доступа;
- указание на то, включают блоки доступа последовательности один уровень или два уровня, при этом изображение более высокого уровня из этих двух уровней является внутренне предсказываемыми изображением точки произвольного доступа;, в котором не кодирована ошибка предсказания;
- значения идентификаторов уровней, содержащихся в последовательности;
- значения идентификаторов уровней для обязательных уровней, содержащихся в последовательности;
- значения идентификаторов уровней для выходных уровней, содержащихся в последовательности;
- информация об альтернативных выходных уровнях, представленных последовательностью;
- набор или наборы видеопараметров, которые могут быть активированы при декодировании последовательности;
- другой набор или наборы параметров, например, наборы параметров последовательности или наборы параметров изображения, которые могут быть активированы при декодировании последовательности;
- значения идентификаторов масштабируемости для уровней, содержащихся в последовательности;
- информация, относящаяся к неявной передискретизации опорных изображений, требуемой или предполагаемой для декодирования последовательности.
[0458] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает
получение при помощи синтаксического анализа упомянутых одной или более характеристик из дополнительной структуры.
[0459] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает
синтаксический анализ одного или обоих элементов следующей информации, связанной с упомянутыми одной или более характеристиками:
- информация, указывающая на то, применимы ли упомянутые одна или более характеристик к последовательности неперекрывающихся последовательных сегментов, к последовательности неперекрывающихся последовательных подсегментов или к ним обеим;
- идентификатор по меньшей мере двух репрезентаций из множества репрезентаций;
[0460] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает:
декодирование первой части первой кодированной видеорепрезентации из по меньшей мере двух репрезентаций;
декодирование второй кодированной видеорепрезентации из упомянутых по меньшей мере двух репрезентаций;
при этом декодированная вторая репрезентация отличается от первой декодированной репрезентации одним или более из следующего: формат цветности, битовая глубина отсчета, цветовой охват, пространственное разрешение, и при этом упомянутые одна или более характеристик указывают на то, может ли вторая кодированная видеорепрезентация быть декодирована с использованием одного или более обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве одного или более опорных изображений для предсказания.
[0461] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает:
декодирование из первой видеорепрезентации по меньшей мере одного внутренне предсказываемого изображения точки произвольного доступа в уточняющем уровне.
[0462] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает:
связывание первого идентификатора трека контейнерного формата с упомянутым по меньшей мере одним внутренне предсказываемым изображением точки произвольного доступа в уточняющем уровне;
связывание упомянутого первого идентификатора трека контейнерного формата со второй видеорепрезентацией.
[0463] В соответствии с седьмым вариантом осуществления настоящего изобретения устройство включает:
по меньшей мере один процессор и по меньшей мере одну память, при этом в упомянутой по меньшей мере одной памяти хранят код, который при исполнении упомянутым по меньшей мере одним процессором обеспечивает выполнение устройством по меньшей мере следующего:
получение при помощи синтаксического анализа, из описания медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
получение при помощи синтаксического анализа, из описания медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0464] В соответствии с одним из вариантов осуществления устройства упомянутые одна или более характеристик включают любое подмножество из следующего:
- кодеки или форматы кодирования, которым соответствует последовательность;
- точка соответствия, которой соответствует последовательность;
- порядковый номер набора выходных уровней, который может использоваться в качестве порядкового номера целевого набора выходных уровней при декодировании последовательности;
- идентификатор наивысшего временного подуровня, который может использоваться при декодировании последовательности;
- указание на то, включают блоки доступа последовательности один уровень или два уровня, при этом изображение более высокого уровня из этих двух уровней является внутренне предсказываемыми изображением точки произвольного доступа;
- указание на то, включают блоки доступа последовательности один уровень или два уровня, при этом изображение более высокого уровня из этих двух уровней является внутренне предсказываемыми изображением точки произвольного доступа, в котором не кодирована ошибка предсказания;
- значения идентификаторов уровней, содержащихся в последовательности;
- значения идентификаторов уровней для обязательных уровней, содержащихся в последовательности;
- значения идентификаторов уровней для выходных уровней, содержащихся в последовательности;
- информация об альтернативных выходных уровнях, представленных последовательностью;
- набор или наборы видеопараметров, которые могут быть активированы при декодировании последовательности;
- другой набор или наборы параметров, например, наборы параметров последовательности или наборы параметров изображения, которые могут быть активированы при декодировании последовательности;
- значения идентификаторов масштабируемости для уровней, содержащихся в последовательности;
- информация, относящаяся к неявной передискретизации опорных изображений, требуемой или предполагаемой для декодирования последовательности.
[0465] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
получение при помощи синтаксического анализа упомянутых одной или более характеристик из дополнительной структуры.
[0466] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
получение при помощи синтаксического анализа одного или обоих элементов следующей информации, связанной с упомянутыми одной или более характеристиками:
- информация, указывающая на то, применимы ли упомянутые одна или более характеристик к последовательности неперекрывающихся последовательных сегментов, к последовательности неперекрывающихся последовательных подсегментов или к ним обеим;
- идентификатор по меньшей мере двух репрезентаций из множества репрезентаций;
[0467] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
декодирование первой части первой кодированной видеорепрезентации из по меньшей мере двух репрезентаций;
декодирование второй кодированной видеорепрезентации из упомянутых по меньшей мере двух репрезентаций;
при этом декодированная вторая репрезентация отличается от первой декодированной репрезентации одним или более из следующего: формат цветности, битовая глубина отсчета, цветовой охват, пространственное разрешение, и при этом упомянутые одна или более характеристик указывают на то, может ли вторая кодированная видеорепрезентация быть декодирована с использованием одного или более обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве одного или более опорных изображений для предсказания.
[0468] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
декодирование из первой видеорепрезентации по меньшей мере одного внутренне предсказываемого изображения точки произвольного доступа в уточняющем уровне.
[0469] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
связывание первого идентификатора трека контейнерного формата с упомянутым по меньшей мере одним внутренне предсказываемым изображением точки произвольного доступа в уточняющем уровне;
связывание упомянутого первого идентификатора трека контейнерного формата со второй видеорепрезентацией.
[0470] В соответствии с восьмым вариантом осуществления настоящего изобретения предложен машиночитаемый носитель для хранения данных, на котором хранят код для использования устройством, который при исполнении процессором обеспечивает выполнение этим устройством следующего:
получение при помощи синтаксического анализа, из описания медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
получение при помощи синтаксического анализа, из описания медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0471] В соответствии с девятым вариантом осуществления настоящего изобретения предложено устройство, включающее видеодекодер, сконфигурированный для декодирования битового потока, включающего последовательность изображений, при этом видеодекодер включает
средства [получения при помощи] синтаксического анализа, из описания медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
средства [получения при помощи] синтаксического анализа, из описания медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0472] В соответствии с десятым вариантом осуществления настоящего изобретения предложен видеодекодер, сконфигурированный для декодирования битового потока, включающего последовательность изображений, при этом упомянутый видеодекодер сконфигурирован также для следующего:
получение при помощи синтаксического анализа, из описания медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
получение при помощи синтаксического анализа, из описания медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0473] В соответствии с одиннадцатым вариантом осуществления настоящего изобретения способ включает
предоставление, в описании медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
предоставление, в описании медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0474] В соответствии с одним из вариантов осуществления настоящего изобретения упомянутые одна или более характеристик включают любое подмножество из следующего:
- кодеки или форматы кодирования, которым соответствует последовательность;
- точка соответствия, которой соответствует последовательность;
- порядковый номер набора выходных уровней, который может использоваться в качестве порядкового номера целевого набора выходных уровней при декодировании последовательности;
- идентификатор наивысшего временного подуровня, который может использоваться при декодировании последовательности;
- указание на то, включают блоки доступа последовательности один уровень или два уровня, при этом изображение более высокого уровня из этих двух уровней является внутренне предсказываемыми изображением точки произвольного доступа;
- указание на то, включают блоки доступа последовательности один уровень или два уровня, при этом изображение более высокого уровня из этих двух уровней является внутренне предсказываемыми изображением точки произвольного доступа;, в котором не кодирована ошибка предсказания;
- значения идентификаторов уровней, содержащихся в последовательности;
- значения идентификаторов уровней для обязательных уровней, содержащихся в последовательности;
- значения идентификаторов уровней для выходных уровней, содержащихся в последовательности;
- информация об альтернативных выходных уровнях, представленных последовательностью;
- набор или наборы видеопараметров, которые могут быть активированы при декодировании последовательности;
- другой набор или наборы параметров, например, наборы параметров последовательности или наборы параметров изображения, которые могут быть активированы при декодировании последовательности;
- значения идентификаторов масштабируемости для уровней, содержащихся в последовательности;
- информация, относящаяся к неявной передискретизации опорных изображений, требуемой или предполагаемой для декодирования последовательности.
[0475] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает:
предоставление упомянутых одной или более характеристик в дополнительной структуре, синтаксический анализ не является необходимым при синтаксическом анализе упомянутого описания медиапрезентации.
[0476] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает
получение при помощи синтаксического анализа одного или обоих элементов следующей информации, связанной с упомянутыми одной или более характеристиками:
- информация, указывающая на то, применимы ли упомянутые одна или более характеристик к последовательности неперекрывающихся последовательных сегментов, к последовательности неперекрывающихся последовательных подсегментов или к ним обеим;
- идентификатор по меньшей мере двух репрезентаций из множества репрезентаций;
[0477] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает:
кодирование первой части первой кодированной видеорепрезентации из по меньшей мере двух репрезентаций;
кодирование второй кодированной видеорепрезентации из упомянутых по меньшей мере двух репрезентаций;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина отсчета, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли быть декодирована вторая кодированная видеорепрезентация с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания;
[0478] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает:
кодирование в упомянутую первую видеорепрезентацию по меньшей мере одного внутренне предсказываемого изображения точки произвольного доступа в уточняющем уровне.
[0479] В соответствии с одним из вариантов осуществления настоящего изобретения способ дополнительно включает:
связывание первого идентификатора трека контейнерного формата с упомянутым по меньшей мере одним внутренне предсказываемым изображением точки произвольного доступа в уточняющем уровне;
связывание упомянутого первого идентификатора трека контейнерного формата со второй видеорепрезентацией.
[0480] В соответствии с одним из вариантов осуществления настоящего изобретения
упомянутое по меньшей мере одно внутренне предсказываемое изображение точки произвольного доступа является пропускаемым изображением.
[0481] В соответствии с двенадцатым вариантом осуществления настоящего изобретения устройство включает:
по меньшей мере один процессор и по меньшей мере одну память, при этом в упомянутой по меньшей мере одной памяти хранят код, который при исполнении упомянутым по меньшей мере одним процессором обеспечивает выполнение устройством по меньшей мере следующего:
предоставление, в описании медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
предоставление, в описании медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0482] В соответствии с одним из вариантов осуществления настоящего изобретения упомянутые одна или более характеристик включают любое подмножество из следующего:
- кодеки или форматы кодирования, которым соответствует последовательность;
- точка соответствия, которой соответствует последовательность;
- порядковый номер набора выходных уровней, который может использоваться в качестве порядкового номера целевого набора выходных уровней при декодировании последовательности;
- идентификатор наивысшего временного подуровня, который может использоваться при декодировании последовательности;
- указание на то, включают блоки доступа последовательности один уровень или два уровня, при этом изображение более высокого уровня из этих двух уровней является внутренне предсказываемыми изображением точки произвольного доступа;
- указание на то, включают блоки доступа последовательности один уровень или два уровня, при этом изображение более высокого уровня из этих двух уровней является внутренне предсказываемыми изображением точки произвольного доступа;, в котором не кодирована ошибка предсказания;
- значения идентификаторов уровней, содержащихся в последовательности;
- значения идентификаторов уровней для обязательных уровней, содержащихся в последовательности;
- значения идентификаторов уровней для выходных уровней, содержащихся в последовательности;
- информация об альтернативных выходных уровнях, представленных последовательностью;
- набор или наборы видеопараметров, которые могут быть активированы при декодировании последовательности;
- другой набор или наборы параметров, например, наборы параметров последовательности или наборы параметров изображения, которые могут быть активированы при декодировании последовательности;
- значения идентификаторов масштабируемости для уровней, содержащихся в последовательности;
- информация, относящаяся к неявной передискретизации опорных изображений, требуемой или предполагаемой для декодирования последовательности.
[0483] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
предоставление упомянутых одной или более характеристик в дополнительной структуре, синтаксический анализ не является необходимым при синтаксическом анализе упомянутого описания медиапрезентации.
[0484] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
получение при помощи синтаксического анализа одного или обоих элементов следующей информации, связанной с упомянутыми одной или более характеристиками:
- информация, указывающая на то, применимы ли упомянутые одна или более характеристик к последовательности неперекрывающихся последовательных сегментов, к последовательности неперекрывающихся последовательных подсегментов или к ним обеим;
- идентификатор по меньшей мере двух репрезентаций из множества репрезентаций;
[0485] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
кодирование первой части первой кодированной видеорепрезентации из по меньшей мере двух репрезентаций;
кодирование второй кодированной видеорепрезентации из упомянутых по меньшей мере двух репрезентаций;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина отсчета, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли быть декодирована вторая кодированная видеорепрезентация с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания;
[0486] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
кодирование в упомянутую первую видеорепрезентацию по меньшей мере одного внутренне предсказываемого изображения точки произвольного доступа в уточняющем уровне.
[0487] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
связывание первого идентификатора трека контейнерного формата с упомянутым по меньшей мере одним внутренне предсказываемым изображением точки произвольного доступа в уточняющем уровне;
связывание упомянутого первого идентификатора трека контейнерного формата со второй видеорепрезентацией.
[0488] В соответствии с одним из вариантов осуществления настоящего изобретения упомянутое по меньшей мере одно внутренне предсказываемое изображение точки произвольного доступа в уточняющем уровне является пропускаемым изображением.
[0489] В соответствии с тринадцатым вариантом осуществления настоящего изобретения предложен машиночитаемый носитель для хранения данных, на котором хранят код для использования устройством, который при исполнении процессором обеспечивает выполнение этим устройством следующего:
предоставление, в описании медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
предоставление, в описании медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0490] В соответствии с одним из вариантов осуществления настоящего изобретения упомянутые одна или более характеристик включают любое подмножество из следующего:
- кодеки или форматы кодирования, которым соответствует последовательность;
- точка соответствия, которой соответствует последовательность;
- порядковый номер набора выходных уровней, который может использоваться в качестве порядкового номера целевого набора выходных уровней при декодировании последовательности;
- идентификатор наивысшего временного подуровня, который может использоваться при декодировании последовательности;
- указание на то, включают блоки доступа последовательности один уровень или два уровня, при этом изображение более высокого уровня из этих двух уровней является внутренне предсказываемыми изображением точки произвольного доступа;
- указание на то, включают блоки доступа последовательности один уровень или два уровня, при этом изображение более высокого уровня из этих двух уровней является внутренне предсказываемыми изображением точки произвольного доступа;, в котором не кодирована ошибка предсказания;
- значения идентификаторов уровней, содержащихся в последовательности;
- значения идентификаторов уровней для обязательных уровней, содержащихся в последовательности;
- значения идентификаторов уровней для выходных уровней, содержащихся в последовательности;
- информация об альтернативных выходных уровнях, представленных последовательностью;
- набор или наборы видеопараметров, которые могут быть активированы при декодировании последовательности;
- другой набор или наборы параметров, например, наборы параметров последовательности или наборы параметров изображения, которые могут быть активированы при декодировании последовательности;
- значения идентификаторов масштабируемости для уровней, содержащихся в последовательности;
- информация, относящаяся к неявной передискретизации опорных изображений, требуемой или предполагаемой для декодирования последовательности.
[0491] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
предоставление упомянутых одной или более характеристик в дополнительной структуре, синтаксический анализ не является необходимым при синтаксическом анализе упомянутого описания медиапрезентации.
[0492] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
получение при помощи синтаксического анализа одного или обоих элементов следующей информации, связанной с упомянутыми одной или более характеристиками:
- информация, указывающая на то, применимы ли упомянутые одна или более характеристик к последовательности неперекрывающихся последовательных сегментов, к последовательности неперекрывающихся последовательных подсегментов или к ним обеим;
- идентификатор по меньшей мере двух репрезентаций из множества репрезентаций;
[0493] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
кодирование первой части первой кодированной видеорепрезентации из по меньшей мере двух репрезентаций;
кодирование второй кодированной видеорепрезентации из упомянутых по меньшей мере двух репрезентаций;
при этом вторая кодированная репрезентация отличается от первой кодированной репрезентации одним или более из следующего: формат цветности, битовая глубина отсчета, цветовой охват, пространственное разрешение, и при этом упомянутая информация указывает, может ли быть декодирована вторая кодированная видеорепрезентация с использованием обработанных декодированных изображений из первой кодированной видеорепрезентации в качестве опорных изображений, которые могут быть использованы для предсказания;
[0494] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
кодирование в упомянутую первую видеорепрезентацию по меньшей мере одного внутренне предсказываемого изображения точки произвольного доступа в уточняющем уровне.
[0495] В соответствии с одним из вариантов осуществления настоящего изобретения также обеспечивают выполнение упомянутым устройством следующего:
связывание первого идентификатора трека контейнерного формата с упомянутым по меньшей мере одним внутренне предсказываемым изображением точки произвольного доступа в уточняющем уровне;
связывание упомянутого первого идентификатора трека контейнерного формата со второй видеорепрезентацией.
[0496] В соответствии с одним из вариантов осуществления настоящего изобретения упомянутое по меньшей мере одно внутренне предсказываемое изображение точки произвольного доступа в уточняющем уровне является пропускаемым изображением.
[0497] В соответствии с четырнадцатым вариантом осуществления настоящего изобретения предложено устройство, включающее видеокодер, сконфигурированный для кодирования битового потока, включающего последовательность изображений, при этом видеокодер включает
средства предоставления, в описании медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
средства предоставления, в описании медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0498] В соответствии с пятнадцатым вариантом осуществления настоящего изобретения предложен видеокодер, сконфигурированный для кодирования битового потока, включающего последовательность изображений, при этом упомянутый видеокодер дополнительно сконфигурирован для следующего:
предоставление, в описании медиапрезентации, метаданных по меньшей мере для двух репрезентаций;
предоставление, в описании медиапрезентации, одной или более характеристик для декодирования последовательности неперекрывающихся последовательных сегментов или подсегментов по меньшей мере двух репрезентаций.
[0499] В соответствии с шестнадцатым вариантом осуществления настоящего изобретения способ включает
прием битового потока, включающего блоки данных изображений, в качестве первой репрезентации;
принятие решение о прекращении передачи первой репрезентации в первой точке переключения;
передачу блоков данных изображений в первой репрезентации вплоть до первой точки переключения, при этом упомянутые блоки данных изображений включают по меньшей мере один блок данных, который подходит для применения в качестве опорного для предсказания при декодировании второй части второй видеорепрезентации после упомянутой первой точки переключения.
[0500] В соответствии с семнадцатым вариантом осуществления настоящего изобретения предложено устройство, включающее:
по меньшей мере один процессор и по меньшей мере одну память, при этом в упомянутой по меньшей мере одной памяти хранят код, который при исполнении упомянутым по меньшей мере одним процессором обеспечивает выполнение устройством по меньшей мере следующего:
прием битового потока, включающего блоки данных изображений, в качестве первой репрезентации;
принятие решения о прекращении передачи первой репрезентации в первой точке переключения;
передачу блоков данных изображений в первой репрезентации вплоть до первой точки переключения, при этом упомянутые блоки данных изображений включают по меньшей мере один блок данных, который подходит для применения в качестве опорного для предсказания при декодировании второй части второй видеорепрезентации после упомянутой первой точки переключения.
[0501] В соответствии с восемнадцатым вариантом осуществления настоящего изобретения предложен машиночитаемый носитель для хранения данных, на котором хранят код для использования устройством, который при исполнении процессором обеспечивает выполнение этим устройством следующего:
прием битового потока, включающего блоки данных изображений, в качестве первой репрезентации;
принятие решения о прекращении передачи первой репрезентации в первой точке переключения;
передачу блоков данных изображений в первой репрезентации вплоть до первой точки переключения, при этом упомянутые блоки данных изображений включают по меньшей мере один блок данных, который подходит для применения в качестве опорного для предсказания при декодировании второй части второй видеорепрезентации после упомянутой первой точки переключения.